Skip to main content
Glama

Zoom API MCP Server

models.py2.33 MB
# generated by fastapi-codegen: # filename: openapi.yaml # timestamp: 2025-08-13T19:13:55+00:00 from __future__ import annotations from datetime import date as date_aliased from datetime import datetime from datetime import time as time_aliased from enum import Enum from typing import Any, Dict, List, Optional, Union from uuid import UUID from pydantic import ( AnyUrl, BaseModel, ConfigDict, EmailStr, Field, RootModel, SecretStr, conint, constr, ) class PayMode(Enum): master = 'master' sub = 'sub' class Options(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class Account(BaseModel): email: str = Field(..., description="User's email address.") first_name: str = Field(..., description="User's first name.") last_name: str = Field(..., description="User's last name.") options: Optional[Options] = Field(None, description='Account options object.') password: str = Field(..., description="User's password.") vanity_url: Optional[str] = Field(None, description='Account Vanity URL') class Account1(BaseModel): account_name: Optional[str] = Field(None, description='Account name.') account_number: Optional[str] = Field( None, description='Account Number of the account.' ) account_type: Optional[str] = Field(None, description='Account type.') created_at: Optional[datetime] = Field( None, description='Account creation date and time.' ) id: Optional[str] = Field(None, description='Account ID.') owner_email: Optional[str] = Field( None, description='Account owner email.', examples=['john.doe@zoom.us'] ) seats: Optional[int] = Field(None, description='Account seats.') subscription_end_time: Optional[datetime] = Field( None, description='Account subscription end date and time.' ) subscription_start_time: Optional[datetime] = Field( None, description='Account subscription start date and time.' ) class AccountList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) accounts: Optional[List[Account1]] = Field( None, description='List of Account objects.' ) class AccountListItem(BaseModel): accounts: Optional[List[Account1]] = Field( None, description='List of Account objects.' ) class AccountOptions(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountPlan(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountPlanBaseRequired(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountPlanRequired(BaseModel): hosts: int = Field(..., description='Number of hosts for this plan.') type: str = Field( ..., description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanAudio(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) ddi_numbers: Optional[int] = Field(None, description='Dedicated dial-In numbers.') premium_countries: Optional[str] = Field( None, description='Premium countries: multiple values should be separated by commas. For a list of allowed values, refer to the "ID" field in the [Premium Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#premium-countries) table.', ) tollfree_countries: Optional[str] = Field( None, description='Toll-free countries: multiple values should separated by a comma. For a list of allowed values, refer to the "ID" field in the [Toll Free Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#toll-free-countries) table.', ) type: Optional[str] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) class PlanBase(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanLargeMeetingItem(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase1(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanCallingItem(BaseModel): hosts: Optional[int] = None type: Optional[str] = Field( None, description='Additional phone calling <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanNumberItem(BaseModel): hosts: Optional[int] = None type: Optional[str] = Field( None, description='Additional phone number <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone(BaseModel): plan_base: Optional[PlanBase1] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem]] = Field( None, description='Additional phone number plans.' ) class PlanRoomConnector(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanWebinarItem(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanZoomRooms(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountPlans(BaseModel): plan_audio: Optional[PlanAudio] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) plan_base: PlanBase = Field(..., description='Account base plan object.') plan_large_meeting: Optional[List[PlanLargeMeetingItem]] = Field( None, description='Additional large meeting Plans.' ) plan_phone: Optional[PlanPhone] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional cloud recording plan.' ) plan_room_connector: Optional[PlanRoomConnector] = Field( None, description='Account plan object.' ) plan_webinar: Optional[List[PlanWebinarItem]] = Field( None, description='Additional webinar plans.' ) plan_zoom_rooms: Optional[PlanZoomRooms] = Field( None, description='Account plan object.' ) class EmailNotification(BaseModel): alternative_host_reminder: Optional[bool] = Field( None, description='Notify when an alternative host is set or removed from a meeting.', ) cancel_meeting_reminder: Optional[bool] = Field( None, description='Notify the host and participants when a meeting is cancelled.', ) cloud_recording_avaliable_reminder: Optional[bool] = Field( None, description='Notify host when cloud recording is available.' ) jbh_reminder: Optional[bool] = Field( None, description='Notify the host when participants join the meeting before them.', ) low_host_count_reminder: Optional[bool] = Field( None, description='Notify user when host licenses are running low.' ) schedule_for_reminder: Optional[bool] = Field( None, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class Feature(BaseModel): meeting_capacity: Optional[int] = Field( None, description='Set the maximum number of participants a host can have in a single meeting.', ) class DataCenterRegions(Enum): EU = 'EU' HK = 'HK' AU = 'AU' IN = 'IN' TY = 'TY' CN = 'CN' US = 'US' CA = 'CA' class EntryExitChime(Enum): host = 'host' all = 'all' none = 'none' class File(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the file.') is_default: Optional[bool] = Field( None, description='Indicates whether or not this file is the default virtual background file.', ) name: Optional[str] = Field(None, description='File name.') size: Optional[str] = Field(None, description='File size.') type: Optional[str] = Field(None, description='File type.') class VirtualBackgroundSettings(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class WhoCanShareScreen(Enum): host = 'host' all = 'all' class WhoCanShareScreenWhenSomeoneIsSharing(Enum): host = 'host' all = 'all' class InMeeting(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class Integration(BaseModel): box: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Box account.', ) dropbox: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Dropbox account.', ) google_calendar: Optional[bool] = Field( None, description='Enable meetings to be scheduled using Google Calendar.' ) google_drive: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Google Drive.', ) kubi: Optional[bool] = Field( None, description='Enable users to control a connected Kubi device from within a Zoom meeting.', ) microsoft_one_drive: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Microsoft OneDrive account.', ) class RecordingStorageLocation(BaseModel): allowed_values: Optional[List[str]] = Field( None, description='Users can choose the country to store their recorded content. Content can include meeting, webinar, and phone recordings, as well as voicemail, transcripts, and custom greeting prompts. See [Managing the Communications Content storage location](https://support.zoom.us/hc/en-us/articles/360050781131) for details.\n\nProvide abbreviated country codes as the value for this field. See the [Countries abbreviation list](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) for details.', ) value: Optional[str] = Field(None, description='Abbreviated country code.') class Profile(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Settings(BaseModel): audio_file: Optional[bool] = Field( None, description='Include in-meeting and/or in-webinar audio in the archive.' ) cc_transcript_file: Optional[bool] = Field( None, description='Include closed caption or transcript in the archive.' ) chat_file: Optional[bool] = Field( None, description='Include in-meeting chat in the archive.' ) chat_with_sender_email: Optional[bool] = Field( None, description='Include user email in in-meeting chat file.' ) video_file: Optional[bool] = Field( None, description='Include in-meeting and/or in-webinar video in the archive.' ) class Type(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings] = None type: Optional[Type] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class AutoRecording(Enum): local = 'local' cloud = 'cloud' none = 'none' class IpAddressAccessControl(BaseModel): enable: Optional[bool] = Field( None, description='If set to `true`, the cloud recordings of this account can only be accessed by the IP addresses defined in the `ip_addresses_or_ranges` property.\n\n', ) ip_addresses_or_ranges: Optional[str] = Field( None, description='IP addresses or ranges that have access to the cloud recordings. Separate multiple IP ranges with comma. Use n.n.n.n, n.n.n.n/n or n.n.n.n - n.n.n.n syntax where n is a number.\n\nExample: `46.33.24.184, 48.99.100.2/25` or `200.181.108.17 - 220.181.108.157`\n\n', ) class RecordingPasswordRequirement(BaseModel): have_letter: Optional[bool] = Field( None, description='Indicates whether or not password must contain at least one alphabetical letter (a, b, c..).', ) have_number: Optional[bool] = Field( None, description='Indicates whether or not password must contain at least one number(1, 2, 3..).', ) have_special_character: Optional[bool] = Field( None, description='Indicates whether or not password must contain at least one special character(!, @, #..).', ) length: Optional[conint(le=10)] = Field( None, description='Minimum required length for the password.' ) only_allow_numeric: Optional[bool] = Field( None, description='Indicates whether or not password must contain only numeric characters.', ) class Recording(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class AudioType(Enum): both = 'both' telephony = 'telephony' voip = 'voip' thirdParty = 'thirdParty' class ConsecutiveCharactersLength(Enum): integer_0 = 0 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 integer_8 = 8 class MeetingPasswordRequirement(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class RequirePasswordForPmiMeetings(Enum): jbh_only = 'jbh_only' all = 'all' none = 'none' class ScheduleMeeting(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class PasswordRequirement(BaseModel): consecutive_characters_length: Optional[int] = Field( None, description='\nSpecify the max length of consecutive characters(abcde...) that can be used in a password.\nIf you set the value of this field to `0`, no restriction will be applied on consecutive characters. \n\nIf you would like to set this restriction, you can specify a number between 4 and 8 that define the maximum allowed length for consecutive characters in a password.\n\nThe max allowed length will be `n-1` where `n` refers to the value you provide for this field. For instance, if you provide `4` as the value, there can only be a maximum of `3` consecutive characters in a password(example: abc1x@8fdh).', ) have_special_character: Optional[bool] = Field( None, description='If the value of this field is set to `true`, the password must have at least one special character(!, @, #...).', ) minimum_password_length: Optional[conint(ge=8, le=14)] = Field( None, description='Specify a minimum length for the password. The password length can be from a minimum of 9 characters, up to 14 characters. If you provide `0` as the value of this field, this field will be disabled and not be used and the basic password length requirement (minimum of 8 characters) will be applied for the requirement.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If the value of this field is set to `true`, user passwords will have to pass detection through a weak password dictionary in case hackers use simple passwords to sign in to your users’ accounts.', ) class SignInWithTwoFactorAuth(Enum): all = 'all' group = 'group' role = 'role' none = 'none' class Security(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class TelephonyRegions(BaseModel): allowed_values: Optional[List[str]] = Field( None, description='Telephony region options provided by Zoom to select from.' ) selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class Tsp(BaseModel): call_out: Optional[bool] = Field(None, description='Call Out') call_out_countries: Optional[List] = Field( None, description='Call Out Countries/Regions' ) display_toll_free_numbers: Optional[bool] = Field( None, description='Display toll-free numbers' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show international numbers link on the invitation email' ) class ZoomRooms(BaseModel): auto_start_stop_scheduled_meetings: Optional[bool] = Field( None, description='Automatic start and stop for scheduled meetings.' ) cmr_for_instant_meeting: Optional[bool] = Field( None, description='Cloud recording for instant meetings.' ) force_private_meeting: Optional[bool] = Field( None, description='Shift all meetings to private.' ) hide_host_information: Optional[bool] = Field( None, description='Hide host and meeting ID from private meetings.' ) list_meetings_with_calendar: Optional[bool] = Field( None, description='Display meeting list with calendar integration.' ) start_airplay_manually: Optional[bool] = Field( None, description='Start AirPlay service manually.' ) ultrasonic: Optional[bool] = Field( None, description='Automatic direct sharing using an ultrasonic proximity signal.', ) upcoming_meeting_alert: Optional[bool] = Field( None, description='Upcoming meeting alert.' ) weekly_system_restart: Optional[bool] = Field( None, description='Weekly system restart.' ) zr_post_meeting_feedback: Optional[bool] = Field( None, description='Zoom Room post meeting feedback.' ) class AccountSettings(BaseModel): email_notification: Optional[EmailNotification] = Field( None, description='Account Settings: Notification.' ) feature: Optional[Feature] = Field(None, description='Account Settings: Feature.') in_meeting: Optional[InMeeting] = Field( None, description='Account Settings: In Meeting.' ) integration: Optional[Integration] = Field( None, description='Account Settings: Integration.' ) profile: Optional[Profile] = Field(None, title='Profile') recording: Optional[Recording] = Field( None, description='Account Settings: Recording.' ) schedule_meeting: Optional[ScheduleMeeting] = Field( None, description='Account Settings: Schedule Meeting.' ) security: Optional[Security] = Field( None, description='[Security settings](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) of an Account.', ) telephony: Optional[Telephony] = Field( None, description='Account Settings: Telephony.' ) tsp: Optional[Tsp] = Field(None, description='Account Settings: TSP.') zoom_rooms: Optional[ZoomRooms] = Field( None, description='Account Settings: Zoom Rooms.' ) class Type1(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type1] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class AccountSettingsAuthentication1(BaseModel): authentication_options: Optional[List[AuthenticationOption]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type2(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption1(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type2] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class AccountSettingsAuthentication2(BaseModel): authentication_options: Optional[List[AuthenticationOption1]] = None recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class AccountSettingsAuthentication( RootModel[Union[AccountSettingsAuthentication1, AccountSettingsAuthentication2]] ): root: Union[AccountSettingsAuthentication1, AccountSettingsAuthentication2] = Field( ..., title='AccountSettingsAuthentication' ) class Action(Enum): update = 'update' delete = 'delete' add = 'add' class Type3(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption2(BaseModel): action: Optional[Action] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to join your meetings or webinars. ', ) id: Optional[str] = Field( None, description=' Authentication ID. If you are creating an authentication profile, you do not need to provide this field. The id field will be generated in the response once this API request is completed successfully. You can also use the Get Account Settings API with query parameter set to `meeting_authentication` to list the authentication id.<br><br>\n Use this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type3] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class AccountSettingsAuthenticationUpdate1(BaseModel): authentication_option: Optional[AuthenticationOption2] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='If set to "true", only authenticated users can join meetings. The method for authentication can be defined in the "authentication_option". ', ) class Type4(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption3(BaseModel): action: Optional[Action] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to view the recordings. ', ) id: Optional[str] = Field( None, description=' Authentication ID. If you are creating an authentication profile, you do not need to provide this field. The id field will be generated in the response once this API request is completed successfully. You can also use the Get Account Settings API with query parameter set to `meeting_authentication` to list the authentication id.<br><br>\nUse this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type4] = Field( None, description='Specify one authentication type that is to be associated with this authentication configuration:<br>\n* `internally`: This option allows you specify a rule that only signed in users within your account can view the recording.<br>\n * `enforce_login`: This option allows any users to view the recording, as long as they are signed into their Zoom account.<br>\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can view the recording. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.\n\n', ) class AccountSettingsAuthenticationUpdate2(BaseModel): authentication_option: Optional[AuthenticationOption3] = Field( None, description='Specify the authentication options for this account.' ) recording_authentication: Optional[bool] = Field( None, description='If set to `true`, only authenticated users can view the cloud recordings.<br><br>\nThe authentication profile **must first be set at the account level via the account settings**, and later can be disabled after enabling on the preferred level - i.e. user level using user settings or at group level via group settings (if you do not want the settings to be enabled on the entire account).', ) class AccountSettingsAuthenticationUpdate( RootModel[ Union[ AccountSettingsAuthenticationUpdate1, AccountSettingsAuthenticationUpdate2 ] ] ): root: Union[ AccountSettingsAuthenticationUpdate1, AccountSettingsAuthenticationUpdate2 ] = Field(..., title='AccountSettingsAuthenticationUpdate') class AccountSettingsEmailNotification(BaseModel): alternative_host_reminder: Optional[bool] = Field( None, description='Notify when an alternative host is set or removed from a meeting.', ) cancel_meeting_reminder: Optional[bool] = Field( None, description='Notify the host and participants when a meeting is cancelled.', ) cloud_recording_avaliable_reminder: Optional[bool] = Field( None, description='Notify host when cloud recording is available.' ) jbh_reminder: Optional[bool] = Field( None, description='Notify the host when participants join the meeting before them.', ) low_host_count_reminder: Optional[bool] = Field( None, description='Notify user when host licenses are running low.' ) schedule_for_reminder: Optional[bool] = Field( None, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class AccountSettingsFeature(BaseModel): meeting_capacity: Optional[int] = Field( None, description='Set the maximum number of participants a host can have in a single meeting.', ) class VirtualBackgroundSettings1(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class AccountSettingsInMeeting(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings1] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class AccountSettingsIntegration(BaseModel): box: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Box account.', ) dropbox: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Dropbox account.', ) google_calendar: Optional[bool] = Field( None, description='Enable meetings to be scheduled using Google Calendar.' ) google_drive: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Google Drive.', ) kubi: Optional[bool] = Field( None, description='Enable users to control a connected Kubi device from within a Zoom meeting.', ) microsoft_one_drive: Optional[bool] = Field( None, description='Enable users who join a meeting from their mobile device to share content from their Microsoft OneDrive account.', ) class Type5(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive1(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings] = None type: Optional[Type5] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class AccountSettingsRecording(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive1] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class Action2(Enum): update = 'update' add = 'add' delete = 'delete' class Type6(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption4(BaseModel): action: Optional[Action2] = None default_option: Optional[bool] = None domains: Optional[str] = None id: Optional[str] = None name: Optional[str] = None type: Optional[Type6] = None class AccountSettingsRecordingAuthenticationUpdate(BaseModel): authentication_option: Optional[AuthenticationOption4] = None recording_authentication: Optional[bool] = None class MeetingPasswordRequirement1(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class AccountSettingsScheduleMeeting(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement1] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class AccountSettingsSecurity(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class AccountSettingsTSP(BaseModel): call_out: Optional[bool] = Field(None, description='Call Out') call_out_countries: Optional[List] = Field( None, description='Call Out Countries/Regions' ) display_toll_free_numbers: Optional[bool] = Field( None, description='Display toll-free numbers' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show international numbers link on the invitation email' ) class AccountSettingsTelephony(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class TelephonyRegions2(BaseModel): selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class AccountSettingsUpdateTelephony(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions2] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class AccountSettingsZoomRooms(BaseModel): auto_start_stop_scheduled_meetings: Optional[bool] = Field( None, description='Automatic start and stop for scheduled meetings.' ) cmr_for_instant_meeting: Optional[bool] = Field( None, description='Cloud recording for instant meetings.' ) force_private_meeting: Optional[bool] = Field( None, description='Shift all meetings to private.' ) hide_host_information: Optional[bool] = Field( None, description='Hide host and meeting ID from private meetings.' ) list_meetings_with_calendar: Optional[bool] = Field( None, description='Display meeting list with calendar integration.' ) start_airplay_manually: Optional[bool] = Field( None, description='Start AirPlay service manually.' ) ultrasonic: Optional[bool] = Field( None, description='Automatic direct sharing using an ultrasonic proximity signal.', ) upcoming_meeting_alert: Optional[bool] = Field( None, description='Upcoming meeting alert.' ) weekly_system_restart: Optional[bool] = Field( None, description='Weekly system restart.' ) zr_post_meeting_feedback: Optional[bool] = Field( None, description='Zoom Room post meeting feedback.' ) class VirtualBackgroundSettings2(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting1(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings2] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class Profile1(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type7(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive2(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings] = None type: Optional[Type7] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording1(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive2] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class MeetingPasswordRequirement2(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class ScheduleMeeting1(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement2] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Security1(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class Telephony1(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions2] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class AccountUpdateSettings(BaseModel): email_notification: Optional[EmailNotification] = Field( None, description='Account Settings: Notification.' ) feature: Optional[Feature] = Field(None, description='Account Settings: Feature.') in_meeting: Optional[InMeeting1] = Field( None, description='Account Settings: In Meeting.' ) integration: Optional[Integration] = Field( None, description='Account Settings: Integration.' ) profile: Optional[Profile1] = Field(None, title='Profile') recording: Optional[Recording1] = Field( None, description='Account Settings: Recording.' ) schedule_meeting: Optional[ScheduleMeeting1] = Field( None, description='Account Settings: Schedule Meeting.' ) security: Optional[Security1] = Field( None, description='[Security settings](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) of an Account.', ) telephony: Optional[Telephony1] = Field( None, description='Account Settings Update: Telephony.' ) tsp: Optional[Tsp] = Field(None, description='Account Settings: TSP.') zoom_rooms: Optional[ZoomRooms] = Field( None, description='Account Settings: Zoom Rooms.' ) class BillingContact(BaseModel): address: Optional[str] = Field(None, description="Billing Contact's address.") apt: Optional[str] = Field(None, description="Billing Contact's apartment/suite.") city: Optional[str] = Field(None, description="Billing Contact's city.") country: Optional[str] = Field(None, description="Billing Contact's country.") email: Optional[str] = Field(None, description="Billing Contact's email address.") first_name: Optional[str] = Field(None, description="Billing Contact's first name.") last_name: Optional[str] = Field(None, description="Billing Contact's last name.") phone_number: Optional[str] = Field( None, description="Billing Contact's phone number." ) state: Optional[str] = Field(None, description="Billing Contact's state.") zip: Optional[str] = Field(None, description="Billing Contact's zip/postal code.") class BillingContactRequired(BaseModel): address: str = Field(..., description="Billing Contact's address.") apt: Optional[str] = Field(None, description="Billing Contact's apartment/suite.") city: str = Field(..., description="Billing Contact's city.") country: str = Field( ..., description="Billing Contact's Country [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) in abbreviated format.", ) email: str = Field(..., description="Billing Contact's email address.") first_name: str = Field(..., description="Billing Contact's first name.") last_name: str = Field(..., description="Billing Contact's last name.") phone_number: str = Field(..., description="Billing Contact's phone number.") state: str = Field(..., description="Billing Contact's state.") zip: str = Field(..., description="Billing Contact's zip/postal code.") class Channel(BaseModel): id: Optional[str] = Field(None, description='Channel Id.') name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type7] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>', ) class ArchiveFiles(BaseModel): model_config = ConfigDict( extra='forbid', ) download_url: str = Field( ..., description='The URL where the archived file can be downloaded. To download the archived file of a meeting or a webinar hosted in your account, create a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example. Example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{Your-JWT}}`.<br>If a user has authorized and installed your OAuth app that supports archiving, use the user’s [OAuth access token(https://marketplace.zoom.us/docs/guides/auth/oauth) to download the file.<br>For example: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{ OAuth Access Token }}`.', ) file_extension: str = Field(..., description='The file extension of the recording.') file_size: int = Field(..., description='The file size of the recording.') file_type: str = Field( ..., description='The file type of the recording. The value of this field could be one of the following:`MP4`: Video file of the recording.<br>`M4A`: Audio-only file of the recording.<br>`TRANSCRIPT`: Transcription file of the recording in VTT format.<br>`CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format. See [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) for details.', ) id: str = Field(..., description='The unique identifier of the archived file.') recording_type: str = Field( ..., description='The value of this field can be one of the following:* `shared_screen_with_speaker_view(CC)`* `shared_screen_with_speaker_view`* `shared_screen_with_gallery_view`* `speaker_view`* `gallery_view`* `shared_screen`* `audio_only`* `audio_transcript`* `chat_file`,* `active_speaker`* `host_video`. See [Managing and sharing cloud recordings](https://support.zoom.us/hc/en-us/articles/205347605-Managing-and-sharing-cloud-recordings#h_9898497b-e736-4980-a749-d55608f10773) for details.', ) status: str = Field(..., description='Status of the archived file.') class Type9(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class CloudArchivedFiles(BaseModel): model_config = ConfigDict( extra='forbid', ) archive_files: List[ArchiveFiles] = Field( ..., description='An explanation about the purpose of this instance.' ) duration: int = Field(..., description='The duration.') host_id: str = Field( ..., description='The ID of the user who set as the host of the meeting.' ) id: int = Field( ..., description='The Meeting ID, also known as the meeting number in long (int64) format.', ) recording_count: int = Field( ..., description='Number of recording files returned in the response of this API call.', ) start_time: datetime = Field(..., description='Meeting start time.') timezone: str = Field(..., description='Timezone to format the meeting start time.') topic: str = Field(..., description='The meeting topic.') total_size: int = Field(..., description='Total size of the archive.') type: Type9 = Field( ..., description='The meeting type:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: str = Field( ..., description='The Unique Meeting ID. Each meeting instance will generate its own Meeting UUID.', ) class ApprovalType(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 class Type10(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type10] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class Audio(Enum): both = 'both' telephony = 'telephony' voip = 'voip' class FollowUpAbsenteesEmailNotification(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type10] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type10] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class AnswerQuestions(Enum): only = 'only' all = 'all' class QuestionAndAnswer(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class RegistrationType(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class CreateWebinarSettings(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the Webinar. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a Webinar with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed-in users can join this meeting. \n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "meeting_authentication", "authentication_option" and/or "authentication_domains" fields to establish the authentication mechanism for this Webinar. ', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed-in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "authentication_domains" field for this Webinar. ', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class CustomQuestion(BaseModel): title: Optional[str] = None value: Optional[str] = None class DateTime(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start Date.') to: Optional[date_aliased] = Field(None, description='End Date.') class Encryption(Enum): auto = 'auto' yes = 'yes' no = 'no' class Protocol(Enum): H_323 = 'H.323' SIP = 'SIP' class Device(BaseModel): encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class Device1(BaseModel): id: Optional[str] = Field(None, description='Device ID.') encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class DeviceList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) devices: Optional[List[Device1]] = Field( None, description='List of H.323/SIP Device objects.' ) class Domain(BaseModel): domain: Optional[str] = Field(None, description='Domain name.') status: Optional[str] = Field(None, description='Domain status.') class DomainsList(BaseModel): domains: Optional[List[Domain]] = Field( None, description='List of managed domain objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class Group(BaseModel): name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) class Group1(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) class GroupList(BaseModel): groups: Optional[List[Group1]] = Field(None, description='List of Group objects.') total_records: Optional[int] = Field(None, description='Total records.') class GroupMember(BaseModel): email: Optional[str] = Field(None, description='User email.') first_name: Optional[str] = Field(None, description='User first name.') id: Optional[str] = Field(None, description='User ID.') last_name: Optional[str] = Field(None, description='User last name.') type: Optional[int] = Field( None, description='User type.<br>\n`1` - Basic<br> `2` - Licensed<br> \n`3` - On-prem', ) class Member(BaseModel): email: Optional[str] = Field(None, description='User email.') first_name: Optional[str] = Field(None, description='User first name.') id: Optional[str] = Field(None, description='User ID.') last_name: Optional[str] = Field(None, description='User last name.') type: Optional[int] = Field( None, description='User type.<br>\n`1` - Basic<br> `2` - Licensed<br> \n`3` - On-prem', ) class GroupMemberList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) members: Optional[List[Member]] = Field( None, description='List of Group member objects.' ) class Type13(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption5(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type13] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class GroupUserSettingsAuthentication1(BaseModel): authentication_options: Optional[List[AuthenticationOption5]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type14(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption6(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type14] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class GroupUserSettingsAuthentication2(BaseModel): authentication_options: Optional[List[AuthenticationOption6]] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class GroupUserSettingsAuthentication( RootModel[Union[GroupUserSettingsAuthentication1, GroupUserSettingsAuthentication2]] ): root: Union[GroupUserSettingsAuthentication1, GroupUserSettingsAuthentication2] class Action3(Enum): update = 'update' show = 'show' hide = 'hide' class Type15(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption7(BaseModel): action: Optional[Action3] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type15] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class GroupUserSettingsAuthenticationUpdate1(BaseModel): authentication_option: Optional[AuthenticationOption7] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type16(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption8(BaseModel): action: Optional[Action3] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domians: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type16] = Field(None, description='Authentication type') class GroupUserSettingsAuthenticationUpdate2(BaseModel): authentication_option: Optional[AuthenticationOption8] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class GroupUserSettingsAuthenticationUpdate( RootModel[ Union[ GroupUserSettingsAuthenticationUpdate1, GroupUserSettingsAuthenticationUpdate2, ] ] ): root: Union[ GroupUserSettingsAuthenticationUpdate1, GroupUserSettingsAuthenticationUpdate2 ] = Field(..., title='GroupSettingsAuthenticationUpdate') class Type17(Enum): normal = 'normal' shared = 'shared' restricted = 'restricted' class IMGroup(BaseModel): name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account - including all sub accounts.', ) type: Optional[Type17] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see the other members in the group. Other people can search for members in the group.<br>`shared` - Everyone in the account can see the group and members. <br>`restricted` - No one except group members can see the group or search for other group members. ', ) class Group2(BaseModel): id: Optional[str] = Field(None, description='IM group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account - including all sub accounts.', ) type: Optional[Type17] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see the other members in the group. Other people can search for members in the group.<br>`shared` - Everyone in the account can see the group and members. <br>`restricted` - No one except group members can see the group or search for other group members. ', ) class IMGroupList(BaseModel): total_records: Optional[int] = Field( None, description='Total number of records returned.' ) groups: Optional[List[Group2]] = Field(None, description='List of group objects.') class MonthlyWeek(Enum): integer__1 = -1 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 class MonthlyWeekDay(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class Type19(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class WeeklyDays(Enum): field_1 = '1' field_2 = '2' field_3 = '3' field_4 = '4' field_5 = '5' field_6 = '6' field_7 = '7' class Recurrence(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type19 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class Method(Enum): approve = 'approve' deny = 'deny' class ApprovedOrDeniedCountriesOrRegions(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class AuthenticationExceptionItem(BaseModel): email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) name: Optional[str] = Field(None, description='Name of the participant.') class Room(BaseModel): name: Optional[str] = Field(None, description='Name of the breakout room.') participants: Optional[List[str]] = Field( None, description='Email addresses of the participants who are to be assigned to the breakout room.', ) class BreakoutRoom(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class CustomKey(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the user.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the user.' ) class EncryptionType(Enum): enhanced_encryption = 'enhanced_encryption' e2ee = 'e2ee' class Type20(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type20] = Field(None, description='Type of number. ') class JbhTime(Enum): integer_0 = 0 integer_5 = 5 integer_10 = 10 class Interpreter(BaseModel): email: Optional[EmailStr] = Field( None, description='Email address of the interpreter.' ) languages: Optional[str] = Field( None, description='Languages for interpretation. The string must contain two [country Ids](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) separated by a comma. \n\nFor example, if the language is to be interpreted from English to Chinese, the value of this field should be "US,CN".', ) class LanguageInterpretation(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings3(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField(BaseModel): field: Optional[str] = Field(None, description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type21(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class Meeting(BaseModel): agenda: Optional[str] = Field(None, description='Meeting description.') duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[str] = Field( None, description='Password to join the meeting. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.', ) recurrence: Optional[Recurrence] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings3] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", always use GMT time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss", you should use local time and specify the time zone. This is only used for scheduled meetings and recurring meetings with a fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField]] = Field( None, description='Tracking fields' ) type: Optional[Type21] = Field( 2, description='Meeting Type:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) class Type22(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence1(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type22 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions1(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom1(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class LanguageInterpretation1(BaseModel): enable: Optional[bool] = Field( None, description='Indicate whether or not you would like to enable [language interpretation](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars#h_01EGGQFD3Q4BST3378SA762MJ1) for this meeting.', ) interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings4(BaseModel): additional_data_center_regions: Optional[List[str]] = Field( None, description='Enable additional [data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) for this meeting. Provide the value in the form of array of country code(s) for the countries which are available as data center regions in the [account settings](https://zoom.us/account/setting) but have been opt out of in the user settings. For instance, let\'s say that in your account settings, the data center regions that have been selected are Europe, Honkong, Australia, India, Latin America, Japan, China, United States,and Canada. The complete list of available data center regions for your account is: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]. In [user settings](https://zoom.us/profile/setting), you have opted out of India(IN) and Japan(TY) for meeting and webinar traffic routing. If you would like, you can still include India and Japan as additional data centers for this meeting using this field. To include India and Japan as additional data center regions, you would provide ["IN", "TY"] as the value.', ) allow_multiple_devices: Optional[bool] = Field( None, description='If set to `true`, attendees will be allowed to join a meeting from multiple devices.\n\n**Note:** This setting is only applied for meetings that have enabled registration.', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values separated by a comma.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions1 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the meeting. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a meeting with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom1] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. This field can only used for scheduled or recurring meetings.\n\n**Note:** If waiting room is enabled, the **join before host** setting will be disabled.', ) language_interpretation: Optional[LanguageInterpretation1] = Field( None, description="Language interpretation [settings](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars#h_01EGGQFD3Q4BST3378SA762MJ1) for meetings. \n\n**Note:** This feature is only available on certain Webinar add-on, Education, Business and higher plans. If this feature is not enabled on the host's account, this setting will not be applied for the meeting.", ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='If set to `true`, the registration page for the meeting will include social share buttons.\n\n**Note:** This setting is only applied for meetings that have enabled registration.', ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID instead of an automatically generated meeting ID. It can only be used for scheduled meetings, instant meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field( None, description='Enable waiting room. Note that if the value of this field is set to `true`, it will override and disable the `join_before_host` setting.', ) watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField1(BaseModel): field: str = Field(..., description='Label of the tracking field.') value: Optional[str] = Field(None, description='Tracking fields value') class Type23(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingCreate(BaseModel): agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Passcode to join the meeting. By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence1] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) schedule_for: Optional[str] = Field( None, description='If you would like to schedule this meeting for someone else in your account, provide the Zoom user id or email address of the user here.', ) settings: Optional[Settings4] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`. Example: "2020-03-31T12:02:00Z"\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the **admin meeting template**. To create admin meeting templates, contact the Zoom support team.\n\nUse this field if you would like to [schedule the meeting from a admin meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/listmeetingtemplates) API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField1]] = Field( None, description='Tracking fields' ) type: Optional[Type23] = Field( 2, description='Meeting Type:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) class Occurrence(BaseModel): duration: Optional[int] = Field(None, description='Duration.') occurrence_id: Optional[str] = Field( None, description='Occurrence ID: Unique Identifier that identifies an occurrence of a recurring webinar. [Recurring webinars](https://support.zoom.us/hc/en-us/articles/216354763-How-to-Schedule-A-Recurring-Webinar) can have a maximum of 50 occurrences.', ) start_time: Optional[datetime] = Field(None, description='Start time.') status: Optional[str] = Field(None, description='Occurrence status.') class Type24(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence2(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type24 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions2(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom2(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type25(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber1(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type25] = Field(None, description='Type of number. ') class LanguageInterpretation2(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings5(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions2 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom2] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber1]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation2] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField2(BaseModel): field: Optional[str] = Field(None, description='Label of the tracking field.') value: Optional[str] = Field(None, description='Value for the field.') visible: Optional[bool] = Field( None, description='Indicates whether the [tracking field](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields) is visible in the meeting scheduling options in the Zoom Web Portal or not.\n\n`true`: Tracking field is visible. <br>\n\n`false`: Tracking field is not visible to the users in the meeting options in the Zoom Web Portal but the field was used while scheduling this meeting via API. An invisible tracking field can be used by users while scheduling meetings via API only. ', ) class Type26(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingInfo(BaseModel): agenda: Optional[str] = Field(None, description='Agenda') created_at: Optional[datetime] = Field( None, description='The date and time at which this meeting was created.' ) duration: Optional[int] = Field(None, description='Meeting duration.') h323_password: Optional[str] = Field( None, description='H.323/SIP room system password' ) join_url: Optional[str] = Field( None, description='URL for participants to join the meeting. This URL should only be shared with users that you would like to invite for the meeting.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[str] = Field( None, description='Meeting password. Password may only contain the following characters: `[a-z A-Z 0-9 @ - _ * !]`\n\nIf "Require a password when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the password field will be autogenerated in the response even if it is not provided in the API request. \n\n\n', ) pmi: Optional[int] = Field( None, description='Personal Meeting Id. Only used for scheduled meetings and recurring meetings with no fixed time.', ) recurrence: Optional[Recurrence2] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings5] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start date-time in UTC/GMT. Example: "2020-03-31T12:02:00Z"', ) start_url: Optional[str] = Field( None, description='URL to start the meeting. This URL should only be used by the host of the meeting and **should not be shared with anyone other than the host** of the meeting as anyone with this URL will be able to login to the Zoom Client as the host of the meeting.', ) timezone: Optional[str] = Field(None, description='Timezone to format start_time') topic: Optional[constr(max_length=200)] = Field(None, description='Meeting topic') tracking_fields: Optional[List[TrackingField2]] = Field( None, description='Tracking fields' ) type: Optional[Type26] = Field(2, description='Meeting Type') class Type27(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence3(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type27 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions3(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom3(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type28(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber2(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type28] = Field(None, description='Type of number. ') class LanguageInterpretation3(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings6(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions3 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom3] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber2]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation3] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Status(Enum): waiting = 'waiting' started = 'started' class TrackingField3(BaseModel): field: Optional[str] = Field(None, description='Label of the tracking field.') value: Optional[str] = Field(None, description='Value for the field.') visible: Optional[bool] = Field( None, description='Indicates whether the [tracking field](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields) is visible in the meeting scheduling options in the Zoom Web Portal or not.\n\n`true`: Tracking field is visible. <br>\n\n`false`: Tracking field is not visible to the users when they look at the meeting details in the Zoom Web Portal but the field was used while scheduling this meeting via API. An invisible tracking field can be used by users while scheduling meetings via API only. ', ) class Type29(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingInfoGet(BaseModel): agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description' ) created_at: Optional[datetime] = Field(None, description='Time of creation. ') duration: Optional[int] = Field(None, description='Meeting duration.') encrypted_password: Optional[str] = Field( None, description='Encrypted passcode for third party endpoints (H323/SIP).' ) h323_password: Optional[str] = Field( None, description='H.323/SIP room system passcode.' ) join_url: Optional[str] = Field( None, description='URL for participants to join the meeting. This URL should only be shared with users that you would like to invite for the meeting.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[str] = Field(None, description='Meeting passcode.') pmi: Optional[int] = Field( None, description='Personal Meeting Id. Only used for scheduled meetings and recurring meetings with no fixed time.', ) recurrence: Optional[Recurrence3] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings6] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time in GMT/UTC. Start time will not be returned if the meeting is an **instant** meeting. \n', ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Meeting is a URL using which a host or an alternative host can start the Meeting. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Meeting API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the updated value for the <code>start_url</code> field programmatically (after the expiry time), you must call the [Retrieve a Meeting API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting) and refer to the value of the <code>start_url</code> field in the response.</aside><br>This URL should only be used by the host of the meeting and **should not be shared with anyone other than the host** of the meeting as anyone with this URL will be able to login to the Zoom Client as the host of the meeting.', ) status: Optional[Status] = Field(None, description='Meeting status') timezone: Optional[str] = Field( None, description='Timezone to format the meeting start time on the .' ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField3]] = Field( None, description='Tracking fields' ) type: Optional[Type29] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`4` - PMI Meeting<br>\n`8` - Recurring meeting with a fixed time.', ) class Meeting1(BaseModel): start_time: Optional[datetime] = Field(None, description='Start time') uuid: Optional[str] = Field( None, description="Meeting UUID. Unique meeting ID. Each meeting instance will generate its own Meeting UUID (i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.\n\n", ) class MeetingInstances(BaseModel): meetings: Optional[List[Meeting1]] = Field( None, description='List of ended meeting instances.' ) class MeetingInvitation(BaseModel): invitation: Optional[str] = Field(None, description='Meeting invitation.') class Meeting2(BaseModel): agenda: Optional[str] = Field( None, description='Meeting description. The length of agenda gets truncated to 250 characters when you list all meetings for a user. To view the complete agenda of a meeting, retrieve details for a single meeting [here](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting).', ) created_at: Optional[datetime] = Field(None, description='Time of creation. ') duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user who is set as the host of the meeting.' ) id: Optional[int] = Field( None, description='Meeting ID - also known as the meeting number in double (int64) format.', ) join_url: Optional[str] = Field(None, description='Join URL.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') timezone: Optional[str] = Field( None, description='Timezone to format the meeting start time. ' ) topic: Optional[str] = Field(None, description='Meeting topic.') type: Optional[Type29] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting ID. Each meeting instance will generate its own Meeting UUID.', ) class MeetingList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) meetings: Optional[List[Meeting2]] = Field( None, description='List of Meeting objects.' ) class MeetingLiveStream(BaseModel): page_url: Optional[AnyUrl] = Field(None, description='The livestream page URL.') stream_key: constr(max_length=512) = Field(..., description='Stream name and key.') stream_url: constr(max_length=1024) = Field(..., description='Streaming URL.') class Action5(Enum): start = 'start' stop = 'stop' class Settings7(BaseModel): active_speaker_name: Optional[bool] = Field( None, description='Display the name of the active speaker during a live stream.' ) display_name: Optional[constr(min_length=1, max_length=50)] = Field( None, description='Display name of the live stream.' ) class MeetingLiveStreamStatus(BaseModel): action: Optional[Action5] = Field( None, description='Update the status of a livestream.\n\nThe value can be one of the following:<br>\n`start`: Start a live stream. <br>\n`stop`: Stop an ongoing live stream.', ) settings: Optional[Settings7] = Field( None, description='Update the settings of a live streaming session. The settings can only be updated for a live stream that has been stopped. You can not update the settings of an ongoing live stream.', ) class CustomKey3(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the meetinh.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the meeting.' ) class MeetingMetric(BaseModel): custom_keys: Optional[List[CustomKey3]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class Registrant(BaseModel): id: Optional[str] = None address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class MeetingRecordingRegistrantList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant]] = Field( None, description='List of Registrant objects' ) class MeetingRegistrant(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class Registrant1(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class MeetingRegistrantList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant1]] = Field( None, description='List of registrant objects.' ) class Type31(Enum): short = 'short' single = 'single' class CustomQuestion4(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used for `short` question type as this type of question requires registrants to type out the answer.', ) required: Optional[bool] = Field( None, description='Indicates whether or not the custom question is required to be answered by participants or not.', ) title: Optional[str] = Field(None, description='Title of the custom question.') type: Optional[Type31] = Field( None, description='Type of the question being asked.' ) class FieldName(Enum): address = 'address' city = 'city' country = 'country' zip = 'zip' state = 'state' phone = 'phone' industry = 'industry' org = 'org' job_title = 'job_title' purchasing_time_frame = 'purchasing_time_frame' role_in_purchase_process = 'role_in_purchase_process' no_of_employees = 'no_of_employees' comments = 'comments' class Question(BaseModel): field_name: Optional[FieldName] = Field( None, description='Field name of the question.' ) required: Optional[bool] = Field( None, description='Indicates whether or not the displayed fields are required to be filled out by registrants.', ) class MeetingRegistrantQuestions(BaseModel): custom_questions: Optional[List[CustomQuestion4]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question]] = Field( None, description='Array of Registrant Questions' ) class MeetingPasswordRequirement3(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class ParticipantsToPlaceInWaitingRoom(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 class WaitingRoomSettings(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement3] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class MeetingSecuritySettings(BaseModel): meeting_security: Optional[MeetingSecurity] = None class ApprovedOrDeniedCountriesOrRegions4(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom4(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class CustomKey4(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the user.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the user.' ) class Type32(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber3(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type32] = Field(None, description='Type of number. ') class LanguageInterpretation4(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class MeetingSettings(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions4 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom4] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey4]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber3]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation4] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type33(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence4(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type33 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions5(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom5(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type34(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber4(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type34] = Field(None, description='Type of number. ') class LanguageInterpretation5(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings8(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions5 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom5] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey4]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber4]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation5] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField4(BaseModel): field: Optional[str] = Field(None, description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type35(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingUpdate(BaseModel): agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Meeting passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence4] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings8] = None start_time: Optional[datetime] = Field( None, description='Meeting start time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", always use GMT time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss", you should use local time and specify the time zone. Only used for scheduled meetings and recurring meetings with a fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the meeting template. \n\nUse this field if you would like to [schedule the meeting from a meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates]() API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField4]] = Field( None, description='Tracking fields' ) type: Optional[Type35] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with a fixed time.', ) class Occurrences(RootModel[List[Occurrence]]): root: List[Occurrence] = Field(..., description='Array of occurrence objects.') class DedicatedDialInNumberItem(BaseModel): country: Optional[str] = Field(None, description='Country code.') number: Optional[str] = Field( None, description='Dial-in number: length is less than 16.' ) class GlobalDialInNumber5(BaseModel): country: Optional[str] = Field(None, description='Country code.') number: Optional[str] = Field( None, description='Dial-in number: length is less than 16.' ) class PAC(BaseModel): conference_id: Optional[int] = Field(None, description='Conference ID.') dedicated_dial_in_number: Optional[List[DedicatedDialInNumberItem]] = Field( None, description='List of dedicated dial-in numbers.' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber5]] = Field( None, description='List of global dial-in numbers.' ) listen_only_password: Optional[constr(max_length=6)] = Field( None, description='Listen-Only passcode: numeric value - length is less than 6.' ) participant_password: Optional[constr(min_length=1, max_length=6)] = Field( None, description='Participant passcode: numeric value - length is less than 6.' ) class Pagination(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) class PaginationToken(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) class PaginationToken4IMChat(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) class PaginationToken4Qos(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=10)] = Field( 1, description='The number of items per page.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) class Panelist(BaseModel): email: Optional[EmailStr] = Field(None, description="Panelist's email.") name: Optional[str] = Field(None, description="Panelist's full name.") class Panelist1(BaseModel): id: Optional[str] = Field(None, description="Panelist's ID.") email: Optional[EmailStr] = Field(None, description="Panelist's email.") name: Optional[str] = Field(None, description="Panelist's full name.") join_url: Optional[str] = Field(None, description='Join URL.') class PanelistList(BaseModel): panelists: Optional[List[Panelist1]] = Field( None, description='List of panelist objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class PhonePlan(BaseModel): plan_base: Optional[PlanBase1] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem]] = Field( None, description='Additional phone number plans.' ) class Type36(Enum): single = 'single' multiple = 'multiple' class Question1(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type36] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class Poll(BaseModel): questions: Optional[List[Question1]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Status1(Enum): notstart = 'notstart' started = 'started' ended = 'ended' sharing = 'sharing' class Question2(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type36] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class Poll1(BaseModel): id: Optional[str] = Field(None, description='ID of Poll') status: Optional[Status1] = Field( None, description='Status of Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question2]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class PollList(BaseModel): polls: Optional[List[Poll1]] = Field(None, description='Array of Polls') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class Profile2(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class QOSAudio(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class AsDeviceFromCrc(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class AsDeviceToCrc(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class AsInput(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) frame_rate: Optional[str] = Field( None, description='The rate at which your video camera can produce unique images, or frames. Zoom supports a frame rate of up to 30fps.', ) resolution: Optional[str] = Field( None, description='The number of pixels in each dimension that can be displayed by your video camera.', ) class AsOutput(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) frame_rate: Optional[str] = Field( None, description='The rate at which your video camera can produce unique images, or frames. Zoom supports a frame rate of up to 30fps.', ) resolution: Optional[str] = Field( None, description='The number of pixels in each dimension that can be displayed by your video camera.', ) class AudioDeviceFromCrc(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class AudioDeviceToCrc(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class AudioInput(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class AudioOutput(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class CpuUsage(BaseModel): system_max_cpu_usage: Optional[str] = Field( None, description='System Maximum CPU Usage' ) zoom_avg_cpu_usage: Optional[str] = Field( None, description='Zoom Average CPU Usage' ) zoom_max_cpu_usage: Optional[str] = Field( None, description='Zoom Maximum CPU Usage' ) zoom_min_cpu_usage: Optional[str] = Field( None, description='Zoom Minimum CPU Usage' ) class VideoDeviceFromCrc(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class VideoDeviceToCrc(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) class VideoInput(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) frame_rate: Optional[str] = Field( None, description='The rate at which your video camera can produce unique images, or frames. Zoom supports a frame rate of up to 30fps.', ) resolution: Optional[str] = Field( None, description='The number of pixels in each dimension that can be displayed by your video camera.', ) class VideoOutput(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) frame_rate: Optional[str] = Field( None, description='The rate at which your video camera can produce unique images, or frames. Zoom supports a frame rate of up to 30fps.', ) resolution: Optional[str] = Field( None, description='The number of pixels in each dimension that can be displayed by your video camera.', ) class UserQo(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class QOSParticipant(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class UserQo1(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class Participant(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo1]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class QOSParticipantList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=10)] = Field( 1, description='The number of items per page.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant]] = Field( None, description='Array of user objects.' ) class QOSVideo(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination. ', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network. The value of this field is expressed in kbps.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds. ', ) latency: Optional[str] = Field( None, description='The amount of time it takes for a packet to travel from one point to another. The value of this field is expressed in milliseconds. ', ) max_loss: Optional[str] = Field( None, description='Max loss: the max amount of packet loss, that is the max percentage of packets that fail to arrive at their destination.', ) frame_rate: Optional[str] = Field( None, description='The rate at which your video camera can produce unique images, or frames. Zoom supports a frame rate of up to 30fps.', ) resolution: Optional[str] = Field( None, description='The number of pixels in each dimension that can be displayed by your video camera.', ) class QoSPhone(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.', ) bitrate: Optional[str] = Field( None, description='The number of bits per second that can be transmitted along a digital network.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets.' ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, i.e., the max percentage of packets that fail to arrive at their destination.', ) mos: Optional[str] = Field( None, description='Mean Opinion Score(MOS) measures voice quality on a scale of 1 to 5. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.', ) network_delay: Optional[str] = Field( None, description='The amount of time it takes for a VoIP packet to travel from one point to another.', ) class Status2(Enum): completed = 'completed' class Recording2(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status2] = Field(None, description='The recording status.') class RecordingFile(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status2] = Field(None, description='The recording status.') class RecordingList(BaseModel): recording_files: Optional[List[RecordingFile]] = Field( None, description='List of recording file.', title='Recording file List' ) class RecordingFile1(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status2] = Field(None, description='The recording status.') class RecordingMeeting(BaseModel): account_id: Optional[str] = Field( None, description='Unique Identifier of the user account.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user set as host of meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - also known as the meeting number.' ) recording_count: Optional[str] = Field( None, description='Number of recording files returned in the response of this API call.', ) start_time: Optional[datetime] = Field( None, description='The time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[str] = Field(None, description='Total size of the recording.') type: Optional[str] = Field( None, description='Type of the meeting that was recorded.\n\nMeeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting Identifier. Each instance of the meeting will have its own UUID.', ) recording_files: Optional[List[RecordingFile1]] = Field( None, description='List of recording file.', title='Recording file List' ) class RecordingFile2(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status2] = Field(None, description='The recording status.') class Meeting3(BaseModel): account_id: Optional[str] = Field( None, description='Unique Identifier of the user account.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user set as host of meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - also known as the meeting number.' ) recording_count: Optional[str] = Field( None, description='Number of recording files returned in the response of this API call.', ) start_time: Optional[datetime] = Field( None, description='The time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[str] = Field(None, description='Total size of the recording.') type: Optional[str] = Field( None, description='Type of the meeting that was recorded.\n\nMeeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting Identifier. Each instance of the meeting will have its own UUID.', ) recording_files: Optional[List[RecordingFile2]] = Field( None, description='List of recording file.', title='Recording file List' ) class RecordingMeetingList(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start Date.') to: Optional[date_aliased] = Field(None, description='End Date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting3]] = Field( None, description='List of recordings.', title='Recording List' ) class CustomQuestion5(BaseModel): title: Optional[str] = None value: Optional[str] = None class Registrant2(BaseModel): id: Optional[str] = None address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion5]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class RecordingRegistrantList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant2]] = Field( None, description='List of Registrant objects' ) class Type38(Enum): short = 'short' single = 'single' multiple = 'multiple' class CustomQuestion6(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used with Short answer type.', ) required: Optional[bool] = Field( None, description='State whether registrants are required to answer custom questions or not.', ) title: Optional[str] = Field(None, description='Title of the question.') type: Optional[Type38] = Field( None, description='The type of registration question and answers.' ) class FieldName1(Enum): last_name = 'last_name' address = 'address' city = 'city' country = 'country' zip = 'zip' state = 'state' phone = 'phone' industry = 'industry' org = 'org' job_title = 'job_title' purchasing_time_frame = 'purchasing_time_frame' role_in_purchase_process = 'role_in_purchase_process' no_of_employees = 'no_of_employees' comments = 'comments' class Question3(BaseModel): field_name: Optional[FieldName1] = Field(None, description='Field name.') required: Optional[bool] = Field( None, description='State whether the field is required to be answered by the registrant or not.', ) class RecordingRegistrantQuestions(BaseModel): custom_questions: Optional[List[CustomQuestion6]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question3]] = Field( None, description='Array of Registrant Questions' ) class Action6(Enum): approve = 'approve' deny = 'deny' class Registrant3(BaseModel): id: Optional[str] = None class RecordingRegistrantStatus(BaseModel): action: Action6 registrants: Optional[List[Registrant3]] = Field( None, description='List of registrants', le=30 ) class ShareRecording(Enum): publicly = 'publicly' internally = 'internally' none = 'none' class RecordingSettings(BaseModel): approval_type: Optional[ApprovalType] = Field( 2, description='Approval type for the registration.<br>\n`0`- Automatically approve the registration when a user registers.<br>\n`1` - Manually approve or deny the registration of a user.<br>\n`2` - No registration required to view the recording.', ) authentication_domains: Optional[str] = Field( None, description='Authentication domains.' ) authentication_option: Optional[str] = Field( None, description='Authentication Options.' ) on_demand: Optional[bool] = Field( None, description='Determine whether registration isrequired to view the recording.', ) password: Optional[constr(min_length=8, max_length=10)] = Field( None, description='Enable password protection for the recording by setting a password. The password must have a minimum of **eight** characters with a mix of numbers, letters and special characters.<br><br>\n**Note:** If the account owner or the admin has set minimum password strength requirements for recordings via Account Settings, the password value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view.' ) send_email_to_host: Optional[bool] = Field( None, description='Send an email to host when someone registers to view the recording. This applies for On-demand recordings only.', ) share_recording: Optional[ShareRecording] = Field( None, description='Determine how the meeting recording is shared.' ) show_social_share_buttons: Optional[bool] = Field( None, description='Show social share buttons on registration page. This applies for On-demand recordings only.', ) topic: Optional[str] = Field(None, description='Name of the recording.') viewer_download: Optional[bool] = Field( None, description='Determine whether a viewer can download the recording file or not.', ) class Type39(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence5(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type39 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class CustomQuestion7(BaseModel): title: Optional[str] = None value: Optional[str] = None class Registrant4(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion7]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class Registrant5(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion7]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class RegistrantList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant5]] = Field( None, description='List of registrant objects.' ) class Action7(Enum): approve = 'approve' cancel = 'cancel' deny = 'deny' class Registrant6(BaseModel): email: Optional[str] = None id: Optional[str] = None class RegistrantStatus(BaseModel): action: Action7 = Field( ..., description="Registrant Status:<br>`approve` - Approve registrant.<br>`cancel` - Cancel previously approved registrant's registration.<br>`deny` - Deny registrant.", ) registrants: Optional[List[Registrant6]] = Field( None, description='List of registrants.', le=30 ) class Role(BaseModel): description: Optional[str] = Field(None, description='Role Description') id: Optional[str] = Field(None, description='Role Id') name: Optional[str] = Field(None, description='Role Name') total_members: Optional[int] = Field(None, description='Total members in this role') class RoleList(BaseModel): roles: Optional[List[Role]] = Field(None, description='List of Roles objects') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class Member1(BaseModel): email: Optional[str] = Field( None, description='User email address. Must have id or email, if given id, the email is ignored.', ) id: Optional[str] = Field(None, description='User ID') class RoleMembersAdd(BaseModel): members: Optional[List[Member1]] = Field( None, description="List of Role's members", le=30 ) class Member2(BaseModel): department: Optional[str] = Field(None, description='Member Department') email: Optional[str] = Field(None, description='Member Email') first_name: Optional[str] = Field(None, description='Member First Name') id: Optional[str] = Field(None, description='Member ID') last_name: Optional[str] = Field(None, description='Member Last Name') type: Optional[int] = Field(None, description='Member Type') class RoleMembersList(BaseModel): members: Optional[List[Member2]] = Field(None, description='List of a Role Members') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) class Recurrence6(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type39 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions6(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom6(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type41(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber6(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type41] = Field(None, description='Type of number. ') class LanguageInterpretation6(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings9(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions6 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom6] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey4]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber6]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation6] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type42(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class Session(BaseModel): agenda: Optional[str] = Field(None, description='Meeting description.') duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[str] = Field( None, description='Password to join the meeting. Password may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.', ) recurrence: Optional[Recurrence6] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings9] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", always use GMT time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss", you should use local time and specify the time zone. This is only used for scheduled meetings and recurring meetings with a fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField4]] = Field( None, description='Tracking fields' ) type: Optional[Type42] = Field( 2, description='Meeting Type:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) class Type43(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence7(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type43 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions7(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom7(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type44(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber7(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type44] = Field(None, description='Type of number. ') class LanguageInterpretation7(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings10(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions7 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom7] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey4]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber7]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation7] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type45(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class SessionUpdate(BaseModel): agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Meeting passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence7] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings10] = None start_time: Optional[datetime] = Field( None, description='Meeting start time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", always use GMT time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss", you should use local time and specify the time zone. Only used for scheduled meetings and recurring meetings with a fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the meeting template. \n\nUse this field if you would like to [schedule the meeting from a meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates]() API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField4]] = Field( None, description='Tracking fields' ) type: Optional[Type45] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with a fixed time.', ) class Type46(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence8(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type46 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type47(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification1(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type47] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification1(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type47] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification1(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type47] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer1(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings11(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification1 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification1 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification1 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer1] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type50(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class SessionWebinar(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinars only.', ) password: Optional[str] = Field( None, description='Webinar Passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.', ) recurrence: Optional[Recurrence8] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings11] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`.\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField4]] = Field( None, description='Tracking fields' ) type: Optional[Type50] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type51(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence9(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type51 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class Type52(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification2(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type52] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification2(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type52] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification2(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type52] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer2(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings12(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification2 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification2 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification2 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer2] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type55(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class SessionWebinarUpdate(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinar only.' ) password: Optional[constr(max_length=10)] = Field( None, description='[Webinar passcode](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords). By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\nIf "**Require a passcode when scheduling new meetings**" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n\n\n\n\n\n\n', ) recurrence: Optional[Recurrence9] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings12] = None start_time: Optional[datetime] = Field( None, description='Webinar start time, in the format "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'." Should be in GMT time. In the format "yyyy-MM-dd\'T\'HH:mm:ss." This should be in local time and the timezone should be specified. Only used for scheduled webinars and recurring webinars with a fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField4]] = Field( None, description='Tracking fields' ) type: Optional[Type55] = Field( 5, description='Webinar Types:<br>`5` - webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class SettingsUpdateTelephony(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions2] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class Type56(Enum): toll = 'toll' tollfree = 'tollfree' media_link = 'media_link' class DialInNumber(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type56] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link.', ) class TspBridge(Enum): US_TSP_TB = 'US_TSP_TB' EU_TSP_TB = 'EU_TSP_TB' class TSP(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class TrackingField9(BaseModel): field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class TrackingField10(BaseModel): id: Optional[str] = Field(None, description='ID of Tracking Field') field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class TrackingFieldList(BaseModel): total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) tracking_fields: Optional[List[TrackingField10]] = Field( None, description='Array of Tracking Fields' ) class Type57(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_99 = 99 class User(BaseModel): created_at: Optional[datetime] = Field(None, description='User create time.') dept: Optional[str] = Field(None, description='Department.') email: str = Field(..., description="User's email address.") first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) last_client_version: Optional[str] = Field( None, description='User last login client version.' ) last_login_time: Optional[datetime] = Field( None, description='User last login time.' ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) pmi: Optional[int] = Field(None, description='Personal meeting ID.') role_name: Optional[str] = Field( None, description="User's [role](https://support.zoom.us/hc/en-us/articles/115001078646-Role-Based-Access-Control) name.", ) timezone: Optional[str] = Field(None, description='The time zone of the user.') type: Type57 = Field( ..., description="User's plan type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).", ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) class Assistant(BaseModel): email: Optional[str] = Field(None, description="Assistant's email address.") id: Optional[str] = Field(None, description="Assistant's user ID.") class UserAssistantsList(BaseModel): assistants: Optional[List[Assistant]] = Field( None, description="List of User's assistants.", le=30 ) class User1(BaseModel): id: Optional[str] = Field(None, description='User ID.') created_at: Optional[datetime] = Field(None, description='User create time.') dept: Optional[str] = Field(None, description='Department.') email: str = Field(..., description="User's email address.") first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) last_client_version: Optional[str] = Field( None, description='User last login client version.' ) last_login_time: Optional[datetime] = Field( None, description='User last login time.' ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) pmi: Optional[int] = Field(None, description='Personal meeting ID.') role_name: Optional[str] = Field( None, description="User's [role](https://support.zoom.us/hc/en-us/articles/115001078646-Role-Based-Access-Control) name.", ) timezone: Optional[str] = Field(None, description='The time zone of the user.') type: Type57 = Field( ..., description="User's plan type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).", ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) group_ids: Optional[List[str]] = None im_group_ids: Optional[List[str]] = None class UserList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) users: Optional[List[User1]] = Field(None, description='List of user objects.') class UserPermissions(BaseModel): permissions: Optional[List[str]] = Field( None, description='List of user permissions.' ) class Scheduler(BaseModel): email: Optional[str] = Field(None, description='Email address of the scheduler.') id: Optional[str] = Field( None, description='Unique Identifier (User ID) of the Scheduler.' ) pmi: Optional[int] = Field( None, description='PMI of the meeting host in long (int64) format.' ) class UserSchedulersList(BaseModel): schedulers: Optional[List[Scheduler]] = Field( None, description='List of users for whom the current user can schedule meetings.', le=30, ) class EmailNotification2(BaseModel): alternative_host_reminder: Optional[bool] = Field( False, description='When an alternative host is set or removed from a meeting.' ) cancel_meeting_reminder: Optional[bool] = Field( False, description='When a meeting is cancelled.' ) jbh_reminder: Optional[bool] = Field( False, description='When attendees join meeting before host.' ) schedule_for_reminder: Optional[bool] = Field( False, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class Feature2(BaseModel): cn_meeting: Optional[bool] = Field(None, description='Host meeting in China.') in_meeting: Optional[bool] = Field(None, description='Host meeting in India.') large_meeting: Optional[bool] = Field(None, description='Large meeting feature.') large_meeting_capacity: Optional[int] = Field( None, description='Large meeting capacity: can be 500 or 1000, depending on if the user has a large meeting capacity plan subscription or not.', ) meeting_capacity: Optional[int] = Field( None, description='User’s meeting capacity.' ) webinar: Optional[bool] = Field(None, description='Webinar feature.') webinar_capacity: Optional[int] = Field( None, description='Webinar capacity: can be 100, 500, 1000, 3000, 5000 or 10000, depending on if the user has a webinar capacity plan subscription or not.', ) zoom_phone: Optional[bool] = Field(None, description='Zoom phone feature.') class DataCenterRegions3(Enum): HK = 'HK' AU = 'AU' IN = 'IN' TY = 'TY' CN = 'CN' US = 'US' CA = 'CA' DE = 'DE' NL = 'NL' LA = 'LA' class VirtualBackgroundSettings3(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting2(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions3]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings3] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class Profile3(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class RecordingPasswordRequirement3(BaseModel): have_letter: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain at least one alphabetical letter (a, b, c..).', ) have_number: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain at least one number(1, 2, 3..).', ) have_special_character: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain at least one special character(!, @, #..).', ) length: Optional[conint(le=10)] = Field( None, description='Minimum required length for the passcode.' ) only_allow_numeric: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain only numeric characters.', ) class Recording3(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement3] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement4(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class ScheduleMeeting2(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement4] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class TelephonyRegions5(BaseModel): allowed_values: Optional[List[str]] = Field( None, description='Telephony region options provided by Zoom to select from.' ) selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony2(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions5] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class Tsp2(BaseModel): call_out: Optional[bool] = Field(None, description='Call Out') call_out_countries: Optional[List] = Field( None, description='Call Out Countries/Regions' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show international numbers link on the invitation email' ) class UserSettings(BaseModel): email_notification: Optional[EmailNotification2] = Field( None, description='', title='User settings: Notification settings' ) feature: Optional[Feature2] = Field( None, description='', title='User settings: Feature settings' ) in_meeting: Optional[InMeeting2] = Field( None, description='', title='User settings: Meeting settings' ) profile: Optional[Profile3] = Field(None, title='Profile') recording: Optional[Recording3] = Field( None, description='', title='User settings: Recording settings' ) schedule_meeting: Optional[ScheduleMeeting2] = Field( None, description='', title='User settings: Meeting settings' ) telephony: Optional[Telephony2] = Field( None, title='User settings: Meeting settings' ) tsp: Optional[Tsp2] = Field( None, description='Account Settings: TSP.', title='User settings: TSP settings' ) class UserSettingsEmailNotification(BaseModel): alternative_host_reminder: Optional[bool] = Field( False, description='When an alternative host is set or removed from a meeting.' ) cancel_meeting_reminder: Optional[bool] = Field( False, description='When a meeting is cancelled.' ) jbh_reminder: Optional[bool] = Field( False, description='When attendees join meeting before host.' ) schedule_for_reminder: Optional[bool] = Field( False, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class UserSettingsFeature(BaseModel): cn_meeting: Optional[bool] = Field(None, description='Host meeting in China.') in_meeting: Optional[bool] = Field(None, description='Host meeting in India.') large_meeting: Optional[bool] = Field(None, description='Large meeting feature.') large_meeting_capacity: Optional[int] = Field( None, description='Large meeting capacity: can be 500 or 1000, depending on if the user has a large meeting capacity plan subscription or not.', ) meeting_capacity: Optional[int] = Field( None, description='User’s meeting capacity.' ) webinar: Optional[bool] = Field(None, description='Webinar feature.') webinar_capacity: Optional[int] = Field( None, description='Webinar capacity: can be 100, 500, 1000, 3000, 5000 or 10000, depending on if the user has a webinar capacity plan subscription or not.', ) zoom_phone: Optional[bool] = Field(None, description='Zoom phone feature.') class UserSettingsFeatureUpdate(BaseModel): large_meeting: Optional[bool] = Field( None, description='Enable [large meeting](https://support.zoom.us/hc/en-us/articles/201362823-What-is-a-Large-Meeting-) feature for the user.', ) large_meeting_capacity: Optional[int] = Field( None, description='Set the meeting capacity for the user if the user has **Large meeting** feature enabled. The value for the field can be either 500 or 1000.', ) meeting_capacity: Optional[int] = Field( None, description="Set a user's meeting capacity. User’s meeting capacity denotes the maximum number of participants that can join a meeting scheduled by the user.", ) webinar: Optional[bool] = Field( None, description='Enable Webinar feature for the user.' ) webinar_capacity: Optional[int] = Field( None, description='Set the Webinar capacity for a user who has the Webinar feature enabled. The value of this field can be 100, 500, 1000, 3000, 5000 or 10000.', ) zoom_phone: Optional[bool] = Field(None, description='Zoom phone feature.') class VirtualBackgroundSettings4(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class UserSettingsInMeeting(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions3]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings4] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class UserSettingsRecording(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement3] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement5(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class UserSettingsScheduleMeeting(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement5] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class UserSettingsTSP(BaseModel): call_out: Optional[bool] = Field(None, description='Call Out') call_out_countries: Optional[List] = Field( None, description='Call Out Countries/Regions' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show international numbers link on the invitation email' ) class UserSettingsTelephony(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions5] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class Feature3(BaseModel): large_meeting: Optional[bool] = Field( None, description='Enable [large meeting](https://support.zoom.us/hc/en-us/articles/201362823-What-is-a-Large-Meeting-) feature for the user.', ) large_meeting_capacity: Optional[int] = Field( None, description='Set the meeting capacity for the user if the user has **Large meeting** feature enabled. The value for the field can be either 500 or 1000.', ) meeting_capacity: Optional[int] = Field( None, description="Set a user's meeting capacity. User’s meeting capacity denotes the maximum number of participants that can join a meeting scheduled by the user.", ) webinar: Optional[bool] = Field( None, description='Enable Webinar feature for the user.' ) webinar_capacity: Optional[int] = Field( None, description='Set the Webinar capacity for a user who has the Webinar feature enabled. The value of this field can be 100, 500, 1000, 3000, 5000 or 10000.', ) zoom_phone: Optional[bool] = Field(None, description='Zoom phone feature.') class VirtualBackgroundSettings5(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting3(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions3]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings5] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class Profile4(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Recording4(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement3] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement6(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class ScheduleMeeting3(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement6] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class TelephonyRegions7(BaseModel): selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony3(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions7] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class UserSettingsUpdate(BaseModel): email_notification: Optional[EmailNotification2] = Field( None, description='', title='User settings: Notification settings' ) feature: Optional[Feature3] = Field( None, description='', title='User settings: Feature settings' ) in_meeting: Optional[InMeeting3] = Field( None, description='', title='User settings: Meeting settings' ) profile: Optional[Profile4] = Field(None, title='Profile') recording: Optional[Recording4] = Field( None, description='', title='User settings: Recording settings' ) schedule_meeting: Optional[ScheduleMeeting3] = Field( None, description='', title='User settings: Meeting settings' ) telephony: Optional[Telephony3] = Field( None, title='Telephony update settings: Meeting settings' ) tsp: Optional[Tsp2] = Field( None, description='Account Settings: TSP.', title='User settings: TSP settings' ) class CustomAttributes(BaseModel): key: Optional[str] = Field(None, description='Identifier for the custom attribute.') name: Optional[str] = Field(None, description='Name of the custom attribute.') value: Optional[str] = Field(None, description='Value of the custom attribute.') class PhoneNumbers(BaseModel): code: Optional[str] = Field( None, description='Country code of the phone number. For example, for United States phone numbers, the value of this field should be "+1".', ) country: Optional[str] = Field( None, description='[Country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) of the phone number. For example, if the phone number provided in the `number` field is a Brazil based number, the value of the `country` field should be `BR`.', ) number: Optional[str] = Field(None, description='Phone number of the user.') class UserUpdate(BaseModel): cms_user_id: Optional[str] = Field(None, description='Kaltura user ID.') company: Optional[constr(max_length=255)] = Field( None, description="User's company." ) custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) of the user.' ) dept: Optional[str] = Field( None, description='Department for user profile: use for report.' ) first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name. Cannot contain more than 5 Chinese characters.", ) group_id: Optional[str] = Field( None, description='Provide unique identifier of the group that you would like to add a [pending user](https://support.zoom.us/hc/en-us/articles/201363183-Managing-users#h_13c87a2a-ecd6-40ad-be61-a9935e660edb) to. The value of this field can be retrieved from [List Groups](https://marketplace.zoom.us/docs/api-reference/zoom-api/groups/groups) API.', ) host_key: Optional[constr(min_length=6, max_length=10)] = Field( None, description='Host key. It should be a 6-10 digit number.' ) job_title: Optional[constr(max_length=128)] = Field( None, description="User's job title." ) language: Optional[str] = Field(None, description='language') last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name. Cannot contain more than 5 Chinese characters.", ) location: Optional[constr(max_length=256)] = Field( None, description="User's location." ) manager: Optional[EmailStr] = Field(None, description='The manager for the user.') phone_country: Optional[str] = Field( None, description='**Note:** This field has been **deprecated** and will not be supported in the future. Use the **country** field of the **phone_numbers** object instead to select the country for the phone number.\n\n\n\n[Country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) of the phone number. For example, if the phone number provided in the `phone_number` field is a Brazil based number, the value of the `phone_country` field should be `BR`.', ) phone_number: Optional[str] = Field( None, description='**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead to assign phone number(s) to a user.\n\n\nPhone number of the user. To update a phone number, you must also provide the `phone_country` field.', ) phone_numbers: Optional[PhoneNumbers] = None pmi: Optional[int] = Field( None, description='Personal meeting ID: length must be 10.' ) timezone: Optional[str] = Field( None, description='The time zone ID for a user profile. For this parameter value please refer to the ID value in the [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list.', ) type: Optional[Type57] = Field( None, description='User types:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).', ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) vanity_name: Optional[str] = Field(None, description='Personal meeting room name.') class Type60(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence10(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type60 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type61(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification3(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type61] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification3(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type61] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification3(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type61] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer3(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings13(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification3 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification3 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification3 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer3] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class TrackingField11(BaseModel): field: Optional[str] = Field(None, description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type64(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class Webinar(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinars only.', ) password: Optional[str] = Field( None, description='Webinar Passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *]. Max of 10 characters.', ) recurrence: Optional[Recurrence10] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings13] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`.\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField11]] = Field( None, description='Tracking fields' ) type: Optional[Type64] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type65(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence11(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type65 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type66(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification4(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type66] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification4(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type66] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification4(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type66] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer4(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings14(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification4 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification4 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification4 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer4] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type69(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class WebinarInfo(BaseModel): agenda: Optional[str] = Field(None, description='Webinar agenda.') created_at: Optional[datetime] = Field(None, description='Create time.') duration: Optional[int] = Field(None, description='Webinar duration.') join_url: Optional[str] = Field( None, description='URL to join the Webinar. This URL should only be shared with the users who should be invited to the Webinar.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[constr(max_length=10)] = Field( None, description='Webinar passcode. \n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n\n\n', ) recurrence: Optional[Recurrence11] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings14] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time in GMT/UTC.' ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Webinar is a URL using which a host or an alternative host can start the Webinar. This URL should only be used by the host of the meeting and should not be shared with anyone other than the host of the Webinar. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the latest value for the <code>start_url</code> field programmatically (after expiry), you must call the [Retrieve a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar) and refer to the value of the <code>start_url</code> field in the response.</aside><br><br><br>', ) timezone: Optional[str] = Field(None, description='Time zone to format start_time.') topic: Optional[constr(max_length=200)] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField11]] = Field( None, description='Tracking fields' ) type: Optional[Type69] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Webinar1(BaseModel): start_time: Optional[datetime] = Field(None, description='Start time.') uuid: Optional[str] = Field(None, description='Webinar UUID.') class WebinarInstances(BaseModel): webinars: Optional[List[Webinar1]] = Field( None, description='List of ended webinar instances.' ) class Webinar2(BaseModel): agenda: Optional[str] = Field( None, description='Webinar Description. The length of agenda gets truncated to 250 characters when you list all webinars for a user. To view the complete agenda, retrieve details for a single webinar [here](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar).', ) created_at: Optional[datetime] = Field( None, description='Time of webinar creation.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field(None, description='ID of the host of the webinar.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) join_url: Optional[str] = Field( None, description='Join URL of the webinar (using which others can join the webinar).', ) start_time: Optional[datetime] = Field( None, description='Scheduled start time of the Webinar.' ) timezone: Optional[str] = Field( None, description='[Timezone ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) for the Webinar.', ) topic: Optional[str] = Field(None, description='Meeting topic.') type: Optional[str] = Field( None, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) uuid: Optional[str] = Field( None, description='Unique identifier of a Webinar. Each webinar instance will generate its own UUID. Once a Webinar ends, the value of uuid for the same webinar will be different from when it was scheduled.', ) class WebinarList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) webinars: Optional[List[Webinar2]] = Field( None, description='List of webinar objects.' ) class CustomKey8(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the Webinar.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the Webinar.' ) class WebinarMetric(BaseModel): custom_keys: Optional[List[CustomKey8]] = Field( None, description='Custom keys and values assigned to the Webinar.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Webinar duration, formatted as hh:mm:ss, for example: `10:00` for ten minutes.', ) email: Optional[str] = Field(None, description='User email.') end_time: Optional[datetime] = Field(None, description='Webinar end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not TSP was used for the Webinar.' ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not PSTN was used for the Webinar.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used for the Webinar.' ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screen sharing was used for the Webinar.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not SIP was used for the Webinar.' ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used for the Webinar.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used for the Webinar.' ) host: Optional[str] = Field(None, description='User display name.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) participants: Optional[int] = Field(None, description='Webinar participant count.') start_time: Optional[datetime] = Field(None, description='Webinar start time.') topic: Optional[str] = Field(None, description='Webinar topic.') user_type: Optional[str] = Field(None, description='User type.') uuid: Optional[UUID] = Field(None, description='Webinar UUID.') class Panelist2(BaseModel): email: Optional[EmailStr] = Field(None, description="Panelist's email.") name: Optional[str] = Field(None, description="Panelist's full name.") class WebinarPanelist(BaseModel): panelists: Optional[List[Panelist2]] = Field( None, description='List of panelist objects.', le=30 ) class Panelist3(BaseModel): id: Optional[str] = Field(None, description="Panelist's ID.") email: Optional[EmailStr] = Field(None, description="Panelist's email.") name: Optional[str] = Field(None, description="Panelist's full name.") join_url: Optional[str] = Field(None, description='Join URL.') class WebinarPanelistList(BaseModel): panelists: Optional[List[Panelist3]] = Field( None, description='List of panelist objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class WebinarRegistrant(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion7]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class Registrant7(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion7]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class WebinarRegistrantList(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant7]] = Field( None, description='List of registrant objects.' ) class Type70(Enum): short = 'short' single_radio = 'single_radio' single_dropdown = 'single_dropdown' multiple = 'multiple' class CustomQuestion11(BaseModel): answers: Optional[List[str]] = Field( None, description="An array of answer choices. Can't be used for short answer type.", ) required: Optional[bool] = Field( None, description='State whether or not the custom question is required to be answered by a registrant.', ) title: Optional[str] = Field(None, description='Custom question.') type: Optional[Type70] = Field(None, description='The question-answer type.') class Question4(BaseModel): field_name: Optional[FieldName1] = Field(None, description='Field name') required: Optional[bool] = Field( None, description='State whether the selected fields are required or optional.' ) class WebinarRegistrantQuestions(BaseModel): custom_questions: Optional[List[CustomQuestion11]] = Field( None, description='Array of Registrant Custom Questions.' ) questions: Optional[List[Question4]] = Field( None, description='Array of registration fields whose values should be provided by registrants during registration.', ) class Type71(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification5(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type71] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification5(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type71] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification5(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type71] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer5(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class WebinarSettings(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification5 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification5 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification5 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer5] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type74(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence12(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type74 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class Type75(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification6(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type75] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification6(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type75] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification6(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type75] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer6(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings15(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification6 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification6 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification6 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer6] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type78(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class WebinarUpdate(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinar only.' ) password: Optional[constr(max_length=10)] = Field( None, description='[Webinar passcode](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords). By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\nIf "**Require a passcode when scheduling new meetings**" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n\n\n\n\n\n\n', ) recurrence: Optional[Recurrence12] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings15] = None start_time: Optional[datetime] = Field( None, description='Webinar start time, in the format "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'." Should be in GMT time. In the format "yyyy-MM-dd\'T\'HH:mm:ss." This should be in local time and the timezone should be specified. Only used for scheduled webinars and recurring webinars with a fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField11]] = Field( None, description='Tracking fields' ) type: Optional[Type78] = Field( 5, description='Webinar Types:<br>`5` - webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class ZoomRoom(BaseModel): account_type: Optional[str] = Field(None, description='Zoom room email type.') calender_name: Optional[str] = Field(None, description='Zoom calendar name.') camera: Optional[str] = Field(None, description='Zoom room camera.') device_ip: Optional[str] = Field(None, description='Zoom room device IP.') email: Optional[str] = Field(None, description='Zoom room email.') health: Optional[str] = None id: Optional[str] = Field(None, description='Zoom room ID.') issues: Optional[List[str]] = Field(None, description='Zoom Room issues.') last_start_time: Optional[str] = Field( None, description='Zoom room last start time.' ) location: Optional[str] = Field(None, description='Zoom room location.') microphone: Optional[str] = Field(None, description='Zoom room microphone.') room_name: Optional[str] = Field(None, description='Zoom room name.') speaker: Optional[str] = Field(None, description='Zoom room speaker.') status: Optional[str] = Field(None, description='Zoom room status.') class ZoomRoomList(BaseModel): next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) zoom_rooms: Optional[List[ZoomRoom]] = Field( None, description='Array of Zoom Rooms' ) class Action8(Enum): update = 'update' delete = 'delete' add = 'add' class Type79(Enum): enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption9(BaseModel): action: Optional[Action8] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to join your meetings or webinars. ', ) id: Optional[str] = Field( None, description=' Authentication ID. You can get the ID from Get User Settings API with query parameter `option` set to `meeting_authentication`.<br><br>\n Use this field or the `name` field to identify the associated authentication option that you would like to update.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type79] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.', ) class Authenticationusersettings1(BaseModel): authentication_option: Optional[AuthenticationOption9] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='If set to "true", only authenticated users can join meetings. The method for authentication can be defined in the "authentication_option". ', ) class Type80(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption10(BaseModel): action: Optional[Action8] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n\n* `update`: Choose this value if you are updating an existing authentication option.\n* `show` : Choose this value if you would like this option to be one of the authentication options that the host can use for sharing the recording settings. \n* `hide`: Choose this value if you would like this option to not be made available to the host for recording sharing settings. ', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to view the recordings. ', ) id: Optional[str] = Field( None, description=' Authentication ID. You can get the ID from Get User Settings API with query parameter `option` set to `recording_authentication`.<br><br>\n\nUse this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type80] = Field( None, description='Specify one authentication type that is to be associated with this authentication configuration:<br>\n* `internally`: This option allows you specify a rule that only signed in users within your account can view the recording.<br>\n * `enforce_login`: This option allows any users to view the recording, as long as they are signed into their Zoom account.<br>\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can view the recording. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.\n\n', ) class Authenticationusersettings2(BaseModel): authentication_option: Optional[AuthenticationOption10] = Field( None, description='Specify the authentication options for this account.' ) recording_authentication: Optional[bool] = Field( None, description='If set to `true`, only authenticated users can view the cloud recordings.<br><br>\nThe authentication profile **must first be set at the account level via the account settings**, and later can be disabled after enabling on the preferred level - i.e. user level using user settings or at group level via group settings (if you do not want the settings to be enabled on the entire account).', ) class Authenticationusersettings( RootModel[Union[Authenticationusersettings1, Authenticationusersettings2]] ): root: Union[Authenticationusersettings1, Authenticationusersettings2] = Field( ..., title='UserSettingsAuthenticationUpdate' ) class Type81(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence13(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type81 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type82(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification7(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type82] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification7(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type82] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification7(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type82] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer7(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings16(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification7 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the Webinar. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a Webinar with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed-in users can join this meeting. \n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "meeting_authentication", "authentication_option" and/or "authentication_domains" fields to establish the authentication mechanism for this Webinar. ', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed-in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "authentication_domains" field for this Webinar. ', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification7 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification7 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer7] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class TrackingField14(BaseModel): field: str = Field(..., description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type85(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class CreateWebinar(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinars only.', ) password: Optional[str] = Field( None, description='Webinar passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !]. Max of 10 characters.\n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n', ) recurrence: Optional[Recurrence13] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings16] = Field(None, description='Create Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`.\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField14]] = Field( None, description='Tracking fields' ) type: Optional[Type85] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class CustomKey9(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the meeting.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the meeting.' ) class TrackingField15(BaseModel): field: Optional[constr(max_length=64)] = Field( None, description='Label of the tracking field.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the tracking field.' ) class Listmeetingmetrics(BaseModel): custom_keys: Optional[List[CustomKey9]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Meeting duration. Formatted as hh:mm:ss, for example: `16:08` for 16 minutes and 8 seconds.', ) email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField15]] = Field( None, description='Tracking fields and values assigned to the meeting.' ) user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class Type86(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class RecurrenceWebinar(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type86 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class TspGlobalDialIn(BaseModel): audio_url: Optional[constr(max_length=512)] = Field( None, description='The global dial-in URL for a TSP enabled account. The URL must be valid with a max-length of 512 characters.', ) class AccountsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) accounts: Optional[List[Account1]] = Field( None, description='List of Account objects.' ) class AccountsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) accounts: Optional[List[Account1]] = Field( None, description='List of Account objects.' ) class Options1(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountsPostRequest(BaseModel): account_name: Optional[constr(max_length=64)] = Field( None, description='Name of the account. If you do not provide a value for this field, by default, the value will be set as a concatenation of "first_name" and "last_name". ', ) email: constr(max_length=128) = Field(..., description="User's email address.") first_name: constr(max_length=64) = Field(..., description="User's first name.") last_name: constr(max_length=64) = Field(..., description="User's last name.") options: Optional[Options1] = Field(None, description='Account options object.') password: str = Field( ..., description="User's password.\n\n**Note:** If the account owner or admin has enabled [enhanced password requirements](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_fa9186e4-6818-4f7a-915c-2e25c19f0acd), the value provided in this field must meet those requirements. These requirements can be retrieved by calling the [Get Account Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) and referring to the `password_requirement` field present in the `security` object.", ) class Options2(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountsPostRequest1(BaseModel): account_name: Optional[constr(max_length=64)] = Field( None, description='Name of the account. If you do not provide a value for this field, by default, the value will be set as a concatenation of "first_name" and "last_name". ', ) email: constr(max_length=128) = Field(..., description="User's email address.") first_name: constr(max_length=64) = Field(..., description="User's first name.") last_name: constr(max_length=64) = Field(..., description="User's last name.") options: Optional[Options2] = Field(None, description='Account options object.') password: str = Field( ..., description="User's password.\n\n**Note:** If the account owner or admin has enabled [enhanced password requirements](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_fa9186e4-6818-4f7a-915c-2e25c19f0acd), the value provided in this field must meet those requirements. These requirements can be retrieved by calling the [Get Account Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) and referring to the `password_requirement` field present in the `security` object.", ) class AccountsPostResponse(BaseModel): created_at: Optional[str] = Field(None, description='Account created date time.') id: Optional[str] = Field(None, description='Account ID.') owner_email: Optional[str] = Field(None, description='Account owner email.') owner_id: Optional[str] = Field(None, description='Account owner ID.') class Options3(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountsAccountIdGetResponse(BaseModel): created_at: Optional[datetime] = Field( None, description='Account creation date and time.' ) id: Optional[str] = Field(None, description='Account ID.') options: Optional[Options3] = Field(None, description='Account options object.') owner_email: Optional[str] = Field(None, description='Account owner email.') owner_id: Optional[str] = Field(None, description='Account owner ID.') vanity_url: Optional[str] = Field(None, description='Account Vanity URL') class Options4(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountsAccountIdGetResponse1(BaseModel): created_at: Optional[datetime] = Field( None, description='Account creation date and time.' ) id: Optional[str] = Field(None, description='Account ID.') options: Optional[Options4] = Field(None, description='Account options object.') owner_email: Optional[str] = Field(None, description='Account owner email.') owner_id: Optional[str] = Field(None, description='Account owner ID.') vanity_url: Optional[str] = Field(None, description='Account Vanity URL') class AccountsAccountIdBillingGetResponse(BaseModel): address: str = Field(..., description="Billing Contact's address.") apt: Optional[str] = Field(None, description="Billing Contact's apartment/suite.") city: str = Field(..., description="Billing Contact's city.") country: str = Field( ..., description="Billing Contact's Country [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) in abbreviated format.", ) email: str = Field(..., description="Billing Contact's email address.") first_name: str = Field(..., description="Billing Contact's first name.") last_name: str = Field(..., description="Billing Contact's last name.") phone_number: str = Field(..., description="Billing Contact's phone number.") state: str = Field(..., description="Billing Contact's state.") zip: str = Field(..., description="Billing Contact's zip/postal code.") class AccountsAccountIdBillingPatchRequest(BaseModel): address: Optional[str] = Field(None, description="Billing Contact's address.") apt: Optional[str] = Field(None, description="Billing Contact's apartment/suite.") city: Optional[str] = Field(None, description="Billing Contact's city.") country: Optional[str] = Field(None, description="Billing Contact's country.") email: Optional[str] = Field(None, description="Billing Contact's email address.") first_name: Optional[str] = Field(None, description="Billing Contact's first name.") last_name: Optional[str] = Field(None, description="Billing Contact's last name.") phone_number: Optional[str] = Field( None, description="Billing Contact's phone number." ) state: Optional[str] = Field(None, description="Billing Contact's state.") zip: Optional[str] = Field(None, description="Billing Contact's zip/postal code.") class Invoice(BaseModel): balance: Optional[float] = Field( None, description='The remaining balance of the invoice after all payments, adjustments, and refunds are applied.\n\n', ) due_date: Optional[str] = Field( None, description='The date by which the payment for this invoice is due.\n\n' ) id: Optional[str] = Field(None, description='Unique identifier of the invoice.') invoice_date: Optional[str] = Field( None, description='The date when the invoice was generated.\n' ) invoice_number: Optional[str] = Field(None, description='Invoice number.') status: Optional[str] = Field('"Draft"', description='Status of the invoice.') target_date: Optional[str] = Field( None, description='This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in the invoice.\n', ) tax_amount: Optional[float] = Field(None, description='Tax amount.') total_amount: Optional[float] = Field(None, description='Total invoice amount.') class AccountsAccountIdBillingInvoicesGetResponse(BaseModel): currency: Optional[str] = Field(None, description='Currency used in the invoice.') invoices: Optional[List[Invoice]] = None class AccountsAccountIdBillingInvoicesGetResponse1(BaseModel): currency: Optional[str] = Field(None, description='Currency used in the invoice.') invoices: Optional[List[Invoice]] = None class InvoiceItem(BaseModel): charge_name: Optional[str] = Field(None, description='Description for the charge.') charge_number: Optional[str] = Field(None, description='Identifier for the charge.') charge_type: Optional[str] = Field(None, description='Charge type.') end_date: Optional[date_aliased] = Field(None, description='Billing end date.') quantity: Optional[int] = Field(None, description='Quantity.') start_date: Optional[date_aliased] = Field(None, description='Billing start date.') tax_amount: Optional[float] = Field(None, description='Tax amount.') total_amount: Optional[float] = Field(None, description='Total amount.') class AccountsAccountIdBillingInvoicesInvoiceIdGetResponse(BaseModel): balance: Optional[float] = Field( None, description='The remaining balance of the invoice after all payments, adjustments, and refunds are applied.\n\n', ) currency: Optional[str] = Field(None, description='Billing currency.') due_date: Optional[str] = Field( None, description='The date by which the payment for this invoice is due.\n\n' ) id: Optional[str] = Field(None, description='Unique identifier of the invoice.') invoice_date: Optional[str] = Field( None, description='The date when the invoice was generated.\n' ) invoice_items: Optional[List[InvoiceItem]] = None invoice_number: Optional[str] = Field(None, description='Invoice number.') status: Optional[str] = Field('"Draft"', description='Status of the invoice.') target_date: Optional[str] = Field( None, description='This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in the invoice.\n', ) tax_amount: Optional[float] = Field(None, description='Tax amount.') total_amount: Optional[float] = Field(None, description='Total invoice amount.') class AccountsAccountIdBillingInvoicesInvoiceIdGetResponse1(BaseModel): balance: Optional[float] = Field( None, description='The remaining balance of the invoice after all payments, adjustments, and refunds are applied.\n\n', ) currency: Optional[str] = Field(None, description='Billing currency.') due_date: Optional[str] = Field( None, description='The date by which the payment for this invoice is due.\n\n' ) id: Optional[str] = Field(None, description='Unique identifier of the invoice.') invoice_date: Optional[str] = Field( None, description='The date when the invoice was generated.\n' ) invoice_items: Optional[List[InvoiceItem]] = None invoice_number: Optional[str] = Field(None, description='Invoice number.') status: Optional[str] = Field('"Draft"', description='Status of the invoice.') target_date: Optional[str] = Field( None, description='This date is used to determine which charges are to be billed. All charges that are to be billed on this date or prior will be included in the invoice.\n', ) tax_amount: Optional[float] = Field(None, description='Tax amount.') total_amount: Optional[float] = Field(None, description='Total invoice amount.') class EmailNotification4(BaseModel): alternative_host_reminder: Optional[bool] = Field( None, description='Notify the alternative host who is set or removed.' ) cancel_meeting_reminder: Optional[bool] = Field( None, description='Notify host and participants when the meeting is cancelled.' ) cloud_recording_available_reminder: Optional[bool] = Field( None, description='Notify host when cloud recording is available.' ) jbh_reminder: Optional[bool] = Field( None, description='Notify host when participants join the meeting before them.' ) schedule_for_host_reminder: Optional[bool] = Field( None, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class InMeeting4(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field(None, description='') attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='Displays whether or not custom [data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) have been selected for meetings/webinars hosted by the account.', ) dscp_marking: Optional[bool] = Field( None, description='Enable DSCP marking for signaling and media packets. (Default is 56 for audio, 40 for video, and 40 for signaling.) ', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for all users on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option is enabled and locked for the account or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow attendees to ask questions for the host and panelists to answer in the webinar.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) class Recording5(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) recording_authentication: Optional[str] = Field( None, description='Only authenticated users can view cloud recordings' ) class ScheduleMeeting4(BaseModel): audio_type: Optional[bool] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) enforce_login: Optional[bool] = Field( None, description='Allow only signed-in users to join meetings.\n' ) enforce_login_domains: Optional[str] = Field( None, description='Specify the domains from which users can join a meeting.\n' ) enforce_login_with_domains: Optional[bool] = Field( None, description='Allow only signed-in users with specified domains to join meetings.\n', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) not_store_meeting_topic: Optional[bool] = Field( None, description='Hide actual meeting topic and display "Zoom Meeting" for your scheduled meetings', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) require_password_for_pmi_meetings: Optional[bool] = Field( None, description='Require participants to enter password for PMI meetings. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) class Telephony4(BaseModel): telephony_regions: Optional[bool] = None third_party_audio: Optional[bool] = Field( None, description='Allow users to join the meeting using the existing 3rd party audio configuration.', ) class Tsp4(BaseModel): call_out: Optional[bool] = Field(None, description='') show_international_numbers_link: Optional[bool] = Field(None, description='') class AccountsAccountIdLockSettingsGetResponse1(BaseModel): email_notification: Optional[EmailNotification4] = None in_meeting: Optional[InMeeting4] = None recording: Optional[Recording5] = None schedule_meeting: Optional[ScheduleMeeting4] = None telephony: Optional[Telephony4] = None tsp: Optional[Tsp4] = None class MeetingPasswordRequirement7(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings1(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity1(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement7] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings1] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdLockSettingsGetResponse2(BaseModel): meeting_security: Optional[MeetingSecurity1] = None class AccountsAccountIdLockSettingsGetResponse( RootModel[ Union[ AccountsAccountIdLockSettingsGetResponse1, AccountsAccountIdLockSettingsGetResponse2, ] ] ): root: Union[ AccountsAccountIdLockSettingsGetResponse1, AccountsAccountIdLockSettingsGetResponse2, ] class Recording6(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) recording_authentication: Optional[str] = Field( None, description='Only authenticated users can view cloud recordings' ) class AccountsAccountIdLockSettingsGetResponse4(BaseModel): email_notification: Optional[EmailNotification4] = None in_meeting: Optional[InMeeting4] = None recording: Optional[Recording6] = None schedule_meeting: Optional[ScheduleMeeting4] = None telephony: Optional[Telephony4] = None tsp: Optional[Tsp4] = None class MeetingPasswordRequirement8(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings2(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity2(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement8] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings2] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdLockSettingsGetResponse5(BaseModel): meeting_security: Optional[MeetingSecurity2] = None class AccountsAccountIdLockSettingsGetResponse3( RootModel[ Union[ AccountsAccountIdLockSettingsGetResponse4, AccountsAccountIdLockSettingsGetResponse5, ] ] ): root: Union[ AccountsAccountIdLockSettingsGetResponse4, AccountsAccountIdLockSettingsGetResponse5, ] class InMeeting6(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field(None, description='') attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field in the account settings. If set to `false`, the regions cannot be customized and the default regions will be used.', ) dscp_marking: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for all users on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicate whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option should be enabled and locked for the account or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) webinar_question_answer: Optional[bool] = Field(None, description='') whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) class Recording7(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) recording_authentication: Optional[str] = None class ScheduleMeeting6(BaseModel): audio_type: Optional[bool] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) enforce_login: Optional[bool] = Field( None, description='Participants must always sign in before joining the scheduled meeting.', ) enforce_login_domains: Optional[str] = None enforce_login_with_domains: Optional[bool] = None host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) meeting_authentication: Optional[bool] = None not_store_meeting_topic: Optional[bool] = None participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) personal_meeting: Optional[bool] = Field( None, description='Turn the lock setting on or off for the **Enable Personal Meeting ID** setting for an entire account.<br><br>\n`true`: Turn the **"Enable Personal Meeting ID"** setting **on** for all users in the account. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Turn **off** the **"Enable Personal Meeting ID"** setting. **If this setting is [disabled](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link?flash_digest=eb7ac62d8c7fb4daf285916e3e15d87537806133#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a), meetings that were scheduled with PMI by the users in the account will be invalid. Users will have to update previously scheduled PMI meetings.**<br><br>\nFor Zoom Phone only: If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) require_password_for_pmi_meetings: Optional[bool] = Field( None, description='Require participants to enter password for PMI meetings. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) class AccountsAccountIdLockSettingsPatchRequest1(BaseModel): email_notification: Optional[EmailNotification4] = None in_meeting: Optional[InMeeting6] = None recording: Optional[Recording7] = None schedule_meeting: Optional[ScheduleMeeting6] = None telephony: Optional[Telephony4] = None tsp: Optional[Tsp4] = None class MeetingPasswordRequirement9(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings3(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity3(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement9] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings3] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdLockSettingsPatchRequest2(BaseModel): meeting_security: Optional[MeetingSecurity3] = None class AccountsAccountIdLockSettingsPatchRequest( RootModel[ Union[ AccountsAccountIdLockSettingsPatchRequest1, AccountsAccountIdLockSettingsPatchRequest2, ] ] ): root: Union[ AccountsAccountIdLockSettingsPatchRequest1, AccountsAccountIdLockSettingsPatchRequest2, ] class Recording8(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) recording_authentication: Optional[str] = None class AccountsAccountIdLockSettingsPatchRequest4(BaseModel): email_notification: Optional[EmailNotification4] = None in_meeting: Optional[InMeeting6] = None recording: Optional[Recording8] = None schedule_meeting: Optional[ScheduleMeeting6] = None telephony: Optional[Telephony4] = None tsp: Optional[Tsp4] = None class MeetingPasswordRequirement10(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings4(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity4(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement10] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings4] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdLockSettingsPatchRequest5(BaseModel): meeting_security: Optional[MeetingSecurity4] = None class AccountsAccountIdLockSettingsPatchRequest3( RootModel[ Union[ AccountsAccountIdLockSettingsPatchRequest4, AccountsAccountIdLockSettingsPatchRequest5, ] ] ): root: Union[ AccountsAccountIdLockSettingsPatchRequest4, AccountsAccountIdLockSettingsPatchRequest5, ] class AccountsAccountIdLockSettingsPatchResponse(BaseModel): pass class AccountsAccountIdManagedDomainsGetResponse(BaseModel): domains: Optional[List[Domain]] = Field( None, description='List of managed domain objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class AccountsAccountIdManagedDomainsGetResponse1(BaseModel): domains: Optional[List[Domain]] = Field( None, description='List of managed domain objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class AccountsAccountIdOptionsPatchRequest(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountsAccountIdOptionsPatchRequest1(BaseModel): billing_auto_renew: Optional[bool] = Field( None, description='Toggle whether automatic billing renewal is on or off.' ) meeting_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Meeting Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Meeting Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_mc` is set to `true`.', ) pay_mode: Optional[PayMode] = Field( 'master', description='Payee:<br>`master` - master account holder pays.<br>`sub` - Sub account holder pays.', ) room_connector_list: Optional[List[str]] = Field( None, description='Specify the IP addresses of the Room Connectors that you would like to share with the sub account. Multiple values can be separated by comma. If no value is provided in this field, all the Room Connectors of a master account will be shared with the sub account.\n\n\n**Note:** This option can only be used if the value of `share_rc` is set to `true`.', ) share_mc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Meeting Connector(s)](https://support.zoom.us/hc/en-us/articles/201363093-Getting-Started-with-the-Meeting-Connector) that are set up by the master account. Meeting Connectors can only be used by On-prem users.', ) share_rc: Optional[bool] = Field( False, description='Enable/disable the option for a sub account to use shared [Virtual Room Connector(s)](https://support.zoom.us/hc/en-us/articles/202134758-Getting-Started-With-Virtual-Room-Connector) that are set up by the master account. Virtual Room Connectors can only be used by On-prem users.', ) class AccountsAccountIdOwnerPutRequest(BaseModel): email: EmailStr = Field(..., description='Email address of the new owner.') class Byoc(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` to allow a sub account to add BYOC numbers from the Zoom web admin portal.', ) class AccountsAccountIdPhoneSettingsPatchRequest(BaseModel): byoc: Optional[Byoc] = None class AccountsAccountIdPhoneSettingsPatchRequest1(BaseModel): byoc: Optional[Byoc] = None class EmergencyAddress(BaseModel): address_line1: str = Field(..., description='Specify the street address.') address_line2: Optional[str] = Field( None, description='Specify any building number, floor number, or unit number.' ) city: Optional[str] = Field( None, description='City of the emergency address. Required or optional dependent on different countries.', ) country: str = Field( ..., description='Specify the two letter [country code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) (Alpha-2 code in ISO-3166).', ) state_code: Optional[str] = Field( None, description='State code of the emergency address. Required or optional dependent on the country and state.', ) zip: Optional[str] = Field( None, description='Zip code of the emergency address. Required or optional dependent on different countries.', ) class AccountsAccountIdPhoneSetupPostRequest(BaseModel): emergency_address: EmergencyAddress = Field( ..., description='Specify emergency address for the account.' ) extension_number: str = Field( ..., description='Specify extension number that will be associated with the owner of the account.', ) class AccountsAccountIdPhoneSetupPostRequest1(BaseModel): emergency_address: EmergencyAddress = Field( ..., description='Specify emergency address for the account.' ) extension_number: str = Field( ..., description='Specify extension number that will be associated with the owner of the account.', ) class SipTrunk(BaseModel): carrier_account: Optional[str] = Field( None, description='The account associated to the carrier.' ) id: Optional[str] = Field( None, description="Unique identifier of the master account's SIP trunk." ) name: Optional[str] = Field( 'master SIP Trunk name', description='The name of the SIP Trunk. If this is not used, the master SIP Trunk name will be the default.\n', ) class AccountsAccountIdPhoneSipTrunkTrunksPostRequest(BaseModel): sip_trunks: Optional[List[SipTrunk]] = Field( None, description='SIP trunk configurations.', max_length=3 ) class AccountsAccountIdPhoneSipTrunkTrunksPostRequest1(BaseModel): sip_trunks: Optional[List[SipTrunk]] = Field( None, description='SIP trunk configurations.', max_length=3 ) class SipTrunk2(BaseModel): carrier_account: Optional[str] = Field(None, description='Carrier account.') id: Optional[str] = Field( None, description='Unique identifier of the SIP trunk of the sub account.' ) name: Optional[str] = Field(None, description='Name of the SIP trunk.') class AccountsAccountIdPhoneSipTrunkTrunksPostResponse(BaseModel): sip_trunks: Optional[List[SipTrunk2]] = None class AccountsAccountIdPhoneSipTrunkTrunksPostResponse1(BaseModel): sip_trunks: Optional[List[SipTrunk2]] = None class AccountsAccountIdPhoneSipTrunkTrunksSipTrunkIdPatchRequest(BaseModel): carrier_account: Optional[str] = Field( None, description='Account associated with the carrier.' ) name: Optional[str] = Field(None, description='Name of the SIP Trunk.') class Status6(Enum): active = 'active' cancel = 'cancel' expired = 'expired' class PlanAudio1(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) ddi_numbers: Optional[int] = Field(None, description='Dedicated dial-In numbers.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) premium_countries: Optional[str] = Field( None, description='Premium countries: multiple values should be separated by commas. For a list of allowed values, refer to the "ID" field in the [Premium Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#premium-countries) table.', ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') tollfree_countries: Optional[str] = Field( None, description='Toll-free countries: multiple values should separated by a comma. For a list of allowed values, refer to the "ID" field in the [Toll Free Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#toll-free-countries) table.', ) type: Optional[str] = Field( None, description='Additional audio conferencing <a href="/api-reference/other-references/plans">plan type.</a>', ) class PlanBase3(BaseModel): hosts: Optional[int] = Field( None, description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanLargeMeetingItem1(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase4(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanCallingItem2(BaseModel): hosts: Optional[int] = None next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Additional phone calling <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanNumberItem2(BaseModel): hosts: Optional[int] = None next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Additional phone number <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone1(BaseModel): plan_base: Optional[PlanBase4] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem2]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem2]] = Field( None, description='Additional phone number plans.' ) class PlanRecordingStatus(Enum): Active = 'Active' Cancelled = 'Cancelled' class PlanRoomConnector1(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanWebinarItem1(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanZoomRooms1(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountsAccountIdPlansGetResponse(BaseModel): plan_audio: Optional[PlanAudio1] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type.</a>', ) plan_base: Optional[PlanBase3] = None plan_large_meeting: Optional[List[PlanLargeMeetingItem1]] = None plan_phone: Optional[PlanPhone1] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional Cloud Recording plan.' ) plan_recording_next_invoice_date: Optional[str] = Field( None, description='Next invoice date of Additional Cloud Recording plan.' ) plan_recording_service_effective_date: Optional[str] = Field( None, description='Plan start date of Additional Cloud Recording plan.' ) plan_recording_status: Optional[PlanRecordingStatus] = Field( None, description='Status of additional Cloud Recording plan.' ) plan_room_connector: Optional[PlanRoomConnector1] = None plan_webinar: Optional[List[PlanWebinarItem1]] = None plan_zoom_rooms: Optional[PlanZoomRooms1] = None class PlanAudio2(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) ddi_numbers: Optional[int] = Field(None, description='Dedicated dial-In numbers.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) premium_countries: Optional[str] = Field( None, description='Premium countries: multiple values should be separated by commas. For a list of allowed values, refer to the "ID" field in the [Premium Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#premium-countries) table.', ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') tollfree_countries: Optional[str] = Field( None, description='Toll-free countries: multiple values should separated by a comma. For a list of allowed values, refer to the "ID" field in the [Toll Free Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#toll-free-countries) table.', ) type: Optional[str] = Field( None, description='Additional audio conferencing <a href="/api-reference/other-references/plans">plan type.</a>', ) class PlanBase5(BaseModel): hosts: Optional[int] = Field( None, description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanLargeMeetingItem2(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase6(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanCallingItem3(BaseModel): hosts: Optional[int] = None next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Additional phone calling <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanNumberItem3(BaseModel): hosts: Optional[int] = None next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Additional phone number <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone2(BaseModel): plan_base: Optional[PlanBase6] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem3]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem3]] = Field( None, description='Additional phone number plans.' ) class PlanRoomConnector2(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanWebinarItem2(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanZoomRooms2(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') next_invoice_date: Optional[str] = Field( None, description='Next invoice date for the plan.' ) service_effective_date: Optional[str] = Field( None, description='Date at which the plan became effective on the account.' ) status: Optional[Status6] = Field(None, description='Status of the plan.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountsAccountIdPlansGetResponse1(BaseModel): plan_audio: Optional[PlanAudio2] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type.</a>', ) plan_base: Optional[PlanBase5] = None plan_large_meeting: Optional[List[PlanLargeMeetingItem2]] = None plan_phone: Optional[PlanPhone2] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional Cloud Recording plan.' ) plan_recording_next_invoice_date: Optional[str] = Field( None, description='Next invoice date of Additional Cloud Recording plan.' ) plan_recording_service_effective_date: Optional[str] = Field( None, description='Plan start date of Additional Cloud Recording plan.' ) plan_recording_status: Optional[PlanRecordingStatus] = Field( None, description='Status of additional Cloud Recording plan.' ) plan_room_connector: Optional[PlanRoomConnector2] = None plan_webinar: Optional[List[PlanWebinarItem2]] = None plan_zoom_rooms: Optional[PlanZoomRooms2] = None class Contact(BaseModel): address: str = Field(..., description="Billing Contact's address.") apt: Optional[str] = Field(None, description="Billing Contact's apartment/suite.") city: str = Field(..., description="Billing Contact's city.") country: str = Field( ..., description="Billing Contact's Country [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) in abbreviated format.", ) email: str = Field(..., description="Billing Contact's email address.") first_name: str = Field(..., description="Billing Contact's first name.") last_name: str = Field(..., description="Billing Contact's last name.") phone_number: str = Field(..., description="Billing Contact's phone number.") state: str = Field(..., description="Billing Contact's state.") zip: str = Field(..., description="Billing Contact's zip/postal code.") class PlanAudio3(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) ddi_numbers: Optional[int] = Field(None, description='Dedicated dial-In numbers.') premium_countries: Optional[str] = Field( None, description='Premium countries: multiple values should be separated by commas. For a list of allowed values, refer to the "ID" field in the [Premium Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#premium-countries) table.', ) tollfree_countries: Optional[str] = Field( None, description='Toll-free countries: multiple values should separated by a comma. For a list of allowed values, refer to the "ID" field in the [Toll Free Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#toll-free-countries) table.', ) type: Optional[str] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) class PlanBase7(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanLargeMeetingItem3(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase8(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanCallingItem4(BaseModel): hosts: Optional[int] = None type: Optional[str] = Field( None, description='Additional phone calling <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanNumberItem4(BaseModel): hosts: Optional[int] = None type: Optional[str] = Field( None, description='Additional phone number <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone3(BaseModel): plan_base: Optional[PlanBase8] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem4]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem4]] = Field( None, description='Additional phone number plans.' ) class PlanRoomConnector3(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanWebinarItem3(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanZoomRooms3(BaseModel): hosts: Optional[int] = Field(None, description='Account plan number of hosts.') type: Optional[str] = Field( None, description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountsAccountIdPlansPostRequest(BaseModel): contact: Optional[Contact] = Field(None, description='Billing Contact object.') plan_audio: Optional[PlanAudio3] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) plan_base: PlanBase7 = Field(..., description='Account base plan object.') plan_large_meeting: Optional[List[PlanLargeMeetingItem3]] = Field( None, description='Additional large meeting Plans.' ) plan_phone: Optional[PlanPhone3] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional cloud recording plan.' ) plan_room_connector: Optional[PlanRoomConnector3] = Field( None, description='Account plan object.' ) plan_webinar: Optional[List[PlanWebinarItem3]] = Field( None, description='Additional webinar plans.' ) plan_zoom_rooms: Optional[PlanZoomRooms3] = Field( None, description='Account plan object.' ) class PlanBase9(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase10(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone4(BaseModel): plan_base: Optional[PlanBase10] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem4]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem4]] = Field( None, description='Additional phone number plans.' ) class AccountsAccountIdPlansPostRequest1(BaseModel): contact: Optional[Contact] = Field(None, description='Billing Contact object.') plan_audio: Optional[PlanAudio3] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) plan_base: PlanBase9 = Field(..., description='Account base plan object.') plan_large_meeting: Optional[List[PlanLargeMeetingItem3]] = Field( None, description='Additional large meeting Plans.' ) plan_phone: Optional[PlanPhone4] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional cloud recording plan.' ) plan_room_connector: Optional[PlanRoomConnector3] = Field( None, description='Account plan object.' ) plan_webinar: Optional[List[PlanWebinarItem3]] = Field( None, description='Additional webinar plans.' ) plan_zoom_rooms: Optional[PlanZoomRooms3] = Field( None, description='Account plan object.' ) class PlanBase11(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase12(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone5(BaseModel): plan_base: Optional[PlanBase12] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem4]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem4]] = Field( None, description='Additional phone number plans.' ) class AccountsAccountIdPlansPostResponse(BaseModel): plan_audio: Optional[PlanAudio3] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) plan_base: PlanBase11 = Field(..., description='Account base plan object.') plan_large_meeting: Optional[List[PlanLargeMeetingItem3]] = Field( None, description='Additional large meeting Plans.' ) plan_phone: Optional[PlanPhone5] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional cloud recording plan.' ) plan_room_connector: Optional[PlanRoomConnector3] = Field( None, description='Account plan object.' ) plan_webinar: Optional[List[PlanWebinarItem3]] = Field( None, description='Additional webinar plans.' ) plan_zoom_rooms: Optional[PlanZoomRooms3] = Field( None, description='Account plan object.' ) class PlanBase13(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanBase14(BaseModel): callout_countries: Optional[str] = Field( None, description='Call-out countries: multiple values should separated by commas. For a list of allowed values, refer to the "ID" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#tsp-call-out-countries) table.', ) type: Optional[str] = Field( None, description='Additional phone base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#additional-zoom-phone-plans">plan type.</a>', ) class PlanPhone6(BaseModel): plan_base: Optional[PlanBase14] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem4]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem4]] = Field( None, description='Additional phone number plans.' ) class AccountsAccountIdPlansPostResponse1(BaseModel): plan_audio: Optional[PlanAudio3] = Field( None, description='Additional audio conferencing <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans#audio-conferencing-plans">plan type</a>.', ) plan_base: PlanBase13 = Field(..., description='Account base plan object.') plan_large_meeting: Optional[List[PlanLargeMeetingItem3]] = Field( None, description='Additional large meeting Plans.' ) plan_phone: Optional[PlanPhone6] = Field( None, description='Phone Plan Object', title='PhonePlan' ) plan_recording: Optional[str] = Field( None, description='Additional cloud recording plan.' ) plan_room_connector: Optional[PlanRoomConnector3] = Field( None, description='Account plan object.' ) plan_webinar: Optional[List[PlanWebinarItem3]] = Field( None, description='Additional webinar plans.' ) plan_zoom_rooms: Optional[PlanZoomRooms3] = Field( None, description='Account plan object.' ) class AccountsAccountIdPlansAddonsPostRequest1(BaseModel): hosts: int = Field(..., description='Number of hosts for this plan.') type: str = Field( ..., description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanDetails(BaseModel): plan_base: Optional[PlanBase14] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem4]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem4]] = Field( None, description='Additional phone number plans.' ) class AccountsAccountIdPlansAddonsPostRequest2(BaseModel): plan_details: PlanDetails = Field( ..., description='Phone Plan Object', title='PhonePlan' ) type: str = Field(..., description='Zoom Phone Plan `plan_phone`') class AccountsAccountIdPlansAddonsPostRequest( RootModel[ Union[ AccountsAccountIdPlansAddonsPostRequest1, AccountsAccountIdPlansAddonsPostRequest2, ] ] ): root: Union[ AccountsAccountIdPlansAddonsPostRequest1, AccountsAccountIdPlansAddonsPostRequest2, ] class AccountsAccountIdPlansAddonsPostRequest4(BaseModel): hosts: int = Field(..., description='Number of hosts for this plan.') type: str = Field( ..., description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class PlanDetails1(BaseModel): plan_base: Optional[PlanBase14] = Field( None, description='Additional phone base plans.' ) plan_calling: Optional[List[PlanCallingItem4]] = Field( None, description='Additional phone calling plans.' ) plan_number: Optional[List[PlanNumberItem4]] = Field( None, description='Additional phone number plans.' ) class AccountsAccountIdPlansAddonsPostRequest5(BaseModel): plan_details: PlanDetails1 = Field( ..., description='Phone Plan Object', title='PhonePlan' ) type: str = Field(..., description='Zoom Phone Plan `plan_phone`') class AccountsAccountIdPlansAddonsPostRequest3( RootModel[ Union[ AccountsAccountIdPlansAddonsPostRequest4, AccountsAccountIdPlansAddonsPostRequest5, ] ] ): root: Union[ AccountsAccountIdPlansAddonsPostRequest4, AccountsAccountIdPlansAddonsPostRequest5, ] class AccountsAccountIdPlansAddonsPutRequest(BaseModel): hosts: int = Field(..., description='Number of hosts for this plan.') type: str = Field( ..., description='Account <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class Action10(Enum): cancel = 'cancel' class Reason(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 class AccountsAccountIdPlansAddonsStatusPatchRequest(BaseModel): action: Optional[Action10] = Field( None, description='The action that needs to be taken for this sub account. Value must be set to "cancel".', ) comment: Optional[str] = Field( None, description='Additional comments about the cancellation decision.' ) reason: Optional[Reason] = Field( None, description='The reason for the cancellation of plan. Reason options:<br>`1` - I am no longer working remote.<br>`2` - I had challenges getting the support I needed.<br>`3` - Features in the Basic Free Plan are sufficient.<br>`4` - The expense is too high.<br>`5` - I purchased the wrong product.<br> `6` - Paid purchase not needed right now, will repurchase in the future.', ) type: Optional[str] = Field( None, description='Plan [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans).', ) class AccountsAccountIdPlansAddonsStatusPatchRequest1(BaseModel): action: Optional[Action10] = Field( None, description='The action that needs to be taken for this sub account. Value must be set to "cancel".', ) comment: Optional[str] = Field( None, description='Additional comments about the cancellation decision.' ) reason: Optional[Reason] = Field( None, description='The reason for the cancellation of plan. Reason options:<br>`1` - I am no longer working remote.<br>`2` - I had challenges getting the support I needed.<br>`3` - Features in the Basic Free Plan are sufficient.<br>`4` - The expense is too high.<br>`5` - I purchased the wrong product.<br> `6` - Paid purchase not needed right now, will repurchase in the future.', ) type: Optional[str] = Field( None, description='Plan [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans).', ) class AccountsAccountIdPlansBasePutRequest(BaseModel): hosts: int = Field( ..., description='Account base plan number of hosts. For a Pro Plan please select a value between 1 and 9. For a Business Plan please select a value between 10 and 49. For a Education Plan please select a value between 20 and 149. For a Free Trial Plan please select a value between 1 and 9999.', ) type: str = Field( ..., description='Account base <a href="https://marketplace.zoom.us/docs/api-reference/other-references/plans">plan type.</a>', ) class AccountsAccountIdPlansBaseStatusPatchRequest(BaseModel): action: str = Field( ..., description='The action that needs to be taken for this sub account. Value must be set to "cancel".', ) comment: Optional[str] = Field( None, description='Additional comments about the cancellation decision.' ) reason: Optional[Reason] = Field( None, description='The reason for the cancellation of plan. Reason options:<br>`1` - I am no longer working remote.<br>`2` - I had challenges getting the support I needed.<br>`3` - Features in the Basic Free Plan are sufficient.<br>`4` - The expense is too high.<br>`5` - I purchased the wrong product.<br> `6` - Paid purchase not needed right now, will repurchase in the future.', ) class AccountsAccountIdPlansBaseStatusPatchRequest1(BaseModel): action: str = Field( ..., description='The action that needs to be taken for this sub account. Value must be set to "cancel".', ) comment: Optional[str] = Field( None, description='Additional comments about the cancellation decision.' ) reason: Optional[Reason] = Field( None, description='The reason for the cancellation of plan. Reason options:<br>`1` - I am no longer working remote.<br>`2` - I had challenges getting the support I needed.<br>`3` - Features in the Basic Free Plan are sufficient.<br>`4` - The expense is too high.<br>`5` - I purchased the wrong product.<br> `6` - Paid purchase not needed right now, will repurchase in the future.', ) class AccountsAccountIdPlansBaseStatusPatchResponse(BaseModel): pass class PlanBaseItem(BaseModel): hosts: Optional[int] = Field( None, description='Number of hosts under the base plan.' ) type: Optional[str] = Field(None, description='Type of the base plan. ') usage: Optional[int] = Field( None, description='Total number of usage of this plan.' ) class PlanLargeMeetingItem7(BaseModel): hosts: Optional[int] = Field(None, description='Number of hosts in this plan. ') type: Optional[str] = Field(None, description='Large meeting Plan Type') usage: Optional[int] = Field( None, description='Number of usages for this account plan.' ) class PlanRecording(BaseModel): free_storage: Optional[str] = Field(None, description='Recording free storage.') free_storage_usage: Optional[str] = Field( None, description='Amount of free storage used.' ) plan_storage: Optional[str] = Field(None, description='Recording plan storage.') plan_storage_exceed: Optional[str] = None plan_storage_usage: Optional[str] = Field( None, description='Recording storage usage.' ) type: Optional[str] = Field(None, description='Recording plan type.') class PlanUnited(BaseModel): hosts: Optional[int] = Field(None, description='Number of licenses purchased.') name: Optional[str] = Field(None, description='Name of the plan.') type: Optional[str] = Field( None, description='Plan [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-united-plans).', ) usage: Optional[int] = Field( None, description='Number of licenses that are already being used.' ) class PlanWebinarItem7(BaseModel): hosts: Optional[int] = Field(None, description='The number of hosts in this plan.') type: Optional[str] = Field( None, description='The type of Webinar plan for the account.' ) usage: Optional[int] = Field(None, description='The total number of plan usage.') class PlanZoomRoom(BaseModel): hosts: Optional[int] = Field(None, description='The number of hosts in this plan.') type: Optional[str] = Field(None, description='THe plan type for Zoom room plan.') usage: Optional[int] = Field( None, description='The total number of usage for this plan.' ) class AccountsAccountIdPlansUsageGetResponse(BaseModel): plan_base: Optional[List[PlanBaseItem]] = Field( None, description='The base plan subscribed for the sub account.' ) plan_large_meeting: Optional[List[PlanLargeMeetingItem7]] = Field( None, description='Large Meeting Plan' ) plan_recording: Optional[PlanRecording] = Field(None, description='Recording Plan') plan_united: Optional[PlanUnited] = Field( None, description='[Zoom United](https://zoom.us/pricing/zoom-bundles) plan.' ) plan_webinar: Optional[List[PlanWebinarItem7]] = Field( None, description='Webinar Plan' ) plan_zoom_rooms: Optional[List[PlanZoomRoom]] = Field( None, description='Zoom Rooms Plan' ) class AccountsAccountIdPlansUsageGetResponse1(BaseModel): plan_base: Optional[List[PlanBaseItem]] = Field( None, description='The base plan subscribed for the sub account.' ) plan_large_meeting: Optional[List[PlanLargeMeetingItem7]] = Field( None, description='Large Meeting Plan' ) plan_recording: Optional[PlanRecording] = Field(None, description='Recording Plan') plan_united: Optional[PlanUnited] = Field( None, description='[Zoom United](https://zoom.us/pricing/zoom-bundles) plan.' ) plan_webinar: Optional[List[PlanWebinarItem7]] = Field( None, description='Webinar Plan' ) plan_zoom_rooms: Optional[List[PlanZoomRoom]] = Field( None, description='Zoom Rooms Plan' ) class FileType(Enum): MP4 = 'MP4' M4A = 'M4A' CHAT = 'CHAT' TRANSCRIPT = 'TRANSCRIPT' CC = 'CC' CSV = 'CSV' TB = 'TB' class RecordingType(Enum): shared_screen_with_speaker_view_CC_ = 'shared_screen_with_speaker_view(CC)' shared_screen_with_speaker_view = 'shared_screen_with_speaker_view' shared_screen_with_gallery_view = 'shared_screen_with_gallery_view' active_speaker = 'active_speaker' gallery_view = 'gallery_view' shared_screen = 'shared_screen' audio_only = 'audio_only' audio_transcript = 'audio_transcript' chat_file = 'chat_file' poll = 'poll' host_video = 'host_video' closed_caption = 'closed_caption' timeline = 'timeline' thumbnail = 'thumbnail' class Status24(Enum): completed = 'completed' processing = 'processing' class RecordingFile3(BaseModel): download_url: Optional[str] = Field( None, description='The URL using which the recording can be downloaded' ) file_size: Optional[float] = Field( None, description='The size of the recording file in bytes.' ) file_type: Optional[FileType] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n* `MP4`: Video file of the recording.<br>\n* `M4A` Audio-only file of the recording.<br>\n* `TB`: Timestamp file of the recording in JSON format.<br> \n* `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> \n* `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>\n* `CC`: File containing closed captions of the recording in VTT file format.<br>\n* `CSV`: File containing polling data in csv format.\n\nA recording file object with file type of either `CC` or `TB` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='Recording ID. Identifier for the recording.' ) meeting_id: Optional[str] = Field( None, description='Universally unique identifier of the meeting instance that was being recorded.', ) play_url: Optional[str] = Field( None, description='The URL using which recording can be played.' ) recording_end: Optional[str] = Field( None, description='The date and time at which the recording ended.' ) recording_start: Optional[str] = Field( None, description='The date and time at which the recording started.' ) recording_type: Optional[RecordingType] = Field( None, description='The recording type. The value of this field can be one of the following:<br>\n* `shared_screen_with_speaker_view(CC)`\n* `shared_screen_with_speaker_view`\n* `shared_screen_with_gallery_view`\n* `shared_screen`\n* `active_speaker`\n* `gallery_view`\n* `audio_only`\n* `audio_transcript`\n* `chat_file`\n* `host_video`\n* `closed_caption`\n* `poll`\n* `timeline`\n* `thumbnail`\n', ) status: Optional[Status24] = Field( None, description='The status of the recording, either `completed` or `processing`. ', ) class Meeting4(BaseModel): duration: Optional[int] = Field( None, description='The scheduled duration of the meeting.' ) host_id: Optional[str] = Field( None, description='User ID of the user who is set as the host of the meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - Unique Identifier of a meeting, also known as Meeting Number.', ) recording_count: Optional[int] = Field( None, description='The total number of recordings retrieved from the account.' ) recording_files: Optional[List[RecordingFile3]] = Field( None, description='Recording files object' ) start_time: Optional[datetime] = Field( None, description='The date and time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[int] = Field( None, description='The total size of the meeting in bytes.' ) uuid: Optional[str] = Field( None, description='Universally Unique Identifier of a meeting instance. Each meeting instance will have its own meeting UUID.', ) class AccountsAccountIdRecordingsGetResponse(BaseModel): from_: Optional[datetime] = Field( None, alias='from', description="The start date for the monthly range for which you would like to retrieve recordings. The maximum range can be a month. If no value is provided for this field, the default will be current date. For example, if you make the API request on June 30, 2020, without providing the “from” and “to” parameters, by default the value of 'from' field will be “2020-06-30” and the value of the 'to' field will be “2020-07-01”.", ) meetings: Optional[List[Meeting4]] = Field(None, description='Meetings Object') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) to: Optional[datetime] = Field( None, description='The end date for the monthly range for which you would like to retrieve recordings. The maximum range can be a month.', ) total_records: Optional[int] = Field( None, description='Total number of records found for this request across all pages.', ) class RecordingFile4(BaseModel): download_url: Optional[str] = Field( None, description='The URL using which the recording can be downloaded' ) file_size: Optional[float] = Field( None, description='The size of the recording file in bytes.' ) file_type: Optional[FileType] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n* `MP4`: Video file of the recording.<br>\n* `M4A` Audio-only file of the recording.<br>\n* `TB`: Timestamp file of the recording in JSON format.<br> \n* `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> \n* `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>\n* `CC`: File containing closed captions of the recording in VTT file format.<br>\n* `CSV`: File containing polling data in csv format.\n\nA recording file object with file type of either `CC` or `TB` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='Recording ID. Identifier for the recording.' ) meeting_id: Optional[str] = Field( None, description='Universally unique identifier of the meeting instance that was being recorded.', ) play_url: Optional[str] = Field( None, description='The URL using which recording can be played.' ) recording_end: Optional[str] = Field( None, description='The date and time at which the recording ended.' ) recording_start: Optional[str] = Field( None, description='The date and time at which the recording started.' ) recording_type: Optional[RecordingType] = Field( None, description='The recording type. The value of this field can be one of the following:<br>\n* `shared_screen_with_speaker_view(CC)`\n* `shared_screen_with_speaker_view`\n* `shared_screen_with_gallery_view`\n* `shared_screen`\n* `active_speaker`\n* `gallery_view`\n* `audio_only`\n* `audio_transcript`\n* `chat_file`\n* `host_video`\n* `closed_caption`\n* `poll`\n* `timeline`\n* `thumbnail`\n', ) status: Optional[Status24] = Field( None, description='The status of the recording, either `completed` or `processing`. ', ) class Meeting5(BaseModel): duration: Optional[int] = Field( None, description='The scheduled duration of the meeting.' ) host_id: Optional[str] = Field( None, description='User ID of the user who is set as the host of the meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - Unique Identifier of a meeting, also known as Meeting Number.', ) recording_count: Optional[int] = Field( None, description='The total number of recordings retrieved from the account.' ) recording_files: Optional[List[RecordingFile4]] = Field( None, description='Recording files object' ) start_time: Optional[datetime] = Field( None, description='The date and time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[int] = Field( None, description='The total size of the meeting in bytes.' ) uuid: Optional[str] = Field( None, description='Universally Unique Identifier of a meeting instance. Each meeting instance will have its own meeting UUID.', ) class AccountsAccountIdRecordingsGetResponse1(BaseModel): from_: Optional[datetime] = Field( None, alias='from', description="The start date for the monthly range for which you would like to retrieve recordings. The maximum range can be a month. If no value is provided for this field, the default will be current date. For example, if you make the API request on June 30, 2020, without providing the “from” and “to” parameters, by default the value of 'from' field will be “2020-06-30” and the value of the 'to' field will be “2020-07-01”.", ) meetings: Optional[List[Meeting5]] = Field(None, description='Meetings Object') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) to: Optional[datetime] = Field( None, description='The end date for the monthly range for which you would like to retrieve recordings. The maximum range can be a month.', ) total_records: Optional[int] = Field( None, description='Total number of records found for this request across all pages.', ) class Option(Enum): meeting_authentication = 'meeting_authentication' recording_authentication = 'recording_authentication' class EmailNotification8(BaseModel): alternative_host_reminder: Optional[bool] = Field( None, description='Notify when an alternative host is set or removed from a meeting.', ) cancel_meeting_reminder: Optional[bool] = Field( None, description='Notify the host and participants when a meeting is cancelled.', ) cloud_recording_avaliable_reminder: Optional[bool] = Field( None, description='Notify host when cloud recording is available.' ) jbh_reminder: Optional[bool] = Field( None, description='Notify the host when participants join the meeting before them.', ) low_host_count_reminder: Optional[bool] = Field( None, description='Notify user when host licenses are running low.' ) schedule_for_reminder: Optional[bool] = Field( None, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class Feature4(BaseModel): meeting_capacity: Optional[int] = Field( None, description='Set the maximum number of participants a host can have in a single meeting.', ) class DataCenterRegions6(Enum): EU = 'EU' HK = 'HK' AU = 'AU' IN = 'IN' TY = 'TY' CN = 'CN' US = 'US' CA = 'CA' class VirtualBackgroundSettings6(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting8(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings6] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class Profile5(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Settings17(BaseModel): audio_file: Optional[bool] = Field( None, description='Include in-meeting and/or in-webinar audio in the archive.' ) cc_transcript_file: Optional[bool] = Field( None, description='Include closed caption or transcript in the archive.' ) chat_file: Optional[bool] = Field( None, description='Include in-meeting chat in the archive.' ) chat_with_sender_email: Optional[bool] = Field( None, description='Include user email in in-meeting chat file.' ) video_file: Optional[bool] = Field( None, description='Include in-meeting and/or in-webinar video in the archive.' ) class Archive3(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type86] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class RecordingPasswordRequirement6(BaseModel): have_letter: Optional[bool] = Field( None, description='Indicates whether or not password must contain at least one alphabetical letter (a, b, c..).', ) have_number: Optional[bool] = Field( None, description='Indicates whether or not password must contain at least one number(1, 2, 3..).', ) have_special_character: Optional[bool] = Field( None, description='Indicates whether or not password must contain at least one special character(!, @, #..).', ) length: Optional[conint(le=10)] = Field( None, description='Minimum required length for the password.' ) only_allow_numeric: Optional[bool] = Field( None, description='Indicates whether or not password must contain only numeric characters.', ) class Recording9(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive3] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement6] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class MeetingPasswordRequirement11(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class ScheduleMeeting8(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement11] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Security2(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class TelephonyRegions8(BaseModel): allowed_values: Optional[List[str]] = Field( None, description='Telephony region options provided by Zoom to select from.' ) selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony8(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions8] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class Tsp8(BaseModel): call_out: Optional[bool] = Field(None, description='Call Out') call_out_countries: Optional[List] = Field( None, description='Call Out Countries/Regions' ) display_toll_free_numbers: Optional[bool] = Field( None, description='Display toll-free numbers' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show international numbers link on the invitation email' ) class AccountsAccountIdSettingsGetResponse1(BaseModel): email_notification: Optional[EmailNotification8] = Field( None, description='Account Settings: Notification.' ) feature: Optional[Feature4] = Field(None, description='Account Settings: Feature.') in_meeting: Optional[InMeeting8] = Field( None, description='Account Settings: In Meeting.' ) integration: Optional[Integration] = Field( None, description='Account Settings: Integration.' ) profile: Optional[Profile5] = Field(None, title='Profile') recording: Optional[Recording9] = Field( None, description='Account Settings: Recording.' ) schedule_meeting: Optional[ScheduleMeeting8] = Field( None, description='Account Settings: Schedule Meeting.' ) security: Optional[Security2] = Field( None, description='[Security settings](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) of an Account.', ) telephony: Optional[Telephony8] = Field( None, description='Account Settings: Telephony.' ) tsp: Optional[Tsp8] = Field(None, description='Account Settings: TSP.') zoom_rooms: Optional[ZoomRooms] = Field( None, description='Account Settings: Zoom Rooms.' ) class Type88(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption11(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type88] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class AccountsAccountIdSettingsGetResponse2(BaseModel): authentication_options: Optional[List[AuthenticationOption11]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type89(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption12(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type89] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class AccountsAccountIdSettingsGetResponse3(BaseModel): authentication_options: Optional[List[AuthenticationOption12]] = None recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class AccountsAccountIdSettingsGetResponse4(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class MeetingPasswordRequirement12(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings5(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity5(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement12] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings5] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdSettingsGetResponse5(BaseModel): meeting_security: Optional[MeetingSecurity5] = None class AccountsAccountIdSettingsGetResponse( RootModel[ Union[ AccountsAccountIdSettingsGetResponse1, Union[ AccountsAccountIdSettingsGetResponse2, AccountsAccountIdSettingsGetResponse3, ], AccountsAccountIdSettingsGetResponse4, AccountsAccountIdSettingsGetResponse5, ] ] ): root: Union[ AccountsAccountIdSettingsGetResponse1, Union[ AccountsAccountIdSettingsGetResponse2, AccountsAccountIdSettingsGetResponse3 ], AccountsAccountIdSettingsGetResponse4, AccountsAccountIdSettingsGetResponse5, ] class VirtualBackgroundSettings7(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting9(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings7] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class Profile6(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type90(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive4(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type90] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording10(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive4] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement6] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class MeetingPasswordRequirement13(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class ScheduleMeeting9(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement13] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Security3(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class Telephony9(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions8] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class AccountsAccountIdSettingsGetResponse7(BaseModel): email_notification: Optional[EmailNotification8] = Field( None, description='Account Settings: Notification.' ) feature: Optional[Feature4] = Field(None, description='Account Settings: Feature.') in_meeting: Optional[InMeeting9] = Field( None, description='Account Settings: In Meeting.' ) integration: Optional[Integration] = Field( None, description='Account Settings: Integration.' ) profile: Optional[Profile6] = Field(None, title='Profile') recording: Optional[Recording10] = Field( None, description='Account Settings: Recording.' ) schedule_meeting: Optional[ScheduleMeeting9] = Field( None, description='Account Settings: Schedule Meeting.' ) security: Optional[Security3] = Field( None, description='[Security settings](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) of an Account.', ) telephony: Optional[Telephony9] = Field( None, description='Account Settings: Telephony.' ) tsp: Optional[Tsp8] = Field(None, description='Account Settings: TSP.') zoom_rooms: Optional[ZoomRooms] = Field( None, description='Account Settings: Zoom Rooms.' ) class Type91(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption13(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type91] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class AccountsAccountIdSettingsGetResponse8(BaseModel): authentication_options: Optional[List[AuthenticationOption13]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type92(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption14(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type92] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class AccountsAccountIdSettingsGetResponse9(BaseModel): authentication_options: Optional[List[AuthenticationOption14]] = None recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class AccountsAccountIdSettingsGetResponse10(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class MeetingPasswordRequirement14(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings6(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity6(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement14] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings6] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdSettingsGetResponse11(BaseModel): meeting_security: Optional[MeetingSecurity6] = None class AccountsAccountIdSettingsGetResponse6( RootModel[ Union[ AccountsAccountIdSettingsGetResponse7, Union[ AccountsAccountIdSettingsGetResponse8, AccountsAccountIdSettingsGetResponse9, ], AccountsAccountIdSettingsGetResponse10, AccountsAccountIdSettingsGetResponse11, ] ] ): root: Union[ AccountsAccountIdSettingsGetResponse7, Union[ AccountsAccountIdSettingsGetResponse8, AccountsAccountIdSettingsGetResponse9 ], AccountsAccountIdSettingsGetResponse10, AccountsAccountIdSettingsGetResponse11, ] class Option2(Enum): meeting_authentication = 'meeting_authentication' recording_authentication = 'recording_authentication' security = 'security' meeting_security = 'meeting_security' class VirtualBackgroundSettings8(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting10(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings8] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class Profile7(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type93(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive5(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type93] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording11(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive5] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement6] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class MeetingPasswordRequirement15(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class ScheduleMeeting10(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement15] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Security4(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class TelephonyRegions10(BaseModel): selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony10(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions10] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class AccountsAccountIdSettingsPatchRequest1(BaseModel): email_notification: Optional[EmailNotification8] = Field( None, description='Account Settings: Notification.' ) feature: Optional[Feature4] = Field(None, description='Account Settings: Feature.') in_meeting: Optional[InMeeting10] = Field( None, description='Account Settings: In Meeting.' ) integration: Optional[Integration] = Field( None, description='Account Settings: Integration.' ) profile: Optional[Profile7] = Field(None, title='Profile') recording: Optional[Recording11] = Field( None, description='Account Settings: Recording.' ) schedule_meeting: Optional[ScheduleMeeting10] = Field( None, description='Account Settings: Schedule Meeting.' ) security: Optional[Security4] = Field( None, description='[Security settings](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) of an Account.', ) telephony: Optional[Telephony10] = Field( None, description='Account Settings Update: Telephony.' ) tsp: Optional[Tsp8] = Field(None, description='Account Settings: TSP.') zoom_rooms: Optional[ZoomRooms] = Field( None, description='Account Settings: Zoom Rooms.' ) class Action12(Enum): update = 'update' delete = 'delete' add = 'add' class Type94(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption15(BaseModel): action: Optional[Action12] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to join your meetings or webinars. ', ) id: Optional[str] = Field( None, description=' Authentication ID. If you are creating an authentication profile, you do not need to provide this field. The id field will be generated in the response once this API request is completed successfully. You can also use the Get Account Settings API with query parameter set to `meeting_authentication` to list the authentication id.<br><br>\n Use this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type94] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class AccountsAccountIdSettingsPatchRequest2(BaseModel): authentication_option: Optional[AuthenticationOption15] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='If set to "true", only authenticated users can join meetings. The method for authentication can be defined in the "authentication_option". ', ) class Type95(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption16(BaseModel): action: Optional[Action12] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to view the recordings. ', ) id: Optional[str] = Field( None, description=' Authentication ID. If you are creating an authentication profile, you do not need to provide this field. The id field will be generated in the response once this API request is completed successfully. You can also use the Get Account Settings API with query parameter set to `meeting_authentication` to list the authentication id.<br><br>\nUse this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type95] = Field( None, description='Specify one authentication type that is to be associated with this authentication configuration:<br>\n* `internally`: This option allows you specify a rule that only signed in users within your account can view the recording.<br>\n * `enforce_login`: This option allows any users to view the recording, as long as they are signed into their Zoom account.<br>\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can view the recording. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.\n\n', ) class AccountsAccountIdSettingsPatchRequest3(BaseModel): authentication_option: Optional[AuthenticationOption16] = Field( None, description='Specify the authentication options for this account.' ) recording_authentication: Optional[bool] = Field( None, description='If set to `true`, only authenticated users can view the cloud recordings.<br><br>\nThe authentication profile **must first be set at the account level via the account settings**, and later can be disabled after enabling on the preferred level - i.e. user level using user settings or at group level via group settings (if you do not want the settings to be enabled on the entire account).', ) class MeetingPasswordRequirement16(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings7(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity7(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement16] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings7] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdSettingsPatchRequest4(BaseModel): meeting_security: Optional[MeetingSecurity7] = None class AccountsAccountIdSettingsPatchRequest( RootModel[ Union[ AccountsAccountIdSettingsPatchRequest1, Union[ AccountsAccountIdSettingsPatchRequest2, AccountsAccountIdSettingsPatchRequest3, ], AccountsAccountIdSettingsPatchRequest4, ] ] ): root: Union[ AccountsAccountIdSettingsPatchRequest1, Union[ AccountsAccountIdSettingsPatchRequest2, AccountsAccountIdSettingsPatchRequest3, ], AccountsAccountIdSettingsPatchRequest4, ] class VirtualBackgroundSettings9(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting11(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Identify guest participants in a meeting or webinar.' ) allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) allow_participants_to_rename: Optional[bool] = Field( None, description='If the value of this field is set to `true`, meeting participants and webinar panelists can be allowed to rename themselves during a meeting or a webinar.\n', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show the Zoom desktop application when sharing screens. ' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) anonymous_question_answer: Optional[bool] = Field( None, description='Allow an anonymous Q&A in a webinar.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description='Enable users to see and add contacts to the "auto-answer group" in the chat contact list. Any call from members of this group will automatically be answered.', ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats so that the host does not need to manually save the chat transcript after the meeting starts.', ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send a message that is visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow a host to type closed captions. Enable a host to assign a participant or third party device to add closed captions. ', ) co_host: Optional[bool] = Field(None, description='Allow the host to add co-hosts.') custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, account owners and admins on paid accounts can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) dscp_audio: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP audio.') dscp_marking: Optional[bool] = Field(None, description='DSCP marking.') dscp_video: Optional[conint(ge=1, le=63)] = Field(None, description='DSCP video.') e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( None, description='Play sound when participants join or leave.<br>`host` - Heard by host only.<br>`all` - Heard by host and all attendees.<br>`none` - Disable.', ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of your camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Add a "Feedback" tab to the Windows Settings or Mac Preferences dialog. Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled on the account or not.', ) group_hd: Optional[bool] = Field( None, description='Activate higher quality video for host and participants.\nPlease note: This will use more bandwidth.', ) meeting_reactions: Optional[bool] = Field( None, description='Enable or disable meeting reactions. <br>\n`true`: Allow meeting participants to communicate without interrupting by reacting with an emoji that shows on their video.<br>\n`false`: Do not enable meeting reactions.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound in their client settings.', ) p2p_connetion: Optional[bool] = Field( None, description='Peer to peer connection while only two people are in a meeting.', ) p2p_ports: Optional[bool] = Field( None, description='Peer to peer listening ports range.' ) polling: Optional[bool] = Field( None, description='Add "Polls" to the meeting controls.' ) ports_range: Optional[str] = Field( '', description='The listening ports range, separated by a comma (ex 55,56). The ports range must be between 1 to 65535.', ) post_meeting_feedback: Optional[bool] = Field( None, description='Display a thumbs up or down survey at the end of each meeting.', ) private_chat: Optional[bool] = Field( None, description='Allow a meeting participant to send a private message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( None, description='Allow users to request remote control.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the account or not.', ) screen_sharing: Optional[bool] = Field(None, description='Allow screen sharing.') sending_default_email_invites: Optional[bool] = Field( None, description='Only show the default email when sending email invites.' ) show_a_join_from_your_browser_link: Optional[bool] = Field( None, description='If the value of this field is set to `true`, you will allow participants to join a meeting directly from their browser and bypass the Zoom application download process. This is a workaround for participants who are unable to download, install, or run applications. Note that the meeting experience from the browser is limited.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show the meeting control toolbar.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio in their client settings.' ) use_html_format_email: Optional[bool] = Field( None, description='Use HTML formatted email for the Outlook plugin.' ) virtual_background: Optional[bool] = Field( None, description='Allow users to replace their background with any selected image. Choose or upload an image in the Zoom desktop application settings.', ) virtual_background_settings: Optional[VirtualBackgroundSettings9] = Field( None, description='Settings to manage virtual background.' ) watermark: Optional[bool] = Field( None, description='Add a watermark when viewing a shared screen.' ) webinar_question_answer: Optional[bool] = Field( None, description='Allow a Q&A in a webinar.' ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Workplace by facebook.' ) class Profile8(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type96(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive6(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type96] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording12(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Cloud recordings are only accessible to account members. People outside of your organization cannot open links that provide access to cloud recordings.', ) allow_recovery_deleted_cloud_recordings: Optional[bool] = Field( None, description='Allow recovery of deleted cloud recordings from trash. \nIf the value of this field is set to `true`, deleted cloud recordings will be kept in trash for 30 days after deletion and can be recovered within that period. ', ) archive: Optional[Archive6] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted with archiving solution access by the Zoom support team.', ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to permanantly delete recordings automatically after a specified number of days.', ) auto_delete_cmr_days: Optional[int] = Field( None, description="When `auto_delete_cmr` function is 'true' this value will set the number of days before the auto deletion of cloud recordings.", ) auto_recording: Optional[AutoRecording] = Field( None, description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting in the cloud.' ) cloud_recording_download: Optional[bool] = Field( None, description='Cloud recording downloads.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Only the host can download cloud recordings.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='If the value of this field is set to `true`, hosts will be able to delete the recordings. If this option is set to `false`, the recordings cannot be deleted by the host and only admin can delete them.\n', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting using a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='Record the gallery view with a shared screen.' ) record_speaker_view: Optional[bool] = Field( None, description='Record the active speaker with a shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of the meeting or webinar to the cloud.', ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement6] = Field( None, description='This object represents the minimum password requirements set for recordings via Account Recording Settings.', ) required_password_for_existing_cloud_recordings: Optional[bool] = Field( None, description='Require a passcode to access existing cloud recordings.' ) save_chat_text: Optional[bool] = Field( None, description='Save the chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class MeetingPasswordRequirement17(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the password must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the password must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the password must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar password needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the password must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided password is weak.', ) class ScheduleMeeting11(BaseModel): audio_type: Optional[AudioType] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - 3rd party audio conference.', ) enforce_login: Optional[bool] = Field( None, description='Only Zoom users who are signed in can join meetings.' ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with a specified domain can join the meeting. ', ) enforce_login_with_domains: Optional[bool] = Field( None, description='Only signed in users with a specific domain can join meetings.', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a password for Personal Meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with the host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement17] = Field( None, description='Account wide meeting/webinar [password requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) not_store_meeting_topic: Optional[bool] = Field( None, description='Always display "Zoom Meeting" as the meeting topic.' ) participant_video: Optional[bool] = Field( None, description='Start meetings with the participant video on. Participants can change this setting during the meeting.', ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a password for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings] = Field( None, description='Require a password for a meeting held using Personal Meeting ID (PMI) This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a password when scheduling new meetings. This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Security5(BaseModel): admin_change_name_pic: Optional[bool] = Field( None, description="Only account administrators can change a user's username and picture.", ) hide_billing_info: Optional[bool] = Field( None, description='Hide billing information.' ) import_photos_from_devices: Optional[bool] = Field( None, description='Allow users to import photos from a photo library on a device.', ) password_requirement: Optional[PasswordRequirement] = Field( None, description="This object refers to the [enhanced password rules](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) that allows Zoom account admins and owners to apply extra requiremets to the users' Zoom login password. ", ) sign_again_period_for_inactivity_on_client: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Client app after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Client. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`45`: 45 minutes<br>\n`60`: 60 minutes<br>\n`90`: 90 minutes<br>\n`120`: 120 minutes\n', ) sign_again_period_for_inactivity_on_web: Optional[int] = Field( None, description='Settings for User Sign In interval requirements after a period of inactivity. If enabled, this setting forces automatic logout of users in Zoom Web Portal after a set amount of time. <br>\n\nIf this setting is disabled, the value of this field will be `0`. If the setting is enabled, the value of this field will indicate the **period of inactivity** in minutes after which, an inactive user will be automatically logged out of the Zoom Web Portal. The value for the period of inactivity can be one of the following:<br>\n\n`5`: 5 minutes<br>\n`10`: 10 minutes<br>\n`15`: 15 minutes<br>\n`30`: 30 minutes<br>\n`60`: 60 minutes<br>\n`120`: 120 minutes\n\n \n\n', ) sign_in_with_two_factor_auth: Optional[SignInWithTwoFactorAuth] = Field( None, description='Settings for 2FA( [two factor authentication](https://support.zoom.us/hc/en-us/articles/360038247071) ). The value can be one of the following:\n`all`: Two factor authentication will be enabled for all users in the account.<br>\n`none`: Two factor authentication is disabled.<br>\n`group`: Two factor authentication will be enabled for users belonging to specific groups. If 2FA is enabled for certain groups, the group IDs of the group(s) will be provided in the `sign_in_with_two_factor_auth_groups` field.<br>\n`role`: Two factor authentication will be enabled only for users assigned with specific roles in the account. If 2FA is enabled for specific roles, the role IDs will be provided in the\n`sign_in_with_two_factor_auth_roles` field.\n', ) sign_in_with_two_factor_auth_groups: Optional[List[str]] = Field( None, description='This field contains group IDs of groups that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `group`', ) sign_in_with_two_factor_auth_roles: Optional[List[str]] = Field( None, description='This field contains role IDs of roles that have 2FA enabled. This field is only returned if the value of `sign_in_with_two_factor_auth` is `role`.', ) class Telephony11(BaseModel): audio_conference_info: Optional[str] = Field( None, description='Third party audio conference info.' ) telephony_regions: Optional[TelephonyRegions10] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Users can join the meeting using the existing third party audio configuration.', ) class AccountsAccountIdSettingsPatchRequest6(BaseModel): email_notification: Optional[EmailNotification8] = Field( None, description='Account Settings: Notification.' ) feature: Optional[Feature4] = Field(None, description='Account Settings: Feature.') in_meeting: Optional[InMeeting11] = Field( None, description='Account Settings: In Meeting.' ) integration: Optional[Integration] = Field( None, description='Account Settings: Integration.' ) profile: Optional[Profile8] = Field(None, title='Profile') recording: Optional[Recording12] = Field( None, description='Account Settings: Recording.' ) schedule_meeting: Optional[ScheduleMeeting11] = Field( None, description='Account Settings: Schedule Meeting.' ) security: Optional[Security5] = Field( None, description='[Security settings](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_bf8a25f6-9a66-447a-befd-f02ed3404f89) of an Account.', ) telephony: Optional[Telephony11] = Field( None, description='Account Settings Update: Telephony.' ) tsp: Optional[Tsp8] = Field(None, description='Account Settings: TSP.') zoom_rooms: Optional[ZoomRooms] = Field( None, description='Account Settings: Zoom Rooms.' ) class Type97(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption17(BaseModel): action: Optional[Action12] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to join your meetings or webinars. ', ) id: Optional[str] = Field( None, description=' Authentication ID. If you are creating an authentication profile, you do not need to provide this field. The id field will be generated in the response once this API request is completed successfully. You can also use the Get Account Settings API with query parameter set to `meeting_authentication` to list the authentication id.<br><br>\n Use this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type97] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class AccountsAccountIdSettingsPatchRequest7(BaseModel): authentication_option: Optional[AuthenticationOption17] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='If set to "true", only authenticated users can join meetings. The method for authentication can be defined in the "authentication_option". ', ) class Type98(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption18(BaseModel): action: Optional[Action12] = Field( None, description='Specify the action that you would like to take via this API request:<br>\n* `add` : Choose this value if you are adding an authentication option.\n* `update`: Choose this value if you are updating an existing authentication option.\n* `delete`: Choose this value if you are deleting an existing authentication option.', ) default_option: Optional[bool] = Field( None, description='Specify whether you would like to set this authentication option as the default option or not.', ) domains: Optional[str] = Field( None, description='If you chose `enforce_login_with_domains` as the authentication type, specify the domain(s) that you want to allow to view the recordings. ', ) id: Optional[str] = Field( None, description=' Authentication ID. If you are creating an authentication profile, you do not need to provide this field. The id field will be generated in the response once this API request is completed successfully. You can also use the Get Account Settings API with query parameter set to `meeting_authentication` to list the authentication id.<br><br>\nUse this field or the `name` field to identify the associated authentication option that you would like to update or delete.', ) name: Optional[str] = Field( None, description='Unique name for the authentication option.' ) type: Optional[Type98] = Field( None, description='Specify one authentication type that is to be associated with this authentication configuration:<br>\n* `internally`: This option allows you specify a rule that only signed in users within your account can view the recording.<br>\n * `enforce_login`: This option allows any users to view the recording, as long as they are signed into their Zoom account.<br>\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can view the recording. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.\n\n', ) class AccountsAccountIdSettingsPatchRequest8(BaseModel): authentication_option: Optional[AuthenticationOption18] = Field( None, description='Specify the authentication options for this account.' ) recording_authentication: Optional[bool] = Field( None, description='If set to `true`, only authenticated users can view the cloud recordings.<br><br>\nThe authentication profile **must first be set at the account level via the account settings**, and later can be disabled after enabling on the preferred level - i.e. user level using user settings or at group level via group settings (if you do not want the settings to be enabled on the entire account).', ) class MeetingPasswordRequirement18(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings8(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity8(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement18] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings8] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class AccountsAccountIdSettingsPatchRequest9(BaseModel): meeting_security: Optional[MeetingSecurity8] = None class AccountsAccountIdSettingsPatchRequest5( RootModel[ Union[ AccountsAccountIdSettingsPatchRequest6, Union[ AccountsAccountIdSettingsPatchRequest7, AccountsAccountIdSettingsPatchRequest8, ], AccountsAccountIdSettingsPatchRequest9, ] ] ): root: Union[ AccountsAccountIdSettingsPatchRequest6, Union[ AccountsAccountIdSettingsPatchRequest7, AccountsAccountIdSettingsPatchRequest8, ], AccountsAccountIdSettingsPatchRequest9, ] class AccountsAccountIdSettingsVirtualBackgroundsPostRequest(BaseModel): file: Optional[str] = Field(None, description="Provide the file's path here.") class AccountsAccountIdSettingsVirtualBackgroundsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the file.') is_default: Optional[bool] = Field( None, description='Indicates whether or not this file is the default virtual background file.', ) name: Optional[str] = Field(None, description='File name.') size: Optional[str] = Field(None, description='File size.') type: Optional[str] = Field(None, description='File type.') class CalloutCountry(BaseModel): code: Optional[str] = Field(None, description='Country code.') id: Optional[str] = Field(None, description='Two letter country Id.') name: Optional[str] = Field(None, description='Name of the country.') class AccountsAccountIdSipTrunkCalloutCountriesGetResponse(BaseModel): callout_countries: Optional[List[CalloutCountry]] = None total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class AccountsAccountIdSipTrunkCalloutCountriesGetResponse1(BaseModel): callout_countries: Optional[List[CalloutCountry]] = None total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class CalloutCountry2(BaseModel): id: str = Field( ..., description='Two letter country code of the call-out country.' ) class AccountsAccountIdSipTrunkCalloutCountriesPostRequest(BaseModel): callout_countries: List[CalloutCountry2] = Field( ..., description='List of callout countries.', max_length=30, min_length=1 ) class AccountsAccountIdSipTrunkCalloutCountriesPostRequest1(BaseModel): callout_countries: List[CalloutCountry2] = Field( ..., description='List of callout countries.', max_length=30, min_length=1 ) class CalloutCountry4(BaseModel): code: Optional[str] = Field(None, description='Country code for Phone number.') id: Optional[str] = Field(None, description='Country ID.') name: Optional[str] = Field(None, description='Name of the country.') class AccountsAccountIdSipTrunkCalloutCountriesPostResponse(BaseModel): callout_countries: Optional[List[CalloutCountry4]] = Field( None, description='List of Call-out countries.' ) class AccountsAccountIdSipTrunkCalloutCountriesPostResponse1(BaseModel): callout_countries: Optional[List[CalloutCountry4]] = Field( None, description='List of Call-out countries.' ) class Languages(Enum): en_GB = 'en-GB' en_US = 'en-US' de_DE = 'de-DE' class Type99(Enum): integer_0 = 0 integer_1 = 1 class InternalNumber(BaseModel): allow_for_external_meetings: Optional[bool] = Field( None, description='Control whether the number can be used to attend 3rd party meetings.', ) allow_join: Optional[bool] = Field( None, description='Specify whether this number can be used by users to join a meeting or not. <br>\n* `true` : This number can be used to join a meeting. <br>\n* `false`: This number can not be used to join a meeting. \n\nNote that if the value of `visible` field is set to `true`, the value of this field will always be `true`.', ) country: str = Field(..., description='Two letter country code of the country.') display_number: str = Field( ..., description='Phone number with display format. For instance, if the value in the number field is `+1888888000`, the value of this field could be `+1 888 888 000`. ', ) labels: str = Field(..., description='A short description for the phone number.') languages: Languages = Field( ..., description='Specify the language in which this phone number should be displayed. Currently, the only supported languages are `en-GB`, `en-US`, `de-DE`.', ) number: str = Field(..., description='Phone number in E164 format.') type: Type99 = Field( ..., description='Type of phone number. <br>\nThe value can be one of the following:<br>\n* `0` : toll <br>\n* `1` : tollfree ', ) visible: Optional[bool] = Field( None, description='Specify whether you want this number to be visible (in Zoom Client and Zoom Portal) to the account users or not. The value could be one of the following:<br>\n* `true`: Make the number visible. <br>\n* `false`: Hide the number.', ) class AccountsAccountIdSipTrunkInternalNumbersGetResponse(BaseModel): internal_numbers: Optional[List[InternalNumber]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( 30, description='The number of records that you specified to get in the response per page.', ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class InternalNumber1(BaseModel): allow_for_external_meetings: Optional[bool] = Field( None, description='Control whether the number can be used to attend 3rd party meetings.', ) allow_join: Optional[bool] = Field( None, description='Specify whether this number can be used by users to join a meeting or not. <br>\n* `true` : This number can be used to join a meeting. <br>\n* `false`: This number can not be used to join a meeting. \n\nNote that if the value of `visible` field is set to `true`, the value of this field will always be `true`.', ) country: str = Field(..., description='Two letter country code of the country.') display_number: str = Field( ..., description='Phone number with display format. For instance, if the value in the number field is `+1888888000`, the value of this field could be `+1 888 888 000`. ', ) labels: str = Field(..., description='A short description for the phone number.') languages: Languages = Field( ..., description='Specify the language in which this phone number should be displayed. Currently, the only supported languages are `en-GB`, `en-US`, `de-DE`.', ) number: str = Field(..., description='Phone number in E164 format.') type: Type99 = Field( ..., description='Type of phone number. <br>\nThe value can be one of the following:<br>\n* `0` : toll <br>\n* `1` : tollfree ', ) visible: Optional[bool] = Field( None, description='Specify whether you want this number to be visible (in Zoom Client and Zoom Portal) to the account users or not. The value could be one of the following:<br>\n* `true`: Make the number visible. <br>\n* `false`: Hide the number.', ) class AccountsAccountIdSipTrunkInternalNumbersGetResponse1(BaseModel): internal_numbers: Optional[List[InternalNumber1]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( 30, description='The number of records that you specified to get in the response per page.', ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class InternalNumber2(BaseModel): allow_for_external_meetings: Optional[bool] = Field( None, description='Control whether the number can be used to attend 3rd party meetings.', ) allow_join: Optional[bool] = Field( None, description='Specify whether this number can be used by users to join a meeting or not. <br>\n* `true` : This number can be used to join a meeting. <br>\n* `false`: This number can not be used to join a meeting. \n\nNote that if the value of `visible` field is set to `true`, the value of this field will always be `true`.', ) country: str = Field(..., description='Two letter country code of the country.') display_number: str = Field( ..., description='Phone number with display format. For instance, if the value in the number field is `+1888888000`, the value of this field could be `+1 888 888 000`. ', ) labels: str = Field(..., description='A short description for the phone number.') languages: Languages = Field( ..., description='Specify the language in which this phone number should be displayed. Currently, the only supported languages are `en-GB`, `en-US`, `de-DE`.', ) number: str = Field(..., description='Phone number in E164 format.') type: Type99 = Field( ..., description='Type of phone number. <br>\nThe value can be one of the following:<br>\n* `0` : toll <br>\n* `1` : tollfree ', ) visible: Optional[bool] = Field( None, description='Specify whether you want this number to be visible (in Zoom Client and Zoom Portal) to the account users or not. The value could be one of the following:<br>\n* `true`: Make the number visible. <br>\n* `false`: Hide the number.', ) class AccountsAccountIdSipTrunkInternalNumbersPostRequest(BaseModel): internal_numbers: Optional[List[InternalNumber2]] = Field( None, max_length=30, min_length=1 ) class InternalNumber3(BaseModel): allow_for_external_meetings: Optional[bool] = Field( None, description='Control whether the number can be used to attend 3rd party meetings.', ) allow_join: Optional[bool] = Field( None, description='Specify whether this number can be used by users to join a meeting or not. <br>\n* `true` : This number can be used to join a meeting. <br>\n* `false`: This number can not be used to join a meeting. \n\nNote that if the value of `visible` field is set to `true`, the value of this field will always be `true`.', ) country: str = Field(..., description='Two letter country code of the country.') display_number: str = Field( ..., description='Phone number with display format. For instance, if the value in the number field is `+1888888000`, the value of this field could be `+1 888 888 000`. ', ) labels: str = Field(..., description='A short description for the phone number.') languages: Languages = Field( ..., description='Specify the language in which this phone number should be displayed. Currently, the only supported languages are `en-GB`, `en-US`, `de-DE`.', ) number: str = Field(..., description='Phone number in E164 format.') type: Type99 = Field( ..., description='Type of phone number. <br>\nThe value can be one of the following:<br>\n* `0` : toll <br>\n* `1` : tollfree ', ) visible: Optional[bool] = Field( None, description='Specify whether you want this number to be visible (in Zoom Client and Zoom Portal) to the account users or not. The value could be one of the following:<br>\n* `true`: Make the number visible. <br>\n* `false`: Hide the number.', ) class AccountsAccountIdSipTrunkInternalNumbersPostRequest1(BaseModel): internal_numbers: Optional[List[InternalNumber3]] = Field( None, max_length=30, min_length=1 ) class InternalNumber4(BaseModel): allow_for_external_meetings: Optional[bool] = Field( None, description='Control whether the number can be used to attend 3rd party meetings.', ) allow_join: Optional[bool] = Field( None, description='Specify whether this number can be used by users to join a meeting or not. <br>\n* `true` : This number can be used to join a meeting. <br>\n* `false`: This number can not be used to join a meeting. \n\nNote that if the value of `visible` field is set to `true`, the value of this field will always be `true`.', ) country: str = Field(..., description='Two letter country code of the country.') display_number: str = Field( ..., description='Phone number with display format. For instance, if the value in the number field is `+1888888000`, the value of this field could be `+1 888 888 000`. ', ) id: Optional[str] = Field( None, description='Unique identifier of the internal number.' ) labels: str = Field(..., description='A short description for the phone number.') languages: Languages = Field( ..., description='Specify the language in which this phone number should be displayed. Currently, the only supported languages are `en-GB`, `en-US`, `de-DE`.', ) number: str = Field(..., description='Phone number in E164 format.') type: Type99 = Field( ..., description='Type of phone number. <br>\nThe value can be one of the following:<br>\n* `0` : toll <br>\n* `1` : tollfree ', ) visible: Optional[bool] = Field( None, description='Specify whether you want this number to be visible (in Zoom Client and Zoom Portal) to the account users or not. The value could be one of the following:<br>\n* `true`: Make the number visible. <br>\n* `false`: Hide the number.', ) class AccountsAccountIdSipTrunkInternalNumbersPostResponse(BaseModel): internal_numbers: Optional[List[InternalNumber4]] = None class InternalNumber5(BaseModel): allow_for_external_meetings: Optional[bool] = Field( None, description='Control whether the number can be used to attend 3rd party meetings.', ) allow_join: Optional[bool] = Field( None, description='Specify whether this number can be used by users to join a meeting or not. <br>\n* `true` : This number can be used to join a meeting. <br>\n* `false`: This number can not be used to join a meeting. \n\nNote that if the value of `visible` field is set to `true`, the value of this field will always be `true`.', ) country: str = Field(..., description='Two letter country code of the country.') display_number: str = Field( ..., description='Phone number with display format. For instance, if the value in the number field is `+1888888000`, the value of this field could be `+1 888 888 000`. ', ) id: Optional[str] = Field( None, description='Unique identifier of the internal number.' ) labels: str = Field(..., description='A short description for the phone number.') languages: Languages = Field( ..., description='Specify the language in which this phone number should be displayed. Currently, the only supported languages are `en-GB`, `en-US`, `de-DE`.', ) number: str = Field(..., description='Phone number in E164 format.') type: Type99 = Field( ..., description='Type of phone number. <br>\nThe value can be one of the following:<br>\n* `0` : toll <br>\n* `1` : tollfree ', ) visible: Optional[bool] = Field( None, description='Specify whether you want this number to be visible (in Zoom Client and Zoom Portal) to the account users or not. The value could be one of the following:<br>\n* `true`: Make the number visible. <br>\n* `false`: Hide the number.', ) class AccountsAccountIdSipTrunkInternalNumbersPostResponse1(BaseModel): internal_numbers: Optional[List[InternalNumber5]] = None class AccountsAccountIdSipTrunkNumbersPostRequest(BaseModel): phone_numbers: Optional[List[str]] = Field( None, description='Phone number(s) to be assigned to the sub account.' ) class ShowZoomProvidedNumbers(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 class AccountsAccountIdSipTrunkSettingsPatchRequest(BaseModel): enable: Optional[bool] = Field( None, description='Enable or delete the configuration.<br> The values can be one of the following:<br> `true`: Enable configuration.<br> `false`: Delete configuration', ) show_callout_internal_number: Optional[bool] = Field( None, description="If the value of this option is set to `true`, the call-out numbers provided by the Zoom carrier partners will be displayed in the account's list of available call-out numbers in the Zoom Web Portal and Zoom Client.", ) show_zoom_provided_callout_countries: Optional[int] = Field( None, description="If the value of this option is set to `0`, the call-out countries list provided by Zoom will be [displayed](https://support.zoom.us/hc/en-us/articles/200942859-Using-telephone-call-out) in the account's list of available call-out countries. \n\nIf the value of this option is set to `1`, the Zoom provided call-out countries will be hidden from the user's account.<br> \n\nIf the value of this option is set to `2`, all Zoom provided countries will be deleted and only internal countries (provided by carrier partners) will be used.", ) show_zoom_provided_numbers: Optional[ShowZoomProvidedNumbers] = Field( None, description="If the value of this option is set to `0`, the numbers provided by Zoom will be displayed in the account's list of available call-out and call-in numbers in the Zoom Web Portal and Zoom Client. \n\nIf the value of this option is set to `1`, the Zoom provided numbers will be shown in the Zoom Web Portal but will not be used unless specified by the user.<br> \n\nIf the value of this option is set to `2`, all Zoom provided numbers will be deleted and only internal numbers (provided by carrier partners) will be used.", ) class AccountsAccountIdSipTrunkSettingsPatchRequest1(BaseModel): enable: Optional[bool] = Field( None, description='Enable or delete the configuration.<br> The values can be one of the following:<br> `true`: Enable configuration.<br> `false`: Delete configuration', ) show_callout_internal_number: Optional[bool] = Field( None, description="If the value of this option is set to `true`, the call-out numbers provided by the Zoom carrier partners will be displayed in the account's list of available call-out numbers in the Zoom Web Portal and Zoom Client.", ) show_zoom_provided_callout_countries: Optional[int] = Field( None, description="If the value of this option is set to `0`, the call-out countries list provided by Zoom will be [displayed](https://support.zoom.us/hc/en-us/articles/200942859-Using-telephone-call-out) in the account's list of available call-out countries. \n\nIf the value of this option is set to `1`, the Zoom provided call-out countries will be hidden from the user's account.<br> \n\nIf the value of this option is set to `2`, all Zoom provided countries will be deleted and only internal countries (provided by carrier partners) will be used.", ) show_zoom_provided_numbers: Optional[ShowZoomProvidedNumbers] = Field( None, description="If the value of this option is set to `0`, the numbers provided by Zoom will be displayed in the account's list of available call-out and call-in numbers in the Zoom Web Portal and Zoom Client. \n\nIf the value of this option is set to `1`, the Zoom provided numbers will be shown in the Zoom Web Portal but will not be used unless specified by the user.<br> \n\nIf the value of this option is set to `2`, all Zoom provided numbers will be deleted and only internal numbers (provided by carrier partners) will be used.", ) class SipTrunk4(BaseModel): dnis: Optional[str] = Field(None, description='DNIS of the SIP trunk.') id: Optional[str] = Field(None, description='Unique identifier of the sip trunk.') name: Optional[str] = Field(None, description='Name assigned to the SIP trunk.') number_prefix: Optional[str] = Field( None, description='Prefix of the SIP Connected Audio phone number.' ) outbound_caller_id: Optional[str] = Field( None, description='Outbound caller Id assigned to the trunk.' ) sip_server_address: Optional[str] = Field( None, description='IP address or domain of the SIP trunk.' ) class AccountsAccountIdSipTrunkTrunksGetResponse(BaseModel): sip_trunks: Optional[List[SipTrunk4]] = None total_records: Optional[int] = Field( None, description='Total number of records returned. ' ) class AccountsAccountIdSipTrunkTrunksGetResponse1(BaseModel): sip_trunks: Optional[List[SipTrunk4]] = None total_records: Optional[int] = Field( None, description='Total number of records returned. ' ) class SipTrunk6(BaseModel): dnis: Optional[constr(min_length=5, max_length=8)] = Field( None, description='DNIS of the sub account. The prefix of the DNIS (i.e. the first five digits of the DNIS value) must match the DNIS prefix of the master account. To retrieve the DNIS prefix of a master account\'s SIP Trunk, use the List SIP Trunks API and refer to the first five digits in the `dnis` value. \n\nFor example, if the DNIS of the master account is 1888812345, the DNIS of the sub account must comprise of "18888" + "random_number". The maximum allowed length of the DNIS is 8.', ) id: Optional[str] = Field( None, description='Unique identifier of the SIP trunk that will be assigned to the sub account. The value of this field can be retrieved by listing the SIP Trunks of a master account using List SIP Trunks API.', ) outbound_caller_id: Optional[constr(max_length=32)] = Field( None, description='Assign an outbound caller Id to the trunk.' ) class AccountsAccountIdSipTrunkTrunksPostRequest(BaseModel): sip_trunks: Optional[List[SipTrunk6]] = Field( None, description='Array of one or more SIP Trunk objects. ', max_length=30, min_length=1, ) class AccountsAccountIdSipTrunkTrunksPostRequest1(BaseModel): sip_trunks: Optional[List[SipTrunk6]] = Field( None, description='Array of one or more SIP Trunk objects. ', max_length=30, min_length=1, ) class SipTrunk8(BaseModel): dnis: Optional[str] = Field( None, description='DNIS - identifier for the SIP trunk enabled account.' ) id: Optional[str] = Field(None, description='Unique identifier of the SIP trunk.') name: Optional[str] = Field(None, description='Name of the SIP trunk.') number_prefix: Optional[str] = Field( None, description='If the value of this field is `"0"`, it means that all the calls will be routed through this special line. All other values indicate the prefix of the phone number.', ) sip_server_address: Optional[str] = Field( None, description='IP Address or domain of the SIP trunk.' ) class AccountsAccountIdSipTrunkTrunksPostResponse(BaseModel): sip_trunks: Optional[List[SipTrunk8]] = None class AccountsAccountIdSipTrunkTrunksPostResponse1(BaseModel): sip_trunks: Optional[List[SipTrunk8]] = None class AccountsAccountIdSipTrunkTrunksTrunkIdDeleteResponse(BaseModel): pass class AccountsAccountIdTrustedDomainsGetResponse(BaseModel): trusted_domains: Optional[List[str]] = Field( None, description='List of trusted domains' ) class AccountsAccountIdUsersUserIdAccountPutRequest(BaseModel): account_id: str = Field( ..., description='The Account ID of the account to which you would like move the user to.', ) class QueryDataType(Enum): meeting_start_time = 'meeting_start_time' archive_complete_time = 'archive_complete_time' class ArchiveFile(BaseModel): download_url: Optional[str] = Field( None, description='The URL using which the archived file can be downloaded. To download the archived file of a meeting or a webinar hosted in your account, create a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the access_token query parameter and include this query parameter at the end of the URL as shown in the example.\n \nExample: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{Your-JWT}}`\n\nIf a user has authorized and installed your OAuth app that supports archiving, use the user’s [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the file.\n\nExample: `https://{{base-domain}}/rec/archive/download/xxx?access_token={{ OAuth Access Token }}`', ) file_extension: Optional[str] = Field( None, description='Extension of the recording file.\n' ) file_size: Optional[int] = Field(None, description='The recording file size.\n') file_type: Optional[str] = Field( None, description='Recorded file type. The value of this field could be one of the following:\n\n`MP4`: Video file of the recording.<br>\n`M4A`: Audio-only file of the recording.<br>\n`TRANSCRIPT`: Transcription file of the recording in VTT format.\nCHAT: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>\n`CC`: File containing closed captions of the recording in VTT file format.<br>\n`CSV`: File containing polling data in csv format.', ) id: Optional[str] = Field( None, description='Unique identifier of the archived file.\n' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:\n* `shared_screen_with_speaker_view(CC)`\n* `shared_screen_with_speaker_view`\n* `shared_screen_with_gallery_view`\n* `speaker_view`\n* `gallery_view`\n* `shared_screen`\n* `audio_only`\n* `audio_transcript`\n* `chat_file`,\n* `active_speaker`\n* `host_video`\n', ) status: Optional[str] = Field(None, description='Status of the archived file.\n') class Meeting6(BaseModel): archive_files: Optional[List[ArchiveFile]] = None duration: Optional[int] = Field( None, description='Scheduled duration of the meeting or the webinar.' ) host_id: Optional[str] = Field( None, description='ID of the user set as the host of meeting or the webinar that was archived.\n', ) id: Optional[int] = Field( None, description='Unique identifier of the meeting(meetingId) or the webinar(webinarId).\n', ) recording_count: Optional[int] = Field( None, description='Number of recording files returned in the response of this API call.\n', ) start_time: Optional[str] = Field( None, description='The time at which the meeting or the webinar started.\n' ) timezone: Optional[str] = Field(None, description='Timezone of the host.') topic: Optional[str] = Field(None, description='Meeting or webinar topic.') total_size: Optional[int] = Field(None, description='Total size of the archive.\n') type: Optional[int] = Field( None, description='Type of the meeting or the webinar that was archived.<br>\n<br>Meeting types:<br>\n`1` - Instant meeting<br>\n`2` - Scheduled meeting<br>\n`3` - Recurring meeting with no fixed time<br>\n8 - Recurring meeting with fixed time\n \nWebinar types:<br>\n`5` - Webinar<br>\n`6` - Recurring webinar with no fixed time<br>\n`9` - Recurring webinar with a fixed time\n', ) uuid: Optional[str] = Field( None, description='Unique identifier of the meeting instance or the webinar instance during which the archiving took place. Each instance of the meeting will have its own UUID.\n', ) class ArchiveFilesGetResponse(BaseModel): from_: Optional[str] = Field( None, alias='from', description='Start date for the query in "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'" format. The duration for the query defined using the "from" and "to" parameters should not exceed 7 days as this API only provides a week\'s data at once.', ) meetings: Optional[List[Meeting6]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) to: Optional[str] = Field( None, description='End date for the query in "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'" format. ', ) class Meeting7(BaseModel): archive_files: Optional[List[ArchiveFile]] = None duration: Optional[int] = Field( None, description='Scheduled duration of the meeting or the webinar.' ) host_id: Optional[str] = Field( None, description='ID of the user set as the host of meeting or the webinar that was archived.\n', ) id: Optional[int] = Field( None, description='Unique identifier of the meeting(meetingId) or the webinar(webinarId).\n', ) recording_count: Optional[int] = Field( None, description='Number of recording files returned in the response of this API call.\n', ) start_time: Optional[str] = Field( None, description='The time at which the meeting or the webinar started.\n' ) timezone: Optional[str] = Field(None, description='Timezone of the host.') topic: Optional[str] = Field(None, description='Meeting or webinar topic.') total_size: Optional[int] = Field(None, description='Total size of the archive.\n') type: Optional[int] = Field( None, description='Type of the meeting or the webinar that was archived.<br>\n<br>Meeting types:<br>\n`1` - Instant meeting<br>\n`2` - Scheduled meeting<br>\n`3` - Recurring meeting with no fixed time<br>\n8 - Recurring meeting with fixed time\n \nWebinar types:<br>\n`5` - Webinar<br>\n`6` - Recurring webinar with no fixed time<br>\n`9` - Recurring webinar with a fixed time\n', ) uuid: Optional[str] = Field( None, description='Unique identifier of the meeting instance or the webinar instance during which the archiving took place. Each instance of the meeting will have its own UUID.\n', ) class ArchiveFilesGetResponse1(BaseModel): from_: Optional[str] = Field( None, alias='from', description='Start date for the query in "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'" format. The duration for the query defined using the "from" and "to" parameters should not exceed 7 days as this API only provides a week\'s data at once.', ) meetings: Optional[List[Meeting7]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) to: Optional[str] = Field( None, description='End date for the query in "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'" format. ', ) class Type105(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class ChatChannelsChannelIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Channel Id.') name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type105] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>', ) class ChatChannelsChannelIdGetResponse1(BaseModel): id: Optional[str] = Field(None, description='Channel Id.') name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type105] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>', ) class ChatChannelsChannelIdPatchRequest(BaseModel): name: str = Field(..., description='A new name for the channel.') class ChatChannelsChannelIdMembersMePostResponse(BaseModel): added_at: Optional[datetime] = Field( None, description='The date and time at which a user joined the channel.' ) id: Optional[str] = Field( None, description='Member Id of the user who joined the public channel.' ) class Contact2(BaseModel): email: Optional[EmailStr] = Field(None, description="Contact's email address.") first_name: Optional[str] = Field(None, description="Contact's first name.") id: Optional[str] = Field(None, description='Contact Id.') last_name: Optional[str] = Field(None, description="Contact's last name.") class ChatUsersMeContactsGetResponse(BaseModel): contacts: Optional[List[Contact2]] = Field(None, description='The contacts object.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( None, description='The number of records returned with a single API call.\nDefault value: 30.', ) class ChatUsersMeContactsGetResponse1(BaseModel): contacts: Optional[List[Contact2]] = Field(None, description='The contacts object.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( None, description='The number of records returned with a single API call.\nDefault value: 30.', ) class PresenceStatus(Enum): Do_Not_Disturb = 'Do_Not_Disturb' Away = 'Away' Available = 'Available' Offline = 'Offline' class ChatUsersMeContactsContactIdGetResponse(BaseModel): direct_numbers: Optional[List[str]] = Field( None, description='Direct number(s) assigned to the contact.' ) email: Optional[EmailStr] = Field(None, description="Contact's email address.") extension_number: Optional[str] = Field( None, description='Extension number of the contact.' ) first_name: Optional[str] = Field(None, description="Contact's first name") id: Optional[str] = Field(None, description='User ID of the contact.') last_name: Optional[str] = Field(None, description="Contact's last name") phone_number: Optional[str] = Field( None, description='Phone number of the contact.' ) presence_status: Optional[PresenceStatus] = Field( None, description="Contact's Presence Status in the Zoom Chat Client. The status can be one of the following: <br> `Do_Not_Disturb`<br> `Away`<br> `Available`<br> `Offline`", ) class ChatUsersMeContactsContactIdGetResponse1(BaseModel): direct_numbers: Optional[List[str]] = Field( None, description='Direct number(s) assigned to the contact.' ) email: Optional[EmailStr] = Field(None, description="Contact's email address.") extension_number: Optional[str] = Field( None, description='Extension number of the contact.' ) first_name: Optional[str] = Field(None, description="Contact's first name") id: Optional[str] = Field(None, description='User ID of the contact.') last_name: Optional[str] = Field(None, description="Contact's last name") phone_number: Optional[str] = Field( None, description='Phone number of the contact.' ) presence_status: Optional[PresenceStatus] = Field( None, description="Contact's Presence Status in the Zoom Chat Client. The status can be one of the following: <br> `Do_Not_Disturb`<br> `Away`<br> `Available`<br> `Offline`", ) class ChannelsSettings(BaseModel): allow_to_add_external_users: Optional[int] = None new_members_can_see_previous_messages_files: Optional[bool] = None posting_permissions: Optional[int] = None class Channel1(BaseModel): channels_settings: Optional[ChannelsSettings] = None id: Optional[str] = Field( None, description='Channel ID: Unique identifier of the Channel.' ) name: Optional[str] = Field(None, description='Name of the channel.') type: Optional[int] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: **Private channel.** In this type of channel, members must be invited to join a channel.<br>\n`2`: **Private channel with users that belong to the same Zoom account**. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: **Public channel.** Anyone can search for this channel and join the channel. External members cannot be invited.<br>\n`4`: **New chat**. This is an instant channel which can be created by adding members to a new chat.<br>\n`5`: **Public channel**, similar to above, except members can invite members of other accounts.', ) class ChatUsersUserIdChannelsGetResponse(BaseModel): channels: Optional[List[Channel1]] = Field( None, description='Chat Channel object(s).' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( None, description='The number of records returned with a single API call.\nDefault value: 30.', ) total_records: Optional[int] = Field( None, description='The total number of records found.' ) class Channel2(BaseModel): channels_settings: Optional[ChannelsSettings] = None id: Optional[str] = Field( None, description='Channel ID: Unique identifier of the Channel.' ) name: Optional[str] = Field(None, description='Name of the channel.') type: Optional[int] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: **Private channel.** In this type of channel, members must be invited to join a channel.<br>\n`2`: **Private channel with users that belong to the same Zoom account**. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: **Public channel.** Anyone can search for this channel and join the channel. External members cannot be invited.<br>\n`4`: **New chat**. This is an instant channel which can be created by adding members to a new chat.<br>\n`5`: **Public channel**, similar to above, except members can invite members of other accounts.', ) class ChatUsersUserIdChannelsGetResponse1(BaseModel): channels: Optional[List[Channel2]] = Field( None, description='Chat Channel object(s).' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( None, description='The number of records returned with a single API call.\nDefault value: 30.', ) total_records: Optional[int] = Field( None, description='The total number of records found.' ) class Member3(BaseModel): email: EmailStr = Field(..., description="Member's email address.") class ChatUsersUserIdChannelsPostRequest(BaseModel): members: Optional[List[Member3]] = Field( None, description='Member(s) to include in the channel. A max of 5 members can be added to the channel at once with this API.', ) name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type105] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>\n`4`: New chat. This is an instant channel which can be created by adding members to a new chat. ', ) class ChatUsersUserIdChannelsPostRequest1(BaseModel): members: Optional[List[Member3]] = Field( None, description='Member(s) to include in the channel. A max of 5 members can be added to the channel at once with this API.', ) name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type105] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>\n`4`: New chat. This is an instant channel which can be created by adding members to a new chat. ', ) class ChatUsersUserIdChannelsPostResponse(BaseModel): id: Optional[str] = Field( None, description='Channel ID: Unique Identifier of the Channel.' ) jid: Optional[str] = Field(None, description='Channel JID. ') name: Optional[str] = Field(None, description='Channel name.') type: Optional[int] = Field(None, description='Channel type.') class ChatUsersUserIdChannelsChannelIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Channel Id.') name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type105] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>', ) class ChatUsersUserIdChannelsChannelIdGetResponse1(BaseModel): id: Optional[str] = Field(None, description='Channel Id.') name: Optional[constr(max_length=128)] = Field( None, description='Name of the channel.' ) type: Optional[Type105] = Field( None, description='Type of the channel. The value can be one of the following:<br>\n`1`: Private channel. In this type of channel, members must be invited to join a channel.<br>\n`2`: Private channel with members that belong to one Zoom account. Members in this channel should be invited and the members should be from the same organization.<br>\n`3`: Public channel. Anyone can search for this channel and join the channel.<br>', ) class ChatUsersUserIdChannelsChannelIdPatchRequest(BaseModel): name: str = Field(..., description='A new name for the channel.') class Role1(Enum): admin = 'admin' owner = 'owner' member = 'member' class Member5(BaseModel): email: Optional[EmailStr] = Field(None, description='Email address of the member.') first_name: Optional[str] = Field(None, description="Member's first name.") id: Optional[str] = Field( None, description='Member ID: Unique Identifier of the member.' ) last_name: Optional[str] = Field(None, description="Member's last name.") role: Optional[Role1] = Field( None, description='The role of the member. The value can be one of these: `owner`, `admin`, `member`. ', ) class ChatUsersUserIdChannelsChannelIdMembersGetResponse(BaseModel): members: Optional[List[Member5]] = Field(None, description='Members in a channel.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The number of records returned with a single API call. ' ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Member6(BaseModel): email: Optional[EmailStr] = Field(None, description='Email address of the member.') first_name: Optional[str] = Field(None, description="Member's first name.") id: Optional[str] = Field( None, description='Member ID: Unique Identifier of the member.' ) last_name: Optional[str] = Field(None, description="Member's last name.") role: Optional[Role1] = Field( None, description='The role of the member. The value can be one of these: `owner`, `admin`, `member`. ', ) class ChatUsersUserIdChannelsChannelIdMembersGetResponse1(BaseModel): members: Optional[List[Member6]] = Field(None, description='Members in a channel.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The number of records returned with a single API call. ' ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Member7(BaseModel): email: EmailStr = Field(..., description='Email adress of the member.') class ChatUsersUserIdChannelsChannelIdMembersPostRequest(BaseModel): members: Optional[List[Member7]] = Field( None, description='Members of a channel. You can invite up to a max number of 5 members with a single API call.', ) class ChatUsersUserIdChannelsChannelIdMembersPostRequest1(BaseModel): members: Optional[List[Member7]] = Field( None, description='Members of a channel. You can invite up to a max number of 5 members with a single API call.', ) class ChatUsersUserIdChannelsChannelIdMembersPostResponse(BaseModel): added_at: Optional[datetime] = Field( None, description='The date and time at which the member(s) are added to the channe.', ) ids: Optional[List[str]] = Field(None, description='Member Ids of the members.') class Status26(Enum): Deleted = 'Deleted' Edited = 'Edited' Normal = 'Normal' class Message(BaseModel): date_time: Optional[str] = Field( None, description='The date-time at which the message was sent.' ) id: Optional[str] = Field( None, description='Message ID: Unique Identifier of the message.' ) message: Optional[str] = Field(None, description='The message content.') reply_main_message_id: Optional[str] = Field( None, description='Unique identifier of a reply. This field will only be returned if the message is a reply message.', ) reply_main_message_timestamp: Optional[int] = Field( None, description='Timestamp of when the reply message was sent. This field will only be returned if the message is a reply message.\n\nThe value of this field will be in **long** format(int64). ', ) sender: Optional[str] = Field( None, description='The email address of the sender of the message.' ) status: Optional[Status26] = Field( None, description='This field indicates whether a message is an original message(unedited), an edited message or a deleted message.\n\nThis field is only returned if you set the value of `for include_deleted_and_edited_message` query parameter to `true`.', ) timestamp: Optional[int] = Field( None, description='The timestamp of the message in microseconds.' ) class ChatUsersUserIdMessagesGetResponse(BaseModel): date: Optional[date_aliased] = Field( None, description='The date provided in the query parameter. If a date is not provided, the default value is the **current date**.', ) messages: Optional[List[Message]] = Field(None, description='List of message(s).') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.\n', ) page_size: Optional[int] = Field( 10, description='The number of records returned with a single API call.' ) class Message1(BaseModel): date_time: Optional[str] = Field( None, description='The date-time at which the message was sent.' ) id: Optional[str] = Field( None, description='Message ID: Unique Identifier of the message.' ) message: Optional[str] = Field(None, description='The message content.') reply_main_message_id: Optional[str] = Field( None, description='Unique identifier of a reply. This field will only be returned if the message is a reply message.', ) reply_main_message_timestamp: Optional[int] = Field( None, description='Timestamp of when the reply message was sent. This field will only be returned if the message is a reply message.\n\nThe value of this field will be in **long** format(int64). ', ) sender: Optional[str] = Field( None, description='The email address of the sender of the message.' ) status: Optional[Status26] = Field( None, description='This field indicates whether a message is an original message(unedited), an edited message or a deleted message.\n\nThis field is only returned if you set the value of `for include_deleted_and_edited_message` query parameter to `true`.', ) timestamp: Optional[int] = Field( None, description='The timestamp of the message in microseconds.' ) class ChatUsersUserIdMessagesGetResponse1(BaseModel): date: Optional[date_aliased] = Field( None, description='The date provided in the query parameter. If a date is not provided, the default value is the **current date**.', ) messages: Optional[List[Message1]] = Field(None, description='List of message(s).') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.\n', ) page_size: Optional[int] = Field( 10, description='The number of records returned with a single API call.' ) class AtType(Enum): integer_1 = 1 integer_2 = 2 class AtItem(BaseModel): at_contact: Optional[str] = Field( None, description='This field is required if the value of `at_type` field is set to 1. \n\nEmail address of the contact. \n\n', ) at_type: Optional[AtType] = Field( None, description='Type of mention. You can use one of the following values:<br>\n* `1`: Mention a contact. \n\n* `2`: Mention "all" to notify everyone in the channel.', ) end_position: Optional[int] = Field( None, description='End position of the mention.\n\nExample message: "@Shrijana How are you?"\nIn this case, the end position of the mention "@Shrijana" is 8. Hence, the value of this field will be 8.', ) start_position: Optional[int] = Field( None, description='Start position of the mention("@") in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field will be 0. \n\nExample message: "@Shrijana How are you?"\n\n', ) class ChatUsersUserIdMessagesPostRequest(BaseModel): at_items: Optional[List[AtItem]] = Field( None, description='[Chat mentions](https://support.zoom.us/hc/en-us/articles/360037567431-Using-chat-mentions-and-slash-commands) object. Use this object to include mentions in the message that will be sent to a channel. ', ) message: constr(max_length=1024) = Field(..., description='The message to be sent.') to_channel: Optional[str] = Field( None, description='The Channel Id of the channel where you would like to send a message.', ) to_contact: Optional[str] = Field( None, description='The email address of the contact to whom you would like to send the message.', ) class AtItem1(BaseModel): at_contact: Optional[str] = Field( None, description='This field is required if the value of `at_type` field is set to 1. \n\nEmail address of the contact. \n\n', ) at_type: Optional[AtType] = Field( None, description='Type of mention. You can use one of the following values:<br>\n* `1`: Mention a contact. \n\n* `2`: Mention "all" to notify everyone in the channel.', ) end_position: Optional[int] = Field( None, description='End position of the mention.\n\nExample message: "@Shrijana How are you?"\nIn this case, the end position of the mention "@Shrijana" is 8. Hence, the value of this field will be 8.', ) start_position: Optional[int] = Field( None, description='Start position of the mention("@") in the message string. \n\nFor example if you want to include the mention at the beginning of the message, the value for this field will be 0. \n\nExample message: "@Shrijana How are you?"\n\n', ) class ChatUsersUserIdMessagesPostRequest1(BaseModel): at_items: Optional[List[AtItem1]] = Field( None, description='[Chat mentions](https://support.zoom.us/hc/en-us/articles/360037567431-Using-chat-mentions-and-slash-commands) object. Use this object to include mentions in the message that will be sent to a channel. ', ) message: constr(max_length=1024) = Field(..., description='The message to be sent.') to_channel: Optional[str] = Field( None, description='The Channel Id of the channel where you would like to send a message.', ) to_contact: Optional[str] = Field( None, description='The email address of the contact to whom you would like to send the message.', ) class ChatUsersUserIdMessagesPostResponse(BaseModel): id: Optional[str] = Field( None, description='Message ID: Unique Identifier of the message.' ) class ChatUsersUserIdMessagesMessageIdPutRequest(BaseModel): message: Optional[str] = Field(None, description='The edited message.') to_channel: Optional[str] = Field( None, description="The Channel ID of the channel where you sent the message.<br>You must provide either `to_contact` or `to_channel` parameter in the API request.\n Channel ID can be retrieved from List User's Channels API. ", ) to_contact: Optional[str] = Field( None, description='The email address of the contact to whom the message was sent.<br>\nYou must provide either `to_contact` or `to_channel` parameter in the API request.', ) class Contact4(BaseModel): dept: Optional[str] = Field( None, description="Department of the contact as provided in the user's Zoom profile.", ) direct_numbers: Optional[List[str]] = Field( None, description='Direct Number(s) of a user who has Zoom Phone license assigned.', ) email: Optional[str] = Field(None, description='Email address of the contact.') extension_number: Optional[str] = Field( None, description='Extension Number of a user who has Zoom Phone license assigned.', ) first_name: Optional[str] = Field(None, description='First name of the contact.') id: Optional[str] = Field(None, description='User ID of the contact.') im_group_id: Optional[str] = Field( None, description='Unique Identifier of the [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) in which the user has been added. An IM Directory group is not the same as a channel. IM Directory allows administrators to assign users in their account to groups that display within the Contacts list on Zoom clients. ', ) im_group_name: Optional[str] = Field( None, description='Name of the [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) in which the user has been added. An IM Directory group is not the same as a channel. IM Directory allows administrators to assign users in their account to groups that display within the Contacts list on Zoom clients. ', ) job_title: Optional[str] = Field( None, description="Department of the user as provided in the user's Zoom profile.", ) last_name: Optional[str] = Field(None, description='Last name of the contact.') location: Optional[str] = Field( None, description="Location of the user as provided in the user's Zoom profile." ) phone_number: Optional[str] = Field(None, description='Phone number of the user.') presence_status: Optional[PresenceStatus] = Field( None, description='Presence status of the contact in Zoom Client. The value of this field can be one of the following:\n`Do_Not_Disturb`<br> `away`<br> `Available`<br> `Offline`', ) sip_phone_number: Optional[str] = Field( None, description='SIP Phone number of the user. Returned only if user has SIP phone enabled.', ) class ContactsGetResponse(BaseModel): contacts: Optional[List[Contact4]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=25)] = Field( None, description='The number of records returned with a single API call. Default value is `1`.', ) class Contact5(BaseModel): dept: Optional[str] = Field( None, description="Department of the contact as provided in the user's Zoom profile.", ) direct_numbers: Optional[List[str]] = Field( None, description='Direct Number(s) of a user who has Zoom Phone license assigned.', ) email: Optional[str] = Field(None, description='Email address of the contact.') extension_number: Optional[str] = Field( None, description='Extension Number of a user who has Zoom Phone license assigned.', ) first_name: Optional[str] = Field(None, description='First name of the contact.') id: Optional[str] = Field(None, description='User ID of the contact.') im_group_id: Optional[str] = Field( None, description='Unique Identifier of the [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) in which the user has been added. An IM Directory group is not the same as a channel. IM Directory allows administrators to assign users in their account to groups that display within the Contacts list on Zoom clients. ', ) im_group_name: Optional[str] = Field( None, description='Name of the [IM directory group](https://support.zoom.us/hc/en-us/articles/203749815-IM-Management) in which the user has been added. An IM Directory group is not the same as a channel. IM Directory allows administrators to assign users in their account to groups that display within the Contacts list on Zoom clients. ', ) job_title: Optional[str] = Field( None, description="Department of the user as provided in the user's Zoom profile.", ) last_name: Optional[str] = Field(None, description='Last name of the contact.') location: Optional[str] = Field( None, description="Location of the user as provided in the user's Zoom profile." ) phone_number: Optional[str] = Field(None, description='Phone number of the user.') presence_status: Optional[PresenceStatus] = Field( None, description='Presence status of the contact in Zoom Client. The value of this field can be one of the following:\n`Do_Not_Disturb`<br> `away`<br> `Available`<br> `Offline`', ) sip_phone_number: Optional[str] = Field( None, description='SIP Phone number of the user. Returned only if user has SIP phone enabled.', ) class ContactsGetResponse1(BaseModel): contacts: Optional[List[Contact5]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=25)] = Field( None, description='The number of records returned with a single API call. Default value is `1`.', ) class Group3(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) class GroupsGetResponse(BaseModel): groups: Optional[List[Group3]] = Field(None, description='List of Group objects.') total_records: Optional[int] = Field(None, description='Total records.') class GroupsGetResponse1(BaseModel): groups: Optional[List[Group3]] = Field(None, description='List of Group objects.') total_records: Optional[int] = Field(None, description='Total records.') class GroupsPostRequest(BaseModel): name: Optional[str] = Field(None, description='Group name.') class GroupsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field(None, description='Group member count.') class GroupsGroupIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total count of members in the group.' ) class GroupsGroupIdPatchRequest(BaseModel): name: Optional[str] = Field( None, description='Group name. It must be unique to one account and less than 128 characters.', ) class EmailNotification12(BaseModel): alternative_host_reminder: Optional[bool] = Field( None, description='Notify the alternative host who is set or removed.' ) cancel_meeting_reminder: Optional[bool] = Field( None, description='Notify host and participants when the meeting is cancelled.' ) cloud_recording_available_reminder: Optional[bool] = Field( None, description='Notify host when cloud recording is available.' ) jbh_reminder: Optional[bool] = Field( None, description='Notify host when participants join the meeting before them.' ) schedule_for_host_reminder: Optional[bool] = Field( None, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class InMeeting12(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='Displays whether or not custom [data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) have been selected for meetings/webinars hosted by this group.', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the users in the group or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) non_verbal_feedback: Optional[bool] = Field( None, description='Allow participants in a meeting can provide nonverbal feedback and express opinions by clicking on icons in the Participants panel.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) remote_support: Optional[bool] = Field( None, description='Allow meeting host to provide 1:1 remote support to another participant.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled and locked for the group or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_browser_join_link: Optional[bool] = Field( None, description='Allow participants to join a meeting directly from their browser.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) waiting_room: Optional[bool] = Field( None, description='Attendees cannot join a meeting until a host admits them individually from the waiting room.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) class Recording13(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class ScheduleMeeting12(BaseModel): audio_type: Optional[bool] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='If join before host option is enabled for a personal meeting, then enforce password requirement.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) mute_upon_entry: Optional[bool] = Field( None, description='Automatically mute all participants when they join the meeting.', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) pstn_password_protected: Optional[bool] = Field( None, description='Generate and send new passwords for newly scheduled or edited meetings.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require password for instant meetings. If you use PMI for your instant meetings, this option will be disabled.', ) require_password_for_pmi_meetings: Optional[bool] = Field( None, description='Require participants to enter password for PMI meetings.' ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting.', ) upcoming_meeting_reminder: Optional[bool] = Field( None, description='Receive desktop notification for upcoming meetings.' ) class Telephony12(BaseModel): telephony_regions: Optional[bool] = None third_party_audio: Optional[bool] = Field( None, description='Allow users to join the meeting using the existing 3rd party audio configuration.', ) class GroupsGroupIdLockSettingsGetResponse1(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting12] = None recording: Optional[Recording13] = None schedule_meeting: Optional[ScheduleMeeting12] = None telephony: Optional[Telephony12] = None class MeetingPasswordRequirement19(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings9(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity9(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement19] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings9] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdLockSettingsGetResponse2(BaseModel): meeting_security: Optional[MeetingSecurity9] = None class GroupsGroupIdLockSettingsGetResponse( RootModel[ Union[ GroupsGroupIdLockSettingsGetResponse1, GroupsGroupIdLockSettingsGetResponse2 ] ] ): root: Union[ GroupsGroupIdLockSettingsGetResponse1, GroupsGroupIdLockSettingsGetResponse2 ] class Recording14(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class GroupsGroupIdLockSettingsGetResponse4(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting12] = None recording: Optional[Recording14] = None schedule_meeting: Optional[ScheduleMeeting12] = None telephony: Optional[Telephony12] = None class MeetingPasswordRequirement20(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings10(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity10(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement20] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings10] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdLockSettingsGetResponse5(BaseModel): meeting_security: Optional[MeetingSecurity10] = None class GroupsGroupIdLockSettingsGetResponse3( RootModel[ Union[ GroupsGroupIdLockSettingsGetResponse4, GroupsGroupIdLockSettingsGetResponse5 ] ] ): root: Union[ GroupsGroupIdLockSettingsGetResponse4, GroupsGroupIdLockSettingsGetResponse5 ] class InMeeting14(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='Displays whether or not custom [data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) have been selected for meetings/webinars hosted by this group.', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the users in the group or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) non_verbal_feedback: Optional[bool] = Field( None, description='Allow participants in a meeting can provide nonverbal feedback and express opinions by clicking on icons in the Participants panel.', ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) remote_support: Optional[bool] = Field( None, description='Allow meeting host to provide 1:1 remote support to another participant.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicate whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option should be enabled and locked for the group or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_browser_join_link: Optional[bool] = Field( None, description='Allow participants to join a meeting directly from their browser.', ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) waiting_room: Optional[bool] = Field( None, description='Attendees cannot join a meeting until a host admits them individually from the waiting room.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) class Recording15(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) recording_authentication: Optional[str] = None class ScheduleMeeting14(BaseModel): audio_type: Optional[bool] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='If join before host option is enabled for a personal meeting, then enforce password requirement.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) mute_upon_entry: Optional[bool] = Field( None, description='Automatically mute all participants when they join the meeting.', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) personal_meeting: Optional[bool] = Field( None, description='Turn the lock setting on or off for the **Enable Personal Meeting ID** setting for a group.<br><br>\n`true`: Turn the **"Enable Personal Meeting ID"** setting **on** for all users in the group. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Turn **off** the **"Enable Personal Meeting ID"** setting. **If this setting is [disabled](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link?flash_digest=eb7ac62d8c7fb4daf285916e3e15d87537806133#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a), meetings that were scheduled with PMI by this group members will be invalid. Users will have to update previously scheduled PMI meetings.**<br><br>\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pstn_password_protected: Optional[bool] = Field( None, description='Generate and send new passwords for newly scheduled or edited meetings.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require password for instant meetings. If you use PMI for your instant meetings, this option will be disabled.', ) require_password_for_pmi_meetings: Optional[bool] = Field( None, description='Require participants to enter password for PMI meetings.' ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting.', ) upcoming_meeting_reminder: Optional[bool] = Field( None, description='Receive desktop notification for upcoming meetings.' ) class GroupsGroupIdLockSettingsPatchRequest1(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting14] = None recording: Optional[Recording15] = None schedule_meeting: Optional[ScheduleMeeting14] = None telephony: Optional[Telephony12] = None class MeetingPasswordRequirement21(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings11(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity11(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement21] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings11] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdLockSettingsPatchRequest2(BaseModel): meeting_security: Optional[MeetingSecurity11] = None class GroupsGroupIdLockSettingsPatchRequest( RootModel[ Union[ GroupsGroupIdLockSettingsPatchRequest1, GroupsGroupIdLockSettingsPatchRequest2, ] ] ): root: Union[ GroupsGroupIdLockSettingsPatchRequest1, GroupsGroupIdLockSettingsPatchRequest2 ] class Recording16(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) auto_delete_cmr: Optional[bool] = Field( None, description='Allow Zoom to automatically delete recordings permanently after a specified number of days.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) recording_authentication: Optional[str] = None class GroupsGroupIdLockSettingsPatchRequest4(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting14] = None recording: Optional[Recording16] = None schedule_meeting: Optional[ScheduleMeeting14] = None telephony: Optional[Telephony12] = None class MeetingPasswordRequirement22(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings12(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity12(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement22] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings12] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdLockSettingsPatchRequest5(BaseModel): meeting_security: Optional[MeetingSecurity12] = None class GroupsGroupIdLockSettingsPatchRequest3( RootModel[ Union[ GroupsGroupIdLockSettingsPatchRequest4, GroupsGroupIdLockSettingsPatchRequest5, ] ] ): root: Union[ GroupsGroupIdLockSettingsPatchRequest4, GroupsGroupIdLockSettingsPatchRequest5 ] class Member9(BaseModel): email: Optional[str] = Field(None, description="User's email address.") first_name: Optional[str] = Field(None, description='First name of the user.') id: Optional[str] = Field(None, description='Unique Identifier of the user. ') last_name: Optional[str] = Field(None, description='Last name of the user.') type: Optional[int] = Field( None, description='User type: <br> `1` - Basic<br> `2` - Licensed<br> `3` - On-prem', ) class GroupsGroupIdMembersGetResponse(BaseModel): members: Optional[List[Member9]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned from this request.' ) page_number: Optional[int] = Field( None, description='The page number of the current results.' ) page_size: Optional[int] = Field( None, description='The number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class GroupsGroupIdMembersGetResponse1(BaseModel): members: Optional[List[Member9]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned from this request.' ) page_number: Optional[int] = Field( None, description='The page number of the current results.' ) page_size: Optional[int] = Field( None, description='The number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class Member11(BaseModel): email: Optional[str] = Field( None, description='User email. If the user ID is given then the user email should be ignored.', ) id: Optional[str] = Field(None, description='User ID.') class GroupsGroupIdMembersPostRequest(BaseModel): members: Optional[List[Member11]] = Field( None, description='List of Group members', le=30 ) class GroupsGroupIdMembersPostRequest1(BaseModel): members: Optional[List[Member11]] = Field( None, description='List of Group members', le=30 ) class GroupsGroupIdMembersPostResponse(BaseModel): added_at: Optional[datetime] = None ids: Optional[str] = None class Action16(Enum): move = 'move' set_primary = 'set_primary' class GroupsGroupIdMembersMemberIdPatchRequest(BaseModel): action: Action16 = Field( ..., description='Specify the type of action to be performed:<br><br>\n`move`: Simultaneously remove a member from one group and move the member to a different group.<br>\n`set_primary`: Set a primary group for the user.\n', ) target_group_id: Optional[str] = Field( None, description='Can be retrieved by calling [GET /groups](https://marketplace.zoom.us/docs/api-reference/zoom-api/groups/groups) API.<br>\n\nTo move a user, use this field to specify the groupId of the group where the member is to be moved.<br>\n\nTo set a primary group for the user, provide the groupId of the group which is going to be the primary group.', ) class GroupsGroupIdMembersMemberIdPatchRequest1(BaseModel): action: Action16 = Field( ..., description='Specify the type of action to be performed:<br><br>\n`move`: Simultaneously remove a member from one group and move the member to a different group.<br>\n`set_primary`: Set a primary group for the user.\n', ) target_group_id: Optional[str] = Field( None, description='Can be retrieved by calling [GET /groups](https://marketplace.zoom.us/docs/api-reference/zoom-api/groups/groups) API.<br>\n\nTo move a user, use this field to specify the groupId of the group where the member is to be moved.<br>\n\nTo set a primary group for the user, provide the groupId of the group which is going to be the primary group.', ) class Option4(Enum): meeting_authentication = 'meeting_authentication' recording_authentication = 'recording_authentication' class VirtualBackgroundSettings10(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting16(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to be used by this group for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the users in the group or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) non_verbal_feedback: Optional[bool] = Field( None, description='Allow participants in a meeting can provide nonverbal feedback and express opinions by clicking on icons in the Participants panel.', ) only_host_view_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices only to the host.' ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='When each participant joins by telephone, allow the option to record and play their own voice as entry and exit chimes.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) remote_support: Optional[bool] = Field( None, description='Allow meeting host to provide 1:1 remote support to another participant.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the group or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_browser_join_link: Optional[bool] = Field( None, description='Allow participants to join a meeting directly from their browser.', ) show_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices.' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings10] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( None, description='Attendees cannot join a meeting until a host admits them individually from the waiting room.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) class Profile9(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Archive7(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type105] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording17(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) archive: Optional[Archive7] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted archiving solution access by the Zoom Support team.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Allow only the host with a link to the cloud recording to download.', ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='When someone is sharing their screen, active speaker will show on the top right corner of the shared screen.', ) record_speaker_view: Optional[bool] = Field( None, description='Record active speaker with shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of a meeting or webinar for cloud recordings.', ) save_chat_text: Optional[bool] = Field( None, description='Save chat messages from the meeting / webinar.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class RequirePasswordForPmiMeetings10(Enum): all = 'all' jbh_only = 'jbh_only' none = 'none' class ScheduleMeeting16(BaseModel): audio_type: Optional[str] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='If join before host option is enabled for a personal meeting, then enforce password requirement.\n\n\n**This field will be deprecated in near future.** If you would like to enable this setting, we highly encourage you to use the `require_password_for_pmi_meetings` field.\n\n', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) mute_upon_entry: Optional[bool] = Field( None, description='Automatically mute all participants when they join the meeting.', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pstn_password_protected: Optional[bool] = Field( None, description='Generate and send new passwords for newly scheduled or edited meetings.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description="If enabled, a random password will be generated on the user's end who starts the instant meeting. Other participants will have to enter the password to join the meeting. If you use PMI for your instant meetings, this option will be disabled.", ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings10] = ( Field( None, description='Indicates whether a password is required for [PMI](https://support.zoom.us/hc/en-us/articles/203276937-Using-Personal-Meeting-ID-PMI-) meetings or not. The value can be one of the following:<br>\n`none`: Do not require password for PMI meetings.<br> \n`all`: Require participants to enter password for all PMI enabled meetings.<br> `jbh_only`: Require password only for meetings where the **"join before host"** setting is enabled.', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting.', ) upcoming_meeting_reminder: Optional[bool] = Field( None, description='Receive desktop notification for upcoming meetings.' ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Indicates whether PMI is enabled for all instant meetings or not.', ) use_pmi_for_schedule_meetings: Optional[bool] = Field( None, description='Indicates whether PMI is enabled for all scheduled meetings or not.', ) class Telephony16(BaseModel): audio_conference_info: Optional[str] = Field(None, description='') telephony_regions: Optional[TelephonyRegions10] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Allow users to join the meeting using the existing 3rd party audio configuration.', ) class GroupsGroupIdSettingsGetResponse1(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting16] = None profile: Optional[Profile9] = Field(None, title='Profile') recording: Optional[Recording17] = None schedule_meeting: Optional[ScheduleMeeting16] = None telephony: Optional[Telephony16] = None class Type112(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption19(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type112] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class GroupsGroupIdSettingsGetResponse2(BaseModel): authentication_options: Optional[List[AuthenticationOption19]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type113(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption20(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type113] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class GroupsGroupIdSettingsGetResponse3(BaseModel): authentication_options: Optional[List[AuthenticationOption20]] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement23(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings13(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity13(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement23] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings13] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdSettingsGetResponse4(BaseModel): meeting_security: Optional[MeetingSecurity13] = None class GroupsGroupIdSettingsGetResponse( RootModel[ Union[ GroupsGroupIdSettingsGetResponse1, Union[GroupsGroupIdSettingsGetResponse2, GroupsGroupIdSettingsGetResponse3], GroupsGroupIdSettingsGetResponse4, ] ] ): root: Union[ GroupsGroupIdSettingsGetResponse1, Union[GroupsGroupIdSettingsGetResponse2, GroupsGroupIdSettingsGetResponse3], GroupsGroupIdSettingsGetResponse4, ] class VirtualBackgroundSettings11(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow users to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting17(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to be used by this group for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the users in the group or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) non_verbal_feedback: Optional[bool] = Field( None, description='Allow participants in a meeting can provide nonverbal feedback and express opinions by clicking on icons in the Participants panel.', ) only_host_view_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices only to the host.' ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='When each participant joins by telephone, allow the option to record and play their own voice as entry and exit chimes.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) remote_support: Optional[bool] = Field( None, description='Allow meeting host to provide 1:1 remote support to another participant.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the group or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_browser_join_link: Optional[bool] = Field( None, description='Allow participants to join a meeting directly from their browser.', ) show_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices.' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings11] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( None, description='Attendees cannot join a meeting until a host admits them individually from the waiting room.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) class Profile10(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type114(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive8(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type114] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording18(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) archive: Optional[Archive8] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted archiving solution access by the Zoom Support team.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Allow only the host with a link to the cloud recording to download.', ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='When someone is sharing their screen, active speaker will show on the top right corner of the shared screen.', ) record_speaker_view: Optional[bool] = Field( None, description='Record active speaker with shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of a meeting or webinar for cloud recordings.', ) save_chat_text: Optional[bool] = Field( None, description='Save chat messages from the meeting / webinar.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class ScheduleMeeting17(BaseModel): audio_type: Optional[str] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='If join before host option is enabled for a personal meeting, then enforce password requirement.\n\n\n**This field will be deprecated in near future.** If you would like to enable this setting, we highly encourage you to use the `require_password_for_pmi_meetings` field.\n\n', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) mute_upon_entry: Optional[bool] = Field( None, description='Automatically mute all participants when they join the meeting.', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pstn_password_protected: Optional[bool] = Field( None, description='Generate and send new passwords for newly scheduled or edited meetings.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description="If enabled, a random password will be generated on the user's end who starts the instant meeting. Other participants will have to enter the password to join the meeting. If you use PMI for your instant meetings, this option will be disabled.", ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings10] = ( Field( None, description='Indicates whether a password is required for [PMI](https://support.zoom.us/hc/en-us/articles/203276937-Using-Personal-Meeting-ID-PMI-) meetings or not. The value can be one of the following:<br>\n`none`: Do not require password for PMI meetings.<br> \n`all`: Require participants to enter password for all PMI enabled meetings.<br> `jbh_only`: Require password only for meetings where the **"join before host"** setting is enabled.', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting.', ) upcoming_meeting_reminder: Optional[bool] = Field( None, description='Receive desktop notification for upcoming meetings.' ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Indicates whether PMI is enabled for all instant meetings or not.', ) use_pmi_for_schedule_meetings: Optional[bool] = Field( None, description='Indicates whether PMI is enabled for all scheduled meetings or not.', ) class Telephony17(BaseModel): audio_conference_info: Optional[str] = Field(None, description='') telephony_regions: Optional[TelephonyRegions10] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Allow users to join the meeting using the existing 3rd party audio configuration.', ) class GroupsGroupIdSettingsGetResponse6(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting17] = None profile: Optional[Profile10] = Field(None, title='Profile') recording: Optional[Recording18] = None schedule_meeting: Optional[ScheduleMeeting17] = None telephony: Optional[Telephony17] = None class Type115(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption21(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type115] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class GroupsGroupIdSettingsGetResponse7(BaseModel): authentication_options: Optional[List[AuthenticationOption21]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type116(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption22(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type116] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class GroupsGroupIdSettingsGetResponse8(BaseModel): authentication_options: Optional[List[AuthenticationOption22]] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement24(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings14(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity14(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement24] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings14] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdSettingsGetResponse9(BaseModel): meeting_security: Optional[MeetingSecurity14] = None class GroupsGroupIdSettingsGetResponse5( RootModel[ Union[ GroupsGroupIdSettingsGetResponse6, Union[GroupsGroupIdSettingsGetResponse7, GroupsGroupIdSettingsGetResponse8], GroupsGroupIdSettingsGetResponse9, ] ] ): root: Union[ GroupsGroupIdSettingsGetResponse6, Union[GroupsGroupIdSettingsGetResponse7, GroupsGroupIdSettingsGetResponse8], GroupsGroupIdSettingsGetResponse9, ] class Option6(Enum): meeting_authentication = 'meeting_authentication' recording_authentication = 'recording_authentication' meeting_security = 'meeting_security' class InMeeting18(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to be used by this group for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the users in the group or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) non_verbal_feedback: Optional[bool] = Field( None, description='Allow participants in a meeting can provide nonverbal feedback and express opinions by clicking on icons in the Participants panel.', ) only_host_view_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices only to the host.' ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='When each participant joins by telephone, allow the option to record and play their own voice as entry and exit chimes.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) remote_support: Optional[bool] = Field( None, description='Allow meeting host to provide 1:1 remote support to another participant.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicate whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option should be enabled for the group or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_browser_join_link: Optional[bool] = Field( None, description='Allow participants to join a meeting directly from their browser.', ) show_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices.' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) waiting_room: Optional[bool] = Field( None, description='Attendees cannot join a meeting until a host admits them individually from the waiting room.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) class Profile11(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type117(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive9(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type117] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording19(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) archive: Optional[Archive9] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted archiving solution access by the Zoom Support team.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Allow only the host with a link to the cloud recording to download.', ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='When someone is sharing their screen, active speaker will show on the top right corner of the shared screen.', ) record_speaker_view: Optional[bool] = Field( None, description='Record active speaker with shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of a meeting or webinar for cloud recordings.', ) save_chat_text: Optional[bool] = Field( None, description='Save chat messages from the meeting / webinar.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class ScheduleMeeting18(BaseModel): audio_type: Optional[str] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='If join before host option is enabled for a personal meeting, then enforce password requirement.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) mute_upon_entry: Optional[bool] = Field( None, description='Automatically mute all participants when they join the meeting.', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) pstn_password_protected: Optional[bool] = Field( None, description='Generate and send new passwords for newly scheduled or edited meetings.', ) require_password_for_all_meetings: Optional[bool] = Field( None, description='Require password from all participants before joining a meeting.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description="If enabled, a random password will be generated on the user's end who starts the instant meeting. Other participants will have to enter the password to join the meeting. If you use PMI for your instant meetings, this option will be disabled.", ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings10] = ( Field( None, description='Indicates whether a password is required for [PMI](https://support.zoom.us/hc/en-us/articles/203276937-Using-Personal-Meeting-ID-PMI-) meetings or not. The value can be one of the following:<br>\n`none`: Do not require password for PMI meetings.<br> \n`all`: Require participants to enter password for all PMI enabled meetings.<br> `jbh_only`: Require password only for meetings where the **"join before host"** setting is enabled.', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. ', ) upcoming_meeting_reminder: Optional[bool] = Field( None, description='Receive desktop notification for upcoming meetings.' ) class Telephony18(BaseModel): audio_conference_info: Optional[str] = Field(None, description='') third_party_audio: Optional[bool] = Field( None, description='Allow users to join the meeting using the existing 3rd party audio configuration.', ) class GroupsGroupIdSettingsPatchRequest1(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting18] = None profile: Optional[Profile11] = Field(None, title='Profile') recording: Optional[Recording19] = None schedule_meeting: Optional[ScheduleMeeting18] = None telephony: Optional[Telephony18] = None class Action18(Enum): update = 'update' show = 'show' hide = 'hide' class Type118(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption23(BaseModel): action: Optional[Action18] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type118] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class GroupsGroupIdSettingsPatchRequest2(BaseModel): authentication_option: Optional[AuthenticationOption23] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type119(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption24(BaseModel): action: Optional[Action18] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domians: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type119] = Field(None, description='Authentication type') class GroupsGroupIdSettingsPatchRequest3(BaseModel): authentication_option: Optional[AuthenticationOption24] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement25(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings15(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity15(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement25] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings15] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdSettingsPatchRequest4(BaseModel): meeting_security: Optional[MeetingSecurity15] = None class GroupsGroupIdSettingsPatchRequest( RootModel[ Union[ GroupsGroupIdSettingsPatchRequest1, Union[ GroupsGroupIdSettingsPatchRequest2, GroupsGroupIdSettingsPatchRequest3 ], GroupsGroupIdSettingsPatchRequest4, ] ] ): root: Union[ GroupsGroupIdSettingsPatchRequest1, Union[GroupsGroupIdSettingsPatchRequest2, GroupsGroupIdSettingsPatchRequest3], GroupsGroupIdSettingsPatchRequest4, ] class InMeeting19(BaseModel): alert_guest_join: Optional[bool] = Field( None, description='Allow participants who belong to your account to see that a guest (someone who does not belong to your account) is participating in the meeting/webinar.', ) allow_show_zoom_windows: Optional[bool] = Field( None, description='Show Zoom windows during screen share.' ) annotation: Optional[bool] = Field( None, description='Allow participants to use annotation tools to add information to shared screens.', ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_answer: Optional[bool] = Field( None, description="Enable users to see and add contacts to 'auto-answer group' in the contact list on chat. Any call from members of this group will be automatically answered.", ) auto_saving_chat: Optional[bool] = Field( None, description='Automatically save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( None, description='Allow host to split meeting participants into separate, smaller rooms.', ) chat: Optional[bool] = Field( None, description='Allow meeting participants to send chat message visible to all participants.', ) closed_caption: Optional[bool] = Field( None, description='Allow host to type closed captions or assign a participant/third party device to add closed captions.', ) co_host: Optional[bool] = Field( None, description='Allow the host to add co-hosts. Co-hosts have the same in-meeting controls as the host.', ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to be used by this group for hosting their real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) data_center_regions: Optional[Union[List[str], DataCenterRegions6]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Require that all meetings are encrypted using AES.' ) entry_exit_chime: Optional[str] = Field( None, description='Play sound when participants join or leave.' ) far_end_camera_control: Optional[bool] = Field( None, description='Allow another user to take control of the camera during a meeting.', ) feedback: Optional[bool] = Field( None, description='Enable users to provide feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the users in the group or not.', ) group_hd: Optional[bool] = Field( None, description='Enable higher quality video for host and participants. This will require more bandwidth.', ) non_verbal_feedback: Optional[bool] = Field( None, description='Allow participants in a meeting can provide nonverbal feedback and express opinions by clicking on icons in the Participants panel.', ) only_host_view_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices only to the host.' ) original_audio: Optional[bool] = Field( None, description='Allow users to select original sound during a meeting.' ) polling: Optional[bool] = Field( None, description="Add 'Polls' to the meeting controls. This allows the host to survey the attendees.", ) post_meeting_feedback: Optional[bool] = Field( None, description='Display end-of-meeting experience feedback survey.' ) private_chat: Optional[bool] = Field( None, description='Allow meeting participants to send a private 1:1 message to another participant.', ) record_play_own_voice: Optional[bool] = Field( None, description='When each participant joins by telephone, allow the option to record and play their own voice as entry and exit chimes.', ) remote_control: Optional[bool] = Field( None, description='During screen sharing, allow the person who is sharing to let others control the shared content.', ) remote_support: Optional[bool] = Field( None, description='Allow meeting host to provide 1:1 remote support to another participant.', ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicate whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option should be enabled for the group or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings.', ) sending_default_email_invites: Optional[bool] = Field( None, description='Allow users to invite participants by email only by default.' ) show_browser_join_link: Optional[bool] = Field( None, description='Allow participants to join a meeting directly from their browser.', ) show_device_list: Optional[bool] = Field( None, description='Show the list of H.323/SIP devices.' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) stereo_audio: Optional[bool] = Field( None, description='Allow users to select stereo audio during a meeting.' ) use_html_format_email: Optional[bool] = Field( None, description='Allow HTML formatting instead of plain text for meeting invitations scheduled with the Outlook plugin.', ) virtual_background: Optional[bool] = Field( None, description='Enable virtual background.' ) waiting_room: Optional[bool] = Field( None, description='Attendees cannot join a meeting until a host admits them individually from the waiting room.', ) whiteboard: Optional[bool] = Field( None, description='Allow participants to share a whiteboard that includes annotation tools.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) class Profile12(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Type120(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Archive10(BaseModel): enable: Optional[bool] = Field(None, description='Enable the archiving feature.') settings: Optional[Settings17] = None type: Optional[Type120] = Field( None, description='Archive types:\n\n* `1`: Only meetings are archived.<br>\n* `2`: Only webinars are archived.<br>\n* `3`: Both meetings and webinars are archived.', ) class Recording20(BaseModel): account_user_access_recording: Optional[bool] = Field( None, description='Make cloud recordings accessible to account members only.' ) archive: Optional[Archive10] = Field( None, description='[Archiving solution](https://support.zoom.us/hc/en-us/articles/360050431572-Archiving-Meeting-and-Webinar-data) settings. This setting can only be used if you have been granted archiving solution access by the Zoom Support team.', ) auto_recording: Optional[str] = Field( None, description='Record meetings automatically as they start.' ) cloud_recording: Optional[bool] = Field( None, description='Allow hosts to record and save the meeting / webinar in the cloud.', ) cloud_recording_download: Optional[bool] = Field( None, description='Allow anyone with a link to the cloud recording to download.' ) cloud_recording_download_host: Optional[bool] = Field( None, description='Allow only the host with a link to the cloud recording to download.', ) host_delete_cloud_recording: Optional[bool] = Field( None, description='Allow the host to delete the recordings. If this option is disabled, the recordings cannot be deleted by the host and only admin can delete them.', ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field( None, description='Allow hosts and participants to record the meeting to a local file.', ) prevent_host_access_recording: Optional[bool] = Field( None, description='If set to `true`, meeting hosts cannot view their meeting cloud recordings. Only the admins who have recording management privilege can access them.\n\n', ) record_audio_file: Optional[bool] = Field( None, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( None, description='When someone is sharing their screen, active speaker will show on the top right corner of the shared screen.', ) record_speaker_view: Optional[bool] = Field( None, description='Record active speaker with shared screen.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Automatically transcribe the audio of a meeting or webinar for cloud recordings.', ) save_chat_text: Optional[bool] = Field( None, description='Save chat messages from the meeting / webinar.' ) show_timestamp: Optional[bool] = Field( None, description='Add a timestamp to the recording.' ) class ScheduleMeeting19(BaseModel): audio_type: Optional[str] = Field( None, description='Determine how participants can join the audio portion of the meeting.', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting password will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the password.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='If join before host option is enabled for a personal meeting, then enforce password requirement.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Allow participants to join the meeting before the host arrives', ) mute_upon_entry: Optional[bool] = Field( None, description='Automatically mute all participants when they join the meeting.', ) participant_video: Optional[bool] = Field( None, description='Start meetings with participant video on.' ) pstn_password_protected: Optional[bool] = Field( None, description='Generate and send new passwords for newly scheduled or edited meetings.', ) require_password_for_all_meetings: Optional[bool] = Field( None, description='Require password from all participants before joining a meeting.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description="If enabled, a random password will be generated on the user's end who starts the instant meeting. Other participants will have to enter the password to join the meeting. If you use PMI for your instant meetings, this option will be disabled.", ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings10] = ( Field( None, description='Indicates whether a password is required for [PMI](https://support.zoom.us/hc/en-us/articles/203276937-Using-Personal-Meeting-ID-PMI-) meetings or not. The value can be one of the following:<br>\n`none`: Do not require password for PMI meetings.<br> \n`all`: Require participants to enter password for all PMI enabled meetings.<br> `jbh_only`: Require password only for meetings where the **"join before host"** setting is enabled.', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a password for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='This setting applies for regular meetings that do not use PMI. If enabled, a password will be generated while a host schedules a new meeting and participants will be required to enter the password before they can join the meeting. ', ) upcoming_meeting_reminder: Optional[bool] = Field( None, description='Receive desktop notification for upcoming meetings.' ) class GroupsGroupIdSettingsPatchRequest6(BaseModel): email_notification: Optional[EmailNotification12] = None in_meeting: Optional[InMeeting19] = None profile: Optional[Profile12] = Field(None, title='Profile') recording: Optional[Recording20] = None schedule_meeting: Optional[ScheduleMeeting19] = None telephony: Optional[Telephony18] = None class Type121(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption25(BaseModel): action: Optional[Action18] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type121] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class GroupsGroupIdSettingsPatchRequest7(BaseModel): authentication_option: Optional[AuthenticationOption25] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type122(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption26(BaseModel): action: Optional[Action18] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domians: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type122] = Field(None, description='Authentication type') class GroupsGroupIdSettingsPatchRequest8(BaseModel): authentication_option: Optional[AuthenticationOption26] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement26(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings16(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity16(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement26] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings16] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class GroupsGroupIdSettingsPatchRequest9(BaseModel): meeting_security: Optional[MeetingSecurity16] = None class GroupsGroupIdSettingsPatchRequest5( RootModel[ Union[ GroupsGroupIdSettingsPatchRequest6, Union[ GroupsGroupIdSettingsPatchRequest7, GroupsGroupIdSettingsPatchRequest8 ], GroupsGroupIdSettingsPatchRequest9, ] ] ): root: Union[ GroupsGroupIdSettingsPatchRequest6, Union[GroupsGroupIdSettingsPatchRequest7, GroupsGroupIdSettingsPatchRequest8], GroupsGroupIdSettingsPatchRequest9, ] class GroupsGroupIdSettingsVirtualBackgroundsPostRequest(BaseModel): file: Optional[str] = Field(None, description="Provide the file's path here.") class GroupsGroupIdSettingsVirtualBackgroundsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the file.') is_default: Optional[bool] = Field( None, description='Indicate whether or not this file is the default virtual background file.', ) name: Optional[str] = Field(None, description='File name.') size: Optional[str] = Field(None, description='File size.') type: Optional[str] = Field(None, description='File type.') class Device2(BaseModel): id: Optional[str] = Field(None, description='Device ID.') encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) devices: Optional[List[Device2]] = Field( None, description='List of H.323/SIP Device objects.' ) class Device3(BaseModel): id: Optional[str] = Field(None, description='Device ID.') encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) devices: Optional[List[Device3]] = Field( None, description='List of H.323/SIP Device objects.' ) class H323DevicesPostRequest(BaseModel): encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesPostRequest1(BaseModel): encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesPostResponse(BaseModel): id: Optional[str] = Field(None, description='Device ID.') encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesPostResponse1(BaseModel): id: Optional[str] = Field(None, description='Device ID.') encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesDeviceIdPatchRequest(BaseModel): encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class H323DevicesDeviceIdPatchRequest1(BaseModel): encryption: Encryption = Field( ..., description='Device encryption:<br>`auto` - auto.<br>`yes` - yes.<br>`no` - no.', ) ip: str = Field(..., description='Device IP.') name: constr(max_length=64) = Field(..., description='Device name.') protocol: Protocol = Field( ..., description='Device protocol:<br>`H.323` - H.323.<br>`SIP` - SIP.' ) class ImChatMessagesPostRequest(BaseModel): account_id: str = Field(..., description='Account ID of the authorized account.') content: Dict[str, Any] = Field( ..., description='JSON template describing how the message should be displayed for the user. For more information please see our ["Send Message" templates](https://marketplace.zoom.us/docs/guides/chatbots/sending-messages#example-request).', ) is_markdown_support: Optional[bool] = Field( None, description='**Optional**<br>\nApplies the markdown parser to your chatbot message if the value of this field is set to `true`.<br> To learn more, refer to the Chatbot message [markdown reference](https://marketplace.zoom.us/docs/guides/chatbots/customizing-messages/message-with-markdown).', ) robot_jid: str = Field( ..., description='Robot JID created when enabling chatbot features on your marketplace app.', ) to_jid: str = Field( ..., description='Unique JID of reciever. Can be a group or user.' ) user_jid: Optional[str] = Field( None, description='**Optional**<br>\nThe UserJID of the user on whose behalf the message is being sent. Use this field to prevent members of a channel from getting notifications that were set up by a user who has left the channel.', ) visible_to_user: Optional[str] = Field( None, description="**Optional**<br>Allow a Chatbot to send a message to a group channel, but have only one designated person in that group channel see the message by providing the person's UserID in this field.", ) class ImChatMessagesMessageIdDeleteRequest(BaseModel): account_id: str = Field( ..., description='The AccountID of the Zoom account to which the message was sent. Retrieve this from the Chatbot request sent to your server as shown in the example [here]( https://marketplace.zoom.us/docs/guides/chatbots/sending-messages).', ) robot_jid: str = Field( ..., description='The BotJID found in the Chat Subscription Section on the Features page of your App Dashboard.', ) user_jid: Optional[str] = Field( None, description='The UserJID of the user on whose behalf the message is being sent. Used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.', ) class ImChatMessagesMessageIdDeleteResponse(BaseModel): message_id: Optional[str] = Field( None, description='Unique identifier of the message that was deleted.' ) robot_jid: Optional[str] = Field( None, description='The BotJID of the Chatbot app. It can be found in the Chat Subscription Section on the Features page of your App Dashboard', ) sent_time: Optional[str] = Field( None, description='The date and time at which the message was deleted.' ) to_jid: Optional[str] = Field( None, description='The JID of the Channel or User to whom the message was sent.' ) user_jid: Optional[str] = Field( None, description=' The UserJID of the user on whose behalf the message was sent. Used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.', ) class ImChatMessagesMessageIdPutRequest(BaseModel): account_id: str = Field( ..., description='The AccountID of the Zoom account to which the message was sent. Retrieve this from the Chatbot request sent to your server as shown in the example [here]( https://marketplace.zoom.us/docs/guides/chatbots/sending-messages).', ) content: Dict[str, Any] = Field( ..., description='JSON template describing how the edited message should be displayed for the user. For more information please see our ["Send Message" templates](https://marketplace.zoom.us/docs/guides/chatbots/sending-messages#example-request).', ) is_markdown_support: Optional[bool] = Field( None, description='**Optional**<br>\nEnable or disable markdown parser to your chatbot message. Applies the markdown parser to your chatbot message if the value of this field is set to `true`.<br> To learn more, refer to the Chatbot message [markdown reference](https://marketplace.zoom.us/docs/guides/chatbots/customizing-messages/message-with-markdown).', ) robot_jid: str = Field( ..., description='Robot JID created when enabling chatbot features on your marketplace app.', ) user_jid: Optional[str] = Field( None, description='**Optional**<br>\nThe UserJID of the user on whose behalf the message is being sent. Use this field to prevent members of a channel from getting notifications that were set up by a user who has left the channel.', ) class ImChatMessagesMessageIdPutResponse(BaseModel): message_id: Optional[str] = Field( None, description='Unique Identifier of the updated message,' ) robot_jid: Optional[str] = Field( None, description='The BotJID found in the Chat Subscription Section on the Features page of your App Dashboard.', ) sent_time: Optional[datetime] = Field( None, description='The date and time at which the message was sent.' ) to_jid: Optional[str] = Field( None, description='The JID of the Channel or User to whom the message was sent.' ) user_jid: Optional[str] = Field( None, description='The UserJID of the user on whose behalf the message is being sent. Used to prevent members of a channel from getting notifications that were set up by a user who has left the channel.', ) class Type123(Enum): Group = 'Group' field_1_1 = '1:1' class Session1(BaseModel): last_message_sent_time: Optional[datetime] = Field( None, description='Last message sent time.' ) name: Optional[str] = Field(None, description='Meeting topic.') session_id: Optional[str] = Field(None, description='IM chat session ID.') type: Optional[Type123] = Field(None, description='IM chat session type.') class ImChatSessionsGetResponse(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start date.') to: Optional[date_aliased] = Field(None, description='End date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) sessions: Optional[List[Session1]] = Field( None, description='Array of session objects.' ) class Session2(BaseModel): last_message_sent_time: Optional[datetime] = Field( None, description='Last message sent time.' ) name: Optional[str] = Field(None, description='Meeting topic.') session_id: Optional[str] = Field(None, description='IM chat session ID.') type: Optional[Type123] = Field(None, description='IM chat session type.') class ImChatSessionsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start date.') to: Optional[date_aliased] = Field(None, description='End date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) sessions: Optional[List[Session2]] = Field( None, description='Array of session objects.' ) class Message2(BaseModel): action: Optional[str] = Field(None, description='IM chat message action.') action_time: Optional[datetime] = Field(None, description='Action time.') date_time: Optional[datetime] = Field( None, description='IM chat message sent time.' ) message: Optional[str] = Field(None, description='IM chat message content.') sender: Optional[str] = Field(None, description='IM chat message sender.') class ImChatSessionsSessionIdGetResponse(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start date.') session_id: Optional[str] = Field(None, description='IM chat session ID.') to: Optional[date_aliased] = Field(None, description='End date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) messages: Optional[List[Message2]] = Field( None, description='Array of session objects.' ) class ImChatSessionsSessionIdGetResponse1(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start date.') session_id: Optional[str] = Field(None, description='IM chat session ID.') to: Optional[date_aliased] = Field(None, description='End date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) messages: Optional[List[Message2]] = Field( None, description='Array of session objects.' ) class Type125(Enum): normal = 'normal' shared = 'shared' restricted = 'restricted' class Group5(BaseModel): id: Optional[str] = Field(None, description='IM group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account - including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see the other members in the group. Other people can search for members in the group.<br>`shared` - Everyone in the account can see the group and members. <br>`restricted` - No one except group members can see the group or search for other group members. ', ) class ImGroupsGetResponse(BaseModel): total_records: Optional[int] = Field( None, description='Total number of records returned.' ) groups: Optional[List[Group5]] = Field(None, description='List of group objects.') class Group6(BaseModel): id: Optional[str] = Field(None, description='IM group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account - including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see the other members in the group. Other people can search for members in the group.<br>`shared` - Everyone in the account can see the group and members. <br>`restricted` - No one except group members can see the group or search for other group members. ', ) class ImGroupsGetResponse1(BaseModel): total_records: Optional[int] = Field( None, description='Total number of records returned.' ) groups: Optional[List[Group6]] = Field(None, description='List of group objects.') class ImGroupsPostRequest(BaseModel): name: Optional[constr(max_length=128)] = Field( None, description='Group name: must be unique to one account.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account, including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see automatically see the other members of this group. Other people can search for members within this group. <br>`shared` - Everyone under an account can see the group members automatically.<br>`restricted` - Nobody can see the group or search for members except the members in the group.', ) class ImGroupsPostRequest1(BaseModel): name: Optional[constr(max_length=128)] = Field( None, description='Group name: must be unique to one account.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account, including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see automatically see the other members of this group. Other people can search for members within this group. <br>`shared` - Everyone under an account can see the group members automatically.<br>`restricted` - Nobody can see the group or search for members except the members in the group.', ) class ImGroupsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account, including all sub accounts.', ) total_members: Optional[int] = Field(None, description='Group member count.') class ImGroupsGroupIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account - including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see the other members in the group. Other people can search for members in the group.<br>`shared` - Everyone in the account can see the group and members. <br>`restricted` - No one except group members can see the group or search for other group members. ', ) class ImGroupsGroupIdGetResponse1(BaseModel): id: Optional[str] = Field(None, description='Group ID.') name: Optional[str] = Field(None, description='Group name.') total_members: Optional[int] = Field( None, description='Total number of members in this group.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account - including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only members can see the other members in the group. Other people can search for members in the group.<br>`shared` - Everyone in the account can see the group and members. <br>`restricted` - No one except group members can see the group or search for other group members. ', ) class ImGroupsGroupIdPatchRequest(BaseModel): name: Optional[constr(max_length=128)] = Field( None, description='Group name: must be unique to one account.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account, including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only group members can automatically see others in their group. Other people can search for members in the group.<br>`shared` - Everyone under the account can see the group and members automatically.<br>`restricted` - Nobody can see the group or search for members except for the members in the group.', ) class ImGroupsGroupIdPatchRequest1(BaseModel): name: Optional[constr(max_length=128)] = Field( None, description='Group name: must be unique to one account.' ) search_by_account: Optional[bool] = Field( None, description='Members can search for others under same account.' ) search_by_domain: Optional[bool] = Field( None, description='Members can search for others in the same email domain.' ) search_by_ma_account: Optional[bool] = Field( None, description='Members can search for others under same master account, including all sub accounts.', ) type: Optional[Type125] = Field( 'normal', description='IM Group types:<br>`normal` - Only group members can automatically see others in their group. Other people can search for members in the group.<br>`shared` - Everyone under the account can see the group and members automatically.<br>`restricted` - Nobody can see the group or search for members except for the members in the group.', ) class Member13(BaseModel): email: Optional[str] = Field(None, description='User email.') first_name: Optional[str] = Field(None, description='User first name.') id: Optional[str] = Field(None, description='User ID.') last_name: Optional[str] = Field(None, description='User last name.') type: Optional[int] = Field( None, description='User type.<br>\n`1` - Basic<br> `2` - Licensed<br> \n`3` - On-prem', ) class ImGroupsGroupIdMembersGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) members: Optional[List[Member13]] = Field( None, description='List of Group member objects.' ) class ImGroupsGroupIdMembersGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) members: Optional[List[Member13]] = Field( None, description='List of Group member objects.' ) class Member15(BaseModel): email: Optional[str] = Field( None, description='User email. If the user ID is given then ignore the user email. ', ) id: Optional[str] = Field(None, description='User ID.') class ImGroupsGroupIdMembersPostRequest(BaseModel): members: Optional[List[Member15]] = Field( None, description='List of IM group members.', le=10 ) class ImGroupsGroupIdMembersPostRequest1(BaseModel): members: Optional[List[Member15]] = Field( None, description='List of IM group members.', le=10 ) class ImGroupsGroupIdMembersPostResponse(BaseModel): added_at: Optional[datetime] = None ids: Optional[str] = None class ImUsersMeChatMessagesPostRequest(BaseModel): message: Optional[str] = Field(None, description='IM message content.') class ImUsersMeChatMessagesPostResponse(BaseModel): id: Optional[UUID] = Field(None, description='IM message UUID.') class Message4(BaseModel): date_time: Optional[datetime] = Field(None, description='IM message send time.') id: Optional[UUID] = Field(None, description='IM message UUID.') message: Optional[str] = Field(None, description='IM message content.') sender: Optional[str] = Field(None, description='IM message sender.') timstamp: Optional[int] = Field(None, description='IM message send timestamp.') class ImUsersUserIdChatMessagesGetResponse(BaseModel): date: Optional[datetime] = Field( None, description='Query date time, format as yyyy-mm-dd.' ) messages: Optional[List[Message4]] = Field( None, description='Array of im messages.' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) class ImUsersUserIdChatMessagesGetResponse1(BaseModel): date: Optional[datetime] = Field( None, description='Query date time, format as yyyy-mm-dd.' ) messages: Optional[List[Message4]] = Field( None, description='Array of im messages.' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) class LiveMeetingsMeetingIdEventsPatchRequest(BaseModel): method: Optional[str] = Field( None, description='The method that you would like to control. The value of this field can be one of the following:\n* `recording.start`: Provide this value if you would like to start the recording.<br><br>\n* `recording.stop`: Provide this value if you would like to stop the recording.<br><br>\n* `recording.pause`: Provide this value if you would like to pause the recording.<br><br>\n* `recording.resume`: Provide this value if you would like to resume the recording that was previously paused.\n\n\n\n', ) class Type133(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence14(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type133 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions8(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom8(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class CustomKey10(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the user.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the user.' ) class Type134(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber8(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type134] = Field(None, description='Type of number. ') class LanguageInterpretation8(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings25(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions8 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom8] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey10]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber8]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation8] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Status28(Enum): waiting = 'waiting' started = 'started' class TrackingField16(BaseModel): field: Optional[str] = Field(None, description='Label of the tracking field.') value: Optional[str] = Field(None, description='Value for the field.') visible: Optional[bool] = Field( None, description='Indicates whether the [tracking field](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields) is visible in the meeting scheduling options in the Zoom Web Portal or not.\n\n`true`: Tracking field is visible. <br>\n\n`false`: Tracking field is not visible to the users when they look at the meeting details in the Zoom Web Portal but the field was used while scheduling this meeting via API. An invisible tracking field can be used by users while scheduling meetings via API only. ', ) class Type135(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingsMeetingIdGetResponse(BaseModel): assistant_id: Optional[str] = Field( None, description='Unique identifier of the scheduler who scheduled this meeting on behalf of the host. This field is only returned if you used "schedule_for" option in the [Create a Meeting API request](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate).', ) host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) host_id: Optional[str] = Field( None, description='ID of the user who is set as host of meeting.' ) id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) uuid: Optional[str] = Field( None, description="Unique meeting ID. Each meeting instance will generate its own Meeting UUID (i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). You can retrieve a list of UUIDs from past meeting instances using [this API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/pastmeetings) . Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.\n", ) agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description' ) created_at: Optional[datetime] = Field(None, description='Time of creation. ') duration: Optional[int] = Field(None, description='Meeting duration.') encrypted_password: Optional[str] = Field( None, description='Encrypted passcode for third party endpoints (H323/SIP).' ) h323_password: Optional[str] = Field( None, description='H.323/SIP room system passcode.' ) join_url: Optional[str] = Field( None, description='URL for participants to join the meeting. This URL should only be shared with users that you would like to invite for the meeting.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[str] = Field(None, description='Meeting passcode.') pmi: Optional[int] = Field( None, description='Personal Meeting Id. Only used for scheduled meetings and recurring meetings with no fixed time.', ) recurrence: Optional[Recurrence14] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings25] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time in GMT/UTC. Start time will not be returned if the meeting is an **instant** meeting. \n', ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Meeting is a URL using which a host or an alternative host can start the Meeting. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Meeting API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the updated value for the <code>start_url</code> field programmatically (after the expiry time), you must call the [Retrieve a Meeting API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting) and refer to the value of the <code>start_url</code> field in the response.</aside><br>This URL should only be used by the host of the meeting and **should not be shared with anyone other than the host** of the meeting as anyone with this URL will be able to login to the Zoom Client as the host of the meeting.', ) status: Optional[Status28] = Field(None, description='Meeting status') timezone: Optional[str] = Field( None, description='Timezone to format the meeting start time on the .' ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField16]] = Field( None, description='Tracking fields' ) type: Optional[Type135] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`4` - PMI Meeting<br>\n`8` - Recurring meeting with a fixed time.', ) class Type136(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence15(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type136 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions9(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom9(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type137(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber9(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type137] = Field(None, description='Type of number. ') class LanguageInterpretation9(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings26(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions9 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom9] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey10]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber9]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation9] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type138(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingsMeetingIdGetResponse1(BaseModel): assistant_id: Optional[str] = Field( None, description='Unique identifier of the scheduler who scheduled this meeting on behalf of the host. This field is only returned if you used "schedule_for" option in the [Create a Meeting API request](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate).', ) host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) host_id: Optional[str] = Field( None, description='ID of the user who is set as host of meeting.' ) id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) uuid: Optional[str] = Field( None, description="Unique meeting ID. Each meeting instance will generate its own Meeting UUID (i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). You can retrieve a list of UUIDs from past meeting instances using [this API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/pastmeetings) . Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.\n", ) agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description' ) created_at: Optional[datetime] = Field(None, description='Time of creation. ') duration: Optional[int] = Field(None, description='Meeting duration.') encrypted_password: Optional[str] = Field( None, description='Encrypted passcode for third party endpoints (H323/SIP).' ) h323_password: Optional[str] = Field( None, description='H.323/SIP room system passcode.' ) join_url: Optional[str] = Field( None, description='URL for participants to join the meeting. This URL should only be shared with users that you would like to invite for the meeting.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[str] = Field(None, description='Meeting passcode.') pmi: Optional[int] = Field( None, description='Personal Meeting Id. Only used for scheduled meetings and recurring meetings with no fixed time.', ) recurrence: Optional[Recurrence15] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings26] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time in GMT/UTC. Start time will not be returned if the meeting is an **instant** meeting. \n', ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Meeting is a URL using which a host or an alternative host can start the Meeting. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Meeting API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the updated value for the <code>start_url</code> field programmatically (after the expiry time), you must call the [Retrieve a Meeting API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting) and refer to the value of the <code>start_url</code> field in the response.</aside><br>This URL should only be used by the host of the meeting and **should not be shared with anyone other than the host** of the meeting as anyone with this URL will be able to login to the Zoom Client as the host of the meeting.', ) status: Optional[Status28] = Field(None, description='Meeting status') timezone: Optional[str] = Field( None, description='Timezone to format the meeting start time on the .' ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField16]] = Field( None, description='Tracking fields' ) type: Optional[Type138] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`4` - PMI Meeting<br>\n`8` - Recurring meeting with a fixed time.', ) class Type139(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence16(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type139 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions10(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom10(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type140(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber10(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type140] = Field(None, description='Type of number. ') class LanguageInterpretation10(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings27(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions10 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom10] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey10]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber10]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation10] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField18(BaseModel): field: Optional[str] = Field(None, description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type141(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingsMeetingIdPatchRequest(BaseModel): schedule_for: Optional[str] = Field( None, description='Email or userId if you want to schedule meeting for another user.', ) agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Meeting passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence16] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings27] = None start_time: Optional[datetime] = Field( None, description='Meeting start time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", always use GMT time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss", you should use local time and specify the time zone. Only used for scheduled meetings and recurring meetings with a fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the meeting template. \n\nUse this field if you would like to [schedule the meeting from a meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates]() API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField18]] = Field( None, description='Tracking fields' ) type: Optional[Type141] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with a fixed time.', ) class Type142(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence17(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type142 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions11(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom11(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room]] = Field(None, description='Create room(s).') class Type143(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber11(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type143] = Field(None, description='Type of number. ') class LanguageInterpretation11(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings28(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions11 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom11] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey10]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber11]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation11] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type144(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class MeetingsMeetingIdPatchRequest1(BaseModel): schedule_for: Optional[str] = Field( None, description='Email or userId if you want to schedule meeting for another user.', ) agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Meeting passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence17] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings28] = None start_time: Optional[datetime] = Field( None, description='Meeting start time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", always use GMT time. When using a format like "yyyy-MM-dd\'T\'HH:mm:ss", you should use local time and specify the time zone. Only used for scheduled meetings and recurring meetings with a fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the meeting template. \n\nUse this field if you would like to [schedule the meeting from a meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates]() API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField18]] = Field( None, description='Tracking fields' ) type: Optional[Type144] = Field( 2, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with a fixed time.', ) class Type145(Enum): single = 'single' multiple = 'multiple' class Question5(BaseModel): answers: Optional[List[str]] = Field( None, description='Possible answers for the question.' ) name: Optional[str] = Field(None, description='Name of the question.') type: Optional[Type145] = Field( None, description='Question type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdBatchPollsPostRequest(BaseModel): questions: Optional[List[Question5]] = None title: Optional[str] = Field(None, description='Meeting Poll Title.') class Question6(BaseModel): answers: Optional[List[str]] = Field( None, description='Possible answers for the question.' ) name: Optional[str] = Field(None, description='Name of the question.') type: Optional[Type145] = Field( None, description='Question type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdBatchPollsPostRequest1(BaseModel): questions: Optional[List[Question6]] = None title: Optional[str] = Field(None, description='Meeting Poll Title.') class Question7(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to questons') name: Optional[str] = Field(None, description='Name of question.') type: Optional[Type145] = Field(None, description='Poll question and answer type.') class Status30(Enum): notstart = 'notstart' started = 'started' ended = 'ended' sharing = 'sharing' class Poll2(BaseModel): id: Optional[str] = Field(None, description='Meeting Poll ID') questions: Optional[List[Question7]] = None status: Optional[Status30] = Field( None, description='Status of the Meeting Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) title: Optional[str] = Field(None, description='Title for the Poll') class MeetingsMeetingIdBatchPollsPostResponse(BaseModel): polls: Optional[List[Poll2]] = None class Question8(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to questons') name: Optional[str] = Field(None, description='Name of question.') type: Optional[Type145] = Field(None, description='Poll question and answer type.') class Poll3(BaseModel): id: Optional[str] = Field(None, description='Meeting Poll ID') questions: Optional[List[Question8]] = None status: Optional[Status30] = Field( None, description='Status of the Meeting Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) title: Optional[str] = Field(None, description='Title for the Poll') class MeetingsMeetingIdBatchPollsPostResponse1(BaseModel): polls: Optional[List[Poll3]] = None class MeetingsMeetingIdInvitationGetResponse(BaseModel): invitation: Optional[str] = Field(None, description='Meeting invitation.') class MeetingsMeetingIdLivestreamGetResponse(BaseModel): page_url: Optional[str] = Field( None, description='Live streaming page URL. This is the URL using which anyone can view the live stream of the meeting.', ) stream_key: Optional[str] = Field(None, description='Stream Key.') stream_url: Optional[str] = Field(None, description='Stream URL.') class MeetingsMeetingIdLivestreamPatchRequest(BaseModel): page_url: Optional[AnyUrl] = Field(None, description='The livestream page URL.') stream_key: constr(max_length=512) = Field(..., description='Stream name and key.') stream_url: constr(max_length=1024) = Field(..., description='Streaming URL.') class Action22(Enum): start = 'start' stop = 'stop' class Settings29(BaseModel): active_speaker_name: Optional[bool] = Field( None, description='Display the name of the active speaker during a live stream.' ) display_name: Optional[constr(min_length=1, max_length=50)] = Field( None, description='Display name of the live stream.' ) class MeetingsMeetingIdLivestreamStatusPatchRequest(BaseModel): action: Optional[Action22] = Field( None, description='Update the status of a livestream.\n\nThe value can be one of the following:<br>\n`start`: Start a live stream. <br>\n`stop`: Stop an ongoing live stream.', ) settings: Optional[Settings29] = Field( None, description='Update the settings of a live streaming session. The settings can only be updated for a live stream that has been stopped. You can not update the settings of an ongoing live stream.', ) class MeetingsMeetingIdLivestreamStatusPatchRequest1(BaseModel): action: Optional[Action22] = Field( None, description='Update the status of a livestream.\n\nThe value can be one of the following:<br>\n`start`: Start a live stream. <br>\n`stop`: Stop an ongoing live stream.', ) settings: Optional[Settings29] = Field( None, description='Update the settings of a live streaming session. The settings can only be updated for a live stream that has been stopped. You can not update the settings of an ongoing live stream.', ) class Question9(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class Poll4(BaseModel): id: Optional[str] = Field(None, description='ID of Poll') status: Optional[Status30] = Field( None, description='Status of Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question9]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class MeetingsMeetingIdPollsGetResponse(BaseModel): polls: Optional[List[Poll4]] = Field(None, description='Array of Polls') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class Question10(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class Poll5(BaseModel): id: Optional[str] = Field(None, description='ID of Poll') status: Optional[Status30] = Field( None, description='Status of Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question10]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class MeetingsMeetingIdPollsGetResponse1(BaseModel): polls: Optional[List[Poll5]] = Field(None, description='Array of Polls') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class Question11(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPostRequest(BaseModel): questions: Optional[List[Question11]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question12(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPostRequest1(BaseModel): questions: Optional[List[Question12]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question13(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Meeting Poll ID') status: Optional[Status30] = Field( None, description='Status of the Meeting Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question13]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question14(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPostResponse1(BaseModel): id: Optional[str] = Field(None, description='Meeting Poll ID') status: Optional[Status30] = Field( None, description='Status of the Meeting Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question14]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question15(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPollIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Meeting Poll ID') status: Optional[Status30] = Field( None, description='Status of the Meeting Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question15]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question16(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPollIdGetResponse1(BaseModel): id: Optional[str] = Field(None, description='Meeting Poll ID') status: Optional[Status30] = Field( None, description='Status of the Meeting Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question16]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question17(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPollIdPutRequest(BaseModel): questions: Optional[List[Question17]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question18(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type145] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class MeetingsMeetingIdPollsPollIdPutRequest1(BaseModel): questions: Optional[List[Question18]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Action24(Enum): trash = 'trash' delete = 'delete' class Status38(Enum): completed = 'completed' class RecordingFile5(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status38] = Field(None, description='The recording status.') class MeetingsMeetingIdRecordingsGetResponse(BaseModel): account_id: Optional[str] = Field( None, description='Unique Identifier of the user account.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user set as host of meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - also known as the meeting number.' ) recording_count: Optional[str] = Field( None, description='Number of recording files returned in the response of this API call.', ) start_time: Optional[datetime] = Field( None, description='The time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[str] = Field(None, description='Total size of the recording.') type: Optional[str] = Field( None, description='Type of the meeting that was recorded.\n\nMeeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting Identifier. Each instance of the meeting will have its own UUID.', ) recording_files: Optional[List[RecordingFile5]] = Field( None, description='List of recording file.', title='Recording file List' ) download_access_token: Optional[str] = Field( None, description='JWT token for downloading the meeting recording.\n This is only returned if the `include_fields` query parameter contains `download_access_token`.', ) class RecordingFile6(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status38] = Field(None, description='The recording status.') class MeetingsMeetingIdRecordingsGetResponse1(BaseModel): account_id: Optional[str] = Field( None, description='Unique Identifier of the user account.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user set as host of meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - also known as the meeting number.' ) recording_count: Optional[str] = Field( None, description='Number of recording files returned in the response of this API call.', ) start_time: Optional[datetime] = Field( None, description='The time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[str] = Field(None, description='Total size of the recording.') type: Optional[str] = Field( None, description='Type of the meeting that was recorded.\n\nMeeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting Identifier. Each instance of the meeting will have its own UUID.', ) recording_files: Optional[List[RecordingFile6]] = Field( None, description='List of recording file.', title='Recording file List' ) download_access_token: Optional[str] = Field( None, description='JWT token for downloading the meeting recording.\n This is only returned if the `include_fields` query parameter contains `download_access_token`.', ) class Status40(Enum): pending = 'pending' approved = 'approved' denied = 'denied' class CustomQuestion12(BaseModel): title: Optional[str] = None value: Optional[str] = None class Registrant8(BaseModel): id: Optional[str] = None address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion12]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class MeetingsMeetingIdRecordingsRegistrantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant8]] = Field( None, description='List of Registrant objects' ) class Registrant9(BaseModel): id: Optional[str] = None address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion12]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class MeetingsMeetingIdRecordingsRegistrantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant9]] = Field( None, description='List of Registrant objects' ) class MeetingsMeetingIdRecordingsRegistrantsPostRequest(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion12]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class MeetingsMeetingIdRecordingsRegistrantsPostRequest1(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion12]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class MeetingsMeetingIdRecordingsRegistrantsPostResponse(BaseModel): id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) registrant_id: Optional[str] = Field(None, description='Registrant ID') share_url: Optional[str] = Field( None, description='Share URL for the on-demand recording. This includes the “tk” token for the registrant. This is similar to the token that Zoom returns in the URL response to join a registered meeting, for example: `url?tk=xxxx`. Except while the meeting registration token can be used to join the meeting, this token can only be used to watch the recording.', ) topic: Optional[str] = Field(None, description='Meeting Topic') class Type159(Enum): short = 'short' single = 'single' multiple = 'multiple' class CustomQuestion16(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used with Short answer type.', ) required: Optional[bool] = Field( None, description='State whether registrants are required to answer custom questions or not.', ) title: Optional[str] = Field(None, description='Title of the question.') type: Optional[Type159] = Field( None, description='The type of registration question and answers.' ) class Question19(BaseModel): field_name: Optional[FieldName1] = Field(None, description='Field name.') required: Optional[bool] = Field( None, description='State whether the field is required to be answered by the registrant or not.', ) class MeetingsMeetingIdRecordingsRegistrantsQuestionsGetResponse(BaseModel): custom_questions: Optional[List[CustomQuestion16]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question19]] = Field( None, description='Array of Registrant Questions' ) class CustomQuestion17(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used with Short answer type.', ) required: Optional[bool] = Field( None, description='State whether registrants are required to answer custom questions or not.', ) title: Optional[str] = Field(None, description='Title of the question.') type: Optional[Type159] = Field( None, description='The type of registration question and answers.' ) class Question20(BaseModel): field_name: Optional[FieldName1] = Field(None, description='Field name.') required: Optional[bool] = Field( None, description='State whether the field is required to be answered by the registrant or not.', ) class MeetingsMeetingIdRecordingsRegistrantsQuestionsGetResponse1(BaseModel): custom_questions: Optional[List[CustomQuestion17]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question20]] = Field( None, description='Array of Registrant Questions' ) class CustomQuestion18(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used with Short answer type.', ) required: Optional[bool] = Field( None, description='State whether registrants are required to answer custom questions or not.', ) title: Optional[str] = Field(None, description='Title of the question.') type: Optional[Type159] = Field( None, description='The type of registration question and answers.' ) class Question21(BaseModel): field_name: Optional[FieldName1] = Field(None, description='Field name.') required: Optional[bool] = Field( None, description='State whether the field is required to be answered by the registrant or not.', ) class MeetingsMeetingIdRecordingsRegistrantsQuestionsPatchRequest(BaseModel): custom_questions: Optional[List[CustomQuestion18]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question21]] = Field( None, description='Array of Registrant Questions' ) class CustomQuestion19(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used with Short answer type.', ) required: Optional[bool] = Field( None, description='State whether registrants are required to answer custom questions or not.', ) title: Optional[str] = Field(None, description='Title of the question.') type: Optional[Type159] = Field( None, description='The type of registration question and answers.' ) class Question22(BaseModel): field_name: Optional[FieldName1] = Field(None, description='Field name.') required: Optional[bool] = Field( None, description='State whether the field is required to be answered by the registrant or not.', ) class MeetingsMeetingIdRecordingsRegistrantsQuestionsPatchRequest1(BaseModel): custom_questions: Optional[List[CustomQuestion19]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question22]] = Field( None, description='Array of Registrant Questions' ) class Action26(Enum): approve = 'approve' deny = 'deny' class Registrant10(BaseModel): id: Optional[str] = None class MeetingsMeetingIdRecordingsRegistrantsStatusPutRequest(BaseModel): action: Action26 registrants: Optional[List[Registrant10]] = Field( None, description='List of registrants', le=30 ) class MeetingsMeetingIdRecordingsRegistrantsStatusPutRequest1(BaseModel): action: Action26 registrants: Optional[List[Registrant10]] = Field( None, description='List of registrants', le=30 ) class MeetingsMeetingIdRecordingsSettingsGetResponse(BaseModel): approval_type: Optional[ApprovalType] = Field( 2, description='Approval type for the registration.<br>\n`0`- Automatically approve the registration when a user registers.<br>\n`1` - Manually approve or deny the registration of a user.<br>\n`2` - No registration required to view the recording.', ) authentication_domains: Optional[str] = Field( None, description='Authentication domains.' ) authentication_option: Optional[str] = Field( None, description='Authentication Options.' ) on_demand: Optional[bool] = Field( None, description='Determine whether registration isrequired to view the recording.', ) password: Optional[constr(min_length=8, max_length=10)] = Field( None, description='Enable password protection for the recording by setting a password. The password must have a minimum of **eight** characters with a mix of numbers, letters and special characters.<br><br>\n**Note:** If the account owner or the admin has set minimum password strength requirements for recordings via Account Settings, the password value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view.' ) send_email_to_host: Optional[bool] = Field( None, description='Send an email to host when someone registers to view the recording. This applies for On-demand recordings only.', ) share_recording: Optional[ShareRecording] = Field( None, description='Determine how the meeting recording is shared.' ) show_social_share_buttons: Optional[bool] = Field( None, description='Show social share buttons on registration page. This applies for On-demand recordings only.', ) topic: Optional[str] = Field(None, description='Name of the recording.') viewer_download: Optional[bool] = Field( None, description='Determine whether a viewer can download the recording file or not.', ) class MeetingsMeetingIdRecordingsSettingsGetResponse1(BaseModel): approval_type: Optional[ApprovalType] = Field( 2, description='Approval type for the registration.<br>\n`0`- Automatically approve the registration when a user registers.<br>\n`1` - Manually approve or deny the registration of a user.<br>\n`2` - No registration required to view the recording.', ) authentication_domains: Optional[str] = Field( None, description='Authentication domains.' ) authentication_option: Optional[str] = Field( None, description='Authentication Options.' ) on_demand: Optional[bool] = Field( None, description='Determine whether registration isrequired to view the recording.', ) password: Optional[constr(min_length=8, max_length=10)] = Field( None, description='Enable password protection for the recording by setting a password. The password must have a minimum of **eight** characters with a mix of numbers, letters and special characters.<br><br>\n**Note:** If the account owner or the admin has set minimum password strength requirements for recordings via Account Settings, the password value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view.' ) send_email_to_host: Optional[bool] = Field( None, description='Send an email to host when someone registers to view the recording. This applies for On-demand recordings only.', ) share_recording: Optional[ShareRecording] = Field( None, description='Determine how the meeting recording is shared.' ) show_social_share_buttons: Optional[bool] = Field( None, description='Show social share buttons on registration page. This applies for On-demand recordings only.', ) topic: Optional[str] = Field(None, description='Name of the recording.') viewer_download: Optional[bool] = Field( None, description='Determine whether a viewer can download the recording file or not.', ) class MeetingsMeetingIdRecordingsSettingsPatchRequest(BaseModel): approval_type: Optional[ApprovalType] = Field( 2, description='Approval type for the registration.<br>\n`0`- Automatically approve the registration when a user registers.<br>\n`1` - Manually approve or deny the registration of a user.<br>\n`2` - No registration required to view the recording.', ) authentication_domains: Optional[str] = Field( None, description='Authentication domains.' ) authentication_option: Optional[str] = Field( None, description='Authentication Options.' ) on_demand: Optional[bool] = Field( None, description='Determine whether registration isrequired to view the recording.', ) password: Optional[constr(min_length=8, max_length=10)] = Field( None, description='Enable password protection for the recording by setting a password. The password must have a minimum of **eight** characters with a mix of numbers, letters and special characters.<br><br>\n**Note:** If the account owner or the admin has set minimum password strength requirements for recordings via Account Settings, the password value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view.' ) send_email_to_host: Optional[bool] = Field( None, description='Send an email to host when someone registers to view the recording. This applies for On-demand recordings only.', ) share_recording: Optional[ShareRecording] = Field( None, description='Determine how the meeting recording is shared.' ) show_social_share_buttons: Optional[bool] = Field( None, description='Show social share buttons on registration page. This applies for On-demand recordings only.', ) topic: Optional[str] = Field(None, description='Name of the recording.') viewer_download: Optional[bool] = Field( None, description='Determine whether a viewer can download the recording file or not.', ) class MeetingsMeetingIdRecordingsSettingsPatchRequest1(BaseModel): approval_type: Optional[ApprovalType] = Field( 2, description='Approval type for the registration.<br>\n`0`- Automatically approve the registration when a user registers.<br>\n`1` - Manually approve or deny the registration of a user.<br>\n`2` - No registration required to view the recording.', ) authentication_domains: Optional[str] = Field( None, description='Authentication domains.' ) authentication_option: Optional[str] = Field( None, description='Authentication Options.' ) on_demand: Optional[bool] = Field( None, description='Determine whether registration isrequired to view the recording.', ) password: Optional[constr(min_length=8, max_length=10)] = Field( None, description='Enable password protection for the recording by setting a password. The password must have a minimum of **eight** characters with a mix of numbers, letters and special characters.<br><br>\n**Note:** If the account owner or the admin has set minimum password strength requirements for recordings via Account Settings, the password value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view.' ) send_email_to_host: Optional[bool] = Field( None, description='Send an email to host when someone registers to view the recording. This applies for On-demand recordings only.', ) share_recording: Optional[ShareRecording] = Field( None, description='Determine how the meeting recording is shared.' ) show_social_share_buttons: Optional[bool] = Field( None, description='Show social share buttons on registration page. This applies for On-demand recordings only.', ) topic: Optional[str] = Field(None, description='Name of the recording.') viewer_download: Optional[bool] = Field( None, description='Determine whether a viewer can download the recording file or not.', ) class Action28(Enum): recover = 'recover' class MeetingsMeetingIdRecordingsStatusPutRequest(BaseModel): action: Optional[Action28] = None class MeetingsMeetingIdRecordingsStatusPutRequest1(BaseModel): action: Optional[Action28] = None class Action30(Enum): trash = 'trash' delete = 'delete' class Action32(Enum): recover = 'recover' class MeetingsMeetingIdRecordingsRecordingIdStatusPutRequest(BaseModel): action: Optional[Action32] = None class MeetingsMeetingIdRecordingsRecordingIdStatusPutRequest1(BaseModel): action: Optional[Action32] = None class CustomQuestion20(BaseModel): title: Optional[str] = None value: Optional[str] = None class Registrant12(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion20]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class MeetingsMeetingIdRegistrantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant12]] = Field( None, description='List of registrant objects.' ) class Registrant13(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion20]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class MeetingsMeetingIdRegistrantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant13]] = Field( None, description='List of registrant objects.' ) class MeetingsMeetingIdRegistrantsPostRequest(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion20]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") language: Optional[str] = Field( None, description="Registrant's language preference for confirmation emails. The value can be one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.", ) auto_approve: Optional[bool] = None class MeetingsMeetingIdRegistrantsPostRequest1(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion20]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") language: Optional[str] = Field( None, description="Registrant's language preference for confirmation emails. The value can be one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.", ) auto_approve: Optional[bool] = None class MeetingsMeetingIdRegistrantsPostResponse(BaseModel): id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) join_url: Optional[str] = Field( None, description='Unique URL for this registrant to join the meeting. This URL should only be shared with the registrant for whom the API request was made.\nIf the meeting was [created](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) with manual approval type (`approval_type`: 1), the join URL will not be returned in the response.', ) registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant.' ) start_time: Optional[str] = Field( None, description='The start time for the meeting.' ) topic: Optional[str] = Field(None, description='Topic of the meeting.') class Type163(Enum): short = 'short' single = 'single' class CustomQuestion24(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used for `short` question type as this type of question requires registrants to type out the answer.', ) required: Optional[bool] = Field( None, description='Indicates whether or not the custom question is required to be answered by participants or not.', ) title: Optional[str] = Field(None, description='Title of the custom question.') type: Optional[Type163] = Field( None, description='Type of the question being asked.' ) class FieldName7(Enum): address = 'address' city = 'city' country = 'country' zip = 'zip' state = 'state' phone = 'phone' industry = 'industry' org = 'org' job_title = 'job_title' purchasing_time_frame = 'purchasing_time_frame' role_in_purchase_process = 'role_in_purchase_process' no_of_employees = 'no_of_employees' comments = 'comments' class Question23(BaseModel): field_name: Optional[FieldName7] = Field( None, description='Field name of the question.' ) required: Optional[bool] = Field( None, description='Indicates whether or not the displayed fields are required to be filled out by registrants.', ) class MeetingsMeetingIdRegistrantsQuestionsGetResponse(BaseModel): custom_questions: Optional[List[CustomQuestion24]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question23]] = Field( None, description='Array of Registrant Questions' ) class CustomQuestion25(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used for `short` question type as this type of question requires registrants to type out the answer.', ) required: Optional[bool] = Field( None, description='Indicates whether or not the custom question is required to be answered by participants or not.', ) title: Optional[str] = Field(None, description='Title of the custom question.') type: Optional[Type163] = Field( None, description='Type of the question being asked.' ) class Question24(BaseModel): field_name: Optional[FieldName7] = Field( None, description='Field name of the question.' ) required: Optional[bool] = Field( None, description='Indicates whether or not the displayed fields are required to be filled out by registrants.', ) class MeetingsMeetingIdRegistrantsQuestionsGetResponse1(BaseModel): custom_questions: Optional[List[CustomQuestion25]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question24]] = Field( None, description='Array of Registrant Questions' ) class CustomQuestion26(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used for `short` question type as this type of question requires registrants to type out the answer.', ) required: Optional[bool] = Field( None, description='Indicates whether or not the custom question is required to be answered by participants or not.', ) title: Optional[str] = Field(None, description='Title of the custom question.') type: Optional[Type163] = Field( None, description='Type of the question being asked.' ) class Question25(BaseModel): field_name: Optional[FieldName7] = Field( None, description='Field name of the question.' ) required: Optional[bool] = Field( None, description='Indicates whether or not the displayed fields are required to be filled out by registrants.', ) class MeetingsMeetingIdRegistrantsQuestionsPatchRequest(BaseModel): custom_questions: Optional[List[CustomQuestion26]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question25]] = Field( None, description='Array of Registrant Questions' ) class CustomQuestion27(BaseModel): answers: Optional[List[str]] = Field( None, description='Answer choices for the question. Can not be used for `short` question type as this type of question requires registrants to type out the answer.', ) required: Optional[bool] = Field( None, description='Indicates whether or not the custom question is required to be answered by participants or not.', ) title: Optional[str] = Field(None, description='Title of the custom question.') type: Optional[Type163] = Field( None, description='Type of the question being asked.' ) class Question26(BaseModel): field_name: Optional[FieldName7] = Field( None, description='Field name of the question.' ) required: Optional[bool] = Field( None, description='Indicates whether or not the displayed fields are required to be filled out by registrants.', ) class MeetingsMeetingIdRegistrantsQuestionsPatchRequest1(BaseModel): custom_questions: Optional[List[CustomQuestion27]] = Field( None, description='Array of Registrant Custom Questions' ) questions: Optional[List[Question26]] = Field( None, description='Array of Registrant Questions' ) class Action34(Enum): approve = 'approve' cancel = 'cancel' deny = 'deny' class Registrant14(BaseModel): email: Optional[str] = None id: Optional[str] = None class MeetingsMeetingIdRegistrantsStatusPutRequest(BaseModel): action: Action34 = Field( ..., description="Registrant Status:<br>`approve` - Approve registrant.<br>`cancel` - Cancel previously approved registrant's registration.<br>`deny` - Deny registrant.", ) registrants: Optional[List[Registrant14]] = Field( None, description='List of registrants.', le=30 ) class MeetingsMeetingIdRegistrantsStatusPutRequest1(BaseModel): action: Action34 = Field( ..., description="Registrant Status:<br>`approve` - Approve registrant.<br>`cancel` - Cancel previously approved registrant's registration.<br>`deny` - Deny registrant.", ) registrants: Optional[List[Registrant14]] = Field( None, description='List of registrants.', le=30 ) class Action36(Enum): end = 'end' recover = 'recover' class MeetingsMeetingIdStatusPutRequest(BaseModel): action: Optional[Action36] = Field( None, description='`end` - End a meeting.<br>\n`recover` - [Recover](https://support.zoom.us/hc/en-us/articles/360038297111-Recover-a-deleted-meeting) a deleted meeting.\n', ) class MeetingsMeetingIdStatusPutRequest1(BaseModel): action: Optional[Action36] = Field( None, description='`end` - End a meeting.<br>\n`recover` - [Recover](https://support.zoom.us/hc/en-us/articles/360038297111-Recover-a-deleted-meeting) a deleted meeting.\n', ) class ClientFeedback(BaseModel): feedback_id: Optional[str] = Field(None, description='Feedback Id') feedback_name: Optional[str] = Field(None, description='Feedback Name') participants_count: Optional[int] = Field( None, description='The number of participants that upvoted the feedback.' ) class MetricsClientFeedbackGetResponse(BaseModel): client_feedbacks: Optional[List[ClientFeedback]] = None from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class MetricsClientFeedbackGetResponse1(BaseModel): client_feedbacks: Optional[List[ClientFeedback]] = None from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class ClientFeedbackDetail(BaseModel): email: Optional[str] = Field(None, description='Email address of the participant.') meeting_id: Optional[str] = Field(None, description='Meeting ID') participant_name: Optional[str] = Field(None, description='Participant Name') time: Optional[datetime] = Field( None, description='Time at which the feedback was submitted by the participant.' ) class MetricsClientFeedbackFeedbackIdGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) client_feedback_details: Optional[List[ClientFeedbackDetail]] = None class MetricsClientFeedbackFeedbackIdGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) client_feedback_details: Optional[List[ClientFeedbackDetail]] = None class ClientSatisfactionItem(BaseModel): date: Optional[date_aliased] = Field(None, description='Date of the report.') good_count: Optional[int] = Field( None, description='The total number of "thumbs up" received for this meeting.' ) none_count: Optional[int] = Field( None, description="The total number of attendees who didn't submit any response (neither thumbs up nor thumbs down).", ) not_good_count: Optional[int] = Field( None, description='The total number of "thumbs down" received for this meeting.' ) satisfaction_percent: Optional[int] = Field( None, description='Satisfaction Percentage.\nThe satisfaction percentage is calculated as `(good_count + none_count)` / `total_count`.', ) class MetricsClientSatisfactionGetResponse(BaseModel): client_satisfaction: Optional[List[ClientSatisfactionItem]] = None from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class MetricsClientSatisfactionGetResponse1(BaseModel): client_satisfaction: Optional[List[ClientSatisfactionItem]] = None from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class CrcPortsHourUsageItem(BaseModel): hour: Optional[str] = Field( None, description='Hour in the day, during which the CRC was used. For example if the CRC was used at 11 pm, the value of this field will be 23.', ) max_usage: Optional[int] = Field( None, description='The maximum number of concurrent ports that are being used in that hour.', ) total_usage: Optional[int] = Field( None, description='The total number of H.323/SIP connections in that hour.' ) class CrcPortsUsageItem(BaseModel): crc_ports_hour_usage: Optional[List[CrcPortsHourUsageItem]] = None date_time: Optional[datetime] = Field( None, description='The date and time of the port usage.' ) class MetricsCrcGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') crc_ports_usage: Optional[List[CrcPortsUsageItem]] = None class CrcPortsUsageItem1(BaseModel): crc_ports_hour_usage: Optional[List[CrcPortsHourUsageItem]] = None date_time: Optional[datetime] = Field( None, description='The date and time of the port usage.' ) class MetricsCrcGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') crc_ports_usage: Optional[List[CrcPortsUsageItem1]] = None class User2(BaseModel): calls_receive: Optional[int] = Field( None, description='Total number of instant meeting calls received by the user.' ) calls_send: Optional[int] = Field( None, description='Total number of instant meeting calls made by the user.' ) email: Optional[EmailStr] = Field(None, description='User email.') emoji_receive: Optional[int] = Field( None, description='Total number of emojis received by the user.' ) emoji_send: Optional[int] = Field( None, description='Total number of emojis sent by the user.' ) files_receive: Optional[int] = Field( None, description='Total number of files received by the user.' ) files_send: Optional[int] = Field( None, description='Total number of files sent by the user.' ) group_receive: Optional[int] = Field( None, description='Total number of messages received by the user in channels.' ) group_send: Optional[int] = Field( None, description='Total number of messages sent by the user in channels.' ) images_receive: Optional[int] = Field( None, description='Total number of images received by the user.' ) images_send: Optional[int] = Field( None, description='Total number of images sent by the user.' ) total_receive: Optional[int] = Field( None, description='Total number of messages received by the user.' ) total_send: Optional[int] = Field( None, description='Total number of messages sent by the user.' ) user_id: Optional[str] = Field(None, description='User ID.') user_name: Optional[str] = Field(None, description='User display name.') videos_receive: Optional[int] = Field( None, description='Total number of video files received by the user. ' ) videos_send: Optional[int] = Field( None, description='Total number of video files sent by the user.' ) voice_receive: Optional[int] = Field( None, description='Total number of voice files received by the user.' ) voice_send: Optional[int] = Field( None, description='Total number of voice files sent by the user.' ) class MetricsImGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) users: Optional[List[User2]] = None class MetricsImGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) users: Optional[List[User2]] = None class ZoomRoom2(BaseModel): id: Optional[str] = Field(None, description='Zoom Room ID') issues_count: Optional[int] = Field(None, description='Issue Count of Zoom Room') room_name: Optional[str] = Field(None, description='Zoom Room Name') class MetricsIssuesZoomroomsGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) zoom_rooms: Optional[List[ZoomRoom2]] = None class MetricsIssuesZoomroomsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) zoom_rooms: Optional[List[ZoomRoom2]] = None class IssueDetail(BaseModel): issue: Optional[str] = Field( None, description='Zoom Room Issue Detail.<br> The value of the this field could be one of the following:<br>\n* `Room Controller disconnected`<br>\n* `Room Controller connected`\n* `Selected camera has disconnected`\n* `Selected camera is reconnected`\n* `Selected microphone has disconnected`\n* `Selected microphone is reconnected`\n* `Selected speaker has disconnected`\n* `Selected speaker is reconnected`\n* `Zoom room is offline`\n* `Zoom room is online`\n* `High CPU usage is detected`\n* `Low bandwidth network is detected`\n* `{name} battery is low`\n* `{name} battery is normal`\n* `{name} disconnected`\n* `{name} connected`\n* `{name} is not charging`\n\nPossible values for {name}: <br>\n* Zoom Rooms Computer \n* Controller\n* Scheduling Display', ) time: Optional[datetime] = Field( None, description='Time at which the issue was encountered.' ) class MetricsIssuesZoomroomsZoomroomIdGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) issue_details: Optional[List[IssueDetail]] = None class MetricsIssuesZoomroomsZoomroomIdGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) issue_details: Optional[List[IssueDetail]] = None class Type167(Enum): past = 'past' pastOne = 'pastOne' live = 'live' class IncludeFields(Enum): tracking_fields = 'tracking_fields' class CustomKey14(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the meeting.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the meeting.' ) class TrackingField20(BaseModel): field: Optional[constr(max_length=64)] = Field( None, description='Label of the tracking field.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the tracking field.' ) class Meeting8(BaseModel): custom_keys: Optional[List[CustomKey14]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Meeting duration. Formatted as hh:mm:ss, for example: `16:08` for 16 minutes and 8 seconds.', ) email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField20]] = Field( None, description='Tracking fields and values assigned to the meeting.' ) user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class MetricsMeetingsGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting8]] = Field( None, description='Array of meeting objects.' ) class Meeting9(BaseModel): custom_keys: Optional[List[CustomKey14]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Meeting duration. Formatted as hh:mm:ss, for example: `16:08` for 16 minutes and 8 seconds.', ) email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField20]] = Field( None, description='Tracking fields and values assigned to the meeting.' ) user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class MetricsMeetingsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting9]] = Field( None, description='Array of meeting objects.' ) class CustomKey16(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the meetinh.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the meeting.' ) class MetricsMeetingsMeetingIdGetResponse(BaseModel): custom_keys: Optional[List[CustomKey16]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class MetricsMeetingsMeetingIdGetResponse1(BaseModel): custom_keys: Optional[List[CustomKey16]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class IncludeFields2(Enum): registrant_id = 'registrant_id' class AudioQuality(Enum): field_ = ' ' good = 'good' fair = 'fair' poor = 'poor' bad = 'bad' class NetworkType(Enum): Wired = 'Wired' Wifi = 'Wifi' PPP = 'PPP' Cellular__3G_and_4G_ = 'Cellular (3G and 4G)' Others = 'Others' class ScreenShareQuality(Enum): field_ = ' ' good = 'good' fair = 'fair' poor = 'poor' bad = 'bad' class Status44(Enum): in_meeting = 'in_meeting' in_waiting_room = 'in_waiting_room' class VideoQuality(Enum): field_ = ' ' good = 'good' fair = 'fair' poor = 'poor' bad = 'bad' class Participant1(BaseModel): audio_quality: Optional[AudioQuality] = Field( None, description='Audio quality of the participant.' ) camera: Optional[str] = Field( None, description='The type of camera used by participant during the meeting.' ) connection_type: Optional[str] = Field( None, description='Participant connection type.' ) customer_key: Optional[constr(max_length=15)] = Field( None, description='Another identifier for the participant. Can be a number or characters, maximum length of 15 characters. ', ) data_center: Optional[str] = Field( None, description="Data Center where participant's meeting data is stored." ) device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting. The possible values for this field are:\n* `Phone`: Participant joined via PSTN.\n* `H.323/SIP`: Participant joined via an H.323 or SIP device.\n* `Windows`: Participant joined via VoIP using a Windows device.\n* `Mac`: Participant joined via VoIP using a Mac device.\n* `iOS`: Participant joined via VoIP using an iOS device.\n* `Android`: Participant joined via VoIP using an Android device.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) in_room_participants: Optional[int] = Field( None, description='The number of participants who joined via Zoom Room.' ) ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_reason: Optional[str] = Field( None, description='Possible reasons for why participant left the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which a participant left the meeting. For live meetings, this field will only be returned if a participant has left the ongoing meeting.', ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") microphone: Optional[str] = Field( None, description='The type of Microphone that participant used during the meeting.', ) network_type: Optional[NetworkType] = Field( None, description="Participant's network type." ) pc_name: Optional[str] = Field(None, description="Name of Participant's PC.") recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used during the meeting.', ) registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant. This field is only returned if you entered "registrant_id" as the value of `include_fields` query parameter. This is not supported for `live` meeting types.', ) screen_share_quality: Optional[ScreenShareQuality] = Field( None, description='Screen share quality of the participant.' ) share_application: Optional[bool] = Field( None, description='Indicates whether or not a user selected to share an iPhone/iPad app during the screenshare. ', ) share_desktop: Optional[bool] = Field( None, description='Indicates whether or not a user selected to share their desktop during the screenshare. ', ) share_whiteboard: Optional[bool] = Field( None, description='Indicates whether or not a user selected to share their whiteboard during the screenshare. ', ) speaker: Optional[str] = Field( None, description='The type of speaker participant used during the meeting.' ) status: Optional[Status44] = Field( None, description='Indicates whether the participant is in the waiting room or in the meeting. \n\nThe value of this field can be `in_meeting` or `in_waiting_room`.', ) user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) video_quality: Optional[VideoQuality] = Field( None, description='Video quality of the participant.' ) class MetricsMeetingsMeetingIdParticipantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant1]] = Field( None, description='Array of participant session objects. If a participant left a meeting and rejoined the same meeting, their information will appear multiple times (as many times as they joined the meeting).', ) class Participant2(BaseModel): audio_quality: Optional[AudioQuality] = Field( None, description='Audio quality of the participant.' ) camera: Optional[str] = Field( None, description='The type of camera used by participant during the meeting.' ) connection_type: Optional[str] = Field( None, description='Participant connection type.' ) customer_key: Optional[constr(max_length=15)] = Field( None, description='Another identifier for the participant. Can be a number or characters, maximum length of 15 characters. ', ) data_center: Optional[str] = Field( None, description="Data Center where participant's meeting data is stored." ) device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting. The possible values for this field are:\n* `Phone`: Participant joined via PSTN.\n* `H.323/SIP`: Participant joined via an H.323 or SIP device.\n* `Windows`: Participant joined via VoIP using a Windows device.\n* `Mac`: Participant joined via VoIP using a Mac device.\n* `iOS`: Participant joined via VoIP using an iOS device.\n* `Android`: Participant joined via VoIP using an Android device.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) in_room_participants: Optional[int] = Field( None, description='The number of participants who joined via Zoom Room.' ) ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_reason: Optional[str] = Field( None, description='Possible reasons for why participant left the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which a participant left the meeting. For live meetings, this field will only be returned if a participant has left the ongoing meeting.', ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") microphone: Optional[str] = Field( None, description='The type of Microphone that participant used during the meeting.', ) network_type: Optional[NetworkType] = Field( None, description="Participant's network type." ) pc_name: Optional[str] = Field(None, description="Name of Participant's PC.") recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used during the meeting.', ) registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant. This field is only returned if you entered "registrant_id" as the value of `include_fields` query parameter. This is not supported for `live` meeting types.', ) screen_share_quality: Optional[ScreenShareQuality] = Field( None, description='Screen share quality of the participant.' ) share_application: Optional[bool] = Field( None, description='Indicates whether or not a user selected to share an iPhone/iPad app during the screenshare. ', ) share_desktop: Optional[bool] = Field( None, description='Indicates whether or not a user selected to share their desktop during the screenshare. ', ) share_whiteboard: Optional[bool] = Field( None, description='Indicates whether or not a user selected to share their whiteboard during the screenshare. ', ) speaker: Optional[str] = Field( None, description='The type of speaker participant used during the meeting.' ) status: Optional[Status44] = Field( None, description='Indicates whether the participant is in the waiting room or in the meeting. \n\nThe value of this field can be `in_meeting` or `in_waiting_room`.', ) user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) video_quality: Optional[VideoQuality] = Field( None, description='Video quality of the participant.' ) class MetricsMeetingsMeetingIdParticipantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant2]] = Field( None, description='Array of participant session objects. If a participant left a meeting and rejoined the same meeting, their information will appear multiple times (as many times as they joined the meeting).', ) class UserQo2(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class Participant3(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo2]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class MetricsMeetingsMeetingIdParticipantsQosGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=10)] = Field( 1, description='The number of items per page.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant3]] = Field( None, description='Array of user objects.' ) class UserQo3(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class Participant4(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo3]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class MetricsMeetingsMeetingIdParticipantsQosGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=10)] = Field( 1, description='The number of items per page.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant4]] = Field( None, description='Array of user objects.' ) class Quality(Enum): GOOD = 'GOOD' NOT_GOOD = 'NOT GOOD' class Participant5(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the feedback was submitted.' ) email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) quality: Optional[Quality] = Field( None, description='Feedback submitted by the participant. \n\n* `GOOD`: Thumbs up.\n* `NOT GOOD`: Thumbs down.', ) user_id: Optional[str] = Field(None, description='User ID of the participant.') class MetricsMeetingsMeetingIdParticipantsSatisfactionGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) participants: Optional[List[Participant5]] = None class Participant6(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the feedback was submitted.' ) email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) quality: Optional[Quality] = Field( None, description='Feedback submitted by the participant. \n\n* `GOOD`: Thumbs up.\n* `NOT GOOD`: Thumbs down.', ) user_id: Optional[str] = Field(None, description='User ID of the participant.') class MetricsMeetingsMeetingIdParticipantsSatisfactionGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) participants: Optional[List[Participant6]] = None class Detail(BaseModel): content: Optional[str] = Field(None, description='Type of content shared.') end_time: Optional[str] = Field(None, description='End time of sharing.') start_time: Optional[str] = Field(None, description='Start time of sharing.') class Participant7(BaseModel): details: Optional[List[Detail]] = Field( None, description='Array of sharing and recording details.' ) id: Optional[str] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') class MetricsMeetingsMeetingIdParticipantsSharingGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant7]] = Field( None, description='Array of participants.' ) class Participant8(BaseModel): details: Optional[List[Detail]] = Field( None, description='Array of sharing and recording details.' ) id: Optional[str] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') class MetricsMeetingsMeetingIdParticipantsSharingGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant8]] = Field( None, description='Array of participants.' ) class UserQo4(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class MetricsMeetingsMeetingIdParticipantsParticipantIdQosGetResponse(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo4]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class UserQo5(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class MetricsMeetingsMeetingIdParticipantsParticipantIdQosGetResponse1(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo5]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class Type181(Enum): past = 'past' live = 'live' class CustomKey18(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the Webinar.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the Webinar.' ) class Webinar3(BaseModel): custom_keys: Optional[List[CustomKey18]] = Field( None, description='Custom keys and values assigned to the Webinar.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Webinar duration, formatted as hh:mm:ss, for example: `10:00` for ten minutes.', ) email: Optional[str] = Field(None, description='User email.') end_time: Optional[datetime] = Field(None, description='Webinar end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not TSP was used for the Webinar.' ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not PSTN was used for the Webinar.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used for the Webinar.' ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screen sharing was used for the Webinar.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not SIP was used for the Webinar.' ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used for the Webinar.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used for the Webinar.' ) host: Optional[str] = Field(None, description='User display name.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) participants: Optional[int] = Field(None, description='Webinar participant count.') start_time: Optional[datetime] = Field(None, description='Webinar start time.') topic: Optional[str] = Field(None, description='Webinar topic.') user_type: Optional[str] = Field(None, description='User type.') uuid: Optional[UUID] = Field(None, description='Webinar UUID.') class MetricsWebinarsGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) webinars: Optional[List[Webinar3]] = Field( None, description='Array of webinar objects.' ) class Webinar4(BaseModel): custom_keys: Optional[List[CustomKey18]] = Field( None, description='Custom keys and values assigned to the Webinar.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Webinar duration, formatted as hh:mm:ss, for example: `10:00` for ten minutes.', ) email: Optional[str] = Field(None, description='User email.') end_time: Optional[datetime] = Field(None, description='Webinar end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not TSP was used for the Webinar.' ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not PSTN was used for the Webinar.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used for the Webinar.' ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screen sharing was used for the Webinar.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not SIP was used for the Webinar.' ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used for the Webinar.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used for the Webinar.' ) host: Optional[str] = Field(None, description='User display name.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) participants: Optional[int] = Field(None, description='Webinar participant count.') start_time: Optional[datetime] = Field(None, description='Webinar start time.') topic: Optional[str] = Field(None, description='Webinar topic.') user_type: Optional[str] = Field(None, description='User type.') uuid: Optional[UUID] = Field(None, description='Webinar UUID.') class MetricsWebinarsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) webinars: Optional[List[Webinar4]] = Field( None, description='Array of webinar objects.' ) class MetricsWebinarsWebinarIdGetResponse(BaseModel): custom_keys: Optional[List[CustomKey18]] = Field( None, description='Custom keys and values assigned to the Webinar.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Webinar duration, formatted as hh:mm:ss, for example: `10:00` for ten minutes.', ) email: Optional[str] = Field(None, description='User email.') end_time: Optional[datetime] = Field(None, description='Webinar end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not TSP was used for the Webinar.' ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not PSTN was used for the Webinar.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used for the Webinar.' ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screen sharing was used for the Webinar.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not SIP was used for the Webinar.' ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used for the Webinar.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used for the Webinar.' ) host: Optional[str] = Field(None, description='User display name.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) participants: Optional[int] = Field(None, description='Webinar participant count.') start_time: Optional[datetime] = Field(None, description='Webinar start time.') topic: Optional[str] = Field(None, description='Webinar topic.') user_type: Optional[str] = Field(None, description='User type.') uuid: Optional[UUID] = Field(None, description='Webinar UUID.') class MetricsWebinarsWebinarIdGetResponse1(BaseModel): custom_keys: Optional[List[CustomKey18]] = Field( None, description='Custom keys and values assigned to the Webinar.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field( None, description='Webinar duration, formatted as hh:mm:ss, for example: `10:00` for ten minutes.', ) email: Optional[str] = Field(None, description='User email.') end_time: Optional[datetime] = Field(None, description='Webinar end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not TSP was used for the Webinar.' ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not PSTN was used for the Webinar.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not recording was used for the Webinar.' ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screen sharing was used for the Webinar.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not SIP was used for the Webinar.' ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used for the Webinar.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used for the Webinar.' ) host: Optional[str] = Field(None, description='User display name.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) participants: Optional[int] = Field(None, description='Webinar participant count.') start_time: Optional[datetime] = Field(None, description='Webinar start time.') topic: Optional[str] = Field(None, description='Webinar topic.') user_type: Optional[str] = Field(None, description='User type.') uuid: Optional[UUID] = Field(None, description='Webinar UUID.') class Participant9(BaseModel): audio_quality: Optional[AudioQuality] = Field( None, description='Audio quality of the participant.' ) connection_type: Optional[str] = Field( None, description='Participant connection type.' ) customer_key: Optional[constr(max_length=15)] = Field( None, description='Another identifier for the participant. Can be a number or characters, maximum length of 15 characters. ', ) data_center: Optional[str] = Field(None, description='Participant data center.') device: Optional[str] = Field( None, description='\n\nThe type of device using which the participant joined the webinar. The possible values for this field are:\n* `Phone`: Participant joined via PSTN.\n* `H.323/SIP`: Participant joined via an H.323 or SIP device.\n* `Windows`: Participant joined via VoIP using a Windows device.\n* `Mac`: Participant joined via VoIP using a Mac device.\n* `iOS`: Participant joined via VoIP using an iOS device.\n* `Android`: Participant joined via VoIP using an Android device.', ) domain: Optional[str] = Field(None, description='Participant domain.') email: Optional[str] = Field(None, description='Email address of the participant.') harddisk_id: Optional[str] = Field(None, description='Participant hard disk ID.') id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) ip_address: Optional[str] = Field(None, description='Participant IP address.') join_time: Optional[datetime] = Field(None, description='Participant join time.') leave_reason: Optional[str] = Field( None, description='Possible reasons for why a participant left the Webinar.\n' ) leave_time: Optional[datetime] = Field(None, description='Participant leave time.') location: Optional[str] = Field(None, description='Participant location.') mac_addr: Optional[str] = Field(None, description='Participant MAC address.') microphone: Optional[str] = Field(None, description='Participant microphone.') network_type: Optional[str] = Field(None, description='Participant network type.') pc_name: Optional[str] = Field(None, description='Participant PC name.') recording: Optional[bool] = Field(None, description='Participant record?') registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant. This field is only returned if you entered "registrant_id" as the value of `include_fields` query parameter.', ) screen_share_quality: Optional[ScreenShareQuality] = Field( None, description='Screen share quality of the participant.' ) share_application: Optional[bool] = Field( None, description='Did the participant share an application?' ) share_desktop: Optional[bool] = Field( None, description='Did the participant share their desktop?' ) share_whiteboard: Optional[bool] = Field( None, description='Did the participant share their whiteboard?' ) speaker: Optional[str] = Field(None, description='Participant speaker.') user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') version: Optional[str] = Field(None, description='Participant version.') video_quality: Optional[VideoQuality] = Field( None, description='Video quality of the participant.' ) class MetricsWebinarsWebinarIdParticipantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant9]] = Field( None, description='Array of user objects.' ) class Participant10(BaseModel): audio_quality: Optional[AudioQuality] = Field( None, description='Audio quality of the participant.' ) connection_type: Optional[str] = Field( None, description='Participant connection type.' ) customer_key: Optional[constr(max_length=15)] = Field( None, description='Another identifier for the participant. Can be a number or characters, maximum length of 15 characters. ', ) data_center: Optional[str] = Field(None, description='Participant data center.') device: Optional[str] = Field( None, description='\n\nThe type of device using which the participant joined the webinar. The possible values for this field are:\n* `Phone`: Participant joined via PSTN.\n* `H.323/SIP`: Participant joined via an H.323 or SIP device.\n* `Windows`: Participant joined via VoIP using a Windows device.\n* `Mac`: Participant joined via VoIP using a Mac device.\n* `iOS`: Participant joined via VoIP using an iOS device.\n* `Android`: Participant joined via VoIP using an Android device.', ) domain: Optional[str] = Field(None, description='Participant domain.') email: Optional[str] = Field(None, description='Email address of the participant.') harddisk_id: Optional[str] = Field(None, description='Participant hard disk ID.') id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) ip_address: Optional[str] = Field(None, description='Participant IP address.') join_time: Optional[datetime] = Field(None, description='Participant join time.') leave_reason: Optional[str] = Field( None, description='Possible reasons for why a participant left the Webinar.\n' ) leave_time: Optional[datetime] = Field(None, description='Participant leave time.') location: Optional[str] = Field(None, description='Participant location.') mac_addr: Optional[str] = Field(None, description='Participant MAC address.') microphone: Optional[str] = Field(None, description='Participant microphone.') network_type: Optional[str] = Field(None, description='Participant network type.') pc_name: Optional[str] = Field(None, description='Participant PC name.') recording: Optional[bool] = Field(None, description='Participant record?') registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant. This field is only returned if you entered "registrant_id" as the value of `include_fields` query parameter.', ) screen_share_quality: Optional[ScreenShareQuality] = Field( None, description='Screen share quality of the participant.' ) share_application: Optional[bool] = Field( None, description='Did the participant share an application?' ) share_desktop: Optional[bool] = Field( None, description='Did the participant share their desktop?' ) share_whiteboard: Optional[bool] = Field( None, description='Did the participant share their whiteboard?' ) speaker: Optional[str] = Field(None, description='Participant speaker.') user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') version: Optional[str] = Field(None, description='Participant version.') video_quality: Optional[VideoQuality] = Field( None, description='Video quality of the participant.' ) class MetricsWebinarsWebinarIdParticipantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant10]] = Field( None, description='Array of user objects.' ) class UserQo6(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class Participant11(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo6]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class MetricsWebinarsWebinarIdParticipantsQosGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=10)] = Field( 1, description='The number of items per page.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant11]] = Field( None, description='Array of user objects.' ) class UserQo7(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class Participant12(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo7]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class MetricsWebinarsWebinarIdParticipantsQosGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceed the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=10)] = Field( 1, description='The number of items per page.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant12]] = Field( None, description='Array of user objects.' ) class Type189(Enum): past = 'past' pastOne = 'pastOne' live = 'live' class Participant13(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the feedback was submitted.' ) email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) quality: Optional[Quality] = Field( None, description='Feedback submitted by the participant. \n\n* `GOOD`: Thumbs up.\n* `NOT GOOD`: Thumbs down.', ) user_id: Optional[str] = Field(None, description='User ID of the participant.') class MetricsWebinarsWebinarIdParticipantsSatisfactionGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) participants: Optional[List[Participant13]] = None class Participant14(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the feedback was submitted.' ) email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) quality: Optional[Quality] = Field( None, description='Feedback submitted by the participant. \n\n* `GOOD`: Thumbs up.\n* `NOT GOOD`: Thumbs down.', ) user_id: Optional[str] = Field(None, description='User ID of the participant.') class MetricsWebinarsWebinarIdParticipantsSatisfactionGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) participants: Optional[List[Participant14]] = None class Type191(Enum): past = 'past' live = 'live' class Participant15(BaseModel): details: Optional[List[Detail]] = Field( None, description='Array of sharing and recording details.' ) id: Optional[str] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') class MetricsWebinarsWebinarIdParticipantsSharingGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant15]] = Field( None, description='Array of participants.' ) class Participant16(BaseModel): details: Optional[List[Detail]] = Field( None, description='Array of sharing and recording details.' ) id: Optional[str] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) user_name: Optional[str] = Field(None, description='Participant display name.') class MetricsWebinarsWebinarIdParticipantsSharingGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant16]] = Field( None, description='Array of participants.' ) class UserQo8(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class MetricsWebinarsWebinarIdParticipantsParticipantIdQosGetResponse(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo8]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class UserQo9(BaseModel): as_device_from_crc: Optional[AsDeviceFromCrc] = Field( None, description='QoS metrics on screen shares by a participant who joined the meeting via a Cloud Room Connector.', ) as_device_to_crc: Optional[AsDeviceToCrc] = Field( None, description='QoS metrics on screen shares output being received by a participant who joined the meeting via a Cloud Room Connector.', ) as_input: Optional[AsInput] = Field( None, description='Quality of service object.', title='QOS Object' ) as_output: Optional[AsOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) audio_device_from_crc: Optional[AudioDeviceFromCrc] = Field( None, description='QoS metrics on audio being sent by a participant who joined the meeting via a Cloud Room Connector.', ) audio_device_to_crc: Optional[AudioDeviceToCrc] = Field( None, description='QoS metrics on audio received by a participant who joined the meeting via a Cloud Room Connector.', ) audio_input: Optional[AudioInput] = Field( None, description='Quality of Service object.', title='QOS Object' ) audio_output: Optional[AudioOutput] = Field( None, description='Quality of Service object.', title='QOS Object' ) cpu_usage: Optional[CpuUsage] = None date_time: Optional[datetime] = Field(None, description='Date-time of QOS') video_device_from_crc: Optional[VideoDeviceFromCrc] = Field( None, description='QoS metrics on video input being sent from a Cloud Room Connector used by the participant to join the meeting.', ) video_device_to_crc: Optional[VideoDeviceToCrc] = Field( None, description='QoS metrics on video output received by a participant who joined the meeting via a Cloud Room Connector.', ) video_input: Optional[VideoInput] = Field( None, description='Quality of service object.', title='QOS Object' ) video_output: Optional[VideoOutput] = Field( None, description='Quality of service object.', title='QOS Object' ) class MetricsWebinarsWebinarIdParticipantsParticipantIdQosGetResponse1(BaseModel): device: Optional[str] = Field( None, description='The type of device using which the participant joined the meeting.', ) domain: Optional[str] = Field(None, description="Participant's PC domain.") harddisk_id: Optional[str] = Field(None, description="Participant's hard disk ID.") ip_address: Optional[str] = Field(None, description="Participant's IP address.") join_time: Optional[datetime] = Field( None, description='The time at which participant joined the meeting.' ) leave_time: Optional[datetime] = Field( None, description='The time at which participant left the meeting.' ) location: Optional[str] = Field(None, description="Participant's location.") mac_addr: Optional[str] = Field(None, description="Participant's MAC address.") pc_name: Optional[str] = Field(None, description="Participant's PC name.") user_id: Optional[UUID] = Field(None, description='Participant ID.') user_name: Optional[str] = Field(None, description='Participant display name.') user_qos: Optional[List[UserQo9]] = Field( None, description='Quality of service provided to the user.' ) version: Optional[str] = Field( None, description="Participant's Zoom Client version." ) class ZoomRoom4(BaseModel): account_type: Optional[str] = Field(None, description='Zoom room email type.') calender_name: Optional[str] = Field(None, description='Zoom calendar name.') camera: Optional[str] = Field(None, description='Zoom room camera.') device_ip: Optional[str] = Field(None, description='Zoom room device IP.') email: Optional[str] = Field(None, description='Zoom room email.') health: Optional[str] = None id: Optional[str] = Field(None, description='Zoom room ID.') issues: Optional[List[str]] = Field(None, description='Zoom Room issues.') last_start_time: Optional[str] = Field( None, description='Zoom room last start time.' ) location: Optional[str] = Field(None, description='Zoom room location.') microphone: Optional[str] = Field(None, description='Zoom room microphone.') room_name: Optional[str] = Field(None, description='Zoom room name.') speaker: Optional[str] = Field(None, description='Zoom room speaker.') status: Optional[str] = Field(None, description='Zoom room status.') class MetricsZoomroomsGetResponse(BaseModel): next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) zoom_rooms: Optional[List[ZoomRoom4]] = Field( None, description='Array of Zoom Rooms' ) class MetricsZoomroomsGetResponse1(BaseModel): next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) zoom_rooms: Optional[List[ZoomRoom4]] = Field( None, description='Array of Zoom Rooms' ) class Issue(BaseModel): issue_name: Optional[str] = Field( None, description='Issue Name.<br> The value of the this field could be one of the following:<br>\n* `Room Controller disconnected`<br>\n* `Room Controller connected`\n* `Selected camera has disconnected`\n* `Selected camera is reconnected`\n* `Selected microphone has disconnected`\n* `Selected microphone is reconnected`\n* `Selected speaker has disconnected`\n* `Selected speaker is reconnected`\n* `Zoom room is offline`\n* `Zoom room is online`\n* `High CPU usage is detected`\n* `Low bandwidth network is detected`\n* `{name} battery is low`\n* `{name} battery is normal`\n* `{name} disconnected`\n* `{name} connected`\n* `{name} is not charging`\n\nPossible values for {name}: <br>\n* Zoom Rooms Computer \n* Controller\n* Scheduling Display', ) zoom_rooms_count: Optional[int] = Field( None, description='Zoom Room Count of Issue' ) class MetricsZoomroomsIssuesGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) issues: Optional[List[Issue]] = None class MetricsZoomroomsIssuesGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) issues: Optional[List[Issue]] = None class CustomKey22(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the meetinh.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the meeting.' ) class LiveMeeting(BaseModel): custom_keys: Optional[List[CustomKey22]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class Meeting10(BaseModel): custom_keys: Optional[List[CustomKey22]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class PastMeetings(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting10]] = Field( None, description='Array of meeting objects.' ) class MetricsZoomroomsZoomroomIdGetResponse(BaseModel): account_type: Optional[str] = Field(None, description='Zoom room email type.') calender_name: Optional[str] = Field(None, description='Zoom calendar name.') camera: Optional[str] = Field(None, description='Zoom room camera.') device_ip: Optional[str] = Field(None, description='Zoom room device IP.') email: Optional[str] = Field(None, description='Zoom room email.') health: Optional[str] = Field(None, description='Health of the Zoom Room.') id: Optional[str] = Field(None, description='Zoom room ID.') issues: Optional[List[str]] = Field( None, description='Issues encountered by the Zoom Room.' ) last_start_time: Optional[str] = Field( None, description='Zoom room last start time.' ) location: Optional[str] = Field(None, description='Zoom room location.') microphone: Optional[str] = Field(None, description='Zoom room microphone.') room_name: Optional[str] = Field(None, description='Zoom room name.') speaker: Optional[str] = Field(None, description='Zoom room speaker.') status: Optional[str] = Field(None, description='Zoom room status.') live_meeting: Optional[LiveMeeting] = Field( None, description='Meeting metric details.', title='Meeting Metrics' ) past_meetings: Optional[PastMeetings] = None class LiveMeeting1(BaseModel): custom_keys: Optional[List[CustomKey22]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class Meeting11(BaseModel): custom_keys: Optional[List[CustomKey22]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[str] = Field(None, description='Meeting duration.') email: Optional[str] = Field(None, description='Email address of the host.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') has_3rd_party_audio: Optional[bool] = Field( None, description='Indicates whether or not [third party audio](https://support.zoom.us/hc/en-us/articles/202470795-3rd-Party-Audio-Conference) was used in the meeting.', ) has_pstn: Optional[bool] = Field( None, description='Indicates whether or not the PSTN was used in the meeting.' ) has_recording: Optional[bool] = Field( None, description='Indicates whether or not the recording feature was used in the meeting. ', ) has_screen_share: Optional[bool] = Field( None, description='Indicates whether or not screenshare feature was used in the meeting.', ) has_sip: Optional[bool] = Field( None, description='Indicates whether or not someone joined the meeting using SIP.', ) has_video: Optional[bool] = Field( None, description='Indicates whether or not video was used in the meeting.' ) has_voip: Optional[bool] = Field( None, description='Indicates whether or not VoIP was used in the meeting.' ) host: Optional[str] = Field(None, description='Host display name.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) in_room_participants: Optional[int] = Field( None, description='The number of Zoom Room participants in the meeting.' ) participants: Optional[int] = Field(None, description='Meeting participant count.') start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') user_type: Optional[str] = Field(None, description='License type of the user.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.", ) class PastMeetings1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description="Start date for this report in 'yyyy-mm-dd' format.", ) to: Optional[date_aliased] = Field( None, description="End date for this report in 'yyyy-mm-dd' format." ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting11]] = Field( None, description='Array of meeting objects.' ) class MetricsZoomroomsZoomroomIdGetResponse1(BaseModel): account_type: Optional[str] = Field(None, description='Zoom room email type.') calender_name: Optional[str] = Field(None, description='Zoom calendar name.') camera: Optional[str] = Field(None, description='Zoom room camera.') device_ip: Optional[str] = Field(None, description='Zoom room device IP.') email: Optional[str] = Field(None, description='Zoom room email.') health: Optional[str] = Field(None, description='Health of the Zoom Room.') id: Optional[str] = Field(None, description='Zoom room ID.') issues: Optional[List[str]] = Field( None, description='Issues encountered by the Zoom Room.' ) last_start_time: Optional[str] = Field( None, description='Zoom room last start time.' ) location: Optional[str] = Field(None, description='Zoom room location.') microphone: Optional[str] = Field(None, description='Zoom room microphone.') room_name: Optional[str] = Field(None, description='Zoom room name.') speaker: Optional[str] = Field(None, description='Zoom room speaker.') status: Optional[str] = Field(None, description='Zoom room status.') live_meeting: Optional[LiveMeeting1] = Field( None, description='Meeting metric details.', title='Meeting Metrics' ) past_meetings: Optional[PastMeetings1] = None class InMeetingFile(BaseModel): download_url: Optional[str] = Field(None, description='URL to download the file.') file_name: Optional[str] = Field(None, description='Name of the file.') file_size: Optional[int] = Field(None, description='Size of the file in bytes.') class PastMeetingsMeetingIdFilesGetResponse(BaseModel): in_meeting_files: Optional[List[InMeetingFile]] = None total_records: Optional[int] = Field( None, description='The total number of files found.' ) class PastMeetingsMeetingIdFilesGetResponse1(BaseModel): in_meeting_files: Optional[List[InMeetingFile]] = None total_records: Optional[int] = Field( None, description='The total number of files found.' ) class Meeting12(BaseModel): start_time: Optional[datetime] = Field(None, description='Start time') uuid: Optional[str] = Field( None, description="Meeting UUID. Unique meeting ID. Each meeting instance will generate its own Meeting UUID (i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.\n\n", ) class PastMeetingsMeetingIdInstancesGetResponse(BaseModel): meetings: Optional[List[Meeting12]] = Field( None, description='List of ended meeting instances.' ) class PastMeetingsMeetingIdInstancesGetResponse1(BaseModel): meetings: Optional[List[Meeting12]] = Field( None, description='List of ended meeting instances.' ) class QuestionDetail(BaseModel): answer: Optional[str] = Field(None, description='Answer submitted by the user.') date_time: Optional[datetime] = Field( None, description='Date and time at which the answer to the poll was submitted.' ) polling_id: Optional[str] = Field( None, description='Unique identifier of the poll.' ) question: Optional[str] = Field(None, description='Question asked during the poll.') class Question27(BaseModel): email: Optional[str] = Field( None, description='Email address of the user who submitted answers to the poll.' ) name: Optional[str] = Field( None, description='Name of the user who submitted answers to the poll. If "anonymous" option is enabled for a poll, the participant\'s polling information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail]] = None class PastMeetingsMeetingIdPollsGetResponse(BaseModel): id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) questions: Optional[List[Question27]] = None start_time: Optional[datetime] = Field( None, description='The start time of the meeting.' ) uuid: Optional[str] = Field(None, description='Meeting UUID.') class Question28(BaseModel): email: Optional[str] = Field( None, description='Email address of the user who submitted answers to the poll.' ) name: Optional[str] = Field( None, description='Name of the user who submitted answers to the poll. If "anonymous" option is enabled for a poll, the participant\'s polling information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail]] = None class PastMeetingsMeetingIdPollsGetResponse1(BaseModel): id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) questions: Optional[List[Question28]] = None start_time: Optional[datetime] = Field( None, description='The start time of the meeting.' ) uuid: Optional[str] = Field(None, description='Meeting UUID.') class PastMeetingsMeetingUUIDGetResponse(BaseModel): duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time (GMT).') host_id: Optional[str] = Field(None, description='Host ID.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) start_time: Optional[datetime] = Field( None, description='Meeting start time (GMT).' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Sum of meeting minutes from all participants in the meeting.' ) type: Optional[int] = Field(None, description='Meeting type.') user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field(None, description='Meeting UUID.') class Participant17(BaseModel): id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) name: Optional[str] = Field(None, description='Participant display name.') user_email: Optional[str] = Field( None, description='Email address of the user. This field will be returned if the user logged into Zoom to join the meeting.', ) class PastMeetingsMeetingUUIDParticipantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant17]] = Field( None, description='Array of meeting participant objects.' ) class PastMeetingsMeetingUUIDParticipantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant17]] = Field( None, description='Array of meeting participant objects.' ) class CustomQuestion28(BaseModel): title: Optional[str] = None value: Optional[str] = None class Registrant16(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion28]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class PastWebinarsWebinarUUIDAbsenteesGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant16]] = Field( None, description='List of registrant objects.' ) class Registrant17(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion28]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class PastWebinarsWebinarUUIDAbsenteesGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant17]] = Field( None, description='List of registrant objects.' ) class PastWebinarsWebinarIdFilesGetResponse(BaseModel): in_meeting_files: Optional[List[InMeetingFile]] = None total_records: Optional[int] = Field( None, description='The total number of files found.' ) class PastWebinarsWebinarIdFilesGetResponse1(BaseModel): in_meeting_files: Optional[List[InMeetingFile]] = None total_records: Optional[int] = Field( None, description='The total number of files found.' ) class Webinar5(BaseModel): start_time: Optional[datetime] = Field(None, description='Start time.') uuid: Optional[str] = Field(None, description='Webinar UUID.') class PastWebinarsWebinarIdInstancesGetResponse(BaseModel): webinars: Optional[List[Webinar5]] = Field( None, description='List of ended webinar instances.' ) class PastWebinarsWebinarIdInstancesGetResponse1(BaseModel): webinars: Optional[List[Webinar5]] = Field( None, description='List of ended webinar instances.' ) class Participant19(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the participant.') name: Optional[str] = Field(None, description='Name of the participant.') user_email: Optional[EmailStr] = Field( None, description='Email address of the participant.' ) class PastWebinarsWebinarIdParticipantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for this request.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The total number of records returned from a single API call.' ) participants: Optional[List[Participant19]] = None total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class PastWebinarsWebinarIdParticipantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for this request.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The total number of records returned from a single API call.' ) participants: Optional[List[Participant19]] = None total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class Question29(BaseModel): email: Optional[str] = Field( None, description='Email address of the user who submitted answers to the poll.' ) name: Optional[str] = Field( None, description='Name of the user who submitted answers to the poll. If "anonymous" option is enabled for a poll, the participant\'s polling information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail]] = None class PastWebinarsWebinarIdPollsGetResponse(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question29]] = None start_time: Optional[datetime] = Field( None, description='The start time of the Webinar.' ) uuid: Optional[str] = Field(None, description='Webinar UUID.') class Question30(BaseModel): email: Optional[str] = Field( None, description='Email address of the user who submitted answers to the poll.' ) name: Optional[str] = Field( None, description='Name of the user who submitted answers to the poll. If "anonymous" option is enabled for a poll, the participant\'s polling information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail]] = None class PastWebinarsWebinarIdPollsGetResponse1(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question30]] = None start_time: Optional[datetime] = Field( None, description='The start time of the Webinar.' ) uuid: Optional[str] = Field(None, description='Webinar UUID.') class QuestionDetail4(BaseModel): answer: Optional[str] = Field( None, description='Answer submitted for the question.' ) question: Optional[str] = Field(None, description='Question asked during the Q&A.') class Question31(BaseModel): email: Optional[str] = Field(None, description='Email address of the user.') name: Optional[str] = Field( None, description='Name of the user. If "anonymous" option is enabled for the Q&A, the participant\'s information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail4]] = None class PastWebinarsWebinarIdQaGetResponse(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question31]] = None start_time: Optional[datetime] = Field( None, description='The start time of the Webinar.' ) uuid: Optional[str] = Field(None, description='Webinar UUID.') class Question32(BaseModel): email: Optional[str] = Field(None, description='Email address of the user.') name: Optional[str] = Field( None, description='Name of the user. If "anonymous" option is enabled for the Q&A, the participant\'s information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail4]] = None class PastWebinarsWebinarIdQaGetResponse1(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question32]] = None start_time: Optional[datetime] = Field( None, description='The start time of the Webinar.' ) uuid: Optional[str] = Field(None, description='Webinar UUID.') class PhoneAutoReceptionistsPostRequest(BaseModel): name: str = Field( ..., description='Provide a name to help identify the auto receptionist.' ) site_id: Optional[str] = Field( None, description='Unique identifier of the site where the auto receptionist is to be assigned. This field is required only if you have [multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) enabled.', ) class PhoneAutoReceptionistsPostResponse(BaseModel): extension_number: Optional[int] = Field( None, description=' Extension number assigned to the auto receptionist.' ) id: Optional[str] = Field( None, description='Auto receptionist ID. Unique Identifier of the auto receptionist.', ) name: Optional[str] = Field(None, description=' Name of the auto receptionist.') class PhoneAutoReceptionistsAutoReceptionistIdPatchRequest(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number to be assigned to the auto receptionist. If site code is enabled, provide the short extension number instead.', ) name: Optional[constr(max_length=32)] = Field( None, description='Display name of the auto receptionist.' ) class PhoneNumber(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the Phone number.' ) number: Optional[str] = Field(None, description='Phone number in e164 format.') class PhoneAutoReceptionistsAutoReceptionistIdPhoneNumbersPostRequest(BaseModel): phone_numbers: Optional[List[PhoneNumber]] = Field( None, description='Provide either the unique identifier of the Phone Number in the `id` field or provide the phone number in the `number` field.', ) class PhoneAutoReceptionistsAutoReceptionistIdPhoneNumbersPostRequest1(BaseModel): phone_numbers: Optional[List[PhoneNumber]] = Field( None, description='Provide either the unique identifier of the Phone Number in the `id` field or provide the phone number in the `number` field.', ) class BlockType(Enum): inbound = 'inbound' outbound = 'outbound' class MatchType(Enum): phoneNumber = 'phoneNumber' prefix = 'prefix' class Status46(Enum): active = 'active' inactive = 'inactive' class BlockedListItem(BaseModel): block_type: Optional[BlockType] = Field( None, description='Block type.<br>\n`inbound`: The blocked number or numbers with the specifie prefix are prevented from calling in to phone users.<br><br>\n`outbound`: The phone users are prevented from calling the blocked number or numbers with the specified prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) id: Optional[str] = Field( None, description='Unique identifier of the blocked list.' ) match_type: Optional[MatchType] = Field( None, description='Indicates the match type for the blocked list. The values can be one of the following:<br>\n`phoneNumber`: Indicates that only a specific phone number that is shown in the `phone_number` field is blocked.<br><br>\n`prefix`: Indicates that all numbers starting with prefix that is shown in the `phone_number` field are blocked.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number to be blocked if you passed "phoneNumber" as the value for the `match_type` field. If you passed "prefix" as the value for the `match_type` field, provide the prefix of the phone number here including the country code. For example, entering 1905 blocks numbers with country code 1 and area code 905. ', ) status: Optional[Status46] = Field( None, description='Indicates whether the blocking is active or inactive. <br>\n`active`: The blocked list is active.<br>\n`inactive`: The blocked list is inactive.', ) class PhoneBlockedListGetResponse(BaseModel): blocked_list: Optional[List[BlockedListItem]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The total number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of records found for this query.' ) class BlockedListItem1(BaseModel): block_type: Optional[BlockType] = Field( None, description='Block type.<br>\n`inbound`: The blocked number or numbers with the specifie prefix are prevented from calling in to phone users.<br><br>\n`outbound`: The phone users are prevented from calling the blocked number or numbers with the specified prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) id: Optional[str] = Field( None, description='Unique identifier of the blocked list.' ) match_type: Optional[MatchType] = Field( None, description='Indicates the match type for the blocked list. The values can be one of the following:<br>\n`phoneNumber`: Indicates that only a specific phone number that is shown in the `phone_number` field is blocked.<br><br>\n`prefix`: Indicates that all numbers starting with prefix that is shown in the `phone_number` field are blocked.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number to be blocked if you passed "phoneNumber" as the value for the `match_type` field. If you passed "prefix" as the value for the `match_type` field, provide the prefix of the phone number here including the country code. For example, entering 1905 blocks numbers with country code 1 and area code 905. ', ) status: Optional[Status46] = Field( None, description='Indicates whether the blocking is active or inactive. <br>\n`active`: The blocked list is active.<br>\n`inactive`: The blocked list is inactive.', ) class PhoneBlockedListGetResponse1(BaseModel): blocked_list: Optional[List[BlockedListItem1]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The total number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of records found for this query.' ) class PhoneBlockedListPostRequest(BaseModel): block_type: Optional[BlockType] = Field( None, description='State whether you want the block type to be inbound or outbound.<br>\n`inbound`: Pass this value to prevent the blocked number or prefix from calling in to phone users.<br>\n`outbound`: Pass this value to prevent phone users from calling the blocked number or prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) match_type: Optional[MatchType] = Field( None, description='Specify the match type for the blocked list. The values can be one of the following:<br><br>\n`phoneNumber`: Choose this option (Phone Number Match) if you want to block a specific phone number. Then, in the `phone_number` field, provide the phone number along with the country code.<br><br>\n`prefix`: Choose this option (Prefix Match) if you want to block all numbers with a specific country code and area code. Next, in the `phone_number` field, enter a country code as part of the prefix. For example, entering 1907 blocks numbers with country code 1 and area code 907.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number to be blocked if you passed "phoneNumber" as the value for the `match_type` field. If you passed "prefix" as the value for the `match_type` field, provide the prefix of the phone number here including the country code. For example, entering 1905 blocks numbers with country code 1 and area code 905. ', ) status: Optional[Status46] = Field( None, description='Enable or disable the blocking. One of the following values are allowed:<br>\n`active`: Keep the blocking active.<br>\n`inactive`: Disable the blocking.', ) class PhoneBlockedListPostRequest1(BaseModel): block_type: Optional[BlockType] = Field( None, description='State whether you want the block type to be inbound or outbound.<br>\n`inbound`: Pass this value to prevent the blocked number or prefix from calling in to phone users.<br>\n`outbound`: Pass this value to prevent phone users from calling the blocked number or prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) match_type: Optional[MatchType] = Field( None, description='Specify the match type for the blocked list. The values can be one of the following:<br><br>\n`phoneNumber`: Choose this option (Phone Number Match) if you want to block a specific phone number. Then, in the `phone_number` field, provide the phone number along with the country code.<br><br>\n`prefix`: Choose this option (Prefix Match) if you want to block all numbers with a specific country code and area code. Next, in the `phone_number` field, enter a country code as part of the prefix. For example, entering 1907 blocks numbers with country code 1 and area code 907.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number to be blocked if you passed "phoneNumber" as the value for the `match_type` field. If you passed "prefix" as the value for the `match_type` field, provide the prefix of the phone number here including the country code. For example, entering 1905 blocks numbers with country code 1 and area code 905. ', ) status: Optional[Status46] = Field( None, description='Enable or disable the blocking. One of the following values are allowed:<br>\n`active`: Keep the blocking active.<br>\n`inactive`: Disable the blocking.', ) class PhoneBlockedListPostResponse(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the blocked list.' ) class PhoneBlockedListBlockedListIdGetResponse(BaseModel): block_type: Optional[BlockType] = Field( None, description='Block type.<br>\n`inbound`: The blocked number or numbers with the specifie prefix are prevented from calling in to phone users.<br><br>\n`outbound`: The phone users are prevented from calling the blocked number or numbers with the specified prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) id: Optional[str] = Field( None, description='Unique identifier of the blocked list.' ) match_type: Optional[MatchType] = Field( None, description='Indicates the match type for the blocked list. The values can be one of the following:<br>\n`phoneNumber`: Indicates that only a specific phone number that is shown in the `phone_number` field is blocked.<br><br>\n`prefix`: Indicates that all numbers starting with prefix that is shown in the `phone_number` field are blocked.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number or the prefix number that is blocked based on the `match_type`.', ) status: Optional[Status46] = Field( None, description='Indicates whether the blocking is active or inactive. <br>\n`active`: The blocked list is active.<br>\n`inactive`: The blocked list is inactive.', ) class PhoneBlockedListBlockedListIdGetResponse1(BaseModel): block_type: Optional[BlockType] = Field( None, description='Block type.<br>\n`inbound`: The blocked number or numbers with the specifie prefix are prevented from calling in to phone users.<br><br>\n`outbound`: The phone users are prevented from calling the blocked number or numbers with the specified prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) id: Optional[str] = Field( None, description='Unique identifier of the blocked list.' ) match_type: Optional[MatchType] = Field( None, description='Indicates the match type for the blocked list. The values can be one of the following:<br>\n`phoneNumber`: Indicates that only a specific phone number that is shown in the `phone_number` field is blocked.<br><br>\n`prefix`: Indicates that all numbers starting with prefix that is shown in the `phone_number` field are blocked.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number or the prefix number that is blocked based on the `match_type`.', ) status: Optional[Status46] = Field( None, description='Indicates whether the blocking is active or inactive. <br>\n`active`: The blocked list is active.<br>\n`inactive`: The blocked list is inactive.', ) class PhoneBlockedListBlockedListIdPatchRequest(BaseModel): block_type: Optional[BlockType] = Field( None, description='State whether you want the block type to be inbound or outbound.<br>\n`inbound`: Pass this value to prevent the blocked number or prefix from calling in to phone users.<br>\n`outbound`: Pass this value to prevent phone users from calling the blocked number or prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) match_type: Optional[MatchType] = Field( None, description='Specify the match type for the blocked list. The values can be one of the following:<br><br>\n`phoneNumber`: Choose this option (Phone Number Match) if you want to block a specific phone number. Then, in the `phone_number` field, provide the phone number along with the country code.<br><br>\n`prefix`: Choose this option (Prefix Match) if you want to block all numbers with a specific country code and area code. Next, in the `phone_number` field, enter a country code as part of the prefix. For example, entering 1907 blocks numbers with country code 1 and area code 907.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number to be blocked if you passed "phoneNumber" as the value for the `match_type` field. If you passed "prefix" as the value for the `match_type` field, provide the prefix of the phone number here including the country code. For example, entering 1905 blocks numbers with country code 1 and area code 905. ', ) status: Optional[Status46] = Field( None, description='Enable or disable the blocking. One of the following values are allowed:<br>\n`active`: Keep the blocking active.<br>\n`inactive`: Disable the blocking.', ) class PhoneBlockedListBlockedListIdPatchRequest1(BaseModel): block_type: Optional[BlockType] = Field( None, description='State whether you want the block type to be inbound or outbound.<br>\n`inbound`: Pass this value to prevent the blocked number or prefix from calling in to phone users.<br>\n`outbound`: Pass this value to prevent phone users from calling the blocked number or prefix.', ) comment: Optional[constr(max_length=255)] = Field( None, description='Provide a comment to help you identify the blocked number or prefix.', ) match_type: Optional[MatchType] = Field( None, description='Specify the match type for the blocked list. The values can be one of the following:<br><br>\n`phoneNumber`: Choose this option (Phone Number Match) if you want to block a specific phone number. Then, in the `phone_number` field, provide the phone number along with the country code.<br><br>\n`prefix`: Choose this option (Prefix Match) if you want to block all numbers with a specific country code and area code. Next, in the `phone_number` field, enter a country code as part of the prefix. For example, entering 1907 blocks numbers with country code 1 and area code 907.', ) phone_number: Optional[constr(max_length=50)] = Field( None, description='The phone number to be blocked if you passed "phoneNumber" as the value for the `match_type` field. If you passed "prefix" as the value for the `match_type` field, provide the prefix of the phone number here including the country code. For example, entering 1905 blocks numbers with country code 1 and area code 905. ', ) status: Optional[Status46] = Field( None, description='Enable or disable the blocking. One of the following values are allowed:<br>\n`active`: Keep the blocking active.<br>\n`inactive`: Disable the blocking.', ) class PhoneByocNumbersPostRequest(BaseModel): carrier: str = Field(..., description='Name of the carrier.') phone_numbers: List[str] = Field( ..., description='Phone number(s) to be added to Zoom. The value should be in e164 format.', ) site_id: Optional[str] = Field( None, description='Unique identifier of the site. This field is only required if you have enabled multiple sites in the account. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) or [Adding a site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites#h_05c88e35-1593-491f-b1a8-b7139a75dc15) for details.', ) class PhoneNumber2(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the phone number.' ) number: Optional[str] = Field(None, description='Phone number in e164 format.') class PhoneByocNumbersPostResponse(BaseModel): phone_numbers: Optional[List[PhoneNumber2]] = None class PhoneByocNumbersPostResponse1(BaseModel): phone_numbers: Optional[List[PhoneNumber2]] = None class TimeType(Enum): startTime = 'startTime' endTime = 'endTime' class CallType(Enum): voip = 'voip' pstn = 'pstn' tollfree = 'tollfree' international = 'international' contactCenter = 'contactCenter' class Type195(Enum): user = 'user' callQueue = 'callQueue' autoReceptionist = 'autoReceptionist' commonAreaPhone = 'commonAreaPhone' sharedLineGroup = 'sharedLineGroup' class Owner(BaseModel): extension_number: Optional[int] = Field( None, description="The owner's extension number." ) id: Optional[str] = Field(None, description='The owner ID.') name: Optional[str] = Field(None, description='The owner name.') type: Optional[Type195] = Field( None, description='The owner type:\n*`user`\n*`callQueue`\n*`autoReceptionist`\n*`commonAreaPhone`\n*`sharedLineGroup`', ) class RecordingType2(Enum): field_1 = 1 field_2 = 2 class Site(BaseModel): id: Optional[str] = Field( None, description='Target [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) in which the phone number was assigned. Sites allow you to organize the phone users in your organization. For example, you sites could be created based on different office locations.', ) name: Optional[str] = Field( None, description='Name of the site where the phone number is assigned.' ) class CallLog(BaseModel): answer_start_time: Optional[datetime] = Field( None, description="GMT date and time at which the inbound call was answered. The value of this field is in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.\n\t\t", ) call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) call_type: Optional[CallType] = Field( None, description='The type of call:\n*`voip` (Voice over IP)\n*`pstn` (Public Switched Telephone Network)\n*`tollfree`\n*`international`\n*`contactCenter`', ) callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) charge: Optional[str] = Field(None, description='Billing charge for the call.') client_code: Optional[str] = Field(None, description='Client code.') date_time: Optional[str] = Field(None, description='Start time of the call') direction: Optional[str] = Field( None, description='Direction of the call. "inbound" | "outbound"' ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) id: Optional[str] = Field(None, description='Call Log ID') owner: Optional[Owner] = None path: Optional[str] = Field(None, description='Path of the call. ') rate: Optional[str] = Field(None, description='Billing rate for the call.') recording_id: Optional[str] = Field( None, description='Unique identifier of the call recording.' ) recording_type: Optional[RecordingType2] = Field( None, description='Type of call recording:<br>\n`1` OnDemand<br>\n`2` Automatic' ) result: Optional[str] = Field( None, description='Result of the call. "call_connected" | "recorded" | "no_answer"', ) site: Optional[Site] = None user_id: Optional[str] = Field(None, description='User ID of the call log owner.') waiting_time: Optional[str] = Field( None, description='Duration that a **call queue member** takes to answer a call from the time it started ringing. The value of the duration is in seconds.\n\t\t\t', ) class PhoneCallLogsGetResponse(BaseModel): call_logs: Optional[List[CallLog]] = Field(None, description='Call Log') from_: Optional[str] = Field( None, alias='from', description='Date from which you would like to view the logs.', ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of pages') page_size: Optional[int] = Field( None, description='The number of records returned within a single API call for each page.', ) to: Optional[str] = Field( None, description='Date up to which you would like to view the phone log.' ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Owner1(BaseModel): extension_number: Optional[int] = Field( None, description="The owner's extension number." ) id: Optional[str] = Field(None, description='The owner ID.') name: Optional[str] = Field(None, description='The owner name.') type: Optional[Type195] = Field( None, description='The owner type:\n*`user`\n*`callQueue`\n*`autoReceptionist`\n*`commonAreaPhone`\n*`sharedLineGroup`', ) class CallLog1(BaseModel): answer_start_time: Optional[datetime] = Field( None, description="GMT date and time at which the inbound call was answered. The value of this field is in `yyyy-MM-dd'T'HH:mm:ss'Z'` format.\n\t\t", ) call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) call_type: Optional[CallType] = Field( None, description='The type of call:\n*`voip` (Voice over IP)\n*`pstn` (Public Switched Telephone Network)\n*`tollfree`\n*`international`\n*`contactCenter`', ) callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) charge: Optional[str] = Field(None, description='Billing charge for the call.') client_code: Optional[str] = Field(None, description='Client code.') date_time: Optional[str] = Field(None, description='Start time of the call') direction: Optional[str] = Field( None, description='Direction of the call. "inbound" | "outbound"' ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) id: Optional[str] = Field(None, description='Call Log ID') owner: Optional[Owner1] = None path: Optional[str] = Field(None, description='Path of the call. ') rate: Optional[str] = Field(None, description='Billing rate for the call.') recording_id: Optional[str] = Field( None, description='Unique identifier of the call recording.' ) recording_type: Optional[RecordingType2] = Field( None, description='Type of call recording:<br>\n`1` OnDemand<br>\n`2` Automatic' ) result: Optional[str] = Field( None, description='Result of the call. "call_connected" | "recorded" | "no_answer"', ) site: Optional[Site] = None user_id: Optional[str] = Field(None, description='User ID of the call log owner.') waiting_time: Optional[str] = Field( None, description='Duration that a **call queue member** takes to answer a call from the time it started ringing. The value of the duration is in seconds.\n\t\t\t', ) class PhoneCallLogsGetResponse1(BaseModel): call_logs: Optional[List[CallLog1]] = Field(None, description='Call Log') from_: Optional[str] = Field( None, alias='from', description='Date from which you would like to view the logs.', ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of pages') page_size: Optional[int] = Field( None, description='The number of records returned within a single API call for each page.', ) to: Optional[str] = Field( None, description='Date up to which you would like to view the phone log.' ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Source(Enum): internal = 'internal' external = 'external' class PhoneNumber4(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the Phone number assigned.' ) number: Optional[str] = Field(None, description='Phone number.') source: Optional[Source] = Field(None, description='Source') class Site2(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) where the Call Queue is assigned. ', ) name: Optional[str] = Field( None, description='Name of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).', ) class CallQueue(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number assigned to the queue.' ) id: Optional[str] = Field(None, description='Unique Identifier of the Call Queue.') name: Optional[str] = Field(None, description='Name of the Call Queue.') phone_numbers: Optional[List[PhoneNumber4]] = Field( None, description='Phone number(s) assigned to the call queue.' ) site: Optional[Site2] = None status: Optional[Status46] = Field( None, description='Status of the Call Queue.<br>`active`: Call queue is enabled and active.<br>`inactive`: Call queue is inactive. Inactive call queues cannot be called but will retain its settings and appear in the [Call Queues](https://zoom.us/pbx/page/telephone/groups#/groups) page.', ) class PhoneCallQueuesGetResponse(BaseModel): call_queues: Optional[List[CallQueue]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( None, description='The number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of records found for this query.' ) class PhoneNumber5(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the Phone number assigned.' ) number: Optional[str] = Field(None, description='Phone number.') source: Optional[Source] = Field(None, description='Source') class CallQueue1(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number assigned to the queue.' ) id: Optional[str] = Field(None, description='Unique Identifier of the Call Queue.') name: Optional[str] = Field(None, description='Name of the Call Queue.') phone_numbers: Optional[List[PhoneNumber5]] = Field( None, description='Phone number(s) assigned to the call queue.' ) site: Optional[Site2] = None status: Optional[Status46] = Field( None, description='Status of the Call Queue.<br>`active`: Call queue is enabled and active.<br>`inactive`: Call queue is inactive. Inactive call queues cannot be called but will retain its settings and appear in the [Call Queues](https://zoom.us/pbx/page/telephone/groups#/groups) page.', ) class PhoneCallQueuesGetResponse1(BaseModel): call_queues: Optional[List[CallQueue1]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( None, description='The number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of records found for this query.' ) class User4(BaseModel): email: Optional[EmailStr] = Field( None, description='Email address of the user. This can be retrieved from the [List Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users) API.', ) id: Optional[str] = Field( None, description='User Id of the user. This can be retrieved from the [List Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users) API.', ) class Members(BaseModel): common_area_phone_ids: Optional[List[str]] = Field( None, description='**Optional**<br>\nUnique identifier of the [Common Area Phone](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones). This can be retrieved from the List Common Area Phones API.', ) users: Optional[List[User4]] = Field( None, description='Users object. Provide either the id (userId) field or the email address of the user.', ) class PhoneCallQueuesPostRequest(BaseModel): description: Optional[constr(max_length=32)] = Field( None, description='Description for the Call Queue.' ) extension_number: Optional[int] = Field( None, description='Phone extension number for the site.<br>\n\nIf a site code has been [assigned](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b) to the site, provide the short extension number instead of the original extension number..', ) members: Optional[Members] = Field( None, description='A list of one or more phone users to be included in the call queue. Provide either users or common area phone(s). Provide at least one user in the users object.', ) name: constr(min_length=1, max_length=32) = Field( ..., description='Name of the Call Queue.' ) site_id: str = Field( ..., description='Unique identifier of the site. Required only if [multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) have been enabled. This can be retrieved from the [List Phone Sites](https://marketplace.zoom.us/docs/api-reference/zoom-api/phone-site/listphonesites) API.', ) class Members1(BaseModel): common_area_phone_ids: Optional[List[str]] = Field( None, description='**Optional**<br>\nUnique identifier of the [Common Area Phone](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones). This can be retrieved from the List Common Area Phones API.', ) users: Optional[List[User4]] = Field( None, description='Users object. Provide either the id (userId) field or the email address of the user.', ) class PhoneCallQueuesPostRequest1(BaseModel): description: Optional[constr(max_length=32)] = Field( None, description='Description for the Call Queue.' ) extension_number: Optional[int] = Field( None, description='Phone extension number for the site.<br>\n\nIf a site code has been [assigned](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b) to the site, provide the short extension number instead of the original extension number..', ) members: Optional[Members1] = Field( None, description='A list of one or more phone users to be included in the call queue. Provide either users or common area phone(s). Provide at least one user in the users object.', ) name: constr(min_length=1, max_length=32) = Field( ..., description='Name of the Call Queue.' ) site_id: str = Field( ..., description='Unique identifier of the site. Required only if [multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) have been enabled. This can be retrieved from the [List Phone Sites](https://marketplace.zoom.us/docs/api-reference/zoom-api/phone-site/listphonesites) API.', ) class PhoneCallQueuesPostResponse(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number assigned for the Call Queue.' ) id: Optional[str] = Field(None, description='Unique Identifier of the Call Queue.') name: Optional[str] = Field(None, description='Name of the Call Queue.') status: Optional[str] = Field( None, description='Status of the Call Queue.<br>\n`active`: Call queue is enabled and active.<br>\n`inactive`: Call queue is inactive. Inactive call queues cannot be called but will retain its settings and appear in the [Call Queues](https://zoom.us/pbx/page/telephone/groups#/groups) page.', ) class CommonAreaPhone(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the [Common Area Phone](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones).', ) name: Optional[str] = Field( None, description='Name of the [Common Area Phone](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones).', ) class Level(Enum): manager = 'manager' user = 'user' class User6(BaseModel): id: Optional[str] = Field( None, description='User ID: Unique Identifier of the user.' ) level: Optional[Level] = Field( None, description='Level of the user. The value can be one of the following:<br>\n`manager`: A call queue manager has the privilege to change call queue settings, policy settings and manage recordings and voicemail inbox. There can only be one manager for each call queue.<br><br>\n`user`: Regular user without the privileges of a manager.', ) name: Optional[str] = Field(None, description='Name of the user.') receive_call: Optional[bool] = Field( None, description='Determines whether the user can receive calls or not.' ) class Members2(BaseModel): common_area_phones: Optional[List[CommonAreaPhone]] = None users: Optional[List[User6]] = None class PhoneNumber6(BaseModel): id: Optional[str] = Field(None, description='Unique Identifier of the number.') number: Optional[str] = Field(None, description='Phone number.') source: Optional[Source] = Field(None, description='Source') class Site4(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) where the Call Queue is assigned.', ) name: Optional[str] = Field( None, description='Name of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).', ) class PhoneCallQueuesCallQueueIdGetResponse(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number assigned to the Call Queue.' ) id: Optional[str] = Field(None, description='Unique Identifier of the Call Queue.') members: Optional[Members2] = None name: Optional[str] = Field(None, description='Name of the Call Queue.') phone_numbers: Optional[List[PhoneNumber6]] = None site: Optional[Site4] = None status: Optional[Status46] = Field(None, description='Status of the Call Queue.') class User7(BaseModel): id: Optional[str] = Field( None, description='User ID: Unique Identifier of the user.' ) level: Optional[Level] = Field( None, description='Level of the user. The value can be one of the following:<br>\n`manager`: A call queue manager has the privilege to change call queue settings, policy settings and manage recordings and voicemail inbox. There can only be one manager for each call queue.<br><br>\n`user`: Regular user without the privileges of a manager.', ) name: Optional[str] = Field(None, description='Name of the user.') receive_call: Optional[bool] = Field( None, description='Determines whether the user can receive calls or not.' ) class Members3(BaseModel): common_area_phones: Optional[List[CommonAreaPhone]] = None users: Optional[List[User7]] = None class PhoneNumber7(BaseModel): id: Optional[str] = Field(None, description='Unique Identifier of the number.') number: Optional[str] = Field(None, description='Phone number.') source: Optional[Source] = Field(None, description='Source') class PhoneCallQueuesCallQueueIdGetResponse1(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number assigned to the Call Queue.' ) id: Optional[str] = Field(None, description='Unique Identifier of the Call Queue.') members: Optional[Members3] = None name: Optional[str] = Field(None, description='Name of the Call Queue.') phone_numbers: Optional[List[PhoneNumber7]] = None site: Optional[Site4] = None status: Optional[Status46] = Field(None, description='Status of the Call Queue.') class PhoneCallQueuesCallQueueIdPatchRequest(BaseModel): description: Optional[constr(max_length=32)] = Field( None, description='Description for the Call Queue.' ) extension_number: Optional[int] = Field( None, description='Phone extension number for the site.<br>\n\nIf a site code has been [assigned](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b) to the site, provide the short extension number instead of the original extension number.', ) name: Optional[constr(max_length=32)] = Field( None, description='Name of the Call Queue.' ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) where the Call Queue is assigned.', ) status: Optional[Status46] = Field( None, description='Status of the Call Queue. Allowed values:<br>\n`active`<br>\n`inactive`', ) timezone: Optional[str] = Field( None, description='[Timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Call Queue.', ) class PhoneCallQueuesCallQueueIdPatchRequest1(BaseModel): description: Optional[constr(max_length=32)] = Field( None, description='Description for the Call Queue.' ) extension_number: Optional[int] = Field( None, description='Phone extension number for the site.<br>\n\nIf a site code has been [assigned](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b) to the site, provide the short extension number instead of the original extension number.', ) name: Optional[constr(max_length=32)] = Field( None, description='Name of the Call Queue.' ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) where the Call Queue is assigned.', ) status: Optional[Status46] = Field( None, description='Status of the Call Queue. Allowed values:<br>\n`active`<br>\n`inactive`', ) timezone: Optional[str] = Field( None, description='[Timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) of the Call Queue.', ) class PhoneCallQueuesCallQueueIdManagerPutRequest(BaseModel): member_id: Optional[str] = Field( None, description='Unique Identifier (userId) or email address of the user who will be the new call queue manager.', ) class User8(BaseModel): email: Optional[EmailStr] = Field(None, description='Email address of the user.') id: Optional[str] = Field( None, description='User ID: Unique Identifier of the user.' ) class Members4(BaseModel): common_area_phone_ids: Optional[List[str]] = Field( None, description='Array of one or more Common Area Phone Ids of the Common Area Phone(s) that you would like to add to the Call Queue.', ) users: Optional[List[User8]] = None class PhoneCallQueuesCallQueueIdMembersPostRequest(BaseModel): members: Optional[Members4] = Field( None, description='A maximum of 10 members can be added at a time.' ) class Members5(BaseModel): common_area_phone_ids: Optional[List[str]] = Field( None, description='Array of one or more Common Area Phone Ids of the Common Area Phone(s) that you would like to add to the Call Queue.', ) users: Optional[List[User8]] = None class PhoneCallQueuesCallQueueIdMembersPostRequest1(BaseModel): members: Optional[Members5] = Field( None, description='A maximum of 10 members can be added at a time.' ) class PhoneCallQueuesCallQueueIdMembersPostResponse(BaseModel): pass class PhoneCallQueuesCallQueueIdPhoneNumbersDeleteResponse(BaseModel): pass class PhoneNumber8(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the phone number.' ) number: Optional[str] = Field(None, description='Phone number.') class PhoneCallQueuesCallQueueIdPhoneNumbersPostRequest(BaseModel): phone_numbers: Optional[List[PhoneNumber8]] = Field( None, description='Provide either the `id` or the `number` field. Only a max of 5 numbers can be assigned to a call queue at a time.', ) class PhoneCallQueuesCallQueueIdPhoneNumbersPostRequest1(BaseModel): phone_numbers: Optional[List[PhoneNumber8]] = Field( None, description='Provide either the `id` or the `number` field. Only a max of 5 numbers can be assigned to a call queue at a time.', ) class PhoneCallQueuesCallQueueIdPhoneNumbersPostResponse(BaseModel): pass class PhoneCallQueuesCallQueueIdPhoneNumbersPhoneNumberIdDeleteResponse(BaseModel): pass class Recording21(BaseModel): callee_name: Optional[str] = Field(None, description='Contact name of the callee.') callee_number: Optional[str] = Field(None, description='Name of the callee.') callee_number_type: Optional[str] = Field( None, description='Phone number type of the callee.<br>`1`- Internal<br>`2`- External', ) caller_name: Optional[str] = Field(None, description='Name of the caller.') caller_number: Optional[str] = Field( None, description='Phone number of the caller.' ) caller_number_type: Optional[str] = Field( None, description='Phone number type of the caller.<br>`1`- Internal<br>`2`- External', ) date_time: Optional[date_aliased] = Field( None, description='Date of the recording.' ) direction: Optional[str] = Field( None, description='Direction of call. The value of this field can be either `outbound` or `inbound`.', ) download_url: Optional[str] = Field( None, description='URL using which the recording can be downloaded.' ) duration: Optional[int] = Field(None, description='Duration of the call.') id: Optional[str] = Field(None, description='Unique Identifier of the recording.') class PhoneCallQueuesCallQueueIdRecordingsGetResponse(BaseModel): from_: Optional[str] = Field(None, alias='from', description='Start date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) recordings: Optional[List[Recording21]] = None to: Optional[str] = Field(None, description='End date.') total_records: Optional[str] = Field( None, description='The total number of records returned for this API call.' ) class PhoneCallQueuesCallQueueIdRecordingsGetResponse1(BaseModel): from_: Optional[str] = Field(None, alias='from', description='Start date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) recordings: Optional[List[Recording21]] = None to: Optional[str] = Field(None, description='End date.') total_records: Optional[str] = Field( None, description='The total number of records returned for this API call.' ) class CallingPlan(BaseModel): assigned: Optional[int] = Field(None, description='Total number of plan used.') available: Optional[int] = Field( None, description='Remaining number of calling plans that can be assigned.' ) name: Optional[str] = Field(None, description='Name of the plan.') subscribed: Optional[int] = Field( None, description='Total number of plan subscriptions bought.' ) type: Optional[int] = Field( None, description='Plan type. Refer to the Plan Number section [here](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans).', ) class PhoneCallingPlansGetResponse(BaseModel): calling_plans: Optional[List[CallingPlan]] = None class PhoneCallingPlansGetResponse1(BaseModel): calling_plans: Optional[List[CallingPlan]] = None class CallingPlan2(BaseModel): name: Optional[str] = Field(None, description='Plan name.') type: Optional[str] = Field( None, description='[Plan Number](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans).', ) class PhoneNumber10(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the Phone number.' ) number: Optional[str] = Field(None, description='Phone number.') source: Optional[Source] = Field( None, description='Phone number source. The value can be either `internal` or `external`.', ) class Site6(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) to which the common area desk phone is assigned.', ) name: Optional[str] = Field(None, description='Name of the site.') class CommonAreaPhone2(BaseModel): calling_plans: Optional[List[CallingPlan2]] = None device_type: Optional[str] = Field( None, description='Type of device (manufacturer name + model name). Refer to the table here for a list of [supported devices](https://marketplace.zoom.us/docs/api-reference/other-references/zoomphone-supporteddevice).', ) display_name: Optional[str] = Field( None, description='Display name of the common area phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the common area phone.' ) mac_address: Optional[str] = Field( None, description=' Mac address or serial number.' ) phone_numbers: Optional[List[PhoneNumber10]] = None site: Optional[Site6] = None status: Optional[str] = Field( None, description='Status of the common area phone. It can be either `online` or `offline`.', ) class PhoneCommonAreaPhonesGetResponse(BaseModel): common_area_phones: Optional[List[CommonAreaPhone2]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='Total number of records returned from a single API call.' ) total_records: Optional[conint(le=100)] = Field( 30, description='Total number of records found for this query.' ) class PhoneNumber11(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the Phone number.' ) number: Optional[str] = Field(None, description='Phone number.') source: Optional[Source] = Field( None, description='Phone number source. The value can be either `internal` or `external`.', ) class CommonAreaPhone3(BaseModel): calling_plans: Optional[List[CallingPlan2]] = None device_type: Optional[str] = Field( None, description='Type of device (manufacturer name + model name). Refer to the table here for a list of [supported devices](https://marketplace.zoom.us/docs/api-reference/other-references/zoomphone-supporteddevice).', ) display_name: Optional[str] = Field( None, description='Display name of the common area phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the common area phone.' ) mac_address: Optional[str] = Field( None, description=' Mac address or serial number.' ) phone_numbers: Optional[List[PhoneNumber11]] = None site: Optional[Site6] = None status: Optional[str] = Field( None, description='Status of the common area phone. It can be either `online` or `offline`.', ) class PhoneCommonAreaPhonesGetResponse1(BaseModel): common_area_phones: Optional[List[CommonAreaPhone3]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='Total number of records returned from a single API call.' ) total_records: Optional[conint(le=100)] = Field( 30, description='Total number of records found for this query.' ) class PhoneCommonAreaPhonesPostRequest(BaseModel): description: Optional[str] = Field( None, description='Description for the common area phone.' ) display_name: str = Field(..., description='Display name of the Common area phone.') extension_number: int = Field( ..., description='Extension number assigned to the common area phone. If site code is enabled, provide the short extension number instead.', ) mac_address: str = Field( ..., description='Mac Address (serial number) of the common area desk phone. These examples show the formats supported: `64-16-7f-37-90-92` or `64167f379092`', ) model: Optional[constr(min_length=1, max_length=50)] = Field( None, description='Device Model name. Refer to the "Model Name" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/zoomphone-supporteddevice) table.', ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672). This can be retrieved from the [List Phone Sites](https://marketplace.zoom.us/docs/api-reference/zoom-api/phone-site/listphonesites) API.', ) time_zone: Optional[str] = Field( None, description='[Timezone ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists) for the common area phone.', ) type: constr(min_length=1, max_length=50) = Field( ..., description='Phone device manufacturer name. Refer to the "Manufacturer Name" field in [this](https://marketplace.zoom.us/docs/api-reference/other-references/zoomphone-supporteddevice) table.', ) class PhoneCommonAreaPhonesPostResponse(BaseModel): display_name: Optional[str] = Field( None, description='Display name of the common area phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the common area phone.' ) class SipAccount(BaseModel): authorization_id: Optional[str] = Field( None, description='Authorization ID of the SIP account provided in the provisioning process.', ) outbound_proxy: Optional[str] = Field( None, description='Outbound proxy provided in the provisioning process.' ) password: Optional[str] = Field( None, description='Password entered during the provisioning process. ' ) sip_domain: Optional[str] = Field( None, description='SIP Domain provided in the provisioning process.<br> \n ' ) user_name: Optional[str] = Field( None, description='User name of the SIP account provided in the provisioning process.', ) class Type197(Enum): assisted = 'assisted' ztp = 'ztp' manual = 'manual' class Provision(BaseModel): sip_accounts: Optional[List[SipAccount]] = Field( None, description='SIP Account details registered during the device provisioning process. This object will only be returned if manual provisioning was used for the device. ', ) type: Optional[Type197] = Field( None, description='[Provisioning type](https://support.zoom.us/hc/en-us/articles/360033223411). The value can be one of the following:\n\n* `ztp` : Zero touch provisioning.\n* `assisted`: Assisted provisioning.\n* `manual`: Manual provisioning. \n\n', ) url: Optional[str] = Field( None, description='Provisioning URL. This field will only be returned for devices that were provisioned via `assisted` provisioning type.', ) class PhoneCommonAreaPhonesCommonAreaPhoneIdGetResponse(BaseModel): device_type: Optional[str] = Field( None, description='Type of device (manufacturer name + model name).' ) id: Optional[str] = Field( None, description='Unique Identifier of the common area phone.' ) mac_address: Optional[str] = Field( None, description=' Mac address or serial number.' ) name: Optional[str] = Field( None, description='Display name of the common area phone.' ) provision: Optional[Provision] = Field( None, description='Provisioning information of the common area phone.' ) site: Optional[Site6] = None status: Optional[str] = Field( None, description='Status of the common area phone. It can be either `online` or `offline`.', ) class Provision1(BaseModel): sip_accounts: Optional[List[SipAccount]] = Field( None, description='SIP Account details registered during the device provisioning process. This object will only be returned if manual provisioning was used for the device. ', ) type: Optional[Type197] = Field( None, description='[Provisioning type](https://support.zoom.us/hc/en-us/articles/360033223411). The value can be one of the following:\n\n* `ztp` : Zero touch provisioning.\n* `assisted`: Assisted provisioning.\n* `manual`: Manual provisioning. \n\n', ) url: Optional[str] = Field( None, description='Provisioning URL. This field will only be returned for devices that were provisioned via `assisted` provisioning type.', ) class PhoneCommonAreaPhonesCommonAreaPhoneIdGetResponse1(BaseModel): device_type: Optional[str] = Field( None, description='Type of device (manufacturer name + model name).' ) id: Optional[str] = Field( None, description='Unique Identifier of the common area phone.' ) mac_address: Optional[str] = Field( None, description=' Mac address or serial number.' ) name: Optional[str] = Field( None, description='Display name of the common area phone.' ) provision: Optional[Provision1] = Field( None, description='Provisioning information of the common area phone.' ) site: Optional[Site6] = None status: Optional[str] = Field( None, description='Status of the common area phone. It can be either `online` or `offline`.', ) class PhoneCommonAreaPhonesCommonAreaPhoneIdPatchRequest(BaseModel): display_name: Optional[str] = Field( None, description='Display name of the common area phone.' ) extension_number: Optional[int] = Field( None, description='Extension number of the phone. If site code is enabled, provide short extension number instead.', ) mac_address: Optional[str] = Field( None, description=' Mac address or serial number of the device. Examples of supported format: "64-16-7f-37-90-92" or "64167f379092".', ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) to which the common area desk phone is assigned.', ) class PhoneCompanyNumberPutRequest(BaseModel): phone_number: Optional[str] = Field( None, description='Provide either the unique identifier of the phone number (id) or the phone number itself in e164 format (e.g: +199955500123).', ) class Type199(Enum): assigned = 'assigned' unassigned = 'unassigned' class Assignee(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number of the Zoom Phone used by the user.' ) id: Optional[str] = Field( None, description='User ID of the user to whom the device has been assigned.' ) name: Optional[str] = Field(None, description='Name of the user.') class Site10(BaseModel): id: Optional[str] = Field( None, description='The [site](https://support.zoom.us/hc/en-us/articles/360020809672) of the phone user.', ) name: Optional[str] = Field( None, description='Name of the [site](https://support.zoom.us/hc/en-us/articles/360020809672).', ) class Status60(Enum): online = 'online' offline = 'offline' class Device4(BaseModel): assignee: Optional[Assignee] = None device_type: Optional[str] = Field( None, description='Includes manufacturer name and the model name.' ) display_name: Optional[str] = Field(None, description='Display name of the device.') id: Optional[str] = Field( None, description='Device ID - Unique Identifier of the Device.' ) mac_address: Optional[str] = Field( None, description='MAC address or serial number of the device.' ) site: Optional[Site10] = None status: Optional[Status60] = Field( None, description='Status of the device. The value is either `online` or `offline`.', ) class PhoneDevicesGetResponse(BaseModel): devices: Optional[List[Device4]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned with a single API call.' ) total_records: Optional[str] = Field( None, description='The total number of records found for the query across all pages.', ) class Device5(BaseModel): assignee: Optional[Assignee] = None device_type: Optional[str] = Field( None, description='Includes manufacturer name and the model name.' ) display_name: Optional[str] = Field(None, description='Display name of the device.') id: Optional[str] = Field( None, description='Device ID - Unique Identifier of the Device.' ) mac_address: Optional[str] = Field( None, description='MAC address or serial number of the device.' ) site: Optional[Site10] = None status: Optional[Status60] = Field( None, description='Status of the device. The value is either `online` or `offline`.', ) class PhoneDevicesGetResponse1(BaseModel): devices: Optional[List[Device5]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned with a single API call.' ) total_records: Optional[str] = Field( None, description='The total number of records found for the query across all pages.', ) class PhoneDevicesPostRequest(BaseModel): assigned_to: Optional[str] = Field( None, description='User ID or email address of the user to whom this device is to be assigned. The User ID and the email of the user can be retrieved using the [List Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users) API.', ) display_name: constr(max_length=255) = Field( ..., description='Display name of the desk phone.' ) mac_address: constr(pattern=r'^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$') = Field( ..., description="The MAC address of the desk phone.<br> \nNote: If you're using a wireless phone, enter the wired MAC address, not the wireless MAC address.", ) model: Optional[constr(max_length=50)] = Field( None, description='Model name of the device.' ) type: Optional[constr(max_length=50)] = Field( None, description='Manufacturer (brand) name of the device.' ) class LineSubscription(BaseModel): display_name: Optional[str] = Field(None, description='Display name.') extension_number: Optional[int] = Field(None, description='Extension number.') phone_number: Optional[str] = Field(None, description='Phone number.') class SharedLine(BaseModel): alias: Optional[str] = Field(None, description='Alias.') line_subscription: Optional[LineSubscription] = Field( None, description='Line subscription.' ) outbound_caller_id: Optional[str] = Field(None, description='Outbound caller ID.') class SipAccount2(BaseModel): authorization_id: Optional[str] = Field( None, description='Authorization ID of the SIP account provided in the provisioning process.', ) outbound_proxy: Optional[str] = Field( None, description='Outbound proxy provided in the provisioning process.' ) password: Optional[str] = Field( None, description='Password entered during the provisioning process. ' ) shared_line: Optional[SharedLine] = Field( None, description='Return additional provisioning information with generic device SIP credentials.', ) sip_domain: Optional[str] = Field( None, description='SIP Domain provided in the provisioning process.<br> \n ' ) user_name: Optional[str] = Field( None, description='User name of the SIP account provided in the provisioning process.', ) class Type201(Enum): assisted = 'assisted' ztp = 'ztp' manual = 'manual' class Provision2(BaseModel): sip_accounts: Optional[List[SipAccount2]] = Field( None, description='SIP Account details registered during the device provisioning process. This object will only be returned if manual provisioning was used for the device. ', ) type: Optional[Type201] = Field( None, description='[Provisioning type](https://support.zoom.us/hc/en-us/articles/360033223411). The value can be one of the following:\n\n* `ztp` : Zero touch provisioning.\n* `assisted`: Assisted provisioning.\n* `manual`: Manual provisioning. \n\n', ) url: Optional[str] = Field( None, description='Provisioning URL. This field will only be returned for devices that were provisioned via `assisted` provisioning type.', ) class PhoneDevicesDeviceIdGetResponse(BaseModel): assignee: Optional[Assignee] = Field( None, description='User to whom the device has been assigned.' ) device_type: Optional[str] = Field( None, description='Includes manufacturer name and the model name.' ) display_name: Optional[str] = Field(None, description='Display name of the device.') id: Optional[str] = Field( None, description='Device ID - Unique Identifier of the Device.' ) mac_address: Optional[str] = Field( None, description='MAC address or serial number of the device.' ) provision: Optional[Provision2] = Field( None, description='Provisioning information of a device.' ) site: Optional[Site10] = None status: Optional[Status60] = Field( None, description='Status of the device. The value is either `online` or `offline`.', ) class SharedLine1(BaseModel): alias: Optional[str] = Field(None, description='Alias.') line_subscription: Optional[LineSubscription] = Field( None, description='Line subscription.' ) outbound_caller_id: Optional[str] = Field(None, description='Outbound caller ID.') class SipAccount3(BaseModel): authorization_id: Optional[str] = Field( None, description='Authorization ID of the SIP account provided in the provisioning process.', ) outbound_proxy: Optional[str] = Field( None, description='Outbound proxy provided in the provisioning process.' ) password: Optional[str] = Field( None, description='Password entered during the provisioning process. ' ) shared_line: Optional[SharedLine1] = Field( None, description='Return additional provisioning information with generic device SIP credentials.', ) sip_domain: Optional[str] = Field( None, description='SIP Domain provided in the provisioning process.<br> \n ' ) user_name: Optional[str] = Field( None, description='User name of the SIP account provided in the provisioning process.', ) class Provision3(BaseModel): sip_accounts: Optional[List[SipAccount3]] = Field( None, description='SIP Account details registered during the device provisioning process. This object will only be returned if manual provisioning was used for the device. ', ) type: Optional[Type201] = Field( None, description='[Provisioning type](https://support.zoom.us/hc/en-us/articles/360033223411). The value can be one of the following:\n\n* `ztp` : Zero touch provisioning.\n* `assisted`: Assisted provisioning.\n* `manual`: Manual provisioning. \n\n', ) url: Optional[str] = Field( None, description='Provisioning URL. This field will only be returned for devices that were provisioned via `assisted` provisioning type.', ) class PhoneDevicesDeviceIdGetResponse1(BaseModel): assignee: Optional[Assignee] = Field( None, description='User to whom the device has been assigned.' ) device_type: Optional[str] = Field( None, description='Includes manufacturer name and the model name.' ) display_name: Optional[str] = Field(None, description='Display name of the device.') id: Optional[str] = Field( None, description='Device ID - Unique Identifier of the Device.' ) mac_address: Optional[str] = Field( None, description='MAC address or serial number of the device.' ) provision: Optional[Provision3] = Field( None, description='Provisioning information of a device.' ) site: Optional[Site10] = None status: Optional[Status60] = Field( None, description='Status of the device. The value is either `online` or `offline`.', ) class PhoneDevicesDeviceIdPatchRequest(BaseModel): assigned_to: Optional[str] = Field( None, description='User ID or email address of the user to whom this device is to be assigned. The User ID and the email of the user can be retrieved using the [List Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/users) API.', ) display_name: Optional[constr(max_length=255)] = Field( None, description='Display name of the desk phone.' ) mac_address: Optional[ constr(pattern=r'^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$') ] = Field( None, description="The MAC address of the desk phone.<br> \nNote: If you're using a wireless phone, enter the wired MAC address, not the wireless MAC address.", ) class Callee(BaseModel): codec: Optional[str] = Field(None, description='Audio codec.') device_type: Optional[str] = Field(None, description='Device type.') extension_number: Optional[str] = Field( None, description='Full extension number of the callee.' ) headset: Optional[str] = Field( None, description='Headset used for the call by the callee.' ) isp: Optional[str] = Field(None, description='ISP.') microphone: Optional[str] = Field( None, description='Microphone used for the call by the callee.' ) phone_number: Optional[str] = Field( None, description='Phone number of the callee in E164 format.' ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).', ) class Caller(BaseModel): codec: Optional[str] = Field(None, description='Audio codec.') device_type: Optional[str] = Field(None, description='Device type.') extension_number: Optional[str] = Field( None, description='Full extension number of the caller.' ) headset: Optional[str] = Field( None, description='Headset used for the call by the caller.' ) isp: Optional[str] = Field(None, description='ISP.') microphone: Optional[str] = Field( None, description='Microphone used for the call by the caller.' ) phone_number: Optional[str] = Field( None, description='Phone number of the caller in E164 format.' ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites).', ) class CallLog2(BaseModel): call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee: Optional[Callee] = Field( None, description='Callee object contains information of the calee.' ) caller: Optional[Caller] = Field( None, description='Caller object contains information of the caller.' ) date_time: Optional[str] = Field( None, description='Date and time at which the call started.' ) direction: Optional[str] = Field( None, description='Direction of the call. The value of this field can be either `internal` or `outbound`.', ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) mos: Optional[str] = Field( None, description='Zoom uses Mean Opinion Score (MOS) as the main measurement to report on voice quality. MOS measures voice quality on a scale of 1 to 5. A score of 1 indicates unacceptable voice quality for all users. A score of 5 is the best voice quality.', ) class PhoneMetricsCallLogsGetResponse(BaseModel): call_logs: Optional[List[CallLog2]] = Field(None, description='Call logs.') from_: Optional[str] = Field( None, alias='from', description='Start date for the report in `yyyy-mm-dd` format.', ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single call.' ) to: Optional[str] = Field( None, description='End date for the report in `yyyy-mm-dd` format.' ) total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class CallLog3(BaseModel): call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee: Optional[Callee] = Field( None, description='Callee object contains information of the calee.' ) caller: Optional[Caller] = Field( None, description='Caller object contains information of the caller.' ) date_time: Optional[str] = Field( None, description='Date and time at which the call started.' ) direction: Optional[str] = Field( None, description='Direction of the call. The value of this field can be either `internal` or `outbound`.', ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) mos: Optional[str] = Field( None, description='Zoom uses Mean Opinion Score (MOS) as the main measurement to report on voice quality. MOS measures voice quality on a scale of 1 to 5. A score of 1 indicates unacceptable voice quality for all users. A score of 5 is the best voice quality.', ) class PhoneMetricsCallLogsGetResponse1(BaseModel): call_logs: Optional[List[CallLog3]] = Field(None, description='Call logs.') from_: Optional[str] = Field( None, alias='from', description='Start date for the report in `yyyy-mm-dd` format.', ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single call.' ) to: Optional[str] = Field( None, description='End date for the report in `yyyy-mm-dd` format.' ) total_records: Optional[int] = Field( None, description='The total number of records available across all pages.' ) class Qos(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.', ) bitrate: Optional[str] = Field( None, description='The number of bits per second in kbps that can be transmitted along a digital network.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds.', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, i.e., the max percentage of packets that fail to arrive at their destination.', ) mos: Optional[str] = Field( None, description='Mean Opinion Score(MOS) measures voice quality on a scale of 1 to 5. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.', ) network_delay: Optional[str] = Field( None, description='The amount of time(in milliseconds) it takes for a VoIP packet to travel from one point to another.', ) class ReceivingItem(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was received.' ) qos: Optional[Qos] = None class Qos1(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.', ) bitrate: Optional[str] = Field( None, description='The number of bits per second expressed in kbps that can be transmitted along a digital network.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds.', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, i.e., the max percentage of packets that fail to arrive at their destination.', ) mos: Optional[str] = Field( None, description='Mean Opinion Score(MOS) measures voice quality on a scale of 1 to 5. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.', ) network_delay: Optional[str] = Field( None, description='The amount of time(in milliseconds) it takes for a VoIP packet to travel from one point to another.', ) class SendingItem(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was delivered.' ) qos: Optional[Qos1] = None class CalleeQos(BaseModel): receiving: Optional[List[ReceivingItem]] = Field( None, description='QoS received by the callee.' ) sending: Optional[List[SendingItem]] = Field( None, description='QoS sent by the callee.' ) class Qos2(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.', ) bitrate: Optional[str] = Field( None, description='The number of bits per second in kbps that can be transmitted along a digital network.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds.', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, i.e., the max percentage of packets that fail to arrive at their destination.', ) mos: Optional[str] = Field( None, description='Mean Opinion Score(MOS) measures voice quality on a scale of 1 to 5. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.', ) network_delay: Optional[str] = Field( None, description='The amount of time(in milliseconds) it takes for a VoIP packet to travel from one point to another.', ) class ReceivingItem1(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was received.' ) qos: Optional[Qos2] = None class SendingItem1(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was delivered.' ) qos: Optional[Qos2] = None class CallerQos(BaseModel): receiving: Optional[List[ReceivingItem1]] = Field( None, description='QoS received by the caller.' ) sending: Optional[List[SendingItem1]] = Field( None, description='QoS sent by the caller.' ) class PhoneMetricsCallLogsCallIdQosGetResponse(BaseModel): call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee_qos: Optional[CalleeQos] = None caller_qos: Optional[CallerQos] = Field( None, description='Quality of Service object that represents the call quality data of the caller.', ) class ReceivingItem2(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was received.' ) qos: Optional[Qos2] = None class Qos5(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.', ) bitrate: Optional[str] = Field( None, description='The number of bits per second expressed in kbps that can be transmitted along a digital network.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds.', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, i.e., the max percentage of packets that fail to arrive at their destination.', ) mos: Optional[str] = Field( None, description='Mean Opinion Score(MOS) measures voice quality on a scale of 1 to 5. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.', ) network_delay: Optional[str] = Field( None, description='The amount of time(in milliseconds) it takes for a VoIP packet to travel from one point to another.', ) class SendingItem2(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was delivered.' ) qos: Optional[Qos5] = None class CalleeQos1(BaseModel): receiving: Optional[List[ReceivingItem2]] = Field( None, description='QoS received by the callee.' ) sending: Optional[List[SendingItem2]] = Field( None, description='QoS sent by the callee.' ) class Qos6(BaseModel): avg_loss: Optional[str] = Field( None, description='The average amount of packet loss, i.e., the percentage of packets that fail to arrive at their destination.', ) bitrate: Optional[str] = Field( None, description='The number of bits per second in kbps that can be transmitted along a digital network.', ) jitter: Optional[str] = Field( None, description='The variation in the delay of received packets. The value of this field is expressed in milliseconds.', ) max_loss: Optional[str] = Field( None, description='The max amount of packet loss, i.e., the max percentage of packets that fail to arrive at their destination.', ) mos: Optional[str] = Field( None, description='Mean Opinion Score(MOS) measures voice quality on a scale of 1 to 5. A MOS greater than or equal to 3.5 means good quality, while below 3.5 means poor quality.', ) network_delay: Optional[str] = Field( None, description='The amount of time(in milliseconds) it takes for a VoIP packet to travel from one point to another.', ) class ReceivingItem3(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was received.' ) qos: Optional[Qos6] = None class SendingItem3(BaseModel): date_time: Optional[datetime] = Field( None, description='Date and time at which the QoS was delivered.' ) qos: Optional[Qos6] = None class CallerQos1(BaseModel): receiving: Optional[List[ReceivingItem3]] = Field( None, description='QoS received by the caller.' ) sending: Optional[List[SendingItem3]] = Field( None, description='QoS sent by the caller.' ) class PhoneMetricsCallLogsCallIdQosGetResponse1(BaseModel): call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee_qos: Optional[CalleeQos1] = None caller_qos: Optional[CallerQos1] = Field( None, description='Quality of Service object that represents the call quality data of the caller.', ) class PhoneMetricsCallLogsCallIdGetResponse(BaseModel): call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee: Optional[Callee] = Field( None, description='Callee object contains information of the calee.' ) caller: Optional[Caller] = Field( None, description='Caller object contains information of the caller.' ) date_time: Optional[str] = Field( None, description='Date and time at which the call started.' ) direction: Optional[str] = Field( None, description='Direction of the call. The value of this field can be either `internal` or `outbound`.', ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) mos: Optional[str] = Field( None, description='Zoom uses Mean Opinion Score (MOS) as the main measurement to report on voice quality. MOS measures voice quality on a scale of 1 to 5. A score of 1 indicates unacceptable voice quality for all users. A score of 5 is the best voice quality.', ) class PhoneMetricsCallLogsCallIdGetResponse1(BaseModel): call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee: Optional[Callee] = Field( None, description='Callee object contains information of the calee.' ) caller: Optional[Caller] = Field( None, description='Caller object contains information of the caller.' ) date_time: Optional[str] = Field( None, description='Date and time at which the call started.' ) direction: Optional[str] = Field( None, description='Direction of the call. The value of this field can be either `internal` or `outbound`.', ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) mos: Optional[str] = Field( None, description='Zoom uses Mean Opinion Score (MOS) as the main measurement to report on voice quality. MOS measures voice quality on a scale of 1 to 5. A score of 1 indicates unacceptable voice quality for all users. A score of 5 is the best voice quality.', ) class Type203(Enum): assigned = 'assigned' unassigned = 'unassigned' all = 'all' class ExtensionType(Enum): user = 'user' callQueue = 'callQueue' autoReceptionist = 'autoReceptionist' commonAreaPhone = 'commonAreaPhone' class NumberType(Enum): toll = 'toll' tollfree = 'tollfree' class Type204(Enum): user = 'user' callQueue = 'callQueue' autoReceptionist = 'autoReceptionist' commonAreaPhone = 'commonAreaPhone' class Assignee4(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number of the Phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the user to whom the number has been assigned.', ) name: Optional[str] = Field( None, description='Name of the user to whom the number has been assigned.' ) type: Optional[Type204] = Field( None, description='Indicates who the phone number belongs to.<br>\n`user`: Number has been assigned to an existing phone user allowing them to receive calls through their extension number or direct phone number.<br> `callQueue`: Phone number has been assigned to a [call queue](https://support.zoom.us/hc/en-us/articles/360021524831-Managing-Call-Queues).<br> `commonAreaPhone`: Phone number has been assigned to a [ provisioned common area desk phone](https://support.zoom.us/hc/en-us/articles/360021119092-Provisioning-Phones-and-Devices).\n`autoReceptionist`: Phone number has been assigned to an [auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-).<br>', ) class Carrier(BaseModel): code: Optional[str] = Field(None, description='The carrier code.') name: Optional[str] = Field( None, description='Name of the carrier to which the phone number is assigned.' ) class SipGroup(BaseModel): id: Optional[str] = Field( None, description='The ID of the SIP group. See the **Creating SIP groups** section in [Creating a shared directory of external contacts](https://support.zoom.us/hc/en-us/articles/360037050092-Creating-a-shared-directory-of-external-contacts) for details.', ) name: Optional[str] = Field( None, description='Name of the SIP group for which the phone number is assigned.', ) class Site14(BaseModel): id: Optional[str] = Field( None, description='Target [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) in which the phone number was assigned. Sites allow you to organize the phone users in your organization. For example, you sites could be created based on different office locations.', ) name: Optional[str] = Field( None, description='Name of the site where the phone number is assigned.' ) class Status64(Enum): pending = 'pending' available = 'available' class PhoneNumber12(BaseModel): assignee: Optional[Assignee4] = None capability: Optional[List[str]] = Field( None, description='The capability for the phone number, whether it can take incoming calls, make outgoing calls, or both. Values include `incoming`, `outgoing`, or both of these values.', ) carrier: Optional[Carrier] = Field( None, description='Displayed when the `type` request parameter is `byoc`.' ) display_name: Optional[str] = Field( None, description='The display name for the phone number.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Phone Number.' ) location: Optional[str] = Field( None, description='Location (city, state and country) where the Phone number is assigned.', ) number: Optional[str] = Field(None, description='Phone number in E164 format.') number_type: Optional[NumberType] = Field( None, description='The type of number. Values can be one of the following:<br>\n`toll`, `tollfree`', ) sip_group: Optional[SipGroup] = Field( None, description='Displayed when the `type` request parameter is `byoc`.' ) site: Optional[Site14] = None source: Optional[Source] = Field(None, description='Source of phone number.') status: Optional[Status64] = Field(None, description='Status of the number.') class PhoneNumbersGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.)', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) phone_numbers: Optional[List[PhoneNumber12]] = None total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Assignee5(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number of the Phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the user to whom the number has been assigned.', ) name: Optional[str] = Field( None, description='Name of the user to whom the number has been assigned.' ) type: Optional[Type204] = Field( None, description='Indicates who the phone number belongs to.<br>\n`user`: Number has been assigned to an existing phone user allowing them to receive calls through their extension number or direct phone number.<br> `callQueue`: Phone number has been assigned to a [call queue](https://support.zoom.us/hc/en-us/articles/360021524831-Managing-Call-Queues).<br> `commonAreaPhone`: Phone number has been assigned to a [ provisioned common area desk phone](https://support.zoom.us/hc/en-us/articles/360021119092-Provisioning-Phones-and-Devices).\n`autoReceptionist`: Phone number has been assigned to an [auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-).<br>', ) class PhoneNumber13(BaseModel): assignee: Optional[Assignee5] = None capability: Optional[List[str]] = Field( None, description='The capability for the phone number, whether it can take incoming calls, make outgoing calls, or both. Values include `incoming`, `outgoing`, or both of these values.', ) carrier: Optional[Carrier] = Field( None, description='Displayed when the `type` request parameter is `byoc`.' ) display_name: Optional[str] = Field( None, description='The display name for the phone number.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Phone Number.' ) location: Optional[str] = Field( None, description='Location (city, state and country) where the Phone number is assigned.', ) number: Optional[str] = Field(None, description='Phone number in E164 format.') number_type: Optional[NumberType] = Field( None, description='The type of number. Values can be one of the following:<br>\n`toll`, `tollfree`', ) sip_group: Optional[SipGroup] = Field( None, description='Displayed when the `type` request parameter is `byoc`.' ) site: Optional[Site14] = None source: Optional[Source] = Field(None, description='Source of phone number.') status: Optional[Status64] = Field(None, description='Status of the number.') class PhoneNumbersGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.)', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) phone_numbers: Optional[List[PhoneNumber13]] = None total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Type206(Enum): assigned = 'assigned' unassigned = 'unassigned' all = 'all' class Type207(Enum): user = 'user' callQueue = 'callQueue' autoReceptionist = 'autoReceptionist' commonAreaPhone = 'commonAreaPhone' class Assignee6(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number of the Phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the user to whom the number has been assigned.', ) name: Optional[str] = Field( None, description='Name of the user to whom the number has been assigned.' ) type: Optional[Type207] = Field( None, description='Indicates who the phone number belongs to.<br>\n`user`: Number has been assigned to an existing phone user allowing them to receive calls through their extension number or direct phone number.<br> `callQueue`: Phone number has been assigned to a [call queue](https://support.zoom.us/hc/en-us/articles/360021524831-Managing-Call-Queues).<br> `commonAreaPhone`: Phone number has been assigned to a [ provisioned common area desk phone](https://support.zoom.us/hc/en-us/articles/360021119092-Provisioning-Phones-and-Devices).<br>\n`autoReceptionist`: Phone number has been assigned to an [auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-).<br>', ) class PhoneNumbersNumberIdGetResponse(BaseModel): assignee: Optional[Assignee6] = None capability: Optional[List[str]] = Field( None, description='The capability for the phone number, whether it can take incoming calls, make outgoing calls, or both. Values include `incoming`, `outgoing`, or both of these values.', ) display_name: Optional[str] = Field( None, description='The display name for the phone number.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Phone Number.' ) location: Optional[str] = Field( None, description='Location (city, state and country) where the Phone number is assigned.', ) number: Optional[str] = Field(None, description='Phone number in E164 format.') number_type: Optional[NumberType] = Field( None, description='The type of number. Values can be one of the following:<br>\n`toll`, `tollfree`', ) site: Optional[Site14] = None source: Optional[Source] = Field(None, description='Source of phone number.') status: Optional[Status64] = Field(None, description='Status of the number.') class Assignee7(BaseModel): extension_number: Optional[int] = Field( None, description='Extension number of the Phone.' ) id: Optional[str] = Field( None, description='Unique Identifier of the user to whom the number has been assigned.', ) name: Optional[str] = Field( None, description='Name of the user to whom the number has been assigned.' ) type: Optional[Type207] = Field( None, description='Indicates who the phone number belongs to.<br>\n`user`: Number has been assigned to an existing phone user allowing them to receive calls through their extension number or direct phone number.<br> `callQueue`: Phone number has been assigned to a [call queue](https://support.zoom.us/hc/en-us/articles/360021524831-Managing-Call-Queues).<br> `commonAreaPhone`: Phone number has been assigned to a [ provisioned common area desk phone](https://support.zoom.us/hc/en-us/articles/360021119092-Provisioning-Phones-and-Devices).<br>\n`autoReceptionist`: Phone number has been assigned to an [auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-).<br>', ) class PhoneNumbersNumberIdGetResponse1(BaseModel): assignee: Optional[Assignee7] = None capability: Optional[List[str]] = Field( None, description='The capability for the phone number, whether it can take incoming calls, make outgoing calls, or both. Values include `incoming`, `outgoing`, or both of these values.', ) display_name: Optional[str] = Field( None, description='The display name for the phone number.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Phone Number.' ) location: Optional[str] = Field( None, description='Location (city, state and country) where the Phone number is assigned.', ) number: Optional[str] = Field(None, description='Phone number in E164 format.') number_type: Optional[NumberType] = Field( None, description='The type of number. Values can be one of the following:<br>\n`toll`, `tollfree`', ) site: Optional[Site14] = None source: Optional[Source] = Field(None, description='Source of phone number.') status: Optional[Status64] = Field(None, description='Status of the number.') class PhoneNumbersNumberIdPatchRequest(BaseModel): capability: Optional[List[str]] = Field( None, description='Phone number capability. Values: `outgoing` or `incoming`. Add one or both.', ) display_name: Optional[str] = Field(None, description='Phone number display name.') class CalleeNumberType(Enum): field_1 = 1 field_2 = 2 class CallerNumberType(Enum): field_1 = 1 field_2 = 2 class Direction(Enum): inbound = 'inbound' outbound = 'outbound' class Type209(Enum): user = 'user' call_queue = 'call queue' class Owner2(BaseModel): extension_number: Optional[str] = Field( None, description='The extension number associated to the call number.' ) id: Optional[str] = Field(None, description="The owner's ID.") name: Optional[str] = Field(None, description='Name of the owner.') type: Optional[Type209] = Field( None, description='The owner type: `user` or `call queue`.' ) class Site18(BaseModel): id: Optional[str] = Field(None, description='The site ID.') name: Optional[str] = Field(None, description='The site name.') class Recording23(BaseModel): callee_name: Optional[str] = Field( None, description='The contact name of the callee.' ) callee_number: Optional[str] = Field( None, description='The phone number of the callee.' ) callee_number_type: Optional[CalleeNumberType] = Field( None, description="Specifies the callee' number type.<br>\n`1` - internal<br>\n`2` - external<br>", ) caller_name: Optional[str] = Field( None, description='The contact name of the caller.' ) caller_number: Optional[str] = Field( None, description='The phone number associated to the caller.' ) caller_number_type: Optional[CallerNumberType] = Field( None, description='Specifies the type of the caller number.<br>\n\n`1` - internal<br>\n`2` - external<br>', ) date_time: Optional[datetime] = Field( None, description='The date and time when the recording was received.' ) direction: Optional[Direction] = Field( None, description='The direction of the call. Values: `inbound` or `outbound`.' ) download_url: Optional[str] = Field( None, description='The download URL for the recording.' ) duration: Optional[int] = Field(None, description='The duration of the recording.') id: Optional[str] = Field(None, description='Unique identifier of the recording.') owner: Optional[Owner2] = Field(None, description='The owner of the recording.') recording_type: Optional[str] = Field( None, description='The recording type. The allowed values are `OnDemand` or `Automatic`.', ) site: Optional[Site18] = None class PhoneRecordingsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The current page number of returned records.' ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call. The default is **30**, and the maximum is **100**.', ) recordings: Optional[List[Recording23]] = None total_records: Optional[int] = Field( None, description='Total number of records returned.' ) class Owner3(BaseModel): extension_number: Optional[str] = Field( None, description='The extension number associated to the call number.' ) id: Optional[str] = Field(None, description="The owner's ID.") name: Optional[str] = Field(None, description='Name of the owner.') type: Optional[Type209] = Field( None, description='The owner type: `user` or `call queue`.' ) class Recording24(BaseModel): callee_name: Optional[str] = Field( None, description='The contact name of the callee.' ) callee_number: Optional[str] = Field( None, description='The phone number of the callee.' ) callee_number_type: Optional[CalleeNumberType] = Field( None, description="Specifies the callee' number type.<br>\n`1` - internal<br>\n`2` - external<br>", ) caller_name: Optional[str] = Field( None, description='The contact name of the caller.' ) caller_number: Optional[str] = Field( None, description='The phone number associated to the caller.' ) caller_number_type: Optional[CallerNumberType] = Field( None, description='Specifies the type of the caller number.<br>\n\n`1` - internal<br>\n`2` - external<br>', ) date_time: Optional[datetime] = Field( None, description='The date and time when the recording was received.' ) direction: Optional[Direction] = Field( None, description='The direction of the call. Values: `inbound` or `outbound`.' ) download_url: Optional[str] = Field( None, description='The download URL for the recording.' ) duration: Optional[int] = Field(None, description='The duration of the recording.') id: Optional[str] = Field(None, description='Unique identifier of the recording.') owner: Optional[Owner3] = Field(None, description='The owner of the recording.') recording_type: Optional[str] = Field( None, description='The recording type. The allowed values are `OnDemand` or `Automatic`.', ) site: Optional[Site18] = None class PhoneRecordingsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The current page number of returned records.' ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call. The default is **30**, and the maximum is **100**.', ) recordings: Optional[List[Recording24]] = None total_records: Optional[int] = Field( None, description='Total number of records returned.' ) class OperationLog(BaseModel): action: Optional[str] = Field(None, description='Action that was performed.') category_type: Optional[str] = Field( None, description='Category type of the operation.' ) operation_detail: Optional[str] = Field(None, description='Operation detail.') operator: Optional[str] = Field( None, description='The user who performed the operation.' ) time: Optional[datetime] = Field( None, description='The time at which the operation was performed.' ) class PhoneReportsOperationlogsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) operation_logs: Optional[List[OperationLog]] = Field( None, description='Array of operation log objects' ) class PhoneReportsOperationlogsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) operation_logs: Optional[List[OperationLog]] = Field( None, description='Array of operation log objects' ) class Type211(Enum): user = 'user' group = 'group' autReceptionist = 'autReceptionist' commonArea = 'commonArea' zr = 'zr' interop = 'interop' class Template(BaseModel): description: Optional[str] = Field(None, description='Template description.') id: Optional[str] = Field(None, description='Unique identifier of the template.') name: Optional[str] = Field(None, description='Template name.') type: Optional[Type211] = Field( None, description='Template type.<br>\nThe value of this field can be one of the following:<br>\n* `user`<br>\n* `group`<br>\n* `autReceptionist`<br>\n* `commonArea`<br>\n* `zr`<br>\n* `interop`<br>', ) class PhoneSettingTemplatesGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call. The default is **30** and the maximum is **300**.', ) templates: Optional[List[Template]] = None total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Template1(BaseModel): description: Optional[str] = Field(None, description='Template description.') id: Optional[str] = Field(None, description='Unique identifier of the template.') name: Optional[str] = Field(None, description='Template name.') type: Optional[Type211] = Field( None, description='Template type.<br>\nThe value of this field can be one of the following:<br>\n* `user`<br>\n* `group`<br>\n* `autReceptionist`<br>\n* `commonArea`<br>\n* `zr`<br>\n* `interop`<br>', ) class PhoneSettingTemplatesGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call. The default is **30** and the maximum is **300**.', ) templates: Optional[List[Template1]] = None total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class Type213(Enum): user = 'user' group = 'group' autoReceptionist = 'autoReceptionist' commonarea = 'commonarea' interop = 'interop' class PhoneSettingTemplatesPostRequest(BaseModel): description: Optional[str] = Field( None, description='A description of the template.' ) name: str = Field(..., description='The name of the template.') site_id: Optional[str] = Field( None, description='Unique identifier of the site. Required only when multiple sites are enabled. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) for details.', ) type: Type213 = Field( ..., description='The type of template. Values include `user`, `group`, `autoReceptionist`, `commonarea`, or `interop`.', ) class PhoneSettingTemplatesPostRequest1(BaseModel): description: Optional[str] = Field( None, description='A description of the template.' ) name: str = Field(..., description='The name of the template.') site_id: Optional[str] = Field( None, description='Unique identifier of the site. Required only when multiple sites are enabled. See [Managing multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) for details.', ) type: Type213 = Field( ..., description='The type of template. Values include `user`, `group`, `autoReceptionist`, `commonarea`, or `interop`.', ) class PhoneSettingTemplatesPostResponse(BaseModel): description: Optional[str] = Field(None, description='Template description.') id: Optional[str] = Field(None, description='Template ID.') name: Optional[str] = Field(None, description='Template name.') type: Optional[str] = Field( None, description='The type of template. Values include: `user`, `group`, `autoReceptionist`, `commonArea`, `zr`, or `interop`.', ) class AdHocCallRecording(BaseModel): enable: Optional[bool] = Field( None, description='Allow current extension to record and save calls in the cloud.', ) recording_start_prompt: Optional[bool] = Field( None, description='Play a prompt to call participants when the recording has started.', ) recording_transcription: Optional[bool] = Field( None, description='Allow call recording transcription.' ) class AutoCallRecording(BaseModel): enable: Optional[bool] = Field(None, description='Enable automatic call recording.') recording_calls: Optional[str] = Field( None, description='Values: inbound, outbound, both.' ) recording_start_prompt: Optional[bool] = Field( None, description='Play a prompt to call participants when the recording has started.', ) recording_transcription: Optional[bool] = Field( None, description='Allow call recording transcription.' ) class Sms(BaseModel): enable: Optional[bool] = Field( None, description='Allow user to send and receive messages.' ) international_sms: Optional[bool] = None class Voicemail(BaseModel): allow_transcription: Optional[bool] = Field( None, description='Allow voicemail transcription.' ) enable: Optional[bool] = Field( None, description='Allow current extension to access, receive, or share voicemail.', ) class Policy(BaseModel): ad_hoc_call_recording: Optional[AdHocCallRecording] = None auto_call_recording: Optional[AutoCallRecording] = None sms: Optional[Sms] = None voicemail: Optional[Voicemail] = None class Profile13(BaseModel): area_code: Optional[str] = Field( None, description='The area code from which the phone account was created.' ) country: Optional[str] = Field( None, description='Name of the country where the template was created.' ) class Type215(Enum): user = 'user' group = 'group' autoReceptionist = 'autoReceptionist' commonArea = 'commonArea' zr = 'zr' interop = 'interop' class BusinessHourAction(Enum): integer_0 = 0 integer_1 = 1 integer_9 = 9 integer_26 = 26 integer_50 = 50 class Type216(Enum): user = 'user' zoomRoom = 'zoomRoom' commonAreaPhone = 'commonAreaPhone' autoReceptionist = 'autoReceptionist' callQueue = 'callQueue' sharedLineGroup = 'sharedLineGroup' class ConnectToOperator(BaseModel): enable: Optional[bool] = Field(None, description='Enable connect to operator.') id: Optional[str] = Field( None, description='Phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup.', ) type: Optional[Type216] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class Type217(Enum): integer_1 = 1 integer_2 = 2 class Weekday(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class CustomHour(BaseModel): from_: Optional[time_aliased] = Field( None, alias='from', description='Values:<br> \nhh:mm' ) to: Optional[time_aliased] = Field(None, description='Values:<br> \nhh:mm') type: Optional[Type217] = Field( None, description='Values:<br>\n1-24 Hours,<br>\n2-customized hours' ) weekday: Optional[Weekday] = Field(None, description='Values: 1-7 sun-sat') class RingType(Enum): field_0 = 0 field_1 = 1 class RingingDuration(Enum): field_15 = 15 field_20 = 20 field_25 = 25 field_30 = 30 field_35 = 35 field_40 = 40 field_45 = 45 field_50 = 50 field_55 = 55 field_60 = 60 class BusinessHours(BaseModel): business_hour_action: Optional[BusinessHourAction] = Field( None, description='When a call is not answered:<br>\n0-Forward to voicemail;<br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension', ) connect_to_operator: Optional[ConnectToOperator] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) custom_hours: Optional[List[CustomHour]] = None ring_type: Optional[RingType] = Field( None, description='Call Handling Ring Mode:<br>\n0-Simultaneous,<br>\n1-Sequential', ) ringing_duration: Optional[RingingDuration] = Field( None, description='Ringing Duration for Each Device in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) type: Optional[Type217] = Field( None, description='Values:<br>\n1-24 Hours, 7 Days a Week;<br>\n2-Custom Hours' ) class CloseHourAction(Enum): integer_0 = 0 integer_1 = 1 integer_9 = 9 integer_26 = 26 integer_50 = 50 class Type219(Enum): user = 'user' zoomRoom = 'zoomRoom' commonAreaPhone = 'commonAreaPhone' autoReceptionist = 'autoReceptionist' callQueue = 'callQueue' sharedLineGroup = 'sharedLineGroup' class ConnectToOperator1(BaseModel): enable: Optional[bool] = None id: Optional[str] = Field( None, description='Phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup.', ) type: Optional[Type219] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class MaxWaitTime(Enum): field_15 = 15 field_20 = 20 field_25 = 25 field_30 = 30 field_35 = 35 field_40 = 40 field_45 = 45 field_50 = 50 field_55 = 55 field_60 = 60 class CloseHours(BaseModel): close_hour_action: Optional[CloseHourAction] = Field( None, description='Action to take when a call is not answered:<br>\n0-Forward to voicemail; <br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension\n', ) connect_to_operator: Optional[ConnectToOperator1] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) max_wait_time: Optional[MaxWaitTime] = Field( None, description='Max Wait Time in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) class CallHandling(BaseModel): business_hours: Optional[BusinessHours] = None close_hours: Optional[CloseHours] = None class DeskPhone(BaseModel): pin_code: Optional[str] = Field(None, description='Pin code.') class HoldMusic(Enum): default = 'default' disable = 'disable' class UserSettings1(BaseModel): audio_prompt_language: Optional[str] = Field( None, description='Audio prompt language code.<br> American English: `en-US`<br>\nBritish English: `en-GB`<br>\nEspañol americano: `es-US`<br>\nFrançais canadien: `fr-CA`<br>\nDansk: `da-DK`<br>\nDeutsch: `de-DE`<br>\nEspañol: `es-ES`<br>\nFrançais: `fr-FR`<br>\nItaliano: `it-IT`<br>\nNederlands: `nl-NL`<br>\nPortugues portugal: `pt-PT`<br>\nJapanese: `ja-JP`<br>\nKorean: `ko-KO`<br>\nPortugues brasil: `pt-BR`<br>\nChinese: `zh-CN`<br>\nTaiwanese: `zh-TW`<br>', ) block_calls_without_caller_id: Optional[bool] = Field( None, description='Block Calls without Caller ID.' ) call_handling: Optional[CallHandling] = None desk_phone: Optional[DeskPhone] = None hold_music: Optional[HoldMusic] = Field( None, description='The value of this field can be either `default` or `disable`.\n\n* `default`: This means that the hold music can be set using the [audio library](https://support.zoom.us/hc/en-us/articles/360028212652-Using-the-audio-library-to-customize-greetings-and-hold-music).\n\n* `disable`: This means that the hold music is disabled.', ) class PhoneSettingTemplatesTemplateIdGetResponse(BaseModel): description: Optional[str] = Field( None, description='The description of the template.' ) id: Optional[str] = Field(None, description='Specify the template ID.') name: Optional[str] = Field(None, description='Specify the name of the template.') policy: Optional[Policy] = None profile: Optional[Profile13] = None type: Optional[Type215] = Field( None, description='The type of template being queried. Values: `user`, `group`, `auto receptionist` `common area`,`zr`, `interop`.', ) user_settings: Optional[UserSettings1] = None class Policy1(BaseModel): ad_hoc_call_recording: Optional[AdHocCallRecording] = None auto_call_recording: Optional[AutoCallRecording] = None sms: Optional[Sms] = None voicemail: Optional[Voicemail] = None class Type220(Enum): user = 'user' group = 'group' autoReceptionist = 'autoReceptionist' commonArea = 'commonArea' zr = 'zr' interop = 'interop' class Type221(Enum): user = 'user' zoomRoom = 'zoomRoom' commonAreaPhone = 'commonAreaPhone' autoReceptionist = 'autoReceptionist' callQueue = 'callQueue' sharedLineGroup = 'sharedLineGroup' class ConnectToOperator2(BaseModel): enable: Optional[bool] = Field(None, description='Enable connect to operator.') id: Optional[str] = Field( None, description='Phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup.', ) type: Optional[Type221] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class Type222(Enum): integer_1 = 1 integer_2 = 2 class CustomHour1(BaseModel): from_: Optional[time_aliased] = Field( None, alias='from', description='Values:<br> \nhh:mm' ) to: Optional[time_aliased] = Field(None, description='Values:<br> \nhh:mm') type: Optional[Type222] = Field( None, description='Values:<br>\n1-24 Hours,<br>\n2-customized hours' ) weekday: Optional[Weekday] = Field(None, description='Values: 1-7 sun-sat') class BusinessHours1(BaseModel): business_hour_action: Optional[BusinessHourAction] = Field( None, description='When a call is not answered:<br>\n0-Forward to voicemail;<br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension', ) connect_to_operator: Optional[ConnectToOperator2] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) custom_hours: Optional[List[CustomHour1]] = None ring_type: Optional[RingType] = Field( None, description='Call Handling Ring Mode:<br>\n0-Simultaneous,<br>\n1-Sequential', ) ringing_duration: Optional[RingingDuration] = Field( None, description='Ringing Duration for Each Device in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) type: Optional[Type222] = Field( None, description='Values:<br>\n1-24 Hours, 7 Days a Week;<br>\n2-Custom Hours' ) class Type224(Enum): user = 'user' zoomRoom = 'zoomRoom' commonAreaPhone = 'commonAreaPhone' autoReceptionist = 'autoReceptionist' callQueue = 'callQueue' sharedLineGroup = 'sharedLineGroup' class ConnectToOperator3(BaseModel): enable: Optional[bool] = None id: Optional[str] = Field( None, description='Phone extension ID of the user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup.', ) type: Optional[Type224] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class CloseHours1(BaseModel): close_hour_action: Optional[CloseHourAction] = Field( None, description='Action to take when a call is not answered:<br>\n0-Forward to voicemail; <br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension\n', ) connect_to_operator: Optional[ConnectToOperator3] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) max_wait_time: Optional[MaxWaitTime] = Field( None, description='Max Wait Time in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) class CallHandling1(BaseModel): business_hours: Optional[BusinessHours1] = None close_hours: Optional[CloseHours1] = None class UserSettings2(BaseModel): audio_prompt_language: Optional[str] = Field( None, description='Audio prompt language code.<br> American English: `en-US`<br>\nBritish English: `en-GB`<br>\nEspañol americano: `es-US`<br>\nFrançais canadien: `fr-CA`<br>\nDansk: `da-DK`<br>\nDeutsch: `de-DE`<br>\nEspañol: `es-ES`<br>\nFrançais: `fr-FR`<br>\nItaliano: `it-IT`<br>\nNederlands: `nl-NL`<br>\nPortugues portugal: `pt-PT`<br>\nJapanese: `ja-JP`<br>\nKorean: `ko-KO`<br>\nPortugues brasil: `pt-BR`<br>\nChinese: `zh-CN`<br>\nTaiwanese: `zh-TW`<br>', ) block_calls_without_caller_id: Optional[bool] = Field( None, description='Block Calls without Caller ID.' ) call_handling: Optional[CallHandling1] = None desk_phone: Optional[DeskPhone] = None hold_music: Optional[HoldMusic] = Field( None, description='The value of this field can be either `default` or `disable`.\n\n* `default`: This means that the hold music can be set using the [audio library](https://support.zoom.us/hc/en-us/articles/360028212652-Using-the-audio-library-to-customize-greetings-and-hold-music).\n\n* `disable`: This means that the hold music is disabled.', ) class PhoneSettingTemplatesTemplateIdGetResponse1(BaseModel): description: Optional[str] = Field( None, description='The description of the template.' ) id: Optional[str] = Field(None, description='Specify the template ID.') name: Optional[str] = Field(None, description='Specify the name of the template.') policy: Optional[Policy1] = None profile: Optional[Profile13] = None type: Optional[Type220] = Field( None, description='The type of template being queried. Values: `user`, `group`, `auto receptionist` `common area`,`zr`, `interop`.', ) user_settings: Optional[UserSettings2] = None class RecordingCalls(Enum): inbound = 'inbound' outbound = 'outbound' both = 'both' class AutoCallRecording2(BaseModel): enable: Optional[bool] = Field(None, description='Automatic call recording.') recording_calls: Optional[RecordingCalls] = Field( None, description='Values: inbound, outbound, both.' ) recording_start_prompt: Optional[bool] = Field( None, description='Play a prompt to call participants when the recording has started.', ) recording_transcription: Optional[bool] = Field( None, description='Allow call recording transcription.' ) class Sms2(BaseModel): enable: Optional[bool] = Field( None, description='Allow user to send and receive messages.' ) international_sms: Optional[bool] = Field( None, description='Whether or not SMS is international.' ) class Policy2(BaseModel): ad_hoc_call_recording: Optional[AdHocCallRecording] = None auto_call_recording: Optional[AutoCallRecording2] = None sms: Optional[Sms2] = None voicemail: Optional[Voicemail] = None class ConnectToOperator4(BaseModel): enable: Optional[bool] = Field(None, description='Enable connect to operator.') id: Optional[str] = Field( None, description='Extension ID of user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup. This ID is passed along with the `type` if the `close_hour_action` was not set with a value of *26*.', ) type: Optional[Type224] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class Type226(Enum): integer_1 = 1 integer_2 = 2 class CustomHour2(BaseModel): from_: Optional[time_aliased] = Field( None, alias='from', description='Values:<br> \nhh:mm' ) to: Optional[time_aliased] = Field(None, description='Values:<br> \nhh:mm') type: Optional[Type226] = Field( None, description='Values:<br>\n1-24 Hours,<br>\n2-customized hours' ) weekday: Optional[Weekday] = Field(None, description='Values: 1-7 sun-sat') class BusinessHours2(BaseModel): business_hour_action: Optional[BusinessHourAction] = Field( None, description='When a call is not answered:<br>\n0-Forward to voicemail;<br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension', ) connect_to_operator: Optional[ConnectToOperator4] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) custom_hours: Optional[List[CustomHour2]] = None ring_type: Optional[RingType] = Field( None, description='Call Handling Ring Mode:<br>\n0-Simultaneous,<br>\n1-Sequential', ) ringing_duration: Optional[RingingDuration] = Field( None, description='Ringing Duration for Each Device, in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) type: Optional[Type226] = Field( None, description='Values:<br>\n1-24 Hours, 7 Days a Week;<br>\n2-Custom Hours' ) class Type228(Enum): user = 'user' zoomRoom = 'zoomRoom' commonAreaPhone = 'commonAreaPhone' autoReceptionist = 'autoReceptionist' callQueue = 'callQueue' sharedLineGroup = 'sharedLineGroup' class ConnectToOperator5(BaseModel): enable: Optional[bool] = Field(None, description='Enable connect to operator.') id: Optional[str] = Field( None, description='Extension ID of user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup. This ID is passed along with the `type` if the `close_hour_action` was not set with a value of *26*.', ) type: Optional[Type228] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class CloseHours2(BaseModel): close_hour_action: Optional[CloseHourAction] = Field( None, description='Action to take when a call is not answered:<br>\n0-Forward to voicemail; <br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension\n', ) connect_to_operator: Optional[ConnectToOperator5] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) max_wait_time: Optional[MaxWaitTime] = Field( None, description='Maximum wait time, in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) class CallHandling2(BaseModel): business_hours: Optional[BusinessHours2] = None close_hours: Optional[CloseHours2] = None class UserSettings3(BaseModel): audio_prompt_language: Optional[str] = Field( None, description='Audio prompt language code.<br> American English: `en-US`<br>\nBritish English: `en-GB`<br>\nEspañol americano: `es-US`<br>\nFrançais canadien: `fr-CA`<br>\nDansk: `da-DK`<br>\nDeutsch: `de-DE`<br>\nEspañol: `es-ES`<br>\nFrançais: `fr-FR`<br>\nItaliano: `it-IT`<br>\nNederlands: `nl-NL`<br>\nPortugues portugal: `pt-PT`<br>\nJapanese: `ja-JP`<br>\nKorean: `ko-KO`<br>\nPortugues brasil: `pt-BR`<br>\nChinese: `zh-CN`<br>\nTaiwanese: `zh-TW`<br>', ) block_calls_without_caller_id: Optional[bool] = Field( None, description='Block Calls without Caller ID.' ) call_handling: Optional[CallHandling2] = None desk_phone: Optional[DeskPhone] = None hold_music: Optional[HoldMusic] = Field( None, description='The value of this field can be either `default` or `disable`.\n\n* `default`: This means that the hold music can be set using the [audio library](https://support.zoom.us/hc/en-us/articles/360028212652-Using-the-audio-library-to-customize-greetings-and-hold-music).\n\n* `disable`: This means that the hold music is disabled.', ) class PhoneSettingTemplatesTemplateIdPatchRequest(BaseModel): description: Optional[str] = Field( None, description='The description of the template.' ) name: Optional[str] = Field(None, description='Specify the name of the template.') policy: Optional[Policy2] = None profile: Optional[Profile13] = None user_settings: Optional[UserSettings3] = None class AutoCallRecording3(BaseModel): enable: Optional[bool] = Field(None, description='Automatic call recording.') recording_calls: Optional[RecordingCalls] = Field( None, description='Values: inbound, outbound, both.' ) recording_start_prompt: Optional[bool] = Field( None, description='Play a prompt to call participants when the recording has started.', ) recording_transcription: Optional[bool] = Field( None, description='Allow call recording transcription.' ) class Policy3(BaseModel): ad_hoc_call_recording: Optional[AdHocCallRecording] = None auto_call_recording: Optional[AutoCallRecording3] = None sms: Optional[Sms2] = None voicemail: Optional[Voicemail] = None class ConnectToOperator6(BaseModel): enable: Optional[bool] = Field(None, description='Enable connect to operator.') id: Optional[str] = Field( None, description='Extension ID of user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup. This ID is passed along with the `type` if the `close_hour_action` was not set with a value of *26*.', ) type: Optional[Type228] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class Type230(Enum): integer_1 = 1 integer_2 = 2 class CustomHour3(BaseModel): from_: Optional[time_aliased] = Field( None, alias='from', description='Values:<br> \nhh:mm' ) to: Optional[time_aliased] = Field(None, description='Values:<br> \nhh:mm') type: Optional[Type230] = Field( None, description='Values:<br>\n1-24 Hours,<br>\n2-customized hours' ) weekday: Optional[Weekday] = Field(None, description='Values: 1-7 sun-sat') class BusinessHours3(BaseModel): business_hour_action: Optional[BusinessHourAction] = Field( None, description='When a call is not answered:<br>\n0-Forward to voicemail;<br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension', ) connect_to_operator: Optional[ConnectToOperator6] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) custom_hours: Optional[List[CustomHour3]] = None ring_type: Optional[RingType] = Field( None, description='Call Handling Ring Mode:<br>\n0-Simultaneous,<br>\n1-Sequential', ) ringing_duration: Optional[RingingDuration] = Field( None, description='Ringing Duration for Each Device, in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) type: Optional[Type230] = Field( None, description='Values:<br>\n1-24 Hours, 7 Days a Week;<br>\n2-Custom Hours' ) class Type232(Enum): user = 'user' zoomRoom = 'zoomRoom' commonAreaPhone = 'commonAreaPhone' autoReceptionist = 'autoReceptionist' callQueue = 'callQueue' sharedLineGroup = 'sharedLineGroup' class ConnectToOperator7(BaseModel): enable: Optional[bool] = Field(None, description='Enable connect to operator.') id: Optional[str] = Field( None, description='Extension ID of user, zoomRoom, commonAreaPhone, autoReceptionist, callQueue or sharedLineGroup. This ID is passed along with the `type` if the `close_hour_action` was not set with a value of *26*.', ) type: Optional[Type232] = Field( None, description='Values:<br>\n1-user,<br>\n2-callQueue, <br>\n3-autoReceptionist,<br>\n4-commonAreaPhone,<br>\n5-zoomRoom, <br>\n7-sharedLineGroup', ) class CloseHours3(BaseModel): close_hour_action: Optional[CloseHourAction] = Field( None, description='Action to take when a call is not answered:<br>\n0-Forward to voicemail; <br>\n1-Play a message, then disconnect; <br>\n9-Disconnect; <br>\n26-Forward to External Contacts; <br>\n50-Forward to another extension\n', ) connect_to_operator: Optional[ConnectToOperator7] = Field( None, description='Allow callers to press Zero to reach an operator or press One to leave a message, or allow neither of these options.', ) max_wait_time: Optional[MaxWaitTime] = Field( None, description='Maximum wait time, in seconds. Values:<br>\n15,20,25,30,35,40,45,50,55,60', ) class CallHandling3(BaseModel): business_hours: Optional[BusinessHours3] = None close_hours: Optional[CloseHours3] = None class UserSettings4(BaseModel): audio_prompt_language: Optional[str] = Field( None, description='Audio prompt language code.<br> American English: `en-US`<br>\nBritish English: `en-GB`<br>\nEspañol americano: `es-US`<br>\nFrançais canadien: `fr-CA`<br>\nDansk: `da-DK`<br>\nDeutsch: `de-DE`<br>\nEspañol: `es-ES`<br>\nFrançais: `fr-FR`<br>\nItaliano: `it-IT`<br>\nNederlands: `nl-NL`<br>\nPortugues portugal: `pt-PT`<br>\nJapanese: `ja-JP`<br>\nKorean: `ko-KO`<br>\nPortugues brasil: `pt-BR`<br>\nChinese: `zh-CN`<br>\nTaiwanese: `zh-TW`<br>', ) block_calls_without_caller_id: Optional[bool] = Field( None, description='Block Calls without Caller ID.' ) call_handling: Optional[CallHandling3] = None desk_phone: Optional[DeskPhone] = None hold_music: Optional[HoldMusic] = Field( None, description='The value of this field can be either `default` or `disable`.\n\n* `default`: This means that the hold music can be set using the [audio library](https://support.zoom.us/hc/en-us/articles/360028212652-Using-the-audio-library-to-customize-greetings-and-hold-music).\n\n* `disable`: This means that the hold music is disabled.', ) class PhoneSettingTemplatesTemplateIdPatchRequest1(BaseModel): description: Optional[str] = Field( None, description='The description of the template.' ) name: Optional[str] = Field(None, description='Specify the name of the template.') policy: Optional[Policy3] = None profile: Optional[Profile13] = None user_settings: Optional[UserSettings4] = None class PhoneNumber14(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the phone number.' ) number: Optional[str] = Field(None, description='Phone number in E164 format.') status: Optional[Status64] = Field(None, description='Status of the number.') class Site20(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the [Site](https://marketplace.zoom.us/docs/api-reference/zoom-api/phone-site/getasite).', ) name: Optional[str] = Field(None, description='Name of the Site.') class Status69(Enum): active = 'active' inactive = 'inactive' class SharedLineGroup(BaseModel): display_name: Optional[str] = Field( None, description='Display Name of the Shared Line Group.' ) extension_number: Optional[int] = Field( None, description='Extension number assigned to the Shared Line Group.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Shared Line Group.' ) phone_numbers: Optional[List[PhoneNumber14]] = Field( None, description='Phone Numbers Assigned to the Shared Line Group.' ) site: Optional[Site20] = None status: Optional[Status69] = Field( None, description='Status of the Shared Line Group.' ) class PhoneSharedLineGroupsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The number of records returned within a single API call.' ) shared_line_groups: Optional[List[SharedLineGroup]] = None total_records: Optional[int] = Field( None, description='Total records found in the response for this request.' ) class Status70(Enum): pending = 'pending' available = 'available' class PhoneNumber15(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the phone number.' ) number: Optional[str] = Field(None, description='Phone number in E164 format.') status: Optional[Status70] = Field(None, description='Status of the number.') class Status71(Enum): active = 'active' inactive = 'inactive' class SharedLineGroup1(BaseModel): display_name: Optional[str] = Field( None, description='Display Name of the Shared Line Group.' ) extension_number: Optional[int] = Field( None, description='Extension number assigned to the Shared Line Group.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Shared Line Group.' ) phone_numbers: Optional[List[PhoneNumber15]] = Field( None, description='Phone Numbers Assigned to the Shared Line Group.' ) site: Optional[Site20] = None status: Optional[Status71] = Field( None, description='Status of the Shared Line Group.' ) class PhoneSharedLineGroupsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The number of records returned within a single API call.' ) shared_line_groups: Optional[List[SharedLineGroup1]] = None total_records: Optional[int] = Field( None, description='Total records found in the response for this request.' ) class PhoneSharedLineGroupsPostRequest(BaseModel): description: Optional[constr(max_length=255)] = Field( None, description='Provide a description for the shared line group.' ) display_name: constr(max_length=200) = Field( ..., description='Provide a name to help identify the shared line group.' ) extension_number: Optional[int] = Field( None, description='Extension number to be assigned to the shared line group. If a [site code has been assigned](https://support.zoom.us/hc/en-us/articles/360020809672#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b) to the site, provide the short extension number ', ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) that you would like to use for the shared line group. You will only be able to add members that belong to this site to the shared line group.\n\nThis field is required only if the [multiple sites](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-multiple-sites) option has been enabled for the account.', ) class CommonAreaPhone4(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the [Common Area Phone](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones). ', ) name: Optional[str] = Field( None, description='Name of the [Common Area Phone](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones). ', ) class User10(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the user.') name: Optional[str] = Field(None, description='Name of the user.') class Members6(BaseModel): common_area_phones: Optional[List[CommonAreaPhone4]] = Field( None, description='[Common Area Phones](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones) that are members of the shared line group.', ) users: Optional[List[User10]] = Field( None, description='Users who are members of the Shared Line Group.' ) class PhoneNumber16(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the phone number.' ) number: Optional[str] = Field(None, description='Phone number in E164 format.') class PhoneSharedLineGroupsSharedLineGroupIdGetResponse(BaseModel): display_name: Optional[str] = Field( None, description='Display Name of the Shared Line Group.' ) extension_number: Optional[int] = Field( None, description='Extension number assigned to the Shared Line Group.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Shared Line Group.' ) members: Optional[Members6] = Field( None, description='View current [members](https://support.zoom.us/hc/en-us/articles/360038850792-Setting-up-shared-line-groups#h_3ffbbb77-a009-4c09-91e4-81fc264b61d6) of the shared line group.', ) phone_numbers: Optional[List[PhoneNumber16]] = Field( None, description='Object representing information about phone number(s) assigned to the group.', ) primary_number: Optional[str] = Field( None, description='If you have multiple direct phone numbers assigned to the shared line group, this is the primary number selected for desk phones. The primary number shares the same line as the extension number. This means if a caller is routed to the shared line group through an auto receptionist, the line associated with the primary number will be used.', ) site: Optional[Site20] = Field( None, description='Site assigned to the Shared Line Group.' ) status: Optional[Status71] = Field( None, description='Status of the Shared Line Group.' ) timezone: Optional[str] = Field( None, description='Timezone used for the Business Hours.' ) class Members7(BaseModel): common_area_phones: Optional[List[CommonAreaPhone4]] = Field( None, description='[Common Area Phones](https://support.zoom.us/hc/en-us/articles/360028516231-Managing-Common-Area-Phones) that are members of the shared line group.', ) users: Optional[List[User10]] = Field( None, description='Users who are members of the Shared Line Group.' ) class PhoneSharedLineGroupsSharedLineGroupIdGetResponse1(BaseModel): display_name: Optional[str] = Field( None, description='Display Name of the Shared Line Group.' ) extension_number: Optional[int] = Field( None, description='Extension number assigned to the Shared Line Group.' ) id: Optional[str] = Field( None, description='Unique Identifier of the Shared Line Group.' ) members: Optional[Members7] = Field( None, description='View current [members](https://support.zoom.us/hc/en-us/articles/360038850792-Setting-up-shared-line-groups#h_3ffbbb77-a009-4c09-91e4-81fc264b61d6) of the shared line group.', ) phone_numbers: Optional[List[PhoneNumber16]] = Field( None, description='Object representing information about phone number(s) assigned to the group.', ) primary_number: Optional[str] = Field( None, description='If you have multiple direct phone numbers assigned to the shared line group, this is the primary number selected for desk phones. The primary number shares the same line as the extension number. This means if a caller is routed to the shared line group through an auto receptionist, the line associated with the primary number will be used.', ) site: Optional[Site20] = Field( None, description='Site assigned to the Shared Line Group.' ) status: Optional[Status71] = Field( None, description='Status of the Shared Line Group.' ) timezone: Optional[str] = Field( None, description='Timezone used for the Business Hours.' ) class PrimaryNumber(BaseModel): id: Optional[str] = Field( None, description='Phone Number ID. Unique Identifier of the Phone Number.' ) number: Optional[str] = Field( None, description='Phone Number that you would like to assign as the primary number for this Shared Line Group.', ) class PhoneSharedLineGroupsSharedLineGroupIdPatchRequest(BaseModel): display_name: Optional[str] = Field( None, description='Display Name of the Shared Line Group.' ) extension_number: Optional[int] = Field( None, description='Extension number assigned to the Shared Line Group.' ) primary_number: Optional[PrimaryNumber] = Field( None, description='If you have multiple direct phone numbers assigned to the shared line group, select a number from those numbers as the primary number. The primary number shares the same line as the extension number. This means if a caller is routed to the shared line group through an auto receptionist, the line associated with the primary number will be used. A pending number cannot be used as a Primary Number.', ) status: Optional[Status71] = Field( None, description='Status of the Shared Line Group.' ) timezone: Optional[str] = Field( None, description='Timezone to be used for the Business Hours. A value should be provided from the IDs listed [here](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).', ) class PhoneSharedLineGroupsSharedLineGroupIdPatchRequest1(BaseModel): display_name: Optional[str] = Field( None, description='Display Name of the Shared Line Group.' ) extension_number: Optional[int] = Field( None, description='Extension number assigned to the Shared Line Group.' ) primary_number: Optional[PrimaryNumber] = Field( None, description='If you have multiple direct phone numbers assigned to the shared line group, select a number from those numbers as the primary number. The primary number shares the same line as the extension number. This means if a caller is routed to the shared line group through an auto receptionist, the line associated with the primary number will be used. A pending number cannot be used as a Primary Number.', ) status: Optional[Status71] = Field( None, description='Status of the Shared Line Group.' ) timezone: Optional[str] = Field( None, description='Timezone to be used for the Business Hours. A value should be provided from the IDs listed [here](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones).', ) class User12(BaseModel): email: Optional[str] = Field(None, description='Email address of the user.') id: Optional[str] = Field(None, description='Unique identifier of the user.') class Members8(BaseModel): common_area_phone_ids: Optional[List[str]] = Field( None, description='Unique identifier(s) of the Common Area Phone. ' ) users: Optional[List[User12]] = Field( None, description='Zoom Phone users on the account.' ) class PhoneSharedLineGroupsSharedLineGroupIdMembersPostRequest(BaseModel): members: Optional[Members8] = Field( None, description='Members can comprise of users on the account as well as common area phones. You can add a maximum of 10 members at once.', ) class Members9(BaseModel): common_area_phone_ids: Optional[List[str]] = Field( None, description='Unique identifier(s) of the Common Area Phone. ' ) users: Optional[List[User12]] = Field( None, description='Zoom Phone users on the account.' ) class PhoneSharedLineGroupsSharedLineGroupIdMembersPostRequest1(BaseModel): members: Optional[Members9] = Field( None, description='Members can comprise of users on the account as well as common area phones. You can add a maximum of 10 members at once.', ) class PhoneNumber18(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the phone number.' ) number: Optional[str] = Field(None, description='Phone number.') class PhoneSharedLineGroupsSharedLineGroupIdPhoneNumbersPostRequest(BaseModel): phone_numbers: Optional[List[PhoneNumber18]] = Field( None, description='Phone number(s) to be assigned to the Shared Line Group.' ) class PhoneSharedLineGroupsSharedLineGroupIdPhoneNumbersPostRequest1(BaseModel): phone_numbers: Optional[List[PhoneNumber18]] = Field( None, description='Phone number(s) to be assigned to the Shared Line Group.' ) class ByocSipTrunkItem(BaseModel): carrier: Optional[str] = Field(None, description='Name of the carrier.') carrier_account: Optional[str] = Field( None, description='The account associated to the carrier.' ) id: Optional[str] = Field(None, description='The unique SIP Trunk ID.') name: Optional[str] = Field(None, description='The display name of the SIP Trunk.') region: Optional[str] = Field(None, description='The region of the carrier.') sbc_label: Optional[str] = Field( None, description='The Session Border Controller (SBC) routing label.' ) class PhoneSipTrunkTrunksGetResponse(BaseModel): byoc_sip_trunk: Optional[List[ByocSipTrunkItem]] = None next_page_token: Optional[str] = Field( None, description='Used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is **15 minutes**.', ) page_size: Optional[int] = Field( 30, description='The number of records returned within a single API call. The default is **30**, and the maximum is **100**.', ) class PhoneSipTrunkTrunksGetResponse1(BaseModel): byoc_sip_trunk: Optional[List[ByocSipTrunkItem]] = None next_page_token: Optional[str] = Field( None, description='Used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is **15 minutes**.', ) page_size: Optional[int] = Field( 30, description='The number of records returned within a single API call. The default is **30**, and the maximum is **100**.', ) class Country(BaseModel): code: Optional[str] = Field( None, description='Two lettered country [code](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries).', ) name: Optional[str] = Field(None, description='Name of the country.') class MainAutoReceptionist(BaseModel): extension_id: Optional[str] = Field(None, description='Extension ID') extension_number: Optional[str] = Field(None, description='Extension number') id: Optional[str] = Field( None, description='Identifier of the [auto receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Interactive-Voice-Response-IVR-).', ) name: Optional[str] = Field(None, description='Name of the auto receptionist.') class Site24(BaseModel): country: Optional[Country] = Field(None, description='Site country') id: Optional[str] = Field( None, description='Site ID. Unique Identifier of the site.' ) main_auto_receptionist: Optional[MainAutoReceptionist] = Field( None, description='Auto Receptionist for each site.' ) name: Optional[str] = Field(None, description='Name of the Site.') site_code: Optional[str] = Field(None, description='Site Code') class PhoneSitesGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[str] = Field( None, description='The number of records returned within a single API call.' ) sites: Optional[List[Site24]] = Field(None, description='List of site(s).') total_records: Optional[str] = Field( None, description='Total number of records returned.' ) class Site25(BaseModel): country: Optional[Country] = Field(None, description='Site country') id: Optional[str] = Field( None, description='Site ID. Unique Identifier of the site.' ) main_auto_receptionist: Optional[MainAutoReceptionist] = Field( None, description='Auto Receptionist for each site.' ) name: Optional[str] = Field(None, description='Name of the Site.') site_code: Optional[str] = Field(None, description='Site Code') class PhoneSitesGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[str] = Field( None, description='The number of records returned within a single API call.' ) sites: Optional[List[Site25]] = Field(None, description='List of site(s).') total_records: Optional[str] = Field( None, description='Total number of records returned.' ) class DefaultEmergencyAddress(BaseModel): address_line1: str = Field( ..., description='Address Line 1 of the [emergency address](https://support.zoom.us/hc/en-us/articles/360021062871-Setting-an-Emergency-Address) consisting of house number and street name.', ) address_line2: Optional[str] = Field( None, description='Address Line 2 of the [emergency address](https://support.zoom.us/hc/en-us/articles/360021062871-Setting-an-Emergency-Address) consisting of Building number, floor number, unit, etc.', ) city: str = Field( ..., description='City of the [emergency address](https://support.zoom.us/hc/en-us/articles/360021062871-Setting-an-Emergency-Address).', ) country: constr(min_length=2, max_length=2) = Field( ..., description="Two lettered country code (Aplha-2 code in ISO-3166) standard of the Site's [emergency address](https://support.zoom.us/hc/en-us/articles/360021062871-Setting-an-Emergency-Address).", ) state_code: str = Field( ..., description='State Code of the [emergency address](https://support.zoom.us/hc/en-us/articles/360021062871-Setting-an-Emergency-Address).', ) zip: str = Field( ..., description='Zip Code of the [emergency address](https://support.zoom.us/hc/en-us/articles/360021062871-Setting-an-Emergency-Address).', ) class ShortExtension(BaseModel): length: Optional[int] = Field( 3, description='Specify the length of short extension numbers for the site.\n\nSince there is a default 6-digit limit on extensions, the short extension can be 2 to 5 digits and the length of site code added to the length of short extension can not exceed a value of `6` (i.e., length of `site_code`+ length of `short_extension` should always be less than or equal to 6).', ) class PhoneSitesPostRequest(BaseModel): auto_receptionist_name: str = Field( ..., description='Display name of the [auto-receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-) for the site.', ) default_emergency_address: Optional[DefaultEmergencyAddress] = None name: constr(min_length=1, max_length=255) = Field( ..., description='Name of the Site.' ) short_extension: Optional[ShortExtension] = Field( None, description='Short extension of the phone site.' ) site_code: Optional[int] = Field( None, description='Identifier for a site. If site code is enabled, this field is required.\n\n', ) class PhoneSitesPostRequest1(BaseModel): auto_receptionist_name: str = Field( ..., description='Display name of the [auto-receptionist](https://support.zoom.us/hc/en-us/articles/360021121312-Managing-Auto-Receptionists-and-Integrated-Voice-Response-IVR-) for the site.', ) default_emergency_address: Optional[DefaultEmergencyAddress] = None name: constr(min_length=1, max_length=255) = Field( ..., description='Name of the Site.' ) short_extension: Optional[ShortExtension] = Field( None, description='Short extension of the phone site.' ) site_code: Optional[int] = Field( None, description='Identifier for a site. If site code is enabled, this field is required.\n\n', ) class PhoneSitesPostResponse(BaseModel): id: Optional[str] = Field(None, description='Site ID: Unique Identifier of a site.') name: Optional[str] = Field(None, description='Name of the site.') class MainAutoReceptionist2(BaseModel): extension_id: Optional[str] = Field(None, description='Extension ID') extension_number: Optional[int] = Field(None, description='Extension number') id: Optional[str] = Field( None, description='Unique Identifier of the Auto Receptionist.' ) name: Optional[str] = Field(None, description='Name of the auto receptionist.') class ShortExtension2(BaseModel): length: Optional[int] = Field( 3, description='The length of short extension number for the site.' ) class PhoneSitesSiteIdGetResponse(BaseModel): country: Optional[Country] = Field(None, description='Site country') id: Optional[str] = Field( None, description='Site ID. Unique Identifier of the site.' ) main_auto_receptionist: Optional[MainAutoReceptionist2] = Field( None, description='[Main Auto Receptionist](https://support.zoom.us/hc/en-us/articles/360021121312#h_bc7ff1d5-0e6c-40cd-b889-62010cb98c57) for each site.', ) name: Optional[str] = Field(None, description='Name of the Site.') short_extension: Optional[ShortExtension2] = Field( None, description='Short extension of the phone site.' ) site_code: Optional[int] = Field( None, description='[Site Code](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b)', ) class PhoneSitesSiteIdGetResponse1(BaseModel): country: Optional[Country] = Field(None, description='Site country') id: Optional[str] = Field( None, description='Site ID. Unique Identifier of the site.' ) main_auto_receptionist: Optional[MainAutoReceptionist2] = Field( None, description='[Main Auto Receptionist](https://support.zoom.us/hc/en-us/articles/360021121312#h_bc7ff1d5-0e6c-40cd-b889-62010cb98c57) for each site.', ) name: Optional[str] = Field(None, description='Name of the Site.') short_extension: Optional[ShortExtension2] = Field( None, description='Short extension of the phone site.' ) site_code: Optional[int] = Field( None, description='[Site Code](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b)', ) class PhoneSitesSiteIdPatchRequest(BaseModel): name: Optional[str] = Field(None, description='Name of the site.') site_code: Optional[int] = Field( None, description='[Site Code](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites#h_79ca9c8f-c97b-4486-aa59-d0d9d31a525b).', ) class CallingPlan4(BaseModel): name: Optional[str] = Field( None, description='Name of the calling plan that user is enrolled in.' ) type: Optional[str] = Field( None, description='Type of calling plan that user is enrolled in.' ) class Site26(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites).', ) name: Optional[str] = Field(None, description='Name of the site.') class User14(BaseModel): calling_plans: Optional[List[CallingPlan4]] = None email: Optional[EmailStr] = Field(None, description='Email address of the user.') extension_number: Optional[int] = Field( None, description="Extension number assigned to the user's Zoom phone number." ) id: Optional[str] = Field( None, description='Unique Identifier of the user (userId).' ) name: Optional[str] = Field(None, description='Name of the user.') phone_user_id: Optional[str] = Field( None, description='Zoom Phone Identifier of the user.' ) site: Optional[Site26] = None status: Optional[str] = Field( None, description="Displays the status of the user's Zoom Phone license. The value can be either of the following:<br>\n`activate`: Active Zoom phone user.<br>\n`deactivate`: User with Zoom phone license disabled. This type of user can't make or receive calls.", ) class PhoneUsersGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total records found for this query.' ) users: Optional[List[User14]] = None class User15(BaseModel): calling_plans: Optional[List[CallingPlan4]] = None email: Optional[EmailStr] = Field(None, description='Email address of the user.') extension_number: Optional[int] = Field( None, description="Extension number assigned to the user's Zoom phone number." ) id: Optional[str] = Field( None, description='Unique Identifier of the user (userId).' ) name: Optional[str] = Field(None, description='Name of the user.') phone_user_id: Optional[str] = Field( None, description='Zoom Phone Identifier of the user.' ) site: Optional[Site26] = None status: Optional[str] = Field( None, description="Displays the status of the user's Zoom Phone license. The value can be either of the following:<br>\n`activate`: Active Zoom phone user.<br>\n`deactivate`: User with Zoom phone license disabled. This type of user can't make or receive calls.", ) class PhoneUsersGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[conint(le=100)] = Field( 30, description='The number of records returned from a single API call.' ) total_records: Optional[int] = Field( None, description='The total records found for this query.' ) users: Optional[List[User15]] = None class CallingPlanItem(BaseModel): type: Optional[int] = Field( None, description='The [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of calling plan. ', ) class PhoneNumber20(BaseModel): id: Optional[str] = Field(None, description='Phone Number Id') number: Optional[str] = Field(None, description='Phone number') class Status76(Enum): activate = 'activate' deactivate = 'deactivate' class PhoneUsersUserIdGetResponse(BaseModel): calling_plan: Optional[List[CallingPlanItem]] = Field( None, description='Calling Plan of the user' ) email: Optional[str] = Field(None, description='Email address of the user.') extension_number: Optional[int] = Field(None, description='Extension number') id: Optional[str] = Field(None, description='Zoom User Id.') phone_numbers: Optional[List[PhoneNumber20]] = None phone_user_id: Optional[str] = Field(None, description='Zoom Phone User Id.') site_admin: Optional[bool] = Field( None, description='Indicates whether the user is a [site admin](https://support.zoom.us/hc/en-us/articles/360042099012) or not.', ) site_id: Optional[str] = Field( None, description='Unique Identifier of a [site](https://support.zoom.us/hc/en-us/articles/360020809672).', ) status: Optional[Status76] = Field( None, description='The status of the user.<br>\n`activate`: An active user. <br>\n`deactivate`: User has been deactivated from the ZoomPhone system.', ) class PhoneUsersUserIdGetResponse1(BaseModel): calling_plan: Optional[List[CallingPlanItem]] = Field( None, description='Calling Plan of the user' ) email: Optional[str] = Field(None, description='Email address of the user.') extension_number: Optional[int] = Field(None, description='Extension number') id: Optional[str] = Field(None, description='Zoom User Id.') phone_numbers: Optional[List[PhoneNumber20]] = None phone_user_id: Optional[str] = Field(None, description='Zoom Phone User Id.') site_admin: Optional[bool] = Field( None, description='Indicates whether the user is a [site admin](https://support.zoom.us/hc/en-us/articles/360042099012) or not.', ) site_id: Optional[str] = Field( None, description='Unique Identifier of a [site](https://support.zoom.us/hc/en-us/articles/360020809672).', ) status: Optional[Status76] = Field( None, description='The status of the user.<br>\n`activate`: An active user. <br>\n`deactivate`: User has been deactivated from the ZoomPhone system.', ) class PhoneUsersUserIdPatchRequest(BaseModel): extension_number: Optional[str] = Field( None, description='The extension number of the user. The number must be complete (i.e. site number + short extension).', ) site_id: Optional[str] = Field( None, description='Unique identifier of the [site](https://support.zoom.us/hc/en-us/articles/360020809672) where the user should be moved or assigned. ', ) class Type233(Enum): all = 'all' missed = 'missed' class AcceptedBy(BaseModel): extension_number: Optional[str] = None location: Optional[str] = None name: Optional[str] = None number_type: Optional[str] = None phone_number: Optional[str] = None class ForwardedBy(BaseModel): extension_number: Optional[str] = None location: Optional[str] = None name: Optional[str] = None number_type: Optional[str] = None phone_number: Optional[str] = None class ForwardedTo(BaseModel): extension_number: Optional[str] = None location: Optional[str] = None name: Optional[str] = None number_type: Optional[str] = None phone_number: Optional[str] = None class OutgoingBy(BaseModel): extension_number: Optional[str] = None location: Optional[str] = None name: Optional[str] = None number_type: Optional[str] = None phone_number: Optional[str] = None class Site28(BaseModel): id: Optional[str] = Field( None, description='Target [site](https://support.zoom.us/hc/en-us/articles/360020809672-Managing-Multiple-Sites) in which the phone number was assigned. Sites allow you to organize the phone users in your organization. For example, you sites could be created based on different office locations.', ) name: Optional[str] = Field( None, description='Name of the site where the phone number is assigned.' ) class CallLog4(BaseModel): accepted_by: Optional[AcceptedBy] = Field( None, description='Indicates who accepted the call.' ) call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) charge: Optional[str] = Field(None, description='Billing charge for the call.') client_code: Optional[str] = Field(None, description='Client code.') date_time: Optional[str] = Field(None, description='Start time of the call') direction: Optional[str] = Field( None, description='Direction of the call. "inbound" | "outbound"' ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) forwarded_by: Optional[ForwardedBy] = Field( None, description='Indicates where the call was forwarded from.' ) forwarded_to: Optional[ForwardedTo] = Field( None, description='Indicates who the call was forwarded to.' ) has_recording: Optional[bool] = Field( None, description='Whether the call has a recording or not.' ) has_voicemail: Optional[bool] = Field( None, description='Whether the call has voicemail or not.' ) id: Optional[str] = Field(None, description='Call Log ID') outgoing_by: Optional[OutgoingBy] = None path: Optional[str] = Field(None, description='Path of the call log.') rate: Optional[str] = Field(None, description='Billing rate for the call.') recording_type: Optional[str] = Field( None, description='Recording type. <br>\n* `1` - On-demand recording.<br>\n* `2` - Automatic recording.', ) result: Optional[str] = Field( None, description='Result of the call. "call_connected" | "recorded" | "no_answer"', ) site: Optional[Site28] = None user_id: Optional[str] = Field(None, description='User ID or user email.') waiting_time: Optional[int] = Field( None, description='Waiting time for the call, in seconds.' ) class PhoneUsersUserIdCallLogsGetResponse(BaseModel): call_logs: Optional[List[CallLog4]] = Field(None, description='Call Log') from_: Optional[str] = Field( None, alias='from', description='Date from which you would like to view the logs.', ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of pages') page_size: Optional[int] = Field( None, description='The number of records returned within a single API call for each page.', ) to: Optional[str] = Field( None, description='Date up to which you would like to view the phone log.' ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class CallLog5(BaseModel): accepted_by: Optional[AcceptedBy] = Field( None, description='Indicates who accepted the call.' ) call_id: Optional[str] = Field( None, description='Unique identifier of the phone call.' ) callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) charge: Optional[str] = Field(None, description='Billing charge for the call.') client_code: Optional[str] = Field(None, description='Client code.') date_time: Optional[str] = Field(None, description='Start time of the call') direction: Optional[str] = Field( None, description='Direction of the call. "inbound" | "outbound"' ) duration: Optional[int] = Field( None, description='Duration of the call in seconds.' ) forwarded_by: Optional[ForwardedBy] = Field( None, description='Indicates where the call was forwarded from.' ) forwarded_to: Optional[ForwardedTo] = Field( None, description='Indicates who the call was forwarded to.' ) has_recording: Optional[bool] = Field( None, description='Whether the call has a recording or not.' ) has_voicemail: Optional[bool] = Field( None, description='Whether the call has voicemail or not.' ) id: Optional[str] = Field(None, description='Call Log ID') outgoing_by: Optional[OutgoingBy] = None path: Optional[str] = Field(None, description='Path of the call log.') rate: Optional[str] = Field(None, description='Billing rate for the call.') recording_type: Optional[str] = Field( None, description='Recording type. <br>\n* `1` - On-demand recording.<br>\n* `2` - Automatic recording.', ) result: Optional[str] = Field( None, description='Result of the call. "call_connected" | "recorded" | "no_answer"', ) site: Optional[Site28] = None user_id: Optional[str] = Field(None, description='User ID or user email.') waiting_time: Optional[int] = Field( None, description='Waiting time for the call, in seconds.' ) class PhoneUsersUserIdCallLogsGetResponse1(BaseModel): call_logs: Optional[List[CallLog5]] = Field(None, description='Call Log') from_: Optional[str] = Field( None, alias='from', description='Date from which you would like to view the logs.', ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of pages') page_size: Optional[int] = Field( None, description='The number of records returned within a single API call for each page.', ) to: Optional[str] = Field( None, description='Date up to which you would like to view the phone log.' ) total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class CallingPlan6(BaseModel): type: Optional[str] = Field( None, description='[Type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-phone-calling-plans) of the calling plan.', ) class PhoneUsersUserIdCallingPlansPostRequest(BaseModel): calling_plans: Optional[List[CallingPlan6]] = None class PhoneUsersUserIdCallingPlansPostRequest1(BaseModel): calling_plans: Optional[List[CallingPlan6]] = None class PhoneNumber22(BaseModel): id: Optional[str] = Field(None, description='ID for phone number') number: Optional[str] = Field(None, description='Phone number in E164 format.') class PhoneUsersUserIdPhoneNumbersPostRequest(BaseModel): phone_numbers: Optional[List[PhoneNumber22]] = None class PhoneUsersUserIdPhoneNumbersPostRequest1(BaseModel): phone_numbers: Optional[List[PhoneNumber22]] = None class PhoneNumber24(BaseModel): id: Optional[str] = Field(None, description='ID of the phone number') number: Optional[str] = Field( None, description='The phone number that is assigned to the user.' ) class PhoneUsersUserIdPhoneNumbersPostResponse(BaseModel): phone_numbers: Optional[List[PhoneNumber24]] = Field( None, description='Assigned phone number' ) class PhoneUsersUserIdPhoneNumbersPostResponse1(BaseModel): phone_numbers: Optional[List[PhoneNumber24]] = Field( None, description='Assigned phone number' ) class Recording25(BaseModel): callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) date_time: Optional[str] = Field( None, description='Date and time at which the record is received' ) direction: Optional[str] = Field( None, description='Direction of the call. "inbound" | "outbound"' ) download_url: Optional[str] = Field( None, description="Download url for the recording. For security purposes, you must provide an OAuth access token in the auth header to download the recording file using this url. <br>\n\nExample request:<br>\n```\ncurl --request GET \\\n --url {download_url} \\\n --header 'authorization: Bearer {access_token} \\\n --header 'content-type: application/json'\n```\n", ) duration: Optional[str] = Field( None, description='Duration of the call formatted as hh:mm:ss, for example: `05:01` for five minutes and one second.', ) id: Optional[str] = Field(None, description='ID of recording') class PhoneUsersUserIdRecordingsGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for the query.' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of pages.') page_size: Optional[int] = Field( None, description='The number of records returned within a single API call for each page.', ) recordings: Optional[List[Recording25]] = Field(None, description='Recordings') to: Optional[date_aliased] = Field(None, description='End date.') total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class PhoneUsersUserIdRecordingsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for the query.' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of pages.') page_size: Optional[int] = Field( None, description='The number of records returned within a single API call for each page.', ) recordings: Optional[List[Recording25]] = Field(None, description='Recordings') to: Optional[date_aliased] = Field(None, description='End date.') total_records: Optional[int] = Field( None, description='The total number of records returned.' ) class KeysPositions(BaseModel): primary_number: Optional[str] = Field( None, description='Primary number of the user.' ) class DeskPhone4(BaseModel): keys_positions: Optional[KeysPositions] = None class OutboundCaller(BaseModel): number: Optional[str] = Field(None, description='Outbound calling number') class OutboundCallerIds(BaseModel): is_default: Optional[bool] = Field( None, description='Whether the outbound caller ID is the default or not. If `true`, the outbound caller ID is the default caller ID.', ) name: Optional[str] = Field(None, description='Outbound caller name.') number: Optional[str] = Field(None, description='Outbound caller number.') class VoiceMail(BaseModel): access_user_id: Optional[str] = Field( None, description='The user that is allowed to access voicemail messages for the extension.', ) delete: Optional[bool] = Field( None, description='Specifies whether the user has delete permissions. The default is **false**.', ) download: Optional[bool] = Field( None, description='Specifies whether the user has download permissions. The default is **false**.', ) shared_id: Optional[str] = Field( None, description='Unique identifier of the shared voicemail that the user can access.', ) class PhoneUsersUserIdSettingsGetResponse(BaseModel): area_code: Optional[str] = Field(None, description='Area Code of User') company_number: Optional[str] = Field( None, description="The [company number](https://support.zoom.us/hc/en-us/articles/360028553691) can be used by external callers to reach your phone users (by dialing the main company number and the user's extension). It can also be used by phone users as their caller ID when making calls.", ) desk_phone: Optional[DeskPhone4] = Field( None, description='Contains information on phones or devices provisioned for the user.', ) outbound_caller: Optional[OutboundCaller] = Field( None, description='Outbound Caller Info' ) outbound_caller_ids: Optional[OutboundCallerIds] = None voice_mail: Optional[VoiceMail] = Field( None, description='[Shared voicemail access](https://support.zoom.us/hc/en-us/articles/360033863991-Sharing-and-controlling-access-to-a-voicemail-inbox) assigned to user.', ) class DeskPhone5(BaseModel): keys_positions: Optional[KeysPositions] = None class PhoneUsersUserIdSettingsGetResponse1(BaseModel): area_code: Optional[str] = Field(None, description='Area Code of User') company_number: Optional[str] = Field( None, description="The [company number](https://support.zoom.us/hc/en-us/articles/360028553691) can be used by external callers to reach your phone users (by dialing the main company number and the user's extension). It can also be used by phone users as their caller ID when making calls.", ) desk_phone: Optional[DeskPhone5] = Field( None, description='Contains information on phones or devices provisioned for the user.', ) outbound_caller: Optional[OutboundCaller] = Field( None, description='Outbound Caller Info' ) outbound_caller_ids: Optional[OutboundCallerIds] = None voice_mail: Optional[VoiceMail] = Field( None, description='[Shared voicemail access](https://support.zoom.us/hc/en-us/articles/360033863991-Sharing-and-controlling-access-to-a-voicemail-inbox) assigned to user.', ) class VoiceMail2(BaseModel): access_user_id: Optional[str] = Field( None, description='Specify the user ID of the user whose voicemail permissions need to be updated.', ) delete: Optional[bool] = Field( None, description='Specify whether the user has delete permissions. The default is **false**.', ) download: Optional[bool] = Field( None, description='Specify whether the user has download permissions. The default is **false**.', ) shared_id: Optional[str] = Field( None, description='\nSpecify the ID of the voicemail.' ) class PhoneUsersUserIdSettingsSettingTypePatchRequest(BaseModel): voice_mail: Optional[VoiceMail2] = Field( None, description='Update the voicemail setting.' ) class PhoneUsersUserIdSettingsSettingTypePatchRequest1(BaseModel): voice_mail: Optional[VoiceMail2] = Field( None, description='Update the voicemail setting.' ) class PhoneUsersUserIdSettingsSettingTypePatchResponse(BaseModel): pass class VoiceMail4(BaseModel): access_user_id: Optional[str] = Field( None, description='Specify the user ID of a user with whom to share voicemail access permissions. ', ) delete: Optional[bool] = Field( None, description='Specifies whether the user has delete permissions. The default is **false**.', ) download: Optional[bool] = Field( None, description='Specifies whether the user has download permissions. The default is **false**.', ) class PhoneUsersUserIdSettingsSettingTypePostRequest(BaseModel): voice_mail: Optional[VoiceMail4] = Field( None, description='Update the voicemail setting.' ) class PhoneUsersUserIdSettingsSettingTypePostRequest1(BaseModel): voice_mail: Optional[VoiceMail4] = Field( None, description='Update the voicemail setting.' ) class VoiceMail6(BaseModel): access_user_id: Optional[str] = Field( None, description='The user that is allowed to access voicemail messages for the extension.', ) delete: Optional[bool] = Field( None, description='Specifies whether the user has delete permissions. The default is **false**.', ) download: Optional[bool] = Field( None, description='Specifies whether the user has download permissions. The default is **false**.', ) shared_id: Optional[str] = Field( None, description='Unique identifier of the voicemail that the user can access.' ) class PhoneUsersUserIdSettingsSettingTypePostResponse(BaseModel): voice_mail: Optional[VoiceMail6] = None class PhoneUsersUserIdSettingsSettingTypePostResponse1(BaseModel): voice_mail: Optional[VoiceMail6] = None class Status78(Enum): all = 'all' read = 'read' unread = 'unread' class Status79(Enum): read = 'read' unread = 'unread' class VoiceMail8(BaseModel): callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller ') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) date_time: Optional[str] = Field(None, description='Date the voice mail started') download_url: Optional[str] = Field(None, description='Download url of attachment') duration: Optional[str] = Field( None, description='Duration of the voice mail, formatted as hh:mm:ss, for example: `06:30` for six minutes and thirty seconds.', ) id: Optional[str] = Field(None, description='Id of voice mail') status: Optional[Status79] = Field( None, description="Status of the voice mail. Can be either 'read' or 'unread'" ) class PhoneUsersUserIdVoiceMailsGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for the query.' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of page') page_size: Optional[int] = Field(None, description='Size of each page') to: Optional[date_aliased] = Field(None, description='End date.') total_records: Optional[int] = Field(None, description='Total number of records') voice_mails: Optional[List[VoiceMail8]] = Field(None, description='Voice Mails') class VoiceMail9(BaseModel): callee_name: Optional[str] = Field(None, description='Contact name of callee') callee_number: Optional[str] = Field(None, description='Number of callee') callee_number_type: Optional[str] = Field( None, description="Type of callee's number. 1 - internal | 2 - external" ) caller_name: Optional[str] = Field(None, description='Contact name of caller') caller_number: Optional[str] = Field(None, description='Number of caller ') caller_number_type: Optional[str] = Field( None, description="Type of caller's number. 1 - internal | 2 - external" ) date_time: Optional[str] = Field(None, description='Date the voice mail started') download_url: Optional[str] = Field(None, description='Download url of attachment') duration: Optional[str] = Field( None, description='Duration of the voice mail, formatted as hh:mm:ss, for example: `06:30` for six minutes and thirty seconds.', ) id: Optional[str] = Field(None, description='Id of voice mail') status: Optional[Status79] = Field( None, description="Status of the voice mail. Can be either 'read' or 'unread'" ) class PhoneUsersUserIdVoiceMailsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for the query.' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field(None, description='Total number of page') page_size: Optional[int] = Field(None, description='Size of each page') to: Optional[date_aliased] = Field(None, description='End date.') total_records: Optional[int] = Field(None, description='Total number of records') voice_mails: Optional[List[VoiceMail9]] = Field(None, description='Voice Mails') class Status81(Enum): all = 'all' read = 'read' unread = 'unread' class ActivityLog(BaseModel): client_type: Optional[str] = Field( None, description='The client interface type using which the activity was performed.', ) email: Optional[str] = Field( None, description='Email address of the user used for the activity. ' ) ip_address: Optional[str] = Field( None, description="The IP address of the user's device." ) time: Optional[datetime] = Field( None, description='Time during which the activity occurred. ' ) type: Optional[str] = Field( None, description='The type of activity: <br>`Sign in`: Sign in activity by user.<br>`Sign out`: Sign out activity by user.', ) version: Optional[str] = Field(None, description='Zoom client version of the user.') class ReportActivitiesGetResponse(BaseModel): activity_logs: Optional[List[ActivityLog]] = Field( None, description='Array of activity logs.' ) from_: Optional[str] = Field( None, alias='from', description='Start date from which you want the activity logs report to be generated.', ) next_page_token: Optional[str] = Field( None, description='Next page token is used to paginate through large result sets.', ) page_size: Optional[str] = Field( None, description='The number of records returned within a single API call.' ) to: Optional[str] = Field( None, description='End date until which you want the activity logs report to be generated', ) class ReportActivitiesGetResponse1(BaseModel): activity_logs: Optional[List[ActivityLog]] = Field( None, description='Array of activity logs.' ) from_: Optional[str] = Field( None, alias='from', description='Start date from which you want the activity logs report to be generated.', ) next_page_token: Optional[str] = Field( None, description='Next page token is used to paginate through large result sets.', ) page_size: Optional[str] = Field( None, description='The number of records returned within a single API call.' ) to: Optional[str] = Field( None, description='End date until which you want the activity logs report to be generated', ) class CloudRecordingStorageItem(BaseModel): date: Optional[datetime] = Field(None, description='Date of the usage') free_usage: Optional[str] = Field(None, description='Free storage') plan_usage: Optional[str] = Field(None, description='Paid storage') usage: Optional[str] = Field(None, description='Storage used on the date') class ReportCloudRecordingGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') cloud_recording_storage: Optional[List[CloudRecordingStorageItem]] = Field( None, description='Array of cloud usage objects' ) class ReportCloudRecordingGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report' ) to: Optional[date_aliased] = Field(None, description='End date for this report') cloud_recording_storage: Optional[List[CloudRecordingStorageItem]] = Field( None, description='Array of cloud usage objects' ) class Date(BaseModel): date: Optional[date_aliased] = Field(None, description='Date for this object.') meeting_minutes: Optional[int] = Field( None, description='Number of meeting minutes on this date.' ) meetings: Optional[int] = Field( None, description='Number of meetings on this date.' ) new_users: Optional[int] = Field( None, description='Number of new users on this date.' ) participants: Optional[int] = Field( None, description='Number of participants on this date.' ) class ReportDailyGetResponse(BaseModel): dates: Optional[List[Date]] = Field(None, description='Array of date objects.') month: Optional[int] = Field(None, description='Month for this report.') year: Optional[int] = Field(None, description='Year for this report.') class ReportDailyGetResponse1(BaseModel): dates: Optional[List[Date]] = Field(None, description='Array of date objects.') month: Optional[int] = Field(None, description='Month for this report.') year: Optional[int] = Field(None, description='Year for this report.') class CustomKey26(BaseModel): key: Optional[constr(max_length=64)] = Field( None, description='Custom key associated with the user.' ) value: Optional[constr(max_length=256)] = Field( None, description='Value of the custom key associated with the user.' ) class TrackingField22(BaseModel): field: Optional[str] = Field(None, description='Tracking fields type.') value: Optional[str] = Field(None, description='Tracking fields value.') class ReportMeetingsMeetingIdGetResponse(BaseModel): custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Number of meeting minutes. This represents the total amount of meeting minutes attended by each participant including the host, for meetings hosted by the user. For instance if there were one host(named A) and one participant(named B) in a meeting, the value of total_minutes would be calculated as below:\n\n**total_minutes** = Total Meeting Attendance Minutes of A + Total Meeting Attendance Minutes of B', ) tracking_fields: Optional[List[TrackingField22]] = Field( None, description='Tracking fields.' ) type: Optional[int] = Field(None, description='Meeting type.') user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Each meeting instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class ReportMeetingsMeetingIdGetResponse1(BaseModel): custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Number of meeting minutes. This represents the total amount of meeting minutes attended by each participant including the host, for meetings hosted by the user. For instance if there were one host(named A) and one participant(named B) in a meeting, the value of total_minutes would be calculated as below:\n\n**total_minutes** = Total Meeting Attendance Minutes of A + Total Meeting Attendance Minutes of B', ) tracking_fields: Optional[List[TrackingField22]] = Field( None, description='Tracking fields.' ) type: Optional[int] = Field(None, description='Meeting type.') user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Each meeting instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class Participant21(BaseModel): customer_key: Optional[constr(max_length=15)] = Field( None, description='Another identifier for the participant. Can be a number or characters, maximum length of 15 characters. ', ) duration: Optional[int] = Field(None, description='Participant duration.') failover: Optional[bool] = Field( None, description='Indicates if failover happened during the meeting.' ) id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank..', ) join_time: Optional[datetime] = Field(None, description='Participant join time.') leave_time: Optional[datetime] = Field(None, description='Participant leave time.') name: Optional[str] = Field(None, description='Participant display name.') registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant. This field is only returned if you entered "registrant_id" as the value of `include_fields` query parameter.', ) user_email: Optional[str] = Field(None, description='Participant email.') user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining a meeting and is valid for that meeting only.', ) class ReportMeetingsMeetingIdParticipantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant21]] = Field( None, description='Array of meeting participant objects.' ) class ReportMeetingsMeetingIdParticipantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant21]] = Field( None, description='Array of meeting participant objects.' ) class QuestionDetail6(BaseModel): answer: Optional[str] = Field(None, description='Given answer.') date_time: Optional[datetime] = Field( None, description='Date and time at which the answer to the poll was submitted.' ) polling_id: Optional[str] = Field( None, description='Unique identifier of the poll.' ) question: Optional[str] = Field(None, description='Asked question.') class Question33(BaseModel): email: Optional[str] = Field(None, description='Participant email.') name: Optional[str] = Field( None, description='Participant display name.<br> If "anonymous" option is enabled for a [poll](https://support.zoom.us/hc/en-us/articles/213756303-Polling-for-Meet), the participant\'s polling information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail6]] = Field( None, description='Array of questions from user.' ) class ReportMeetingsMeetingIdPollsGetResponse(BaseModel): id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) questions: Optional[List[Question33]] = Field( None, description='Array of meeting question objects.' ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Each meeting instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class Question34(BaseModel): email: Optional[str] = Field(None, description='Participant email.') name: Optional[str] = Field( None, description='Participant display name.<br> If "anonymous" option is enabled for a [poll](https://support.zoom.us/hc/en-us/articles/213756303-Polling-for-Meet), the participant\'s polling information will be kept anonymous and the value of `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail6]] = Field( None, description='Array of questions from user.' ) class ReportMeetingsMeetingIdPollsGetResponse1(BaseModel): id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) questions: Optional[List[Question34]] = Field( None, description='Array of meeting question objects.' ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Each meeting instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class CategoryType(Enum): all = 'all' user = 'user' user_settings = 'user_settings' account = 'account' billing = 'billing' im = 'im' recording = 'recording' phone_contacts = 'phone_contacts' webinar = 'webinar' sub_account = 'sub_account' role = 'role' zoom_rooms = 'zoom_rooms' class OperationLog2(BaseModel): action: Optional[str] = Field(None, description='Action') category_type: Optional[str] = Field(None, description='Category type') operation_detail: Optional[str] = Field(None, description='Operation detail') operator: Optional[str] = Field( None, description='The user who performed the operation.' ) time: Optional[datetime] = Field( None, description='The time at which the operation was performed.' ) class ReportOperationlogsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) operation_logs: Optional[List[OperationLog2]] = Field( None, description='Array of operation log objects' ) class ReportOperationlogsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of the available result list exceeds the page size. The expiration period is 15 minutes.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The amount of records returns within a single API call. ' ) operation_logs: Optional[List[OperationLog2]] = Field( None, description='Array of operation log objects' ) class Type235(Enum): field_1 = 1 field_3 = 3 class Type236(Enum): toll_free = 'toll-free' call_out = 'call-out' call_in = 'call-in' US_toll_number = 'US toll-number' global_toll_number = 'global toll-number' premium = 'premium' premium_call_in = 'premium call-in' class TelephonyUsageItem(BaseModel): call_in_number: Optional[str] = Field(None, description="Caller's call-in number.") country_name: Optional[str] = Field(None, description='Country name.') dept: Optional[str] = Field(None, description='User department.') duration: Optional[int] = Field(None, description='Call leg duration') end_time: Optional[datetime] = Field(None, description='Call leg end time') host_email: Optional[str] = Field(None, description='User email.') host_id: Optional[str] = Field(None, description='The user ID of the meeting host.') host_name: Optional[str] = Field(None, description='User display name.') meeting_id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) meeting_type: Optional[str] = Field(None, description='Meeting type.') phone_number: Optional[str] = Field( None, description='Toll-free telephone number. ' ) rate: Optional[float] = Field( None, description='Calling rate for the telephone call.' ) signaled_number: Optional[str] = Field( None, description='The number that is signaled to Zoom. ' ) start_time: Optional[datetime] = Field(None, description='Call leg start time') total: Optional[float] = Field( None, description='Total cost (USD) for Call Out. Calculated as plan rate by duration.', ) type: Optional[Type236] = Field(None, description='Call type.') uuid: Optional[str] = Field(None, description='Meeting UUID.') class ReportTelephoneGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) next_page_token: Optional[int] = Field( 1, description='The page number of the current results.' ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) telephony_usage: Optional[List[TelephonyUsageItem]] = Field( None, description='Array of telephony objects.' ) class TelephonyUsageItem1(BaseModel): call_in_number: Optional[str] = Field(None, description="Caller's call-in number.") country_name: Optional[str] = Field(None, description='Country name.') dept: Optional[str] = Field(None, description='User department.') duration: Optional[int] = Field(None, description='Call leg duration') end_time: Optional[datetime] = Field(None, description='Call leg end time') host_email: Optional[str] = Field(None, description='User email.') host_id: Optional[str] = Field(None, description='The user ID of the meeting host.') host_name: Optional[str] = Field(None, description='User display name.') meeting_id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) meeting_type: Optional[str] = Field(None, description='Meeting type.') phone_number: Optional[str] = Field( None, description='Toll-free telephone number. ' ) rate: Optional[float] = Field( None, description='Calling rate for the telephone call.' ) signaled_number: Optional[str] = Field( None, description='The number that is signaled to Zoom. ' ) start_time: Optional[datetime] = Field(None, description='Call leg start time') total: Optional[float] = Field( None, description='Total cost (USD) for Call Out. Calculated as plan rate by duration.', ) type: Optional[Type236] = Field(None, description='Call type.') uuid: Optional[str] = Field(None, description='Meeting UUID.') class ReportTelephoneGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) next_page_token: Optional[int] = Field( 1, description='The page number of the current results.' ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) telephony_usage: Optional[List[TelephonyUsageItem1]] = Field( None, description='Array of telephony objects.' ) class Type238(Enum): field_1 = 1 field_3 = 3 class Type239(Enum): active = 'active' inactive = 'inactive' class User16(BaseModel): custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) that have been assigned to the user.' ) dept: Optional[str] = Field(None, description='User department.') email: Optional[str] = Field(None, description='User email.') id: Optional[UUID] = Field(None, description='User ID.') meeting_minutes: Optional[int] = Field( None, description='Number of meeting minutes for user.' ) meetings: Optional[int] = Field(None, description='Number of meetings for user.') participants: Optional[int] = Field( None, description='Number of participants in meetings for user.' ) type: Optional[int] = Field(None, description='User type.') user_name: Optional[str] = Field(None, description='User display name.') class ReportUsersGetResponse(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) total_meeting_minutes: Optional[int] = Field( None, description='Number of meeting minutes for this range.' ) total_meetings: Optional[int] = Field( None, description='Number of meetings for this range.' ) total_participants: Optional[int] = Field( None, description='Number of participants for this range.' ) users: Optional[List[User16]] = Field(None, description='Array of user objects.') class User17(BaseModel): custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) that have been assigned to the user.' ) dept: Optional[str] = Field(None, description='User department.') email: Optional[str] = Field(None, description='User email.') id: Optional[UUID] = Field(None, description='User ID.') meeting_minutes: Optional[int] = Field( None, description='Number of meeting minutes for user.' ) meetings: Optional[int] = Field(None, description='Number of meetings for user.') participants: Optional[int] = Field( None, description='Number of participants in meetings for user.' ) type: Optional[int] = Field(None, description='User type.') user_name: Optional[str] = Field(None, description='User display name.') class ReportUsersGetResponse1(BaseModel): from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) total_meeting_minutes: Optional[int] = Field( None, description='Number of meeting minutes for this range.' ) total_meetings: Optional[int] = Field( None, description='Number of meetings for this range.' ) total_participants: Optional[int] = Field( None, description='Number of participants for this range.' ) users: Optional[List[User17]] = Field(None, description='Array of user objects.') class Type241(Enum): past = 'past' pastOne = 'pastOne' class Meeting14(BaseModel): custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64\ndata type in JSON), also known as the meeting number.\n', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) source: Optional[str] = Field( None, description='Indicates whether the meeting was created directly through Zoom or through an API request.', ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Sum of meeting minutes from all participants in the meeting.' ) type: Optional[int] = Field( None, description='\nMeeting Type:<br> `1` - Instant Meeting<br> `2` - Scheduled Meeting<br> `3` - Recurring Meeting with no fixed time.<br>\n`4` - This value is returned if the meeting was started using a Personal Meeting ID. <br>\n`8` - Recurring Meeting with a fixed time. ', ) user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Each meeting instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class ReportUsersUserIdMeetingsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) meetings: Optional[List[Meeting14]] = Field( None, description='Array of meeting objects.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') class Meeting15(BaseModel): custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64\ndata type in JSON), also known as the meeting number.\n', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) source: Optional[str] = Field( None, description='Indicates whether the meeting was created directly through Zoom or through an API request.', ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Sum of meeting minutes from all participants in the meeting.' ) type: Optional[int] = Field( None, description='\nMeeting Type:<br> `1` - Instant Meeting<br> `2` - Scheduled Meeting<br> `3` - Recurring Meeting with no fixed time.<br>\n`4` - This value is returned if the meeting was started using a Personal Meeting ID. <br>\n`8` - Recurring Meeting with a fixed time. ', ) user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field( None, description="Meeting UUID. Each meeting instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated for the next instance of the meeting). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class ReportUsersUserIdMeetingsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) from_: Optional[date_aliased] = Field( None, alias='from', description='Start date for this report.' ) meetings: Optional[List[Meeting15]] = Field( None, description='Array of meeting objects.' ) to: Optional[date_aliased] = Field(None, description='End date for this report.') class ReportWebinarsWebinarIdGetResponse(BaseModel): custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Number of Webinar minutes. This represents the total amount of Webinar minutes attended by each participant including the host, for a Webinar hosted by the user. For instance if there were one host(named A) and one participant(named B) in a Webinar, the value of total_minutes would be calculated as below:\n\n**total_minutes** = Total Webinar Attendance Minutes of A + Total Webinar Attendance Minutes of B', ) tracking_fields: Optional[List[TrackingField22]] = Field( None, description='Tracking fields.' ) type: Optional[int] = Field(None, description='Meeting type.') user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field( None, description="Webinar UUID. Each webinar instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated when the next instance of the webinar starts). Double encode the UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class ReportWebinarsWebinarIdGetResponse1(BaseModel): custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) dept: Optional[str] = Field(None, description='Department of the host.') duration: Optional[int] = Field(None, description='Meeting duration.') end_time: Optional[datetime] = Field(None, description='Meeting end time.') id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) participants_count: Optional[int] = Field( None, description='Number of meeting participants.' ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') topic: Optional[str] = Field(None, description='Meeting topic.') total_minutes: Optional[int] = Field( None, description='Number of Webinar minutes. This represents the total amount of Webinar minutes attended by each participant including the host, for a Webinar hosted by the user. For instance if there were one host(named A) and one participant(named B) in a Webinar, the value of total_minutes would be calculated as below:\n\n**total_minutes** = Total Webinar Attendance Minutes of A + Total Webinar Attendance Minutes of B', ) tracking_fields: Optional[List[TrackingField22]] = Field( None, description='Tracking fields.' ) type: Optional[int] = Field(None, description='Meeting type.') user_email: Optional[str] = Field(None, description='User email.') user_name: Optional[str] = Field(None, description='User display name.') uuid: Optional[UUID] = Field( None, description="Webinar UUID. Each webinar instance will generate its own UUID(i.e., after a meeting ends, a new UUID will be generated when the next instance of the webinar starts). Double encode the UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class Participant23(BaseModel): customer_key: Optional[constr(max_length=15)] = Field( None, description='Another identifier for the participant. Can be a number or characters, maximum length of 15 characters. ', ) duration: Optional[int] = Field(None, description='Participant duration.') failover: Optional[bool] = Field( None, description='Indicates if failover happened during the webinar.' ) id: Optional[UUID] = Field( None, description='Universally unique identifier of the Participant. It is the same as the User ID of the participant if the participant joins the meeting by logging into Zoom. If the participant joins the meeting without logging in, the value of this field will be blank.', ) join_time: Optional[datetime] = Field(None, description='Participant join time.') leave_time: Optional[datetime] = Field(None, description='Participant leave time.') name: Optional[str] = Field(None, description='Participant display name.') user_email: Optional[str] = Field(None, description='Participant email.') user_id: Optional[str] = Field( None, description='Participant ID. This is a unique ID assigned to the participant joining the webinar and is valid for that webinar only.', ) class ReportWebinarsWebinarIdParticipantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant23]] = Field( None, description='Array of webinar participant objects.' ) class ReportWebinarsWebinarIdParticipantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) participants: Optional[List[Participant23]] = Field( None, description='Array of webinar participant objects.' ) class Question35(BaseModel): email: Optional[str] = Field(None, description='Participant email.') name: Optional[str] = Field( None, description='Participant display name.<br><br> If the poll was created as an anonymous poll, participant\'s information will remain anonymous and the value of the `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail6]] = Field( None, description='Array of questions from user.' ) class ReportWebinarsWebinarIdPollsGetResponse(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question35]] = Field( None, description='Array of webinar question objects.' ) start_time: Optional[datetime] = Field(None, description='Webinar start time.') uuid: Optional[UUID] = Field( None, description="Webinar UUID. Each webinar instance will generate its own UUID(i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class Question36(BaseModel): email: Optional[str] = Field(None, description='Participant email.') name: Optional[str] = Field( None, description='Participant display name.<br><br> If the poll was created as an anonymous poll, participant\'s information will remain anonymous and the value of the `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail6]] = Field( None, description='Array of questions from user.' ) class ReportWebinarsWebinarIdPollsGetResponse1(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question36]] = Field( None, description='Array of webinar question objects.' ) start_time: Optional[datetime] = Field(None, description='Webinar start time.') uuid: Optional[UUID] = Field( None, description="Webinar UUID. Each webinar instance will generate its own UUID(i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class QuestionDetail10(BaseModel): answer: Optional[str] = Field(None, description='Given answer.') question: Optional[str] = Field(None, description='Asked question.') class Question37(BaseModel): email: Optional[str] = Field(None, description='Participant email.') name: Optional[str] = Field( None, description='Participant display name.<br> \n\nIf anonymous [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Getting-Started-with-Question-Answer) option is enabled and if a participant submits the Q&A without providing their name, the value of the `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail10]] = Field( None, description='Array of questions from user.' ) class ReportWebinarsWebinarIdQaGetResponse(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question37]] = Field( None, description='Array of webinar question objects.' ) start_time: Optional[datetime] = Field(None, description='Webinar start time.') uuid: Optional[UUID] = Field( None, description="Webinar UUID. Each Webinar instance will generate its own UUID(i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class Question38(BaseModel): email: Optional[str] = Field(None, description='Participant email.') name: Optional[str] = Field( None, description='Participant display name.<br> \n\nIf anonymous [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Getting-Started-with-Question-Answer) option is enabled and if a participant submits the Q&A without providing their name, the value of the `name` field will be "Anonymous Attendee".', ) question_details: Optional[List[QuestionDetail10]] = Field( None, description='Array of questions from user.' ) class ReportWebinarsWebinarIdQaGetResponse1(BaseModel): id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) questions: Optional[List[Question38]] = Field( None, description='Array of webinar question objects.' ) start_time: Optional[datetime] = Field(None, description='Webinar start time.') uuid: Optional[UUID] = Field( None, description="Webinar UUID. Each Webinar instance will generate its own UUID(i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). Please double encode your UUID when using it for API calls if the UUID begins with a '/' or contains '//' in it.", ) class Role3(BaseModel): description: Optional[str] = Field(None, description='Role Description') id: Optional[str] = Field(None, description='Role Id') name: Optional[str] = Field(None, description='Role Name') total_members: Optional[int] = Field(None, description='Total members in this role') class RolesGetResponse(BaseModel): roles: Optional[List[Role3]] = Field(None, description='List of Roles objects') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class RolesGetResponse1(BaseModel): roles: Optional[List[Role3]] = Field(None, description='List of Roles objects') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class RolesPostRequest(BaseModel): description: Optional[str] = Field(None, description='Description of the role.') name: Optional[str] = Field(None, description='Name of the role.') privileges: Optional[List[str]] = Field( None, description='Privileges assigned to the role. Can be one or a combination of [these permissions](https://marketplace.zoom.us/docs/api-reference/other-references/privileges).', ) class RolesPostResponse(BaseModel): description: Optional[str] = Field(None, description='Description of the role.') id: Optional[str] = Field(None, description='Role Id') name: Optional[str] = Field(None, description='Name of the role.') privileges: Optional[List[str]] = Field( None, description='[Privileges](https://marketplace.zoom.us/docs/api-reference/other-references/privileges) provided to the role.', ) total_members: Optional[int] = Field( None, description='Total members assigned to the role.' ) class RolesRoleIdDeleteResponse(BaseModel): pass class SubAccountPrivileges(BaseModel): second_level: Optional[int] = Field( None, description='Indicates how the account can manage sub accounts. The value can be one of the following:<br>\n`1`: Manage the sub account as an owner of the account.<br>\n`2`: Manage the sub account with the same privileges as the current account.<br>\n`3`: Manage the sub account with specified privileges.', ) class RolesRoleIdGetResponse(BaseModel): description: Optional[str] = Field(None, description='Description of the role.') id: Optional[str] = Field(None, description='Role Id.') name: Optional[str] = Field(None, description='Name of the role.') privileges: Optional[List[str]] = Field( None, description='Privileges assigned to the role. Can be one or a combination of [these permissions](https://marketplace.zoom.us/docs/api-reference/other-references/privileges).\n', ) sub_account_privileges: Optional[SubAccountPrivileges] = Field( None, description='This field will only be displayed to accounts that are enrolled in a partner plan and follow the master accounts and sub accounts structure.', ) total_members: Optional[int] = Field( None, description='Total members assigned to that role.' ) class RolesRoleIdGetResponse1(BaseModel): description: Optional[str] = Field(None, description='Description of the role.') id: Optional[str] = Field(None, description='Role Id.') name: Optional[str] = Field(None, description='Name of the role.') privileges: Optional[List[str]] = Field( None, description='Privileges assigned to the role. Can be one or a combination of [these permissions](https://marketplace.zoom.us/docs/api-reference/other-references/privileges).\n', ) sub_account_privileges: Optional[SubAccountPrivileges] = Field( None, description='This field will only be displayed to accounts that are enrolled in a partner plan and follow the master accounts and sub accounts structure.', ) total_members: Optional[int] = Field( None, description='Total members assigned to that role.' ) class RolesRoleIdPatchRequest(BaseModel): description: Optional[str] = Field(None, description='Description of the role.') id: Optional[str] = Field(None, description='Role Id.') name: Optional[str] = Field(None, description='Name of the role.') privileges: Optional[List[str]] = Field( None, description='Privileges assigned to the role. Can be one or a combination of [these permissions](https://marketplace.zoom.us/docs/api-reference/other-references/privileges).\n', ) sub_account_privileges: Optional[SubAccountPrivileges] = Field( None, description='This field will only be displayed to accounts that are enrolled in the partner plan and follow master accounts and sub accounts structure.', ) total_members: Optional[int] = Field( None, description='Total members assigned to that role.' ) class RolesRoleIdPatchRequest1(BaseModel): description: Optional[str] = Field(None, description='Description of the role.') id: Optional[str] = Field(None, description='Role Id.') name: Optional[str] = Field(None, description='Name of the role.') privileges: Optional[List[str]] = Field( None, description='Privileges assigned to the role. Can be one or a combination of [these permissions](https://marketplace.zoom.us/docs/api-reference/other-references/privileges).\n', ) sub_account_privileges: Optional[SubAccountPrivileges] = Field( None, description='This field will only be displayed to accounts that are enrolled in the partner plan and follow master accounts and sub accounts structure.', ) total_members: Optional[int] = Field( None, description='Total members assigned to that role.' ) class Member17(BaseModel): department: Optional[str] = Field(None, description='Member Department') email: Optional[str] = Field(None, description='Member Email') first_name: Optional[str] = Field(None, description='Member First Name') id: Optional[str] = Field(None, description='Member ID') last_name: Optional[str] = Field(None, description='Member Last Name') type: Optional[int] = Field(None, description='Member Type') class RolesRoleIdMembersGetResponse(BaseModel): members: Optional[List[Member17]] = Field( None, description='List of a Role Members' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) class RolesRoleIdMembersGetResponse1(BaseModel): members: Optional[List[Member17]] = Field( None, description='List of a Role Members' ) next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) class Member19(BaseModel): email: Optional[EmailStr] = Field( None, description='Email address of the user to whom you would like to assign the role. Provide either the userId in the ID field or the email address in the email field. If both fields are provided, only userId is used.', ) id: Optional[str] = Field( None, description='User ID of the user to whom you would like to assign the role. ', ) class RolesRoleIdMembersPostRequest(BaseModel): members: Optional[List[Member19]] = Field( None, description='Array of userId/user email of users to whom you would like to assign this role. Upto 30 users can be assigned a role at once.', max_length=30, ) class RolesRoleIdMembersPostRequest1(BaseModel): members: Optional[List[Member19]] = Field( None, description='Array of userId/user email of users to whom you would like to assign this role. Upto 30 users can be assigned a role at once.', max_length=30, ) class RolesRoleIdMembersPostResponse(BaseModel): add_at: Optional[datetime] = Field( None, description='Date and time at which the members are assigned to the role.' ) ids: Optional[str] = Field(None, description='User ID') class Status82(Enum): Offline = 'Offline' Available = 'Available' InMeeting = 'InMeeting' UnderConstruction = 'UnderConstruction' class Type243(Enum): ZoomRoom = 'ZoomRoom' SchedulingDisplayOnly = 'SchedulingDisplayOnly' DigitalSignageOnly = 'DigitalSignageOnly' class Room12(BaseModel): activation_code: Optional[str] = Field( None, description='Activation Code is the code that is used to complete the setup of the Zoom Room.', ) id: Optional[str] = Field(None, description='Unique Identifier of the Zoom Room.') location_id: Optional[str] = Field( None, description='Unique Identifier of the [location](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) of the room.', ) name: Optional[str] = Field(None, description='Name of the Zoom Room.') room_id: Optional[str] = Field( None, description='Globally unique identifier of the Zoom Room. Use this ID for the **Dashboard Zoom Room APIs**.', ) status: Optional[Status82] = Field(None, description='Status of the Zoom Room.') class RoomsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) rooms: Optional[List[Room12]] = Field( None, description='List of existing Zoom Rooms.' ) class Room13(BaseModel): activation_code: Optional[str] = Field( None, description='Activation Code is the code that is used to complete the setup of the Zoom Room.', ) id: Optional[str] = Field(None, description='Unique Identifier of the Zoom Room.') location_id: Optional[str] = Field( None, description='Unique Identifier of the [location](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) of the room.', ) name: Optional[str] = Field(None, description='Name of the Zoom Room.') room_id: Optional[str] = Field( None, description='Globally unique identifier of the Zoom Room. Use this ID for the **Dashboard Zoom Room APIs**.', ) status: Optional[Status82] = Field(None, description='Status of the Zoom Room.') class RoomsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) rooms: Optional[List[Room13]] = Field( None, description='List of existing Zoom Rooms.' ) class RoomsPostRequest(BaseModel): location_id: Optional[str] = Field( None, description='**Optional**<br>Location ID of the lowest level location in the [location hierarchy](https://support.zoom.us/hc/en-us/articles/115000342983-Zoom-Rooms-Location-Hierarchy) where the Zoom Room is to be added. For instance if the structure of the location hierarchy is set up as “country, states, city, campus, building, floor”, a room can only be added under the floor level location. \n\nThis ID can be retrieved from the [List Zoom Room Locations](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) API.', ) name: str = Field(..., description='Name of the Zoom Room.') type: Type243 = Field(..., description='Type of the Zoom Room. ') class RoomsPostRequest1(BaseModel): location_id: Optional[str] = Field( None, description='**Optional**<br>Location ID of the lowest level location in the [location hierarchy](https://support.zoom.us/hc/en-us/articles/115000342983-Zoom-Rooms-Location-Hierarchy) where the Zoom Room is to be added. For instance if the structure of the location hierarchy is set up as “country, states, city, campus, building, floor”, a room can only be added under the floor level location. \n\nThis ID can be retrieved from the [List Zoom Room Locations](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) API.', ) name: str = Field(..., description='Name of the Zoom Room.') type: Type243 = Field(..., description='Type of the Zoom Room. ') class RoomsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Unique Identifier of the Zoom Room.') location_id: Optional[str] = Field( None, description='Location ID of the location where the Zoom Room was added.' ) name: Optional[str] = Field(None, description='Name of the Zoom Room.') room_id: Optional[str] = Field( None, description='Globally unique identifier of the Zoom Room. Use this ID for the **Dashboard Zoom Room APIs**.', ) type: Optional[Type243] = Field(None, description='Type of the Zoom Room.') class RoomsPostResponse1(BaseModel): id: Optional[str] = Field(None, description='Unique Identifier of the Zoom Room.') location_id: Optional[str] = Field( None, description='Location ID of the location where the Zoom Room was added.' ) name: Optional[str] = Field(None, description='Name of the Zoom Room.') room_id: Optional[str] = Field( None, description='Globally unique identifier of the Zoom Room. Use this ID for the **Dashboard Zoom Room APIs**.', ) type: Optional[Type243] = Field(None, description='Type of the Zoom Room.') class Basic(BaseModel): required_code_to_ext: Optional[bool] = Field( None, description='Require code to exit out of the Zoom Rooms application to switch between other apps.\n', ) room_passcode: Optional[constr(min_length=1, max_length=16)] = Field( None, description='1-16 digit number or characters used to secure your Zoom Rooms application. This code must be entered on your Zoom Room Controller to change settings or to sign out.', ) support_email: Optional[EmailStr] = Field( None, description='The email address used for reporting Zoom Room issues.' ) support_phone: Optional[str] = Field( None, description='The phone number used for reporting Zoom room issues.' ) class RoomsAccountProfileGetResponse(BaseModel): basic: Optional[Basic] = None class RoomsAccountProfileGetResponse1(BaseModel): basic: Optional[Basic] = None class RoomsAccountProfilePatchRequest(BaseModel): basic: Optional[Basic] = None class RoomsAccountProfilePatchRequest1(BaseModel): basic: Optional[Basic] = None class RoomsAccountProfilePatchResponse(BaseModel): pass class SettingType(Enum): meeting = 'meeting' alert = 'alert' class ZoomRooms6(BaseModel): allow_multiple_content_sharing: Optional[bool] = Field( None, description='Enable multiple participants to [share content simultaneously](https://support.zoom.us/hc/en-us/articles/360017767812-Sharing-Multiple-Screens-in-a-Zoom-Room) by default.', ) audio_device_daily_auto_test: Optional[bool] = Field( None, description='Enable [automated audio test](https://support.zoom.us/hc/en-us/articles/360000319683-Zoom-Rooms-Daily-Audio-Testing) to ensure high quality audio.', ) auto_direct_sharing: Optional[bool] = Field( None, description='Enable participants in a Zoom Room to share their laptop screen on the Zoom Room TV without entering a meeting ID or sharing code.', ) auto_start_scheduled_meeting: Optional[bool] = Field( None, description='Automatically start scheduled meetings according to the start time listed on the calendar associated with the room. A meeting alert will appear 10 minutes prior to the scheduled time on the TV.', ) auto_stop_scheduled_meeting: Optional[bool] = Field( None, description='Automatically stop the meeting at the end time as scheduled and listed in the calendar associated with the room. ', ) count_attendees_number_in_room: Optional[bool] = Field( None, description='Use facial detection technology to [determine and display the attendees count](https://support.zoom.us/hc/en-us/articles/360031027111-Count-Attendees-in-Zoom-Rooms) after meetings on Dashboard.\n', ) display_feedback_survey: Optional[bool] = Field( None, description='Display a [survey](https://support.zoom.us/hc/en-us/articles/214193146-End-of-Meeting-Attendee-Feedback) at the end of each meeting regarding the audio and video quality on the Zoom Rooms Controller.', ) display_meeting_list: Optional[bool] = Field( None, description=' Show the same information on the TV that is shown on the controller.', ) display_top_banner: Optional[bool] = Field( None, description='Allow to display room name, time and sharing key on the top portion of TV.', ) email_address_prompt_before_recording: Optional[bool] = Field( None, description='Allow in-room participants to input email address where they can recieve the recording before starting a recording if the meeting was created on the Scheduling Display or if it was started using the "Meet Now" option.', ) encrypt_shared_screen_content: Optional[bool] = Field( None, description='Encrypt screen and content shared in meetings.' ) hide_id_for_private_meeting: Optional[bool] = Field( None, description='If enabled, the meeting host and meeting ID (in addition to the meeting topic) are hidden from the Zoom Rooms display for private meetings. This affects meetings that were originally scheduled as private, as well as public meetings that were transformed to private.', ) make_room_alternative_host: Optional[bool] = Field( None, description='Set [Zoom Rooms as the alternative host](https://support.zoom.us/hc/en-us/articles/203614149-Zoom-Rooms-as-Alternative-Host).\n', ) secure_connection_channel: Optional[bool] = Field( None, description='Enable secure connection between Zoom Rooms computer and controller.', ) send_whiteboard_to_internal_contact_only: Optional[bool] = Field( None, description='Restrict[ sending Whiteboard sessions](https://support.zoom.us/hc/en-us/articles/115004797286-Using-the-Whiteboard-in-Zoom-Rooms-for-Touch#h_781274b3-5237-4320-8826-be2120b00e21) to contacts or internal users only.', ) show_alert_before_meeting: Optional[bool] = Field( None, description='If enabled, the upcoming meeting alert message will be shown on the TV display. The value of the `upcoming_meeting_alert` field should be set to `true` to use this field. ', ) show_call_history_in_room: Optional[bool] = Field( None, description='Allow users to see call history of joined meetings and phone calls from the Zoom Rooms controller.\n', ) show_contact_list_on_controller: Optional[bool] = Field( None, description='If enabled, you can invite participants from the contact list during a meeting or when starting a meeting', ) show_non_video_participants: Optional[bool] = Field( None, description='When enabled, meeting participants that are audio only or have their video turned off will also be shown on the Zoom Rooms display by default.', ) start_airplay_manually: Optional[bool] = Field( None, description='Require the AirPlay service to be [started by an administrator](https://support.zoom.us/hc/en-us/articles/204726885-Screen-Share-Using-Airplay-Mirroring#h_a342ad38-4e46-47a8-a1d9-cded3b144b39) rather than always being available.', ) start_airplay_mirroring: Optional[bool] = Field( None, description='Allow users to share content via Apple Screen Mirroring (called Airplay on iOS 11 or earlier) in Zoom Rooms', ) support_join_3rd_party_meeting: Optional[bool] = Field( None, description='Integrate with Skype for Business, GoToMeeting, or WebEx and show the meeting dial-in button on the meeting list tab for Zoom Rooms Controllers.', ) transform_meeting_to_private: Optional[bool] = Field( None, description='If enabled, all meetings in this room will be treated as [private meetings](https://support.zoom.us/hc/en-us/articles/115001051063-Zoom-Rooms-Private-Meetings), and the Zoom Room will display "Your Name\'s Meeting" instead of the real meeting topic.', ) upcoming_meeting_alert: Optional[bool] = Field( None, description='If enabled, a reminder will display 10 minutes prior to the next scheduled meeting on the controller.', ) weekly_system_restart: Optional[bool] = Field( None, description='[Restart](https://support.zoom.us/hc/en-us/articles/205418949-Zoom-Rooms-Weekly-System-Restart) the Zoom Rooms computer and controller once a week.', ) class RoomsAccountSettingsGetResponse1(BaseModel): zoom_rooms: Optional[ZoomRooms6] = None class ClientAlert(BaseModel): detect_bluetooth_microphone_error_alert: Optional[bool] = Field( None, description='Display an alert message when an issue is detected with a bluetooth microphone.', ) detect_bluetooth_speaker_error_alert: Optional[bool] = Field( None, description='Display an alert message when an issue is detected with a bluetooth speaker.', ) detect_camera_error_alert: Optional[bool] = Field( None, description='Display an alert message when an issue is detected with a camera.', ) detect_microphone_error_alert: Optional[bool] = Field( None, description='Display an alert message when an issue is detected with microphone.', ) detect_speaker_error_alert: Optional[bool] = Field( None, description='Display an alert message when an issue is detected with a speaker.', ) class Banner(BaseModel): banner_room_name: Optional[bool] = Field( None, description='Display or hide banner room name.' ) banner_sharing_key: Optional[bool] = Field( None, description='Display or hide banner sharing key.' ) banner_time: Optional[bool] = Field( None, description='Display or hide time in the banner.' ) class DisplayPeriod(BaseModel): start_displaying_content: Optional[int] = Field( None, description='Start displaying digital signage content after certain duration after the meeting ends. The value of this field indicates the duration in minutes.', ) stop_displaying_content: Optional[int] = Field( None, description='Stop displaying content {certain_duration} before a meeting is scheduled to begin. The value of this field indicates the duration in minutes.', ) class Action38(Enum): add = 'add' update = 'update' delete = 'delete' class Content(BaseModel): content_id: Optional[str] = Field(None, description='Content Id.') duration: Optional[int] = Field( None, description='Duration for how long the content will be displayed.' ) id: Optional[str] = None name: Optional[str] = Field(None, description='Name of the content.') order: Optional[int] = Field( None, description='Order of the content in the display.' ) class PlayListItem(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage(BaseModel): banner: Optional[Banner] = Field( None, description='Specifies the elements that you want to display in the top banner.', ) display_period: Optional[DisplayPeriod] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Indicates whether digital signage is on or off,](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem]] = Field( None, description='Content list.', max_length=2 ) class Notification(BaseModel): audio_meet_usability_threshold: Optional[bool] = Field( None, description='Send an alert when the audio echo test result meets usability threshold.', ) audio_not_meet_usability_threshold: Optional[bool] = Field( None, description='Send an alert when the audio echo test result does not meet usability threshold.', ) battery_is_charging: Optional[bool] = Field( None, description='Send an alert when the battery starts charging.' ) battery_low_and_not_charging: Optional[bool] = Field( None, description='Send an alert when the battery of the controller or the scheduling display is low (at 20%) and is not being charged.', ) battery_percentage: Optional[str] = Field( None, description='Specify a percentage so that an alert is sent when the battery is less than the {battery_percentage} that you specified.', ) controller_scheduling_disconnected: Optional[bool] = Field( None, description='Send an alert when the connection to the Controller or Scheduling Display cannot be detected.', ) controller_scheduling_reconnected: Optional[bool] = Field( None, description='Send an alert when the Controller or Scheduling Display can be detected again.', ) cpu_usage_high_detected: Optional[bool] = Field( None, description='Send an alert when CPU usage is above 90%.' ) mic_speaker_camera_disconnected: Optional[bool] = Field( None, description='Send an alert when the mic, speaker or camera is disconnected in the Zoom Room.', ) mic_speaker_camera_reconnected: Optional[bool] = Field( None, description='Send an alert when the mic, speaker or camera is reconnected.', ) network_unstable_detected: Optional[bool] = Field( None, description='Send an alert when low bandwidth network is detected' ) sip_registration_failed: Optional[bool] = Field( None, description='Send an alert when SIP registration stops working. ' ) sip_registration_re_enabled: Optional[bool] = Field( None, description='Send an alert after the SIP registration is re-enabled.' ) zoom_room_come_back_online: Optional[bool] = Field( None, description='Send an alert when the Zoom Room is online after previously being offline.', ) zoom_room_display_disconnected: Optional[bool] = Field( None, description='Send an alert when the TV display is disconnected' ) zoom_room_offline: Optional[bool] = Field( None, description='Send an alert when the machine hosting the Zoom Room application has a network issue or cannot connect with the Controller.', ) class RoomsAccountSettingsGetResponse2(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage] = None notification: Optional[Notification] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsAccountSettingsGetResponse( RootModel[Union[RoomsAccountSettingsGetResponse1, RoomsAccountSettingsGetResponse2]] ): root: Union[RoomsAccountSettingsGetResponse1, RoomsAccountSettingsGetResponse2] class RoomsAccountSettingsGetResponse4(BaseModel): zoom_rooms: Optional[ZoomRooms6] = None class PlayListItem1(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage1(BaseModel): banner: Optional[Banner] = Field( None, description='Specifies the elements that you want to display in the top banner.', ) display_period: Optional[DisplayPeriod] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Indicates whether digital signage is on or off,](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem1]] = Field( None, description='Content list.', max_length=2 ) class RoomsAccountSettingsGetResponse5(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage1] = None notification: Optional[Notification] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsAccountSettingsGetResponse3( RootModel[Union[RoomsAccountSettingsGetResponse4, RoomsAccountSettingsGetResponse5]] ): root: Union[RoomsAccountSettingsGetResponse4, RoomsAccountSettingsGetResponse5] class ZoomRooms8(BaseModel): allow_multiple_content_sharing: Optional[bool] = Field( None, description='Enable multiple participants to [share content simultaneously](https://support.zoom.us/hc/en-us/articles/360017767812-Sharing-Multiple-Screens-in-a-Zoom-Room) by default.', ) audio_device_daily_auto_test: Optional[bool] = Field( None, description='Enable [automated audio test](https://support.zoom.us/hc/en-us/articles/360000319683-Zoom-Rooms-Daily-Audio-Testing) to ensure high quality audio.', ) auto_direct_sharing: Optional[bool] = Field( None, description='Enable participants in a Zoom Room to share their laptop screen on the Zoom Room TV without entering a meeting ID or sharing code.', ) auto_start_scheduled_meeting: Optional[bool] = Field( None, description='Automatically start scheduled meetings according to the start time listed on the calendar associated with the room. A meeting alert will appear 10 minutes prior to the scheduled time on the TV.', ) auto_stop_scheduled_meeting: Optional[bool] = Field( None, description='Automatically stop the meeting at the end time as scheduled and listed in the calendar associated with the room. ', ) count_attendees_number_in_room: Optional[bool] = Field( None, description='Use facial detection technology to [determine and display the attendees count](https://support.zoom.us/hc/en-us/articles/360031027111-Count-Attendees-in-Zoom-Rooms) after meetings on Dashboard.\n', ) display_feedback_survey: Optional[bool] = Field( None, description='Display a [survey](https://support.zoom.us/hc/en-us/articles/214193146-End-of-Meeting-Attendee-Feedback) at the end of each meeting regarding the audio and video quality on the Zoom Rooms Controller.', ) display_meeting_list: Optional[bool] = Field( None, description=' Show the same information on the TV that is shown on the controller.', ) display_top_banner: Optional[bool] = Field( None, description='Allow to display room name, time and sharing key on the top portion of TV.', ) email_address_prompt_before_recording: Optional[bool] = Field( None, description='Allow in-room participants to input email address where they can recieve the recording before starting a recording if the meeting was created on the Scheduling Display or if it was started using the "Meet Now" option.', ) encrypt_shared_screen_content: Optional[bool] = Field( None, description='Encrypt screen and content shared in meetings.' ) hide_id_for_private_meeting: Optional[bool] = Field( None, description='If enabled, the meeting host and meeting ID (in addition to the meeting topic) are hidden from the Zoom Rooms display for private meetings. This affects meetings that were originally scheduled as private, as well as public meetings that were transformed to private.', ) make_room_alternative_host: Optional[bool] = Field( None, description='Set [Zoom Rooms as the alternative host](https://support.zoom.us/hc/en-us/articles/203614149-Zoom-Rooms-as-Alternative-Host).\n', ) secure_connection_channel: Optional[bool] = Field( None, description='Enable secure connection between Zoom Rooms computer and controller.', ) send_whiteboard_to_internal_contact_only: Optional[bool] = Field( None, description='Restrict[ sending Whiteboard sessions](https://support.zoom.us/hc/en-us/articles/115004797286-Using-the-Whiteboard-in-Zoom-Rooms-for-Touch#h_781274b3-5237-4320-8826-be2120b00e21) to contacts or internal users only.', ) show_alert_before_meeting: Optional[bool] = Field( None, description='If enabled, the upcoming meeting alert message will be shown on the TV display. The value of the `upcoming_meeting_alert` field should be set to `true` to use this field. ', ) show_call_history_in_room: Optional[bool] = Field( None, description='Allow users to see call history of joined meetings and phone calls from the Zoom Rooms controller.\n', ) show_contact_list_on_controller: Optional[bool] = Field( None, description='If enabled, you can invite participants from the contact list during a meeting or when starting a meeting', ) show_non_video_participants: Optional[bool] = Field( None, description='When enabled, meeting participants that are audio only or have their video turned off will also be shown on the Zoom Rooms display by default.', ) start_airplay_manually: Optional[bool] = Field( None, description='Require the AirPlay service to be [started by an administrator](https://support.zoom.us/hc/en-us/articles/204726885-Screen-Share-Using-Airplay-Mirroring#h_a342ad38-4e46-47a8-a1d9-cded3b144b39) rather than always being available.', ) support_join_3rd_party_meeting: Optional[bool] = Field( None, description='Integrate with Skype for Business, GoToMeeting, or WebEx and show the meeting dial-in button on the meeting list tab for Zoom Rooms Controllers.', ) transform_meeting_to_private: Optional[bool] = Field( None, description='If enabled, all meetings in this room will be treated as [private meetings](https://support.zoom.us/hc/en-us/articles/115001051063-Zoom-Rooms-Private-Meetings), and the Zoom Room will display "Your Name\'s Meeting" instead of the real meeting topic.', ) upcoming_meeting_alert: Optional[bool] = Field( None, description='If enabled, a reminder will display 10 minutes prior to the next scheduled meeting on the controller.', ) weekly_system_restart: Optional[bool] = Field( None, description='[Restart](https://support.zoom.us/hc/en-us/articles/205418949-Zoom-Rooms-Weekly-System-Restart) the Zoom Rooms computer and controller once a week.', ) class RoomsAccountSettingsPatchRequest1(BaseModel): zoom_rooms: Optional[ZoomRooms8] = None class Banner2(BaseModel): banner_room_name: Optional[bool] = None banner_sharing_key: Optional[bool] = None banner_time: Optional[bool] = None class DisplayPeriod2(BaseModel): start_displaying_content: Optional[int] = Field( None, description='Start displaying digital signage content after certain duration after the meeting ends. Specify the value of the duration in minutes in this field.', ) stop_displaying_content: Optional[int] = Field( None, description='Stop displaying content {certain_duration} before a meeting is scheduled to begin. Specify the value of duration in minutes in this field.', ) class Content2(BaseModel): action: Optional[str] = Field( None, description="Specify an action for the content in the content list. The value can be one of the following:<br>\n`add`: Add another content to the content list.<br>\n`update`: Update existing content's information in the content list.<br>\n`delete`: Delete content from the content list.\n\n", ) content_id: Optional[str] = Field(None, description='Content Id.') duration: Optional[int] = Field( None, description='By default each content is display for 5 seconds. Using this field, specify how long you would like to display the content.', ) id: Optional[str] = Field( None, description='Unique identifier of the content. This field is only required if you would like to remove or update the content information.', ) name: Optional[str] = Field(None, description='Name of the content.') order: Optional[int] = Field( None, description='Order of the content in the display.' ) class PlayListItem2(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content2]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage2(BaseModel): banner: Optional[Banner2] = None display_period: Optional[DisplayPeriod2] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Enable or disable digital signage](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem2]] = Field( None, description='Content list.', max_length=2 ) class Notification2(BaseModel): audio_meet_usability_threshold: Optional[bool] = Field( None, description='Send an alert when the audio echo test result meets usability threshold.', ) audio_not_meet_usability_threshold: Optional[bool] = Field( None, description='Send an alert when the audio echo test result does not meet usability threshold.', ) battery_is_charging: Optional[bool] = Field( None, description='Send an alert when the battery starts charging.' ) battery_low_and_not_charging: Optional[bool] = Field( None, description='Send an alert when the battery of the controller or the scheduling display is low (at 20%) and is not being charged.', ) battery_percentage: Optional[str] = Field( None, description='Specify a percentage so that an alert is sent when the battery is less than the {battery_percentage} that you specified.', ) controller_scheduling_disconnected: Optional[bool] = Field( None, description='Send an alert when the connection to the Controller or Scheduling Display cannot be detected.', ) controller_scheduling_reconnected: Optional[bool] = Field( None, description='Send an alert when the Controller or Scheduling Display can be detected again.', ) cpu_usage_high_detected: Optional[bool] = Field( None, description='Send an alert when CPU usage is above 90%.' ) mic_speaker_camera_disconnected: Optional[bool] = Field( None, description='Send an alert when the mic, speaker or camera is disconnected in the Zoom Room.', ) mic_speaker_camera_reconnected: Optional[bool] = Field( None, description='Send an alert when the mic, speaker or camera is reconnected.', ) network_stable_detected: Optional[bool] = Field( None, description='Send an alert when the network is stable.' ) network_unstable_detected: Optional[bool] = Field( None, description='Send an alert when low bandwidth network is detected' ) sip_registration_failed: Optional[bool] = Field( None, description='Send an alert when SIP registration stops working. ' ) sip_registration_re_enabled: Optional[bool] = Field( None, description='Send an alert after the SIP registration is re-enabled.' ) zoom_room_come_back_online: Optional[bool] = Field( None, description='Send an alert when the Zoom Room is online after previously being offline.', ) zoom_room_display_disconnected: Optional[bool] = Field( None, description='Send an alert when the TV display is disconnected' ) zoom_room_offline: Optional[bool] = Field( None, description='Send an alert when the machine hosting the Zoom Room application has a network issue or cannot connect with the Controller.', ) class RoomsAccountSettingsPatchRequest2(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage2] = None notification: Optional[Notification2] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsAccountSettingsPatchRequest( RootModel[ Union[RoomsAccountSettingsPatchRequest1, RoomsAccountSettingsPatchRequest2] ] ): root: Union[RoomsAccountSettingsPatchRequest1, RoomsAccountSettingsPatchRequest2] class RoomsAccountSettingsPatchRequest4(BaseModel): zoom_rooms: Optional[ZoomRooms8] = None class PlayListItem3(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content2]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage3(BaseModel): banner: Optional[Banner2] = None display_period: Optional[DisplayPeriod2] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Enable or disable digital signage](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem3]] = Field( None, description='Content list.', max_length=2 ) class RoomsAccountSettingsPatchRequest5(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage3] = None notification: Optional[Notification2] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsAccountSettingsPatchRequest3( RootModel[ Union[RoomsAccountSettingsPatchRequest4, RoomsAccountSettingsPatchRequest5] ] ): root: Union[RoomsAccountSettingsPatchRequest4, RoomsAccountSettingsPatchRequest5] class RoomsAccountSettingsPatchResponse(BaseModel): pass class Content4(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the content or the folder. ' ) name: Optional[str] = Field( None, description='Name of the content file or the folder.' ) class RoomsDigitalSignageGetResponse(BaseModel): contents: Optional[List[Content4]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) class RoomsDigitalSignageGetResponse1(BaseModel): contents: Optional[List[Content4]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) class Method12(Enum): zoomroom_emergency_alert_displayed = 'zoomroom.emergency_alert_displayed' class TargetType(Enum): account = 'account' location = 'location' room = 'room' class Params(BaseModel): content: Optional[str] = Field( None, description='Provide the content to be displayed. ' ) target_ids: Optional[List[str]] = Field( None, description="Provide one of the following IDs associated with the Zoom Room.<br>\n\n* `accountId`: Account ID of the Zoom account.<br> Provide account ID as the value of this field to display the alert content on all Zoom Rooms' displays in the account.<br><br>\n* `locationId`: Location ID. Get the value of this field by calling [List Zoom Rooms Locations API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations).<br>Provide location ID as the value of this field to display the alert content on all Zoom Rooms' displays listed in the specified location.<br><br>\n* `roomId`: Unique identifier of the Zoom Room. Get the value of this field by calling [List Zoom Rooms API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms/listzoomrooms). Provide room ID as the value of this field to display the alert content on a specific Zoom Rooms' display.", max_length=10, min_length=1, ) target_type: Optional[TargetType] = Field( None, description='Provide one of the following values for this field that is associated to the value you entered in the `target_ids` field. <br>\n* `account`\n* `location`\n* `room`', ) class RoomsEventsPatchRequest1(BaseModel): method: Optional[Method12] = Field( None, description='To display the emergency content on the Zoom Rooms digital signage display, set the value of this field to be `zoomroom.emergency_alert_displayed`.', ) params: Optional[Params] = None class Method13(Enum): zoomroom_emergency_alert_removed = 'zoomroom.emergency_alert_removed' class Params1(BaseModel): event_id: Optional[str] = Field( None, description='Unique identifier of the event. ' ) target_ids: Optional[List[str]] = Field( None, description="Provide one of the following IDs associated with the Zoom Room.<br>\n\n* `accountId`: Account ID of the Zoom account.<br> Provide account ID as the value of this field to remove the alert content from all Zoom Rooms' displays in the account.<br><br>\n* `locationId`: Location ID. Get the value of this field by calling [List Zoom Rooms Locations API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations).<br>Provide location ID as the value of this field to remove the alert content from all Zoom Rooms' displays listed in the specified location.<br><br>\n* `roomId`: Unique identifier of the Zoom Room. Get the value of this field by calling [List Zoom Rooms API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms/listzoomrooms). Provide room ID as the value of this field to remove the alert content from a specific Zoom Rooms' display.", max_length=10, min_length=1, ) target_type: Optional[TargetType] = Field( None, description='Provide one of the following values for this field that is associated to the value you entered in the `target_ids` field. <br>\n* `account`\n* `location`\n* `room`', ) class RoomsEventsPatchRequest2(BaseModel): method: Optional[Method13] = Field( None, description='To remove the emergency content from the Zoom Rooms digital signage display, set the value of this field to be `zoomroom.emergency_alert_removed`.', ) params: Optional[Params1] = None class RoomsEventsPatchRequest( RootModel[Union[RoomsEventsPatchRequest1, RoomsEventsPatchRequest2]] ): root: Union[RoomsEventsPatchRequest1, RoomsEventsPatchRequest2] class Method14(Enum): zoomroom_emergency_alert_displayed = 'zoomroom.emergency_alert_displayed' class Params2(BaseModel): content: Optional[str] = Field( None, description='Provide the content to be displayed. ' ) target_ids: Optional[List[str]] = Field( None, description="Provide one of the following IDs associated with the Zoom Room.<br>\n\n* `accountId`: Account ID of the Zoom account.<br> Provide account ID as the value of this field to display the alert content on all Zoom Rooms' displays in the account.<br><br>\n* `locationId`: Location ID. Get the value of this field by calling [List Zoom Rooms Locations API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations).<br>Provide location ID as the value of this field to display the alert content on all Zoom Rooms' displays listed in the specified location.<br><br>\n* `roomId`: Unique identifier of the Zoom Room. Get the value of this field by calling [List Zoom Rooms API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms/listzoomrooms). Provide room ID as the value of this field to display the alert content on a specific Zoom Rooms' display.", max_length=10, min_length=1, ) target_type: Optional[TargetType] = Field( None, description='Provide one of the following values for this field that is associated to the value you entered in the `target_ids` field. <br>\n* `account`\n* `location`\n* `room`', ) class RoomsEventsPatchRequest4(BaseModel): method: Optional[Method14] = Field( None, description='To display the emergency content on the Zoom Rooms digital signage display, set the value of this field to be `zoomroom.emergency_alert_displayed`.', ) params: Optional[Params2] = None class Method15(Enum): zoomroom_emergency_alert_removed = 'zoomroom.emergency_alert_removed' class Params3(BaseModel): event_id: Optional[str] = Field( None, description='Unique identifier of the event. ' ) target_ids: Optional[List[str]] = Field( None, description="Provide one of the following IDs associated with the Zoom Room.<br>\n\n* `accountId`: Account ID of the Zoom account.<br> Provide account ID as the value of this field to remove the alert content from all Zoom Rooms' displays in the account.<br><br>\n* `locationId`: Location ID. Get the value of this field by calling [List Zoom Rooms Locations API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations).<br>Provide location ID as the value of this field to remove the alert content from all Zoom Rooms' displays listed in the specified location.<br><br>\n* `roomId`: Unique identifier of the Zoom Room. Get the value of this field by calling [List Zoom Rooms API](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms/listzoomrooms). Provide room ID as the value of this field to remove the alert content from a specific Zoom Rooms' display.", max_length=10, min_length=1, ) target_type: Optional[TargetType] = Field( None, description='Provide one of the following values for this field that is associated to the value you entered in the `target_ids` field. <br>\n* `account`\n* `location`\n* `room`', ) class RoomsEventsPatchRequest5(BaseModel): method: Optional[Method15] = Field( None, description='To remove the emergency content from the Zoom Rooms digital signage display, set the value of this field to be `zoomroom.emergency_alert_removed`.', ) params: Optional[Params3] = None class RoomsEventsPatchRequest3( RootModel[Union[RoomsEventsPatchRequest4, RoomsEventsPatchRequest5]] ): root: Union[RoomsEventsPatchRequest4, RoomsEventsPatchRequest5] class RoomsEventsPatchResponse(BaseModel): event_id: Optional[str] = Field( None, description='Unique identifier of the event related to the content being displayed. This field is only returned if you provided `zoomroom.emergency_alert_displayed` as the value of the `method` parameter.\n\nSave this response value and provide it as the value of the `event_id` request parameter when you need to remove the alert content using `zoomroom.emergency_alert_removed` method.', ) class Type249(Enum): country = 'country' states = 'states' city = 'city' campus = 'campus' building = 'building' floor = 'floor' class Location(BaseModel): id: Optional[str] = Field(None, description='Unique Identifier of the location.') name: Optional[str] = Field(None, description='Name of the location.') parent_location_id: Optional[str] = Field( None, description='ID (Unique Identifier) of the parent location. For instance, if a Zoom Room is located in Floor 1 of Building A, the location of Building A will be the parent location of Floor 1 and the parent_location_id of Floor 1 will be the ID of Building A.<br>\nThe value of parent_location_id of the top-level location (country) is the Account ID of the Zoom account.', ) type: Optional[Type249] = Field( None, description='The type of location. The value can be one of the following:\n`country`, `states`, `city`, `campus`, `building`, `floor`. ', ) class RoomsLocationsGetResponse(BaseModel): locations: Optional[List[Location]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) class Location1(BaseModel): id: Optional[str] = Field(None, description='Unique Identifier of the location.') name: Optional[str] = Field(None, description='Name of the location.') parent_location_id: Optional[str] = Field( None, description='ID (Unique Identifier) of the parent location. For instance, if a Zoom Room is located in Floor 1 of Building A, the location of Building A will be the parent location of Floor 1 and the parent_location_id of Floor 1 will be the ID of Building A.<br>\nThe value of parent_location_id of the top-level location (country) is the Account ID of the Zoom account.', ) type: Optional[Type249] = Field( None, description='The type of location. The value can be one of the following:\n`country`, `states`, `city`, `campus`, `building`, `floor`. ', ) class RoomsLocationsGetResponse1(BaseModel): locations: Optional[List[Location1]] = None next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) class RoomsLocationsPostRequest(BaseModel): name: Optional[str] = Field( None, description="Name of the location. The name must be unique and shouldn't have already been used in the same account.", ) parent_location_id: Optional[str] = Field( None, description='The location ID of the location that is a level higher from the location that is being added.<br><br> For example, to add a City named "City 1" as the child location under a State named "State 1", you must provide the location ID of "State 1". This can be retrieved using the [List Zoom Room Locations](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) API.', ) class RoomsLocationsPostResponse(BaseModel): id: Optional[str] = Field( None, description='Location ID: Unique Identifier of the location that was added.', ) name: Optional[str] = Field(None, description='Name of the location.') parent_location_id: Optional[str] = Field( None, description='Unique Identifier of the parent location.' ) type: Optional[Type249] = Field( None, description='Type of location. The value should be one of the following:<br>\n`country`, `states`, `city`, `campus`, `building`, `floor`.', ) class RoomsLocationsPostResponse1(BaseModel): id: Optional[str] = Field( None, description='Location ID: Unique Identifier of the location that was added.', ) name: Optional[str] = Field(None, description='Name of the location.') parent_location_id: Optional[str] = Field( None, description='Unique Identifier of the parent location.' ) type: Optional[Type249] = Field( None, description='Type of location. The value should be one of the following:<br>\n`country`, `states`, `city`, `campus`, `building`, `floor`.', ) class RoomsLocationsStructureGetResponse(BaseModel): structures: Optional[List[str]] = Field( None, description='Hierarchial structure array of the Zoom Rooms location.' ) class RoomsLocationsStructurePatchRequest(BaseModel): structures: Optional[List[str]] = Field( None, description='Location Structure. The value can be either one or a combination of the following strings separated by comma:\n`country`, `state`, `city`, `campus`, `building`, `floor`', ) class Basic4(BaseModel): address: Optional[str] = Field(None, description='Address') description_: Optional[str] = Field( None, alias='description ', description='Description about the location.' ) name: Optional[str] = Field(None, description='Name of the location type.') required_code_to_ext: Optional[bool] = Field( None, description='Require code to exit out of your Zoom Rooms application to switch between other apps.\n', ) room_passcode: Optional[constr(min_length=1, max_length=16)] = Field( None, description='1-16 digit number or characters that is used to secure your Zoom Rooms application.', ) support_email: Optional[EmailStr] = Field( None, description='The email address to be used for reporting Zoom Room issues.\n', ) support_phone: Optional[str] = Field( None, description='The phone number to be used for reporting Zoom Room issues.\n', ) timezone: Optional[str] = Field( None, description='Timezone (only returned for location type - city).' ) class RoomsLocationsLocationIdGetResponse(BaseModel): basic: Optional[Basic4] = None class RoomsLocationsLocationIdGetResponse1(BaseModel): basic: Optional[Basic4] = None class Basic6(BaseModel): address: Optional[str] = Field( None, description='Address. Can only be updated for Campus and Building.' ) description_: Optional[str] = Field( None, alias='description ', description='Description about the location.' ) name: Optional[str] = Field(None, description='Name of the location type.') required_code_to_ext: Optional[bool] = Field( None, description='Require code to exit out of your Zoom Rooms application to switch between other apps.\n', ) room_passcode: Optional[constr(min_length=1, max_length=16)] = Field( None, description='1-16 digit number or characters that is used to secure your Zoom Rooms application.', ) support_email: Optional[EmailStr] = Field( None, description='The email address to be used for reporting Zoom Room issues.\n', ) support_phone: Optional[str] = Field( None, description='The phone number to be used for reporting Zoom Room issues.\n', ) timezone: Optional[str] = Field( None, description='Timezone (can only be updated for location type - city).' ) class RoomsLocationsLocationIdPatchRequest(BaseModel): basic: Optional[Basic6] = None class RoomsLocationsLocationIdPatchRequest1(BaseModel): basic: Optional[Basic6] = None class RoomsLocationsLocationIdLocationPutRequest(BaseModel): parent_location_id: Optional[str] = Field( None, description='Location ID of the new Parent Location under which you the child location will be positioned. This can be retrieved from the [List Zoom Room Locations](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) API.', ) class MeetingSecurity17(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Specifies whether enhanced encryption or [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) is being used when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allows use of end-to-end encryption for meetings. If set to `true`, the encryption type is specified in `encryption_type` field.', ) class ZoomRooms10(BaseModel): allow_multiple_content_sharing: Optional[bool] = Field( None, description='Enable multiple participants to [share content simultaneously](https://support.zoom.us/hc/en-us/articles/360017767812-Sharing-Multiple-Screens-in-a-Zoom-Room) by default.', ) audio_device_daily_auto_test: Optional[bool] = Field( None, description='Enable [automated audio test](https://support.zoom.us/hc/en-us/articles/360000319683-Zoom-Rooms-Daily-Audio-Testing) to ensure high quality audio.', ) auto_accept_incoming_call_and_fecc: Optional[bool] = Field( None, description='Automatically accept incoming calls made from other Zoom Rooms or contacts in your account. Enabling this setting will also automatically allow far-end camera control.\n\nThis setting is returned only for location type - "country".', ) auto_direct_sharing: Optional[bool] = Field( None, description='Enable participants in a Zoom Room to share their laptop screen on the Zoom Room TV without entering a meeting ID or sharing code.', ) auto_start_scheduled_meeting: Optional[bool] = Field( None, description='Automatically start scheduled meetings according to the start time listed on the calendar associated with the room. A meeting alert will appear 10 minutes prior to the scheduled time on the TV.', ) auto_stop_scheduled_meeting: Optional[bool] = Field( None, description='Automatically stop the meeting at the end time as scheduled and listed in the calendar associated with the room. ', ) count_attendees_number_in_room: Optional[bool] = Field( None, description='Use facial detection technology to [determine and display the attendees count](https://support.zoom.us/hc/en-us/articles/360031027111-Count-Attendees-in-Zoom-Rooms) after meetings on Dashboard.\n', ) display_feedback_survey: Optional[bool] = Field( None, description='Display a [survey](https://support.zoom.us/hc/en-us/articles/214193146-End-of-Meeting-Attendee-Feedback) at the end of each meeting regarding the audio and video quality on the Zoom Rooms Controller.', ) display_meeting_list: Optional[bool] = Field( None, description=' Show the same information on the TV that is shown on the controller.', ) display_top_banner: Optional[bool] = Field( None, description='Allow to display room name, time and sharing key on the top portion of TV.', ) encrypt_shared_screen_content: Optional[bool] = Field( None, description='Encrypt screen and content shared in meetings.' ) hide_id_for_private_meeting: Optional[bool] = Field( None, description='If enabled, the meeting host and meeting ID (in addition to the meeting topic) are hidden from the Zoom Rooms display for private meetings. This affects meetings that were originally scheduled as private, as well as public meetings that were transformed to private.', ) hide_self_view: Optional[bool] = Field( None, description='If enabled, you will not see your own video but other people in the meeting can still see your video.\n\nThis setting is returned only for location type - "country".', ) lock_speaker_volume_control: Optional[bool] = Field( None, description='Lock speaker volume control on controller.\n\nThis setting is returned only for location type - "country".', ) send_whiteboard_to_internal_contact_only: Optional[bool] = Field( None, description='Restrict[ sending Whiteboard sessions](https://support.zoom.us/hc/en-us/articles/115004797286-Using-the-Whiteboard-in-Zoom-Rooms-for-Touch#h_781274b3-5237-4320-8826-be2120b00e21) to contacts or internal users only.', ) show_alert_before_meeting: Optional[bool] = Field( None, description='If enabled, the upcoming meeting alert message will be shown on the TV display. The value of the `upcoming_meeting_alert` field should be set to `true` to use this field. ', ) show_call_history_in_room: Optional[bool] = Field( None, description='Allow users to see call history of joined meetings and phone calls from the Zoom Rooms controller.\n', ) show_contact_list_on_controller: Optional[bool] = Field( None, description='If enabled, you can invite participants from the contact list during a meeting or when starting a meeting', ) show_non_video_participants: Optional[bool] = Field( None, description='When enabled, meeting participants that are audio only or have their video turned off will also be shown on the Zoom Rooms display by default.', ) start_airplay_manually: Optional[bool] = Field( None, description='Require the AirPlay service to be [started by an administrator](https://support.zoom.us/hc/en-us/articles/204726885-Screen-Share-Using-Airplay-Mirroring#h_a342ad38-4e46-47a8-a1d9-cded3b144b39) rather than always being available.', ) start_airplay_mirroring: Optional[bool] = Field( None, description='Allow users to share content via Apple Screen Mirroring (called Airplay on iOS 11 or earlier) in Zoom Rooms', ) start_hdmi_content_share_manualy: Optional[bool] = Field( None, description='Disable automatic detection and enable manual content sharing from a device to a Zoom Room. Learn more [here](https://support.zoom.us/hc/en-us/articles/201504265-Wired-HDMI-Screen-Share-via-Capture-Device).\n\nThis setting is returned only for location type - "country".', ) support_join_3rd_party_meeting: Optional[bool] = Field( None, description='Integrate with Skype for Business, GoToMeeting, or WebEx and show the meeting dial-in button on the meeting list tab for Zoom Rooms Controllers.', ) transform_meeting_to_private: Optional[bool] = Field( None, description='If enabled, all meetings in this room will be treated as [private meetings](https://support.zoom.us/hc/en-us/articles/115001051063-Zoom-Rooms-Private-Meetings), and the Zoom Room will display "Your Name\'s Meeting" instead of the real meeting topic.', ) upcoming_meeting_alert: Optional[bool] = Field( None, description='If enabled, a reminder will display 10 minutes prior to the next scheduled meeting on the controller.', ) voice_commands: Optional[bool] = Field( None, description='Enable [voice commands](https://support.zoom.us/hc/en-us/articles/115000527983-Voice-Command-with-Zoom-Rooms) with Zoom Rooms.', ) weekly_system_restart: Optional[bool] = Field( None, description='[Restart](https://support.zoom.us/hc/en-us/articles/205418949-Zoom-Rooms-Weekly-System-Restart) the Zoom Rooms computer and controller once a week.', ) class RoomsLocationsLocationIdSettingsGetResponse1(BaseModel): meeting_security: Optional[MeetingSecurity17] = None zoom_rooms: Optional[ZoomRooms10] = None class Banner4(BaseModel): banner_room_name: Optional[bool] = Field( None, description='Display or hide banner room name.' ) banner_sharing_key: Optional[bool] = Field( None, description='Display or hide banner sharing key.' ) banner_time: Optional[bool] = Field( None, description='Display or hide time in the banner.' ) class DisplayPeriod4(BaseModel): start_displaying_content: Optional[int] = Field( None, description='Start displaying digital signage content after certain duration after the meeting ends. The value of this field indicates the duration in minutes.', ) stop_displaying_content: Optional[int] = Field( None, description='Stop displaying content {certain_duration} before a meeting is scheduled to begin. The value of this field indicates the duration in minutes.', ) class Content6(BaseModel): content_id: Optional[str] = Field(None, description='Content Id.') duration: Optional[int] = Field( None, description='Duration for how long the content will be displayed.' ) id: Optional[str] = None name: Optional[str] = Field(None, description='Name of the content.') order: Optional[int] = Field( None, description='Order of the content in the display.' ) class PlayListItem4(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content6]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage4(BaseModel): banner: Optional[Banner4] = Field( None, description='Specifies the elements that you want to display in the top banner.', ) display_period: Optional[DisplayPeriod4] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Indicates whether digital signage is on or off,](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem4]] = Field( None, description='Content list.', max_length=2 ) class Notification4(BaseModel): audio_meet_usability_threshold: Optional[bool] = Field( None, description='Send an alert when the audio echo test result meets usability threshold.', ) audio_not_meet_usability_threshold: Optional[bool] = Field( None, description='Send an alert when the audio echo test result does not meet usability threshold.', ) battery_is_charging: Optional[bool] = Field( None, description='Send an alert when the battery starts charging.' ) battery_low_and_not_charging: Optional[bool] = Field( None, description='Send an alert when the battery of the controller or the scheduling display is low (at 20%) and is not being charged.', ) battery_percentage: Optional[str] = Field( None, description='Specify a percentage so that an alert is sent when the battery is less than the {battery_percentage} that you specified.', ) controller_scheduling_disconnected: Optional[bool] = Field( None, description='Send an alert when the connection to the Controller or Scheduling Display cannot be detected.', ) controller_scheduling_reconnected: Optional[bool] = Field( None, description='Send an alert when the Controller or Scheduling Display can be detected again.', ) cpu_usage_high_detected: Optional[bool] = Field( None, description='Send an alert when CPU usage is above 90%.' ) mic_speaker_camera_disconnected: Optional[bool] = Field( None, description='Send an alert when the mic, speaker or camera is disconnected in the Zoom Room.', ) mic_speaker_camera_reconnected: Optional[bool] = Field( None, description='Send an alert when the mic, speaker or camera is reconnected.', ) network_unstable_detected: Optional[bool] = Field( None, description='Send an alert when low bandwidth network is detected' ) sip_registration_failed: Optional[bool] = Field( None, description='Send an alert when SIP registration stops working. ' ) sip_registration_re_enabled: Optional[bool] = Field( None, description='Send an alert after the SIP registration is re-enabled.' ) zoom_room_come_back_online: Optional[bool] = Field( None, description='Send an alert when the Zoom Room is online after previously being offline.', ) zoom_room_display_disconnected: Optional[bool] = Field( None, description='Send an alert when the TV display is disconnected' ) zoom_room_offline: Optional[bool] = Field( None, description='Send an alert when the machine hosting the Zoom Room application has a network issue or cannot connect with the Controller.', ) class RoomsLocationsLocationIdSettingsGetResponse2(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage4] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsLocationsLocationIdSettingsGetResponse( RootModel[ Union[ RoomsLocationsLocationIdSettingsGetResponse1, RoomsLocationsLocationIdSettingsGetResponse2, ] ] ): root: Union[ RoomsLocationsLocationIdSettingsGetResponse1, RoomsLocationsLocationIdSettingsGetResponse2, ] class MeetingSecurity18(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Specifies whether enhanced encryption or [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) is being used when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allows use of end-to-end encryption for meetings. If set to `true`, the encryption type is specified in `encryption_type` field.', ) class RoomsLocationsLocationIdSettingsGetResponse4(BaseModel): meeting_security: Optional[MeetingSecurity18] = None zoom_rooms: Optional[ZoomRooms10] = None class PlayListItem5(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content6]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage5(BaseModel): banner: Optional[Banner4] = Field( None, description='Specifies the elements that you want to display in the top banner.', ) display_period: Optional[DisplayPeriod4] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Indicates whether digital signage is on or off,](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem5]] = Field( None, description='Content list.', max_length=2 ) class RoomsLocationsLocationIdSettingsGetResponse5(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage5] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsLocationsLocationIdSettingsGetResponse3( RootModel[ Union[ RoomsLocationsLocationIdSettingsGetResponse4, RoomsLocationsLocationIdSettingsGetResponse5, ] ] ): root: Union[ RoomsLocationsLocationIdSettingsGetResponse4, RoomsLocationsLocationIdSettingsGetResponse5, ] class MeetingSecurity19(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) class RoomsLocationsLocationIdSettingsPatchRequest1(BaseModel): meeting_security: Optional[MeetingSecurity19] = None zoom_rooms: Optional[ZoomRooms10] = None class Banner6(BaseModel): banner_room_name: Optional[bool] = None banner_sharing_key: Optional[bool] = None banner_time: Optional[bool] = None class DisplayPeriod6(BaseModel): start_displaying_content: Optional[int] = Field( None, description='Start displaying digital signage content after certain duration after the meeting ends. Specify the value of the duration in minutes in this field.', ) stop_displaying_content: Optional[int] = Field( None, description='Stop displaying content {certain_duration} before a meeting is scheduled to begin. Specify the value of duration in minutes in this field.', ) class Content8(BaseModel): action: Optional[str] = Field( None, description="Specify an action for the content in the content list. The value can be one of the following:<br>\n`add`: Add another content to the content list.<br>\n`update`: Update existing content's information in the content list.<br>\n`delete`: Delete content from the content list.\n\n", ) content_id: Optional[str] = Field(None, description='Content Id.') duration: Optional[int] = Field( None, description='By default each content is display for 5 seconds. Using this field, specify how long you would like to display the content.', ) id: Optional[str] = Field( None, description='Unique identifier of the content. This field is only required if you would like to remove or update the content information.', ) name: Optional[str] = Field(None, description='Name of the content.') order: Optional[int] = Field( None, description='Order of the content in the display.' ) class PlayListItem6(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content8]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage6(BaseModel): banner: Optional[Banner6] = None display_period: Optional[DisplayPeriod6] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Enable or disable digital signage](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem6]] = Field( None, description='Content list.', max_length=2 ) class RoomsLocationsLocationIdSettingsPatchRequest2(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage6] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsLocationsLocationIdSettingsPatchRequest( RootModel[ Union[ RoomsLocationsLocationIdSettingsPatchRequest1, RoomsLocationsLocationIdSettingsPatchRequest2, ] ] ): root: Union[ RoomsLocationsLocationIdSettingsPatchRequest1, RoomsLocationsLocationIdSettingsPatchRequest2, ] class MeetingSecurity20(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) class RoomsLocationsLocationIdSettingsPatchRequest4(BaseModel): meeting_security: Optional[MeetingSecurity20] = None zoom_rooms: Optional[ZoomRooms10] = None class PlayListItem7(BaseModel): action: Optional[Action38] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content8]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage7(BaseModel): banner: Optional[Banner6] = None display_period: Optional[DisplayPeriod6] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Enable or disable digital signage](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem7]] = Field( None, description='Content list.', max_length=2 ) class RoomsLocationsLocationIdSettingsPatchRequest5(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage7] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsLocationsLocationIdSettingsPatchRequest3( RootModel[ Union[ RoomsLocationsLocationIdSettingsPatchRequest4, RoomsLocationsLocationIdSettingsPatchRequest5, ] ] ): root: Union[ RoomsLocationsLocationIdSettingsPatchRequest4, RoomsLocationsLocationIdSettingsPatchRequest5, ] class Params4(BaseModel): calendar_id: Optional[str] = Field( None, description='This field is only required if Google Calendar is being used for the event associated with the Zoom Room. The value for this field can be retrieved by calling Google\'s [CalendarList:list API](https://developers.google.com/calendar/v3/reference/events/list) and referring to the "id" field included in the [calendarList resource](https://developers.google.com/calendar/v3/reference/calendarList#resource).\n\n ', ) change_key: Optional[str] = Field( None, description="This field is required only for Microsoft Exchange or Office 365 calendar. The change key represents the specific version of the calendar item and can be retrieved by using Microsoft's [FindItem Operation](https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/finditem-operation) and referring to the ChangeKey field of the ItemId Element included in the operation response.<br>", ) event_id: str = Field( ..., description='Unique Identifier of the calendar event associated with the Zoom Room.<br><br>If the calendar integration being used is Microsoft Exchange, the value for this field can be retrieved by using Microsoft\'s [FindItem Operation](https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/finditem-operation) and referring to the Id field of the ItemId Element included in the operation response.<br><br>If the Google calendar integration was used for this event, the event_id can be retrieved by calling Google\'s [Events:list API](https://developers.google.com/calendar/v3/reference/events/list) and referring to the "id" field included in the [events resource](https://developers.google.com/calendar/v3/reference/events#resource).\n\n', ) resource_email: Optional[EmailStr] = Field( None, description='This field is only required for Microsoft Exchange / Office 365 Calendar. It is the [resource mailbox](https://support.microsoft.com/en-us/help/10063/creating-and-managing-resource-mailboxes-in-office-365) associated with the calendar.', ) class RoomsIdEventsPatchRequest(BaseModel): method: Optional[str] = Field( None, description='The value of this field can be one of the following:<br>\n* zoomroom.check_in\n* zoomroom.check_out', ) params: Optional[Params4] = None class RoomsIdEventsPatchRequest1(BaseModel): method: Optional[str] = Field( None, description='The value of this field can be one of the following:<br>\n* zoomroom.check_in\n* zoomroom.check_out', ) params: Optional[Params4] = None class RoomsRoomIdDeleteResponse(BaseModel): pass class Basic8(BaseModel): activation_code: Optional[str] = Field( None, description='Activation Code is the code that is used to complete the setup of the Zoom Room.', ) hide_room_in_contacts: Optional[bool] = Field( None, description='Hide this Zoom Room from your Contact List. ' ) name: Optional[str] = Field(None, description='Name of the Zoom Room.') required_code_to_ext: Optional[bool] = Field( None, description='Require code to exit out of Zoom Rooms application to switch between other apps.\n', ) room_passcode: Optional[constr(min_length=1, max_length=16)] = Field( None, description='1-16 digit number or characters that is used to secure your Zoom Rooms application. This code must be entered on your Zoom Room Controller to change settings or sign out.', ) support_email: Optional[EmailStr] = Field( None, description='The email address to be used for reporting Zoom Room issues.' ) support_phone: Optional[str] = Field( None, description='The phone number to be used for reporting Zoom Room issues.\n', ) class RoomsRoomIdGetResponse(BaseModel): basic: Optional[Basic8] = None class RoomsRoomIdGetResponse1(BaseModel): basic: Optional[Basic8] = None class Basic10(BaseModel): hide_room_in_contacts: Optional[bool] = Field( None, description='Hide this Zoom Room from your Contact List. ' ) name: Optional[str] = Field(None, description='Name of the Zoom Room.') required_code_to_ext: Optional[bool] = Field( None, description='Require code to exit out of Zoom Rooms application to switch between other apps.\n', ) room_passcode: Optional[constr(min_length=1, max_length=16)] = Field( None, description='1-16 digit number or characters that is used to secure your Zoom Rooms application. This code must be entered on your Zoom Room Controller to change settings or sign out.', ) support_email: Optional[EmailStr] = Field( None, description='The email address to be used for reporting Zoom Room issues.' ) support_phone: Optional[str] = Field( None, description='The phone number to be used for reporting Zoom Room issues.\n', ) class RoomsRoomIdPatchRequest(BaseModel): basic: Optional[Basic10] = None class RoomsRoomIdPatchRequest1(BaseModel): basic: Optional[Basic10] = None class RoomsRoomIdPatchResponse(BaseModel): pass class DeviceType(Enum): Zoom_Rooms_Computer = 'Zoom Rooms Computer' Controller = 'Controller' Scheduling_Display = 'Scheduling Display' Zoom_Rooms_Control_System = 'Zoom Rooms Control System' Companion_Whiteboard = 'Companion Whiteboard' class Status86(Enum): Online = 'Online' Offline = 'Offline' class Device6(BaseModel): app_version: Optional[str] = Field(None, description='App version of Zoom Rooms.') device_system: Optional[str] = Field( None, description='Operating system of the device.' ) device_type: Optional[DeviceType] = Field( None, description='Type of the device. The value of this field can be one of the following:<br>`Zoom Rooms Computer`,<br> `Controller`, `Scheduling Display`, `Zoom Rooms Control System`, `Companion Whiteboard`', ) id: Optional[str] = Field(None, description='Unique identifier of the device.') room_name: Optional[str] = Field(None, description='Name of the Zoom Room.') status: Optional[Status86] = Field( None, description='Status of the device. The value can be either `Online` or `Offline`.', ) class RoomsRoomIdDevicesGetResponse(BaseModel): devices: Optional[List[Device6]] = None class Device7(BaseModel): app_version: Optional[str] = Field(None, description='App version of Zoom Rooms.') device_system: Optional[str] = Field( None, description='Operating system of the device.' ) device_type: Optional[DeviceType] = Field( None, description='Type of the device. The value of this field can be one of the following:<br>`Zoom Rooms Computer`,<br> `Controller`, `Scheduling Display`, `Zoom Rooms Control System`, `Companion Whiteboard`', ) id: Optional[str] = Field(None, description='Unique identifier of the device.') room_name: Optional[str] = Field(None, description='Name of the Zoom Room.') status: Optional[Status86] = Field( None, description='Status of the device. The value can be either `Online` or `Offline`.', ) class RoomsRoomIdDevicesGetResponse1(BaseModel): devices: Optional[List[Device7]] = None class Action46(Enum): upgrade = 'upgrade' downgrade = 'downgrade' cancel = 'cancel' class RoomsRoomIdDevicesDeviceIdAppVersionPutRequest(BaseModel): action: Optional[Action46] = Field( None, description='Specify one of the following values for this field:\n\n`upgrade`: Upgrade to the latest Zoom Rooms App Version.<br>\n`downgrade`: Downgrade the Zoom Rooms App Version.<br>\n`cancel`: Cancel an ongoing upgrade or downgrade process.', ) class RoomsRoomIdDevicesDeviceIdAppVersionPutRequest1(BaseModel): action: Optional[Action46] = Field( None, description='Specify one of the following values for this field:\n\n`upgrade`: Upgrade to the latest Zoom Rooms App Version.<br>\n`downgrade`: Downgrade the Zoom Rooms App Version.<br>\n`cancel`: Cancel an ongoing upgrade or downgrade process.', ) class RoomsRoomIdLocationPutRequest(BaseModel): location_id: Optional[str] = Field( None, description='Location ID of the location where Zoom Room is to be assigned. This can be retrieved from the `id` property in the response of [List Zoom Rooms Locations](https://marketplace.zoom.us/docs/api-reference/zoom-api/rooms-location/listzrlocations) API.', ) class MeetingSecurity21(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) class ZoomRooms14(BaseModel): allow_multiple_content_sharing: Optional[bool] = Field( None, description='Enable multiple participants to [share content simultaneously](https://support.zoom.us/hc/en-us/articles/360017767812-Sharing-Multiple-Screens-in-a-Zoom-Room) by default.', ) audio_device_daily_auto_test: Optional[bool] = Field( None, description='Enable [automated audio test](https://support.zoom.us/hc/en-us/articles/360000319683-Zoom-Rooms-Daily-Audio-Testing) to ensure high quality audio.', ) auto_direct_sharing: Optional[bool] = Field( None, description='Enable participants in a Zoom Room to share their laptop screen on the Zoom Room TV without entering a meeting ID or sharing code.', ) auto_start_scheduled_meeting: Optional[bool] = Field( None, description='Automatically start scheduled meetings according to the start time listed on the calendar associated with the room. A meeting alert will appear 10 minutes prior to the scheduled time on the TV.', ) auto_stop_scheduled_meeting: Optional[bool] = Field( None, description='Automatically stop the meeting at the end time as scheduled and listed in the calendar associated with the room. ', ) count_attendees_number_in_room: Optional[bool] = Field( None, description='Use facial detection technology to [determine and display the attendees count](https://support.zoom.us/hc/en-us/articles/360031027111-Count-Attendees-in-Zoom-Rooms) after meetings on Dashboard.\n', ) display_feedback_survey: Optional[bool] = Field( None, description='Display a [survey](https://support.zoom.us/hc/en-us/articles/214193146-End-of-Meeting-Attendee-Feedback) at the end of each meeting regarding the audio and video quality on the Zoom Rooms Controller.', ) display_meeting_list: Optional[bool] = Field( None, description=' Show the same information on the TV that is shown on the controller.', ) display_top_banner: Optional[bool] = Field( None, description='Allow to display room name, time and sharing key on the top portion of TV.', ) encrypt_shared_screen_content: Optional[bool] = Field( None, description='Encrypt screen and content shared in meetings.' ) hide_id_for_private_meeting: Optional[bool] = Field( None, description='If enabled, the meeting host and meeting ID (in addition to the meeting topic) are hidden from the Zoom Rooms display for private meetings. This affects meetings that were originally scheduled as private, as well as public meetings that were transformed to private.', ) hide_share_instruction: Optional[bool] = Field( None, description='Hide share instructions from TV.' ) send_whiteboard_to_internal_contact_only: Optional[bool] = Field( None, description='Restrict[ sending Whiteboard sessions](https://support.zoom.us/hc/en-us/articles/115004797286-Using-the-Whiteboard-in-Zoom-Rooms-for-Touch#h_781274b3-5237-4320-8826-be2120b00e21) to contacts or internal users only.', ) show_alert_before_meeting: Optional[bool] = Field( None, description='If enabled, the upcoming meeting alert message will be shown on the TV display. The value of the `upcoming_meeting_alert` field should be set to `true` to use this field. ', ) show_call_history_in_room: Optional[bool] = Field( None, description='Allow users to see call history of joined meetings and phone calls from the Zoom Rooms controller.\n', ) show_contact_list_on_controller: Optional[bool] = Field( None, description='If enabled, you can invite participants from the contact list during a meeting or when starting a meeting', ) show_non_video_participants: Optional[bool] = Field( None, description='When enabled, meeting participants that are audio only or have their video turned off will also be shown on the Zoom Rooms display by default.', ) start_airplay_manually: Optional[bool] = Field( None, description='Require the AirPlay service to be [started by an administrator](https://support.zoom.us/hc/en-us/articles/204726885-Screen-Share-Using-Airplay-Mirroring#h_a342ad38-4e46-47a8-a1d9-cded3b144b39) rather than always being available.', ) start_airplay_mirroring: Optional[bool] = Field( None, description='Allow users to share content via Apple Screen Mirroring (called Airplay on iOS 11 or earlier) in Zoom Rooms', ) support_join_3rd_party_meeting: Optional[bool] = Field( None, description='Integrate with Skype for Business, GoToMeeting, or WebEx and show the meeting dial-in button on the meeting list tab for Zoom Rooms Controllers.', ) transform_meeting_to_private: Optional[bool] = Field( None, description='If enabled, all meetings in this room will be treated as [private meetings](https://support.zoom.us/hc/en-us/articles/115001051063-Zoom-Rooms-Private-Meetings), and the Zoom Room will display "Your Name\'s Meeting" instead of the real meeting topic.', ) upcoming_meeting_alert: Optional[bool] = Field( None, description='If enabled, a reminder will display 10 minutes prior to the next scheduled meeting on the controller.', ) weekly_system_restart: Optional[bool] = Field( None, description='[Restart](https://support.zoom.us/hc/en-us/articles/205418949-Zoom-Rooms-Weekly-System-Restart) the Zoom Rooms computer and controller once a week.', ) class RoomsRoomIdSettingsGetResponse1(BaseModel): meeting_security: Optional[MeetingSecurity21] = None zoom_rooms: Optional[ZoomRooms14] = None class Banner8(BaseModel): banner_room_name: Optional[bool] = Field( None, description='Display or hide banner room name.' ) banner_sharing_key: Optional[bool] = Field( None, description='Display or hide banner sharing key.' ) banner_time: Optional[bool] = Field( None, description='Display or hide time in the banner.' ) class DisplayPeriod8(BaseModel): start_displaying_content: Optional[int] = Field( None, description='Start displaying digital signage content after certain duration after the meeting ends. The value of this field indicates the duration in minutes.', ) stop_displaying_content: Optional[int] = Field( None, description='Stop displaying content {certain_duration} before a meeting is scheduled to begin. The value of this field indicates the duration in minutes.', ) class Action48(Enum): add = 'add' update = 'update' delete = 'delete' class Content10(BaseModel): content_id: Optional[str] = Field(None, description='Content Id.') duration: Optional[int] = Field( None, description='Duration for how long the content will be displayed.' ) id: Optional[str] = None name: Optional[str] = Field(None, description='Name of the content.') order: Optional[int] = Field( None, description='Order of the content in the display.' ) class PlayListItem8(BaseModel): action: Optional[Action48] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content10]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage8(BaseModel): banner: Optional[Banner8] = Field( None, description='Specifies the elements that you want to display in the top banner.', ) display_period: Optional[DisplayPeriod8] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Indicates whether digital signage is on or off,](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem8]] = Field( None, description='Content list.', max_length=2 ) class RoomsRoomIdSettingsGetResponse2(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage8] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsRoomIdSettingsGetResponse( RootModel[Union[RoomsRoomIdSettingsGetResponse1, RoomsRoomIdSettingsGetResponse2]] ): root: Union[RoomsRoomIdSettingsGetResponse1, RoomsRoomIdSettingsGetResponse2] class MeetingSecurity22(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) class RoomsRoomIdSettingsGetResponse4(BaseModel): meeting_security: Optional[MeetingSecurity22] = None zoom_rooms: Optional[ZoomRooms14] = None class PlayListItem9(BaseModel): action: Optional[Action48] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content10]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage9(BaseModel): banner: Optional[Banner8] = Field( None, description='Specifies the elements that you want to display in the top banner.', ) display_period: Optional[DisplayPeriod8] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Indicates whether digital signage is on or off,](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem9]] = Field( None, description='Content list.', max_length=2 ) class RoomsRoomIdSettingsGetResponse5(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage9] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsRoomIdSettingsGetResponse3( RootModel[Union[RoomsRoomIdSettingsGetResponse4, RoomsRoomIdSettingsGetResponse5]] ): root: Union[RoomsRoomIdSettingsGetResponse4, RoomsRoomIdSettingsGetResponse5] class MeetingSecurity23(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) class RoomsRoomIdSettingsPatchRequest1(BaseModel): meeting_security: Optional[MeetingSecurity23] = None zoom_rooms: Optional[ZoomRooms14] = None class Banner10(BaseModel): banner_room_name: Optional[bool] = None banner_sharing_key: Optional[bool] = None banner_time: Optional[bool] = None class DisplayPeriod10(BaseModel): start_displaying_content: Optional[int] = Field( None, description='Start displaying digital signage content after certain duration after the meeting ends. Specify the value of the duration in minutes in this field.', ) stop_displaying_content: Optional[int] = Field( None, description='Stop displaying content {certain_duration} before a meeting is scheduled to begin. Specify the value of duration in minutes in this field.', ) class Content12(BaseModel): action: Optional[str] = Field( None, description="Specify an action for the content in the content list. The value can be one of the following:<br>\n`add`: Add another content to the content list.<br>\n`update`: Update existing content's information in the content list.<br>\n`delete`: Delete content from the content list.\n\n", ) content_id: Optional[str] = Field(None, description='Content Id.') duration: Optional[int] = Field( None, description='By default each content is display for 5 seconds. Using this field, specify how long you would like to display the content.', ) id: Optional[str] = Field( None, description='Unique identifier of the content. This field is only required if you would like to remove or update the content information.', ) name: Optional[str] = Field(None, description='Name of the content.') order: Optional[int] = Field( None, description='Order of the content in the display.' ) class PlayListItem10(BaseModel): action: Optional[Action48] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content12]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage10(BaseModel): banner: Optional[Banner10] = None display_period: Optional[DisplayPeriod10] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Enable or disable digital signage](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem10]] = Field( None, description='Content list.', max_length=2 ) class RoomsRoomIdSettingsPatchRequest2(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage10] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsRoomIdSettingsPatchRequest( RootModel[Union[RoomsRoomIdSettingsPatchRequest1, RoomsRoomIdSettingsPatchRequest2]] ): root: Union[RoomsRoomIdSettingsPatchRequest1, RoomsRoomIdSettingsPatchRequest2] class MeetingSecurity24(BaseModel): encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) class RoomsRoomIdSettingsPatchRequest4(BaseModel): meeting_security: Optional[MeetingSecurity24] = None zoom_rooms: Optional[ZoomRooms14] = None class PlayListItem11(BaseModel): action: Optional[Action48] = Field( None, description='Specify an action for the content list. The value can be one of the following:<br>\n`add`: Add another content list.<br>\n`update`: Update existing content list.<br>\n`delete`: Delete content list.\n', ) contents: Optional[List[Content12]] = Field(None, max_length=3) end_time: Optional[str] = Field( None, description='Specify the display end time for the content list in GMT.' ) id: Optional[str] = Field( None, description='Unique identifier of the content list. This field is only required if you would like to remove or update the content list.', ) name: Optional[str] = Field(None, description='Name of the content list.') start_time: Optional[str] = Field( None, description='Specify the display start time for the content list in GMT.' ) class DigitalSignage11(BaseModel): banner: Optional[Banner10] = None display_period: Optional[DisplayPeriod10] = Field( None, description='Display period object lets you define the number of minutes before or after the scheduled meeting time you would like the content to display.', ) enable_digital_signage: Optional[bool] = Field( None, description='[Enable or disable digital signage](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_767fbb33-82a8-45a8-8392-a1bfa9687edd). <br>\n`true`: enable<br> `false`: disable', ) layout: Optional[str] = Field( None, description='Set the [layout](https://support.zoom.us/hc/en-us/articles/360000030683-Zoom-Rooms-digital-signage#h_4e25ddf3-8f97-4957-8f8b-99725f940fa7). The value of this field can be either `standard` or `video_content`.\n\n`standard`: Standard Center<br>\n`video_content`: Video + Content', ) mute: Optional[bool] = Field( None, description='Sound of all contents will be muted if the value of this field is set to `true`.', ) play_list: Optional[List[PlayListItem11]] = Field( None, description='Content list.', max_length=2 ) class RoomsRoomIdSettingsPatchRequest5(BaseModel): client_alert: Optional[ClientAlert] = Field( None, description='The Client Alert Settings section includes alerts that display on the TV screen of the Zoom Room. Disable these settings if you have deliberately disconnected one or more peripheral devices or have never enabled them. ', ) digital_signage: Optional[DigitalSignage11] = None notification: Optional[Notification4] = Field( None, description='[Notifications Settings](https://support.zoom.us/hc/en-us/articles/205394099-Zoom-Room-Alerts#h_b430b5f2-5150-4522-9c96-c77f22ab70bc) includes the circumstances in which the room sends an email alert to the support team to notify them of a potentially urgent issue. These issues can affect the operation of the room, but do not display on the TV screen. The email alert is sent to the email address specified in the Notification Email Recipients section. ', ) class RoomsRoomIdSettingsPatchRequest3( RootModel[Union[RoomsRoomIdSettingsPatchRequest4, RoomsRoomIdSettingsPatchRequest5]] ): root: Union[RoomsRoomIdSettingsPatchRequest4, RoomsRoomIdSettingsPatchRequest5] class TransportProtocol(Enum): UDP = 'UDP' TCP = 'TCP' TLS = 'TLS' AUTO = 'AUTO' class TransportProtocol2(Enum): UDP = 'UDP' TCP = 'TCP' TLS = 'TLS' AUTO = 'AUTO' class TransportProtocol3(Enum): UDP = 'UDP' TCP = 'TCP' TLS = 'TLS' AUTO = 'AUTO' class Phone(BaseModel): authorization_name: Optional[str] = Field( None, description='Authorization name of the user registered for SIP Phone.' ) domain: Optional[str] = Field( None, description='The name or IP address of your provider’s SIP domain. (example: CDC.WEB).\n', ) id: Optional[str] = Field(None, description='Unique Identifier of the SIP Phone.') password: Optional[str] = Field( None, description='The password generated for the user in the SIP account.\n' ) proxy_server: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) proxy_server2: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) proxy_server3: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) register_server: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server2: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server3: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) registration_expire_time: Optional[int] = Field( None, description='The number of minutes after which the SIP registration of the Zoom client user will expire, and the client will auto register to the SIP server. ', ) transport_protocol: Optional[TransportProtocol] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol2: Optional[TransportProtocol2] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol3: Optional[TransportProtocol3] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) user_email: Optional[EmailStr] = Field( None, description='The email address of the user to associate with the SIP Phone. Can add [.win, .mac, .android, .ipad, .iphone, .linux, .pc, .mobile, .pad] at the end of the email (ex. user@test.com.mac) to add accounts for different platforms for the same user.', ) user_name: Optional[str] = Field( None, description='The phone number associated with the user in the SIP account. ', ) voice_mail: Optional[str] = Field( None, description='The number to dial for checking voicemail.' ) class SipPhonesGetResponse(BaseModel): next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( None, description='The page number of the current results.' ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) phones: Optional[List[Phone]] = Field(None, description='SIP phones object.') total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) class Phone1(BaseModel): authorization_name: Optional[str] = Field( None, description='Authorization name of the user registered for SIP Phone.' ) domain: Optional[str] = Field( None, description='The name or IP address of your provider’s SIP domain. (example: CDC.WEB).\n', ) id: Optional[str] = Field(None, description='Unique Identifier of the SIP Phone.') password: Optional[str] = Field( None, description='The password generated for the user in the SIP account.\n' ) proxy_server: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) proxy_server2: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) proxy_server3: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) register_server: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server2: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server3: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) registration_expire_time: Optional[int] = Field( None, description='The number of minutes after which the SIP registration of the Zoom client user will expire, and the client will auto register to the SIP server. ', ) transport_protocol: Optional[TransportProtocol] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol2: Optional[TransportProtocol2] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol3: Optional[TransportProtocol3] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) user_email: Optional[EmailStr] = Field( None, description='The email address of the user to associate with the SIP Phone. Can add [.win, .mac, .android, .ipad, .iphone, .linux, .pc, .mobile, .pad] at the end of the email (ex. user@test.com.mac) to add accounts for different platforms for the same user.', ) user_name: Optional[str] = Field( None, description='The phone number associated with the user in the SIP account. ', ) voice_mail: Optional[str] = Field( None, description='The number to dial for checking voicemail.' ) class SipPhonesGetResponse1(BaseModel): next_page_token: Optional[str] = None page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( None, description='The page number of the current results.' ) page_size: Optional[int] = Field( None, description='The number of records returned within a single API call.' ) phones: Optional[List[Phone1]] = Field(None, description='SIP phones object.') total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) class SipPhonesPostRequest(BaseModel): authorization_name: constr(max_length=64) = Field( ..., description='Authorization name of the user registered for SIP Phone.' ) domain: constr(max_length=64) = Field( ..., description='The name or IP address of your provider’s SIP domain. (example: CDC.WEB).', ) password: str = Field( ..., description='The password generated for the user in the SIP account.' ) proxy_server: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) proxy_server2: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) proxy_server3: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) register_server: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server2: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server3: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) registration_expire_time: Optional[conint(ge=1, le=127)] = Field( 60, description='The number of minutes after which the SIP registration of the Zoom client user will expire, and the client will auto register to the SIP server.', ) transport_protocol: Optional[TransportProtocol] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol2: Optional[TransportProtocol2] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol3: Optional[TransportProtocol3] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) user_email: EmailStr = Field( ..., description='The email address of the user to associate with the SIP Phone. Can add [.win, .mac, .android, .ipad, .iphone, .linux, .pc, .mobile, .pad] at the end of the email (ex. user@test.com.mac) to add accounts for different platforms for the same user.', ) user_name: constr(max_length=64) = Field( ..., description='The phone number associated with the user in the SIP account.' ) voice_mail: constr(max_length=255) = Field( ..., description='The number to dial for checking voicemail.' ) class SipPhonesPostRequest1(BaseModel): authorization_name: constr(max_length=64) = Field( ..., description='Authorization name of the user registered for SIP Phone.' ) domain: constr(max_length=64) = Field( ..., description='The name or IP address of your provider’s SIP domain. (example: CDC.WEB).', ) password: str = Field( ..., description='The password generated for the user in the SIP account.' ) proxy_server: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) proxy_server2: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) proxy_server3: Optional[str] = Field( None, description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server, or empty.', ) register_server: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server2: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server3: Optional[str] = Field( None, description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) registration_expire_time: Optional[conint(ge=1, le=127)] = Field( 60, description='The number of minutes after which the SIP registration of the Zoom client user will expire, and the client will auto register to the SIP server.', ) transport_protocol: Optional[TransportProtocol] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol2: Optional[TransportProtocol2] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol3: Optional[TransportProtocol3] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) user_email: EmailStr = Field( ..., description='The email address of the user to associate with the SIP Phone. Can add [.win, .mac, .android, .ipad, .iphone, .linux, .pc, .mobile, .pad] at the end of the email (ex. user@test.com.mac) to add accounts for different platforms for the same user.', ) user_name: constr(max_length=64) = Field( ..., description='The phone number associated with the user in the SIP account.' ) voice_mail: constr(max_length=255) = Field( ..., description='The number to dial for checking voicemail.' ) class SipPhonesPhoneIdDeleteResponse(BaseModel): pass class SipPhonesPhoneIdPatchRequest(BaseModel): authorization_name: constr(max_length=64) = Field( ..., description='Authorization name of the user registered for SIP Phone.' ) domain: constr(max_length=64) = Field( ..., description='The name or IP address of your provider’s SIP domain. (example: CDC.WEB).', ) password: str = Field( ..., description='The password generated for the user in the SIP account.' ) proxy_server: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) proxy_server2: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) proxy_server3: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) register_server: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server2: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server3: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) registration_expire_time: Optional[conint(ge=1, le=127)] = Field( 60, description='The number of minutes after which the SIP registration of the Zoom client user will expire, and the client will auto register to the SIP server.', ) transport_protocol: Optional[TransportProtocol] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol2: Optional[TransportProtocol2] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol3: Optional[TransportProtocol3] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) user_name: constr(max_length=64) = Field( ..., description='The phone number associated with the user in the SIP account.' ) voice_mail: constr(max_length=255) = Field( ..., description='The number to dial for checking voicemail.' ) class SipPhonesPhoneIdPatchRequest1(BaseModel): authorization_name: constr(max_length=64) = Field( ..., description='Authorization name of the user registered for SIP Phone.' ) domain: constr(max_length=64) = Field( ..., description='The name or IP address of your provider’s SIP domain. (example: CDC.WEB).', ) password: str = Field( ..., description='The password generated for the user in the SIP account.' ) proxy_server: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) proxy_server2: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) proxy_server3: str = Field( ..., description='IP address of the proxy server for SIP requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address. If you are not using a proxy server, this value can be the same as the Register Server.', ) register_server: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server2: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) register_server3: str = Field( ..., description='IP address of the server that accepts REGISTER requests. Note that if you are using the UDP transport protocol, the default port is 5060. If you are using UDP with a different port number, that port number must be included with the IP address.', ) registration_expire_time: Optional[conint(ge=1, le=127)] = Field( 60, description='The number of minutes after which the SIP registration of the Zoom client user will expire, and the client will auto register to the SIP server.', ) transport_protocol: Optional[TransportProtocol] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol2: Optional[TransportProtocol2] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) transport_protocol3: Optional[TransportProtocol3] = Field( None, description='Protocols supported by the SIP provider.<br> The value must be either `UDP`, `TCP`, `TLS`, `AUTO`.', ) user_name: constr(max_length=64) = Field( ..., description='The phone number associated with the user in the SIP account.' ) voice_mail: constr(max_length=255) = Field( ..., description='The number to dial for checking voicemail.' ) class SipPhonesPhoneIdPatchResponse(BaseModel): pass class PhoneNumber26(BaseModel): country: Optional[str] = Field(None, description='Country ID (example: US)') number: Optional[str] = Field(None, description='Phone number') class SipTrunkNumbersGetResponse(BaseModel): phone_numbers: Optional[List[PhoneNumber26]] = None total_records: Optional[int] = Field( None, description='Total number of records returned.' ) class SipTrunkNumbersGetResponse1(BaseModel): phone_numbers: Optional[List[PhoneNumber26]] = None total_records: Optional[int] = Field( None, description='Total number of records returned.' ) class TrackingField26(BaseModel): id: Optional[str] = Field(None, description='ID of Tracking Field') field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class TrackingFieldsGetResponse(BaseModel): total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) tracking_fields: Optional[List[TrackingField26]] = Field( None, description='Array of Tracking Fields' ) class TrackingFieldsGetResponse1(BaseModel): total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) tracking_fields: Optional[List[TrackingField26]] = Field( None, description='Array of Tracking Fields' ) class TrackingFieldsPostRequest(BaseModel): field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class TrackingFieldsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Tracking Field ID') field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class TrackingFieldsFieldIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Tracking Field ID') field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class TrackingFieldsFieldIdPatchRequest(BaseModel): field: Optional[str] = Field( None, description='Label/ Name for the tracking field.' ) recommended_values: Optional[List[str]] = Field( None, description='Array of recommended values' ) required: Optional[bool] = Field(None, description='Tracking Field Required') visible: Optional[bool] = Field(None, description='Tracking Field Visible') class DialInNumber1(BaseModel): code: Optional[str] = Field(None, description='Country Code') number: Optional[constr(max_length=16)] = Field( None, description='Dial-in number, length is less than 16' ) type: Optional[str] = Field(None, description='Dial-in number type.') class TspGetResponse(BaseModel): dial_in_number_unrestricted: Optional[bool] = Field( None, description="Control restriction on account users adding a TSP number outside of account's dial in numbers.", ) dial_in_numbers: Optional[List[DialInNumber1]] = None enable: Optional[bool] = Field( None, description='Enable Telephony Service Provider for account users.' ) master_account_setting_extended: Optional[bool] = Field( None, description='For master account, extend its TSP setting to all sub accounts. For sub account, extend TSP setting from master account.', ) modify_credential_forbidden: Optional[bool] = Field( None, description='Control restriction on account users being able to modify their TSP credentials.', ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge zone') tsp_enabled: Optional[bool] = Field( None, description='Enable TSP feature for account. This has to be enabled to use any other tsp settings/features.', ) tsp_provider: Optional[str] = Field(None, description='Telephony Service Provider.') class TspGetResponse1(BaseModel): dial_in_number_unrestricted: Optional[bool] = Field( None, description="Control restriction on account users adding a TSP number outside of account's dial in numbers.", ) dial_in_numbers: Optional[List[DialInNumber1]] = None enable: Optional[bool] = Field( None, description='Enable Telephony Service Provider for account users.' ) master_account_setting_extended: Optional[bool] = Field( None, description='For master account, extend its TSP setting to all sub accounts. For sub account, extend TSP setting from master account.', ) modify_credential_forbidden: Optional[bool] = Field( None, description='Control restriction on account users being able to modify their TSP credentials.', ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge zone') tsp_enabled: Optional[bool] = Field( None, description='Enable TSP feature for account. This has to be enabled to use any other tsp settings/features.', ) tsp_provider: Optional[str] = Field(None, description='Telephony Service Provider.') class TspPatchRequest(BaseModel): dial_in_number_unrestricted: Optional[bool] = Field( None, description="Control restriction on account users adding a TSP number outside of account's dial in numbers.", ) enable: Optional[bool] = Field( None, description='Enable 3rd party audio conferencing for account users' ) master_account_setting_extended: Optional[bool] = Field( None, description='For master account, extend its TSP setting to all sub accounts. For sub account, extend TSP setting from master account.', ) modify_credential_forbidden: Optional[bool] = Field( None, description='Control restriction on account users being able to modify their TSP credentials.', ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') tsp_enabled: Optional[bool] = Field( None, description='Enable TSP feature for account. This has to be enabled to use any other tsp settings/features.', ) tsp_provider: Optional[str] = Field( None, description='3rd party audio conferencing provider' ) class TspPatchRequest1(BaseModel): dial_in_number_unrestricted: Optional[bool] = Field( None, description="Control restriction on account users adding a TSP number outside of account's dial in numbers.", ) enable: Optional[bool] = Field( None, description='Enable 3rd party audio conferencing for account users' ) master_account_setting_extended: Optional[bool] = Field( None, description='For master account, extend its TSP setting to all sub accounts. For sub account, extend TSP setting from master account.', ) modify_credential_forbidden: Optional[bool] = Field( None, description='Control restriction on account users being able to modify their TSP credentials.', ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') tsp_enabled: Optional[bool] = Field( None, description='Enable TSP feature for account. This has to be enabled to use any other tsp settings/features.', ) tsp_provider: Optional[str] = Field( None, description='3rd party audio conferencing provider' ) class Status88(Enum): active = 'active' inactive = 'inactive' pending = 'pending' class CustomAttribute(BaseModel): key: Optional[str] = Field( None, description='Unique identifier of the custom attribute.' ) name: Optional[str] = Field(None, description='Name of the custom attribute.') value: Optional[str] = Field(None, description='Value of the custom attribute.') class User18(BaseModel): created_at: Optional[datetime] = Field( None, description="The time when user's account was created." ) custom_attributes: Optional[List[CustomAttribute]] = Field( None, description='Custom attributes. This field is only returned if users have been assigned custom attributes and if you provided `custom_attributes` as the value of `include_fields` query parameter in the API request.', ) dept: Optional[str] = Field( None, description='Department, if provided by the user.' ) email: str = Field(..., description="User's email address.") first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) group_ids: Optional[List[str]] = Field( None, description='IDs of groups where the user is a member.' ) host_key: Optional[str] = Field( None, description='The [host key](https://support.zoom.us/hc/en-us/articles/205172555-Using-your-host-key) of the user. This field is only returned if users have been assigned a host key and if you provided `host_key` as the value of `include_fields` query parameter in the API request.', ) id: Optional[str] = Field(None, description='User ID.') im_group_ids: Optional[List[str]] = Field( None, description='IDs of IM directory groups where the user is a member.' ) last_client_version: Optional[str] = Field( None, description='The last client version that user used to login.' ) last_login_time: Optional[datetime] = Field( None, description="User's last login time. There is a three-days buffer period for this field. For example, if user first logged in on 2020-01-01 and then logged out and logged in on 2020-01-02, the value of this field will still reflect the login time of 2020-01-01. However, if the user logs in on 2020-01-04, the value of this field will reflect the corresponding login time since it exceeds the three-day buffer period.", ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) plan_united_type: Optional[str] = Field( None, description='This field is returned if the user is enrolled in the [Zoom United](https://zoom.us/pricing/zoom-bundles) plan.', ) pmi: Optional[int] = Field(None, description='Personal meeting ID of the user.') role_id: Optional[str] = Field( None, description='Unique identifier of the [role](https://marketplace.zoom.us/docs/api-reference/zoom-api/roles/roles) assigned to the user.', ) status: Optional[str] = Field( None, description="User's status", examples=['active'] ) timezone: Optional[str] = Field(None, description='The time zone of the user.') type: int = Field( ..., description="User's plan type.<br>\n`1` - Basic.<br>\n`2` - Licensed.<br>\n`3` - On-prem.<br>\n`99` - None (this can only be set with `ssoCreate`).\n", examples=[1], ) verified: Optional[int] = Field( None, description="Display whether the user's email address for the Zoom account is verified or not. <br>\n`1` - Verified user email.<br>\n`0` - User's email not verified.", ) class UsersGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) users: Optional[List[User18]] = Field(None, description='List of user objects.') class User19(BaseModel): created_at: Optional[datetime] = Field( None, description="The time when user's account was created." ) custom_attributes: Optional[List[CustomAttribute]] = Field( None, description='Custom attributes. This field is only returned if users have been assigned custom attributes and if you provided `custom_attributes` as the value of `include_fields` query parameter in the API request.', ) dept: Optional[str] = Field( None, description='Department, if provided by the user.' ) email: str = Field(..., description="User's email address.") first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) group_ids: Optional[List[str]] = Field( None, description='IDs of groups where the user is a member.' ) host_key: Optional[str] = Field( None, description='The [host key](https://support.zoom.us/hc/en-us/articles/205172555-Using-your-host-key) of the user. This field is only returned if users have been assigned a host key and if you provided `host_key` as the value of `include_fields` query parameter in the API request.', ) id: Optional[str] = Field(None, description='User ID.') im_group_ids: Optional[List[str]] = Field( None, description='IDs of IM directory groups where the user is a member.' ) last_client_version: Optional[str] = Field( None, description='The last client version that user used to login.' ) last_login_time: Optional[datetime] = Field( None, description="User's last login time. There is a three-days buffer period for this field. For example, if user first logged in on 2020-01-01 and then logged out and logged in on 2020-01-02, the value of this field will still reflect the login time of 2020-01-01. However, if the user logs in on 2020-01-04, the value of this field will reflect the corresponding login time since it exceeds the three-day buffer period.", ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) plan_united_type: Optional[str] = Field( None, description='This field is returned if the user is enrolled in the [Zoom United](https://zoom.us/pricing/zoom-bundles) plan.', ) pmi: Optional[int] = Field(None, description='Personal meeting ID of the user.') role_id: Optional[str] = Field( None, description='Unique identifier of the [role](https://marketplace.zoom.us/docs/api-reference/zoom-api/roles/roles) assigned to the user.', ) status: Optional[str] = Field( None, description="User's status", examples=['active'] ) timezone: Optional[str] = Field(None, description='The time zone of the user.') type: int = Field( ..., description="User's plan type.<br>\n`1` - Basic.<br>\n`2` - Licensed.<br>\n`3` - On-prem.<br>\n`99` - None (this can only be set with `ssoCreate`).\n", examples=[1], ) verified: Optional[int] = Field( None, description="Display whether the user's email address for the Zoom account is verified or not. <br>\n`1` - Verified user email.<br>\n`0` - User's email not verified.", ) class UsersGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) users: Optional[List[User19]] = Field(None, description='List of user objects.') class Action52(Enum): create = 'create' autoCreate = 'autoCreate' custCreate = 'custCreate' ssoCreate = 'ssoCreate' class Type253(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_99 = 99 class UserInfo(BaseModel): email: constr(max_length=128) = Field(..., description='User email address.') first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name: cannot contain more than 5 Chinese words." ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name: cannot contain more than 5 Chinese words." ) password: Optional[SecretStr] = Field( None, description='User password. Only used for the "autoCreate" function. The password has to have a minimum of 8 characters and maximum of 32 characters. By default (basic requirement), password must have at least one letter (a, b, c..), at least one number (1, 2, 3...) and include both uppercase and lowercase letters. It should not contain only one identical character repeatedly (\'11111111\' or \'aaaaaaaa\') and it cannot contain consecutive characters (\'12345678\' or \'abcdefgh\').\n\n**Note:** If the account owner or admin has enabled [enhanced password requirements](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_fa9186e4-6818-4f7a-915c-2e25c19f0acd), the value provided in this field must meet those requirements. These requirements can be retrieved by calling the [Get Account Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) and referring to the `password_requirement` field present in the `security` object.', ) type: Type253 = Field( ..., description='User type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).', ) class UsersPostRequest(BaseModel): action: Action52 = Field( ..., description='Specify how to create the new user: <br>`create` - User will get an email sent from Zoom. There is a confirmation link in this email. The user will then need to use the link to activate their Zoom account. The user can then set or change their password.<br>`autoCreate` - This action is provided for the enterprise customer who has a managed domain. This feature is disabled by default because of the security risk involved in creating a user who does not belong to your domain.<br>`custCreate` - Users created via this option do not have passwords and will not have the ability to log into the Zoom Web Portal or the Zoom Client. These users can still host and join meetings using the `start_url` and `join_url` respectively. To use this option, you must contact the ISV Platform Sales team at isv@zoom.us.<br>`ssoCreate` - This action is provided for the enabled “Pre-provisioning SSO User” option. A user created in this way has no password. If not a basic user, a personal vanity URL using the user name (no domain) of the provisioning email will be generated. If the user name or PMI is invalid or occupied, it will use a random number or random personal vanity URL.', ) user_info: Optional[UserInfo] = None class UserInfo1(BaseModel): email: constr(max_length=128) = Field(..., description='User email address.') first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name: cannot contain more than 5 Chinese words." ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name: cannot contain more than 5 Chinese words." ) password: Optional[SecretStr] = Field( None, description='User password. Only used for the "autoCreate" function. The password has to have a minimum of 8 characters and maximum of 32 characters. By default (basic requirement), password must have at least one letter (a, b, c..), at least one number (1, 2, 3...) and include both uppercase and lowercase letters. It should not contain only one identical character repeatedly (\'11111111\' or \'aaaaaaaa\') and it cannot contain consecutive characters (\'12345678\' or \'abcdefgh\').\n\n**Note:** If the account owner or admin has enabled [enhanced password requirements](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_fa9186e4-6818-4f7a-915c-2e25c19f0acd), the value provided in this field must meet those requirements. These requirements can be retrieved by calling the [Get Account Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) and referring to the `password_requirement` field present in the `security` object.', ) type: Type253 = Field( ..., description='User type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).', ) class UsersPostRequest1(BaseModel): action: Action52 = Field( ..., description='Specify how to create the new user: <br>`create` - User will get an email sent from Zoom. There is a confirmation link in this email. The user will then need to use the link to activate their Zoom account. The user can then set or change their password.<br>`autoCreate` - This action is provided for the enterprise customer who has a managed domain. This feature is disabled by default because of the security risk involved in creating a user who does not belong to your domain.<br>`custCreate` - Users created via this option do not have passwords and will not have the ability to log into the Zoom Web Portal or the Zoom Client. These users can still host and join meetings using the `start_url` and `join_url` respectively. To use this option, you must contact the ISV Platform Sales team at isv@zoom.us.<br>`ssoCreate` - This action is provided for the enabled “Pre-provisioning SSO User” option. A user created in this way has no password. If not a basic user, a personal vanity URL using the user name (no domain) of the provisioning email will be generated. If the user name or PMI is invalid or occupied, it will use a random number or random personal vanity URL.', ) user_info: Optional[UserInfo1] = None class UsersPostResponse(BaseModel): email: Optional[str] = Field(None, description='User email address.') first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) id: Optional[str] = Field(None, description='User ID.') last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) type: Optional[Type253] = Field( None, description='User type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).\n', ) class UsersPostResponse1(BaseModel): email: Optional[str] = Field(None, description='User email address.') first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) id: Optional[str] = Field(None, description='User ID.') last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) type: Optional[Type253] = Field( None, description='User type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).\n', ) class UsersEmailGetResponse(BaseModel): existed_email: Optional[bool] = Field( None, description='Indicates whether or not the email already exists in Zoom.' ) class UsersMeZakGetResponse(BaseModel): token: Optional[str] = Field(None, description="The user's ZAK.") class UsersVanityNameGetResponse(BaseModel): existed: Optional[bool] = Field( None, description='If `true`, it indicates that the personal meeting room with the given name exists.<br> `false` - The room name does not exist.', ) class Action54(Enum): disassociate = 'disassociate' delete = 'delete' class LoginType(Enum): field_0 = '0' field_1 = '1' field_99 = '99' field_100 = '100' field_101 = '101' class LoginType1(Enum): integer_0 = 0 integer_1 = 1 integer_99 = 99 integer_100 = 100 integer_101 = 101 class PhoneNumbers1(BaseModel): code: Optional[str] = Field( None, description='Country code of the phone number. For example, for United States phone numbers, the value of this field should be "+1".', ) country: Optional[str] = Field( None, description='[Country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) of the phone number. For example, if the phone number provided in the `number` field is a Brazil based number, the value of the `country` field should be `BR`.', ) number: Optional[str] = Field(None, description='Phone number of the user.') verified: Optional[bool] = Field( None, description='Indicates whether the phone number has been verified by Zoom or not.', ) class Status90(Enum): pending = 'pending' active = 'active' inactive = 'inactive' class UsersUserIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='User ID.') created_at: Optional[datetime] = Field(None, description='User create time.') dept: Optional[str] = Field(None, description='Department.') email: str = Field(..., description="User's email address.") first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) last_client_version: Optional[str] = Field( None, description='User last login client version.' ) last_login_time: Optional[datetime] = Field( None, description='User last login time.' ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) pmi: Optional[int] = Field(None, description='Personal meeting ID.') role_name: Optional[str] = Field( None, description="User's [role](https://support.zoom.us/hc/en-us/articles/115001078646-Role-Based-Access-Control) name.", ) timezone: Optional[str] = Field(None, description='The time zone of the user.') type: Type253 = Field( ..., description="User's plan type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).", ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) account_id: Optional[str] = Field(None, description="User's account ID.") cms_user_id: Optional[str] = Field( None, description='CMS ID of user, only enabled for Kaltura integration.' ) company: Optional[str] = Field(None, description="User's company.") custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) that have been assigned to the user.' ) group_ids: Optional[List[str]] = Field( None, description='IDs of the web groups user belongs to. ' ) host_key: Optional[str] = Field(None, description="User's host key.") im_group_ids: Optional[List[str]] = Field( None, description='IM IDs of the groups user belongs to.' ) jid: Optional[str] = None job_title: Optional[str] = Field(None, description="User's job title.") language: Optional[str] = Field( None, description='Default language for the Zoom Web Portal.' ) location: Optional[str] = Field(None, description="User's location.") login_type: Optional[LoginType1] = Field( None, description='Login type. \n\n`0` : Facebook\n\n`1` : Google\n\n`99` : API\n\n`100` : ZOOM\n\n`101` : SSO', ) manager: Optional[EmailStr] = Field(None, description='The manager for the user.') personal_meeting_url: Optional[str] = Field( None, description="User's personal meeting url." ) phone_country: Optional[str] = Field( None, description="**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead of this field. <br> User's country for Company Phone Number.", ) phone_number: Optional[str] = Field( None, description="**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead of this field. <br> User's phone number.", ) phone_numbers: Optional[PhoneNumbers1] = None pic_url: Optional[str] = Field( None, description="The URL for user's profile picture." ) plan_united_type: Optional[str] = Field( None, description='United plan [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-united-plans). Only returned if user is enrolled in the Zoom United plan.', ) role_id: Optional[str] = Field( None, description='Unique identifier of the [role](https://marketplace.zoom.us/docs/api-reference/zoom-api/roles/roles) assigned to the user.', ) status: Optional[Status90] = Field(None, description="Status of user's account.") vanity_url: Optional[str] = Field( None, description='Personal meeting room URL, if the user has one.' ) verified: Optional[int] = Field( None, description='Displays whether user is verified or not. <br>\n`1` - Account verified.<br>\n`0` - Account not verified.', ) class UsersUserIdGetResponse1(BaseModel): id: Optional[str] = Field(None, description='User ID.') created_at: Optional[datetime] = Field(None, description='User create time.') dept: Optional[str] = Field(None, description='Department.') email: str = Field(..., description="User's email address.") first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name." ) last_client_version: Optional[str] = Field( None, description='User last login client version.' ) last_login_time: Optional[datetime] = Field( None, description='User last login time.' ) last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name." ) pmi: Optional[int] = Field(None, description='Personal meeting ID.') role_name: Optional[str] = Field( None, description="User's [role](https://support.zoom.us/hc/en-us/articles/115001078646-Role-Based-Access-Control) name.", ) timezone: Optional[str] = Field(None, description='The time zone of the user.') type: Type253 = Field( ..., description="User's plan type:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).", ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) account_id: Optional[str] = Field(None, description="User's account ID.") cms_user_id: Optional[str] = Field( None, description='CMS ID of user, only enabled for Kaltura integration.' ) company: Optional[str] = Field(None, description="User's company.") custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) that have been assigned to the user.' ) group_ids: Optional[List[str]] = Field( None, description='IDs of the web groups user belongs to. ' ) host_key: Optional[str] = Field(None, description="User's host key.") im_group_ids: Optional[List[str]] = Field( None, description='IM IDs of the groups user belongs to.' ) jid: Optional[str] = None job_title: Optional[str] = Field(None, description="User's job title.") language: Optional[str] = Field( None, description='Default language for the Zoom Web Portal.' ) location: Optional[str] = Field(None, description="User's location.") login_type: Optional[LoginType1] = Field( None, description='Login type. \n\n`0` : Facebook\n\n`1` : Google\n\n`99` : API\n\n`100` : ZOOM\n\n`101` : SSO', ) manager: Optional[EmailStr] = Field(None, description='The manager for the user.') personal_meeting_url: Optional[str] = Field( None, description="User's personal meeting url." ) phone_country: Optional[str] = Field( None, description="**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead of this field. <br> User's country for Company Phone Number.", ) phone_number: Optional[str] = Field( None, description="**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead of this field. <br> User's phone number.", ) phone_numbers: Optional[PhoneNumbers1] = None pic_url: Optional[str] = Field( None, description="The URL for user's profile picture." ) plan_united_type: Optional[str] = Field( None, description='United plan [type](https://marketplace.zoom.us/docs/api-reference/other-references/plans#zoom-united-plans). Only returned if user is enrolled in the Zoom United plan.', ) role_id: Optional[str] = Field( None, description='Unique identifier of the [role](https://marketplace.zoom.us/docs/api-reference/zoom-api/roles/roles) assigned to the user.', ) status: Optional[Status90] = Field(None, description="Status of user's account.") vanity_url: Optional[str] = Field( None, description='Personal meeting room URL, if the user has one.' ) verified: Optional[int] = Field( None, description='Displays whether user is verified or not. <br>\n`1` - Account verified.<br>\n`0` - Account not verified.', ) class LoginType3(Enum): field_0 = '0' field_1 = '1' field_99 = '99' field_100 = '100' field_101 = '101' class PhoneNumbers3(BaseModel): code: Optional[str] = Field( None, description='Country code of the phone number. For example, for United States phone numbers, the value of this field should be "+1".', ) country: Optional[str] = Field( None, description='[Country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) of the phone number. For example, if the phone number provided in the `number` field is a Brazil based number, the value of the `country` field should be `BR`.', ) number: Optional[str] = Field(None, description='Phone number of the user.') class UsersUserIdPatchRequest(BaseModel): cms_user_id: Optional[str] = Field(None, description='Kaltura user ID.') company: Optional[constr(max_length=255)] = Field( None, description="User's company." ) custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) of the user.' ) dept: Optional[str] = Field( None, description='Department for user profile: use for report.' ) first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name. Cannot contain more than 5 Chinese characters.", ) group_id: Optional[str] = Field( None, description='Provide unique identifier of the group that you would like to add a [pending user](https://support.zoom.us/hc/en-us/articles/201363183-Managing-users#h_13c87a2a-ecd6-40ad-be61-a9935e660edb) to. The value of this field can be retrieved from [List Groups](https://marketplace.zoom.us/docs/api-reference/zoom-api/groups/groups) API.', ) host_key: Optional[constr(min_length=6, max_length=10)] = Field( None, description='Host key. It should be a 6-10 digit number.' ) job_title: Optional[constr(max_length=128)] = Field( None, description="User's job title." ) language: Optional[str] = Field(None, description='language') last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name. Cannot contain more than 5 Chinese characters.", ) location: Optional[constr(max_length=256)] = Field( None, description="User's location." ) manager: Optional[EmailStr] = Field(None, description='The manager for the user.') phone_country: Optional[str] = Field( None, description='**Note:** This field has been **deprecated** and will not be supported in the future. Use the **country** field of the **phone_numbers** object instead to select the country for the phone number.\n\n\n\n[Country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) of the phone number. For example, if the phone number provided in the `phone_number` field is a Brazil based number, the value of the `phone_country` field should be `BR`.', ) phone_number: Optional[str] = Field( None, description='**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead to assign phone number(s) to a user.\n\n\nPhone number of the user. To update a phone number, you must also provide the `phone_country` field.', ) phone_numbers: Optional[PhoneNumbers3] = None pmi: Optional[int] = Field( None, description='Personal meeting ID: length must be 10.' ) timezone: Optional[str] = Field( None, description='The time zone ID for a user profile. For this parameter value please refer to the ID value in the [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list.', ) type: Optional[Type253] = Field( None, description='User types:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).', ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) vanity_name: Optional[str] = Field(None, description='Personal meeting room name.') class UsersUserIdPatchRequest1(BaseModel): cms_user_id: Optional[str] = Field(None, description='Kaltura user ID.') company: Optional[constr(max_length=255)] = Field( None, description="User's company." ) custom_attributes: Optional[CustomAttributes] = Field( None, description='Custom attribute(s) of the user.' ) dept: Optional[str] = Field( None, description='Department for user profile: use for report.' ) first_name: Optional[constr(max_length=64)] = Field( None, description="User's first name. Cannot contain more than 5 Chinese characters.", ) group_id: Optional[str] = Field( None, description='Provide unique identifier of the group that you would like to add a [pending user](https://support.zoom.us/hc/en-us/articles/201363183-Managing-users#h_13c87a2a-ecd6-40ad-be61-a9935e660edb) to. The value of this field can be retrieved from [List Groups](https://marketplace.zoom.us/docs/api-reference/zoom-api/groups/groups) API.', ) host_key: Optional[constr(min_length=6, max_length=10)] = Field( None, description='Host key. It should be a 6-10 digit number.' ) job_title: Optional[constr(max_length=128)] = Field( None, description="User's job title." ) language: Optional[str] = Field(None, description='language') last_name: Optional[constr(max_length=64)] = Field( None, description="User's last name. Cannot contain more than 5 Chinese characters.", ) location: Optional[constr(max_length=256)] = Field( None, description="User's location." ) manager: Optional[EmailStr] = Field(None, description='The manager for the user.') phone_country: Optional[str] = Field( None, description='**Note:** This field has been **deprecated** and will not be supported in the future. Use the **country** field of the **phone_numbers** object instead to select the country for the phone number.\n\n\n\n[Country ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) of the phone number. For example, if the phone number provided in the `phone_number` field is a Brazil based number, the value of the `phone_country` field should be `BR`.', ) phone_number: Optional[str] = Field( None, description='**Note:** This field has been **deprecated** and will not be supported in the future. Use the **phone_numbers** field instead to assign phone number(s) to a user.\n\n\nPhone number of the user. To update a phone number, you must also provide the `phone_country` field.', ) phone_numbers: Optional[PhoneNumbers3] = None pmi: Optional[int] = Field( None, description='Personal meeting ID: length must be 10.' ) timezone: Optional[str] = Field( None, description='The time zone ID for a user profile. For this parameter value please refer to the ID value in the [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list.', ) type: Optional[Type253] = Field( None, description='User types:<br>`1` - Basic.<br>`2` - Licensed.<br>`3` - On-prem.<br>`99` - None (this can only be set with `ssoCreate`).', ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID for instant meetings.' ) vanity_name: Optional[str] = Field(None, description='Personal meeting room name.') class UsersUserIdAssistantsGetResponse(BaseModel): assistants: Optional[List[Assistant]] = Field( None, description="List of User's assistants.", le=30 ) class UsersUserIdAssistantsGetResponse1(BaseModel): assistants: Optional[List[Assistant]] = Field( None, description="List of User's assistants.", le=30 ) class UsersUserIdAssistantsPostRequest(BaseModel): assistants: Optional[List[Assistant]] = Field( None, description="List of User's assistants.", le=30 ) class UsersUserIdAssistantsPostRequest1(BaseModel): assistants: Optional[List[Assistant]] = Field( None, description="List of User's assistants.", le=30 ) class UsersUserIdAssistantsPostResponse(BaseModel): add_at: Optional[datetime] = None ids: Optional[str] = Field(None, description='User ID.') class UsersUserIdEmailPutRequest(BaseModel): email: EmailStr = Field( ..., description='User’s email. The length should be less than 128 characters.' ) class Template2(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the template.') name: Optional[str] = Field(None, description='Name of the template.') type: Optional[int] = Field( None, description='Type of the template. The value of this field can be one of the following:<br>\n`1`: meeting template <br>\n`2`: admin meeting template', ) class UsersUserIdMeetingTemplatesGetResponse(BaseModel): templates: Optional[List[Template2]] = None total_records: Optional[int] = Field( None, description='Total records found for this request.' ) class UsersUserIdMeetingTemplatesGetResponse1(BaseModel): templates: Optional[List[Template2]] = None total_records: Optional[int] = Field( None, description='Total records found for this request.' ) class Type261(Enum): scheduled = 'scheduled' live = 'live' upcoming = 'upcoming' class Type262(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class Meeting16(BaseModel): agenda: Optional[str] = Field( None, description='Meeting description. The length of agenda gets truncated to 250 characters when you list all meetings for a user. To view the complete agenda of a meeting, retrieve details for a single meeting [here](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting).', ) created_at: Optional[datetime] = Field(None, description='Time of creation. ') duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user who is set as the host of the meeting.' ) id: Optional[int] = Field( None, description='Meeting ID - also known as the meeting number in long (int64) format.', ) join_url: Optional[str] = Field( None, description='URL using which participants can join a meeting.' ) pmi: Optional[str] = Field( None, description='[Personal meeting ID](https://support.zoom.us/hc/en-us/articles/201362843-What-is-Personal-Meeting-ID-PMI-and-Personal-Link-). This field is only returned if PMI was used to schedule the meeting.', ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') timezone: Optional[str] = Field( None, description='Timezone to format the meeting start time. ' ) topic: Optional[str] = Field(None, description='Meeting topic.') type: Optional[Type262] = Field( None, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting ID. Each meeting instance will generate its own Meeting UUID.', ) class UsersUserIdMeetingsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) meetings: Optional[List[Meeting16]] = Field( None, description='List of Meeting objects.' ) class Meeting17(BaseModel): agenda: Optional[str] = Field( None, description='Meeting description. The length of agenda gets truncated to 250 characters when you list all meetings for a user. To view the complete agenda of a meeting, retrieve details for a single meeting [here](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting).', ) created_at: Optional[datetime] = Field(None, description='Time of creation. ') duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user who is set as the host of the meeting.' ) id: Optional[int] = Field( None, description='Meeting ID - also known as the meeting number in long (int64) format.', ) join_url: Optional[str] = Field( None, description='URL using which participants can join a meeting.' ) pmi: Optional[str] = Field( None, description='[Personal meeting ID](https://support.zoom.us/hc/en-us/articles/201362843-What-is-Personal-Meeting-ID-PMI-and-Personal-Link-). This field is only returned if PMI was used to schedule the meeting.', ) start_time: Optional[datetime] = Field(None, description='Meeting start time.') timezone: Optional[str] = Field( None, description='Timezone to format the meeting start time. ' ) topic: Optional[str] = Field(None, description='Meeting topic.') type: Optional[Type262] = Field( None, description='Meeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting ID. Each meeting instance will generate its own Meeting UUID.', ) class UsersUserIdMeetingsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='The page number of the current results.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) meetings: Optional[List[Meeting17]] = Field( None, description='List of Meeting objects.' ) class Type264(Enum): scheduled = 'scheduled' live = 'live' upcoming = 'upcoming' class Type265(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence18(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type265 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class Method16(Enum): approve = 'approve' deny = 'deny' class ApprovedOrDeniedCountriesOrRegions12(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method16] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class Room14(BaseModel): name: Optional[str] = Field(None, description='Name of the breakout room.') participants: Optional[List[str]] = Field( None, description='Email addresses of the participants who are to be assigned to the breakout room.', ) class BreakoutRoom12(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room14]] = Field(None, description='Create room(s).') class LanguageInterpretation12(BaseModel): enable: Optional[bool] = Field( None, description='Indicate whether or not you would like to enable [language interpretation](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars#h_01EGGQFD3Q4BST3378SA762MJ1) for this meeting.', ) interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings31(BaseModel): additional_data_center_regions: Optional[List[str]] = Field( None, description='Enable additional [data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) for this meeting. Provide the value in the form of array of country code(s) for the countries which are available as data center regions in the [account settings](https://zoom.us/account/setting) but have been opt out of in the user settings. For instance, let\'s say that in your account settings, the data center regions that have been selected are Europe, Honkong, Australia, India, Latin America, Japan, China, United States,and Canada. The complete list of available data center regions for your account is: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]. In [user settings](https://zoom.us/profile/setting), you have opted out of India(IN) and Japan(TY) for meeting and webinar traffic routing. If you would like, you can still include India and Japan as additional data centers for this meeting using this field. To include India and Japan as additional data center regions, you would provide ["IN", "TY"] as the value.', ) allow_multiple_devices: Optional[bool] = Field( None, description='If set to `true`, attendees will be allowed to join a meeting from multiple devices.\n\n**Note:** This setting is only applied for meetings that have enabled registration.', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values separated by a comma.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions12 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the meeting. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a meeting with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom12] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. This field can only used for scheduled or recurring meetings.\n\n**Note:** If waiting room is enabled, the **join before host** setting will be disabled.', ) language_interpretation: Optional[LanguageInterpretation12] = Field( None, description="Language interpretation [settings](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars#h_01EGGQFD3Q4BST3378SA762MJ1) for meetings. \n\n**Note:** This feature is only available on certain Webinar add-on, Education, Business and higher plans. If this feature is not enabled on the host's account, this setting will not be applied for the meeting.", ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='If set to `true`, the registration page for the meeting will include social share buttons.\n\n**Note:** This setting is only applied for meetings that have enabled registration.', ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID instead of an automatically generated meeting ID. It can only be used for scheduled meetings, instant meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field( None, description='Enable waiting room. Note that if the value of this field is set to `true`, it will override and disable the `join_before_host` setting.', ) watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField28(BaseModel): field: str = Field(..., description='Label of the tracking field.') value: Optional[str] = Field(None, description='Tracking fields value') class Type266(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class UsersUserIdMeetingsPostRequest(BaseModel): agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Passcode to join the meeting. By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence18] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) schedule_for: Optional[str] = Field( None, description='If you would like to schedule this meeting for someone else in your account, provide the Zoom user id or email address of the user here.', ) settings: Optional[Settings31] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`. Example: "2020-03-31T12:02:00Z"\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the **admin meeting template**. To create admin meeting templates, contact the Zoom support team.\n\nUse this field if you would like to [schedule the meeting from a admin meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/listmeetingtemplates) API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField28]] = Field( None, description='Tracking fields' ) type: Optional[Type266] = Field( 2, description='Meeting Type:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) class Type267(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence19(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type267 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions13(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method16] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom13(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room14]] = Field(None, description='Create room(s).') class LanguageInterpretation13(BaseModel): enable: Optional[bool] = Field( None, description='Indicate whether or not you would like to enable [language interpretation](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars#h_01EGGQFD3Q4BST3378SA762MJ1) for this meeting.', ) interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings32(BaseModel): additional_data_center_regions: Optional[List[str]] = Field( None, description='Enable additional [data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) for this meeting. Provide the value in the form of array of country code(s) for the countries which are available as data center regions in the [account settings](https://zoom.us/account/setting) but have been opt out of in the user settings. For instance, let\'s say that in your account settings, the data center regions that have been selected are Europe, Honkong, Australia, India, Latin America, Japan, China, United States,and Canada. The complete list of available data center regions for your account is: ["EU", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]. In [user settings](https://zoom.us/profile/setting), you have opted out of India(IN) and Japan(TY) for meeting and webinar traffic routing. If you would like, you can still include India and Japan as additional data centers for this meeting using this field. To include India and Japan as additional data center regions, you would provide ["IN", "TY"] as the value.', ) allow_multiple_devices: Optional[bool] = Field( None, description='If set to `true`, attendees will be allowed to join a meeting from multiple devices.\n\n**Note:** This setting is only applied for meetings that have enabled registration.', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values separated by a comma.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions13 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the meeting. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a meeting with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom13] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. This field can only used for scheduled or recurring meetings.\n\n**Note:** If waiting room is enabled, the **join before host** setting will be disabled.', ) language_interpretation: Optional[LanguageInterpretation13] = Field( None, description="Language interpretation [settings](https://support.zoom.us/hc/en-us/articles/360034919791-Language-interpretation-in-meetings-and-webinars#h_01EGGQFD3Q4BST3378SA762MJ1) for meetings. \n\n**Note:** This feature is only available on certain Webinar add-on, Education, Business and higher plans. If this feature is not enabled on the host's account, this setting will not be applied for the meeting.", ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='If set to `true`, the registration page for the meeting will include social share buttons.\n\n**Note:** This setting is only applied for meetings that have enabled registration.', ) use_pmi: Optional[bool] = Field( False, description='Use Personal Meeting ID instead of an automatically generated meeting ID. It can only be used for scheduled meetings, instant meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field( None, description='Enable waiting room. Note that if the value of this field is set to `true`, it will override and disable the `join_before_host` setting.', ) watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type268(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class UsersUserIdMeetingsPostRequest1(BaseModel): agenda: Optional[constr(max_length=2000)] = Field( None, description='Meeting description.' ) duration: Optional[int] = Field( None, description='Meeting duration (minutes). Used for scheduled meetings only.', ) password: Optional[constr(max_length=10)] = Field( None, description='Passcode to join the meeting. By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ *] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. ', ) recurrence: Optional[Recurrence19] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) schedule_for: Optional[str] = Field( None, description='If you would like to schedule this meeting for someone else in your account, provide the Zoom user id or email address of the user here.', ) settings: Optional[Settings32] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`. Example: "2020-03-31T12:02:00Z"\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the **admin meeting template**. To create admin meeting templates, contact the Zoom support team.\n\nUse this field if you would like to [schedule the meeting from a admin meeting template](https://support.zoom.us/hc/en-us/articles/360036559151-Meeting-templates#h_86f06cff-0852-4998-81c5-c83663c176fb). You can retrieve the value of this field by calling the [List meeting templates](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/listmeetingtemplates) API.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Meeting topic.') tracking_fields: Optional[List[TrackingField28]] = Field( None, description='Tracking fields' ) type: Optional[Type268] = Field( 2, description='Meeting Type:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) class Type269(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence20(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type269 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions14(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method16] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom14(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room14]] = Field(None, description='Create room(s).') class Type270(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber12(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type270] = Field(None, description='Type of number. ') class LanguageInterpretation14(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings33(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions14 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom14] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber12]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation14] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class TrackingField30(BaseModel): field: Optional[str] = Field(None, description='Label of the tracking field.') value: Optional[str] = Field(None, description='Value for the field.') visible: Optional[bool] = Field( None, description='Indicates whether the [tracking field](https://support.zoom.us/hc/en-us/articles/115000293426-Scheduling-Tracking-Fields) is visible in the meeting scheduling options in the Zoom Web Portal or not.\n\n`true`: Tracking field is visible. <br>\n\n`false`: Tracking field is not visible to the users in the meeting options in the Zoom Web Portal but the field was used while scheduling this meeting via API. An invisible tracking field can be used by users while scheduling meetings via API only. ', ) class Type271(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class UsersUserIdMeetingsPostResponse(BaseModel): assistant_id: Optional[str] = Field( None, description='Unique identifier of the scheduler who scheduled this meeting on behalf of the host. This field is only returned if you used "schedule_for" option in the [Create a Meeting API request](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate).', ) host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) registration_url: Optional[str] = Field( None, description='URL using which registrants can register for a meeting. This field is only returned for meetings that have enabled registration.', ) agenda: Optional[str] = Field(None, description='Agenda') created_at: Optional[datetime] = Field( None, description='The date and time at which this meeting was created.' ) duration: Optional[int] = Field(None, description='Meeting duration.') h323_password: Optional[str] = Field( None, description='H.323/SIP room system password' ) join_url: Optional[str] = Field( None, description='URL for participants to join the meeting. This URL should only be shared with users that you would like to invite for the meeting.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[str] = Field( None, description='Meeting password. Password may only contain the following characters: `[a-z A-Z 0-9 @ - _ * !]`\n\nIf "Require a password when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the password field will be autogenerated in the response even if it is not provided in the API request. \n\n\n', ) pmi: Optional[int] = Field( None, description='Personal Meeting Id. Only used for scheduled meetings and recurring meetings with no fixed time.', ) recurrence: Optional[Recurrence20] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings33] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start date-time in UTC/GMT. Example: "2020-03-31T12:02:00Z"', ) start_url: Optional[str] = Field( None, description='URL to start the meeting. This URL should only be used by the host of the meeting and **should not be shared with anyone other than the host** of the meeting as anyone with this URL will be able to login to the Zoom Client as the host of the meeting.', ) timezone: Optional[str] = Field(None, description='Timezone to format start_time') topic: Optional[constr(max_length=200)] = Field(None, description='Meeting topic') tracking_fields: Optional[List[TrackingField30]] = Field( None, description='Tracking fields' ) type: Optional[Type271] = Field(2, description='Meeting Type') class Type272(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence21(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type272 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class ApprovedOrDeniedCountriesOrRegions15(BaseModel): approved_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can join this meeting. ', ) denied_list: Optional[List[str]] = Field( None, description='List of countries/regions from where participants can not join this meeting. ', ) enable: Optional[bool] = Field( None, description='`true`: Setting enabled to either allow users or block users from specific regions to join your meetings. <br>\n\n`false`: Setting disabled.', ) method: Optional[Method16] = Field( None, description='Specify whether to allow users from specific regions to join this meeting; or block users from specific regions from joining this meeting. <br><br>\n`approve`: Allow users from specific regions/countries to join this meeting. If this setting is selected, the approved regions/countries must be included in the `approved_list`.<br><br>\n`deny`: Block users from specific regions/countries from joining this meeting. If this setting is selected, the approved regions/countries must be included in the `denied_list`', ) class BreakoutRoom15(BaseModel): enable: Optional[bool] = Field( None, description='Set the value of this field to `true` if you would like to enable the [breakout room pre-assign](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4) option.', ) rooms: Optional[List[Room14]] = Field(None, description='Create room(s).') class Type273(Enum): toll = 'toll' tollfree = 'tollfree' class GlobalDialInNumber13(BaseModel): city: Optional[str] = Field( None, description='City of the number, if any. For example, Chicago.' ) country: Optional[str] = Field(None, description='Country code. For example, BR.') country_name: Optional[str] = Field( None, description='Full name of country. For example, Brazil.' ) number: Optional[str] = Field( None, description='Phone number. For example, +1 2332357613.' ) type: Optional[Type273] = Field(None, description='Type of number. ') class LanguageInterpretation15(BaseModel): enable: Optional[bool] = None interpreters: Optional[List[Interpreter]] = Field( None, description='Information associated with the interpreter.' ) class Settings34(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join the meeting from multiple devices. This setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) alternative_hosts: Optional[str] = Field( None, description="Alternative host's emails or IDs: multiple values are separated by a semicolon.", ) alternative_hosts_email_notification: Optional[bool] = Field( True, description='Flag to determine whether to send email notifications to alternative hosts, default value is true.', ) approval_type: Optional[ApprovalType] = Field( 2, description='Enable registration and set approval for the registration. Note that this feature requires the host to be of **Licensed** user type. **Registration cannot be enabled for a basic user.** <br><br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) approved_or_denied_countries_or_regions: Optional[ ApprovedOrDeniedCountriesOrRegions15 ] = Field( None, description='Approve or block users from specific regions/countries from joining this meeting. \n', ) audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.<br>`both` - Both Telephony and VoIP.<br>`telephony` - Telephony only.<br>`voip` - VoIP only.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_exception: Optional[List[AuthenticationExceptionItem]] = Field( None, description='The participants added here will receive unique meeting invite links and bypass authentication.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Meeting authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) breakout_room: Optional[BreakoutRoom15] = Field( None, description='Setting to [pre-assign breakout rooms](https://support.zoom.us/hc/en-us/articles/360032752671-Pre-assigning-participants-to-breakout-rooms#h_36f71353-4190-48a2-b999-ca129861c1f4).', ) close_registration: Optional[bool] = Field( False, description='Close registration after event date' ) cn_meeting: Optional[bool] = Field(False, description='Host meeting in China.') contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) custom_keys: Optional[List[CustomKey26]] = Field( None, description='Custom keys and values assigned to the meeting.', max_length=10, ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the meeting.', ) global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber13]] = Field( None, description='Global Dial-in Countries/Regions' ) host_video: Optional[bool] = Field( None, description='Start video when the host joins the meeting.' ) in_meeting: Optional[bool] = Field(False, description='Host meeting in India.') jbh_time: Optional[JbhTime] = Field( None, description='If the value of "join_before_host" field is set to true, this field can be used to indicate time limits within which a participant may join a meeting before a host. The value of this field can be one of the following:\n\n* `0`: Allow participant to join anytime.\n* `5`: Allow participant to join 5 minutes before meeting start time.\n * `10`: Allow participant to join 10 minutes before meeting start time.', ) join_before_host: Optional[bool] = Field( False, description='Allow participants to join the meeting before the host starts the meeting. Only used for scheduled or recurring meetings.', ) language_interpretation: Optional[LanguageInterpretation15] = None meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join meetings.' ) mute_upon_entry: Optional[bool] = Field( False, description='Mute participants upon entry.' ) participant_video: Optional[bool] = Field( None, description='Start video when participants join the meeting.' ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants upon successful registration.', ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration type. Used for recurring meeting with fixed time only. <br>`1` Attendees register once and can attend any of the occurrences.<br>`2` Attendees need to register for each occurrence to attend.<br>`3` Attendees register once and can choose one or more occurrences to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the meeting registration page.\nThis setting only works for meetings that require [registration](https://support.zoom.us/hc/en-us/articles/211579443-Setting-up-registration-for-a-meeting).', ) use_pmi: Optional[bool] = Field( False, description='Use a personal meeting ID. Only used for scheduled meetings and recurring meetings with no fixed time.', ) waiting_room: Optional[bool] = Field(False, description='Enable waiting room') watermark: Optional[bool] = Field( False, description='Add watermark when viewing a shared screen.' ) class Type274(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_8 = 8 class UsersUserIdMeetingsPostResponse1(BaseModel): assistant_id: Optional[str] = Field( None, description='Unique identifier of the scheduler who scheduled this meeting on behalf of the host. This field is only returned if you used "schedule_for" option in the [Create a Meeting API request](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate).', ) host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) id: Optional[int] = Field( None, description='[Meeting ID](https://support.zoom.us/hc/en-us/articles/201362373-What-is-a-Meeting-ID-): Unique identifier of the meeting in "**long**" format(represented as int64 data type in JSON), also known as the meeting number.', ) registration_url: Optional[str] = Field( None, description='URL using which registrants can register for a meeting. This field is only returned for meetings that have enabled registration.', ) agenda: Optional[str] = Field(None, description='Agenda') created_at: Optional[datetime] = Field( None, description='The date and time at which this meeting was created.' ) duration: Optional[int] = Field(None, description='Meeting duration.') h323_password: Optional[str] = Field( None, description='H.323/SIP room system password' ) join_url: Optional[str] = Field( None, description='URL for participants to join the meeting. This URL should only be shared with users that you would like to invite for the meeting.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[str] = Field( None, description='Meeting password. Password may only contain the following characters: `[a-z A-Z 0-9 @ - _ * !]`\n\nIf "Require a password when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the password field will be autogenerated in the response even if it is not provided in the API request. \n\n\n', ) pmi: Optional[int] = Field( None, description='Personal Meeting Id. Only used for scheduled meetings and recurring meetings with no fixed time.', ) recurrence: Optional[Recurrence21] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings34] = Field(None, description='Meeting settings.') start_time: Optional[datetime] = Field( None, description='Meeting start date-time in UTC/GMT. Example: "2020-03-31T12:02:00Z"', ) start_url: Optional[str] = Field( None, description='URL to start the meeting. This URL should only be used by the host of the meeting and **should not be shared with anyone other than the host** of the meeting as anyone with this URL will be able to login to the Zoom Client as the host of the meeting.', ) timezone: Optional[str] = Field(None, description='Timezone to format start_time') topic: Optional[constr(max_length=200)] = Field(None, description='Meeting topic') tracking_fields: Optional[List[TrackingField30]] = Field( None, description='Tracking fields' ) type: Optional[Type274] = Field(2, description='Meeting Type') class GlobalDialInNumber14(BaseModel): country: Optional[str] = Field(None, description='Country code.') number: Optional[str] = Field( None, description='Dial-in number: length is less than 16.' ) class PacAccount(BaseModel): conference_id: Optional[int] = Field(None, description='Conference ID.') dedicated_dial_in_number: Optional[List[DedicatedDialInNumberItem]] = Field( None, description='List of dedicated dial-in numbers.' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber14]] = Field( None, description='List of global dial-in numbers.' ) listen_only_password: Optional[constr(max_length=6)] = Field( None, description='Listen-Only password: numeric value - length is less than 6.' ) participant_password: Optional[constr(min_length=1, max_length=6)] = Field( None, description='Participant password: numeric value - length is less than 6.' ) class UsersUserIdPacGetResponse(BaseModel): pac_accounts: Optional[List[PacAccount]] = None class PacAccount1(BaseModel): conference_id: Optional[int] = Field(None, description='Conference ID.') dedicated_dial_in_number: Optional[List[DedicatedDialInNumberItem]] = Field( None, description='List of dedicated dial-in numbers.' ) global_dial_in_numbers: Optional[List[GlobalDialInNumber14]] = Field( None, description='List of global dial-in numbers.' ) listen_only_password: Optional[constr(max_length=6)] = Field( None, description='Listen-Only password: numeric value - length is less than 6.' ) participant_password: Optional[constr(min_length=1, max_length=6)] = Field( None, description='Participant password: numeric value - length is less than 6.' ) class UsersUserIdPacGetResponse1(BaseModel): pac_accounts: Optional[List[PacAccount1]] = None class UsersUserIdPasswordPutRequest(BaseModel): password: str = Field( ..., description='User password. Should be less than 32 characters.\n\n**Note:** If the account owner or admin has enabled [enhanced password requirements](https://support.zoom.us/hc/en-us/articles/360034675592-Advanced-security-settings#h_fa9186e4-6818-4f7a-915c-2e25c19f0acd), the value provided in this field must meet those requirements. These requirements can be retrieved by calling the [Get Account Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) and referring to the `password_requirement` field present in the `security` object.', ) class UsersUserIdPermissionsGetResponse(BaseModel): permissions: Optional[List[str]] = Field( None, description='List of user permissions.' ) class UsersUserIdPicturePostRequest(BaseModel): pic_file: bytes = Field(..., description="The file's path. ") class Status92(Enum): Do_No_Disturb = 'Do_No_Disturb' Away = 'Away' Available = 'Available' class UsersUserIdPresenceStatusPutRequest(BaseModel): duration: Optional[conint(ge=20, le=1440)] = Field( None, description="If you're updating the status to `Do_Not_Disturb`, specify a duration in minutes for which the status should remain as `Do_Not_Disturb`. \n\nThe default value is 20 minutes and the maximum allowed value is 1440 minutes.", ) status: Optional[Status92] = Field( None, description='Presence status of the user. The value can be set to one of the following:<br>\n* `Away`\n* `Do_Not_Disturb`\n* `Available`\n\nUsers who are on Zoom Client with a version **lower than 5.3.0** can update the status from:\n* `Away` to `Do_Not_Disturb` \n* `Available` to `Do-Not_Disturb`\n\nUsers who are on **Zoom Client 5.3.0** or higher can update the status from:\n* `Do_Not_Disturb` to `Away`\n* `Do_Not_Disturb` to `Available`\n* `Available` to `Away`\n* `Away` to `Available`', ) class UsersUserIdPresenceStatusPutRequest1(BaseModel): duration: Optional[conint(ge=20, le=1440)] = Field( None, description="If you're updating the status to `Do_Not_Disturb`, specify a duration in minutes for which the status should remain as `Do_Not_Disturb`. \n\nThe default value is 20 minutes and the maximum allowed value is 1440 minutes.", ) status: Optional[Status92] = Field( None, description='Presence status of the user. The value can be set to one of the following:<br>\n* `Away`\n* `Do_Not_Disturb`\n* `Available`\n\nUsers who are on Zoom Client with a version **lower than 5.3.0** can update the status from:\n* `Away` to `Do_Not_Disturb` \n* `Available` to `Do-Not_Disturb`\n\nUsers who are on **Zoom Client 5.3.0** or higher can update the status from:\n* `Do_Not_Disturb` to `Away`\n* `Do_Not_Disturb` to `Available`\n* `Available` to `Away`\n* `Away` to `Available`', ) class Status94(Enum): completed = 'completed' class RecordingFile7(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status94] = Field(None, description='The recording status.') class Meeting18(BaseModel): account_id: Optional[str] = Field( None, description='Unique Identifier of the user account.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user set as host of meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - also known as the meeting number.' ) recording_count: Optional[str] = Field( None, description='Number of recording files returned in the response of this API call.', ) start_time: Optional[datetime] = Field( None, description='The time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[str] = Field(None, description='Total size of the recording.') type: Optional[str] = Field( None, description='Type of the meeting that was recorded.\n\nMeeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting Identifier. Each instance of the meeting will have its own UUID.', ) recording_files: Optional[List[RecordingFile7]] = Field( None, description='List of recording file.', title='Recording file List' ) class UsersUserIdRecordingsGetResponse(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start Date.') to: Optional[date_aliased] = Field(None, description='End Date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting18]] = Field( None, description='List of recordings.', title='Recording List' ) class RecordingFile8(BaseModel): deleted_time: Optional[str] = Field( None, description='The time at which recording was deleted. Returned in the response only for trash query.', ) download_url: Optional[str] = Field( None, description="The URL using which the recording file can be downloaded. **To access a private or password protected cloud recording of a user in your account, you can use a [Zoom JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app). Use the generated JWT token as the value of the `access_token` query parameter and include this query parameter at the end of the URL as shown in the example.** \n<br>\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ JWT Token }}`\n\n**Similarly, if the user has installed your OAuth app that contains recording scope(s), you can also use the user's [OAuth access token](https://marketplace.zoom.us/docs/guides/auth/oauth) to download the Cloud Recording.**<br>\n\nExample: `https://api.zoom.us/recording/download/{{ Download Path }}?access_token={{ OAuth Access Token }}`\n\n", ) file_size: Optional[float] = Field(None, description='The recording file size.') file_type: Optional[str] = Field( None, description='The recording file type. The value of this field could be one of the following:<br>\n`MP4`: Video file of the recording.<br>`M4A` Audio-only file of the recording.<br>`TIMELINE`: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/203741855-Cloud-recording#h_3f14c3a4-d16b-4a3c-bbe5-ef7d24500048). The time will display in the host\'s timezone, set on their Zoom profile.\n<br> `TRANSCRIPT`: Transcription file of the recording in VTT format.<br> `CHAT`: A TXT file containing in-meeting chat messages that were sent during the meeting.<br>`CC`: File containing closed captions of the recording in VTT file format.<br>`CSV`: File containing polling data in csv format.\n\n<br>\n\nA recording file object with file type of either `CC` or `TIMELINE` **does not have** the following properties:<br>\n\t`id`, `status`, `file_size`, `recording_type`, and `play_url`.', ) id: Optional[str] = Field( None, description='The recording file ID. Included in the response of general query.', ) meeting_id: Optional[str] = Field(None, description='The meeting ID. ') play_url: Optional[str] = Field( None, description='The URL using which a recording file can be played.' ) recording_end: Optional[str] = Field( None, description='The recording end time. Response in general query.' ) recording_start: Optional[str] = Field( None, description='The recording start time.' ) recording_type: Optional[str] = Field( None, description='The recording type. The value of this field can be one of the following:<br>`shared_screen_with_speaker_view(CC)`<br>`shared_screen_with_speaker_view`<br>`shared_screen_with_gallery_view`<br>`speaker_view`<br>`gallery_view`<br>`shared_screen`<br>`audio_only`<br>`audio_transcript`<br>`chat_file`<br>`active_speaker`<br>`poll`', ) status: Optional[Status94] = Field(None, description='The recording status.') class Meeting19(BaseModel): account_id: Optional[str] = Field( None, description='Unique Identifier of the user account.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field( None, description='ID of the user set as host of meeting.' ) id: Optional[str] = Field( None, description='Meeting ID - also known as the meeting number.' ) recording_count: Optional[str] = Field( None, description='Number of recording files returned in the response of this API call.', ) start_time: Optional[datetime] = Field( None, description='The time at which the meeting started.' ) topic: Optional[str] = Field(None, description='Meeting topic.') total_size: Optional[str] = Field(None, description='Total size of the recording.') type: Optional[str] = Field( None, description='Type of the meeting that was recorded.\n\nMeeting Types:<br>`1` - Instant meeting.<br>`2` - Scheduled meeting.<br>`3` - Recurring meeting with no fixed time.<br>`8` - Recurring meeting with fixed time.', ) uuid: Optional[str] = Field( None, description='Unique Meeting Identifier. Each instance of the meeting will have its own UUID.', ) recording_files: Optional[List[RecordingFile8]] = Field( None, description='List of recording file.', title='Recording file List' ) class UsersUserIdRecordingsGetResponse1(BaseModel): from_: Optional[date_aliased] = Field(None, alias='from', description='Start Date.') to: Optional[date_aliased] = Field(None, description='End Date.') next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned within a single API call.' ) total_records: Optional[int] = Field( None, description='The number of all records available across pages.' ) meetings: Optional[List[Meeting19]] = Field( None, description='List of recordings.', title='Recording List' ) class UsersUserIdSchedulersGetResponse(BaseModel): schedulers: Optional[List[Scheduler]] = Field( None, description='List of users for whom the current user can schedule meetings.', le=30, ) class UsersUserIdSchedulersGetResponse1(BaseModel): schedulers: Optional[List[Scheduler]] = Field( None, description='List of users for whom the current user can schedule meetings.', le=30, ) class Option8(Enum): meeting_authentication = 'meeting_authentication' recording_authentication = 'recording_authentication' class EmailNotification20(BaseModel): alternative_host_reminder: Optional[bool] = Field( False, description='When an alternative host is set or removed from a meeting.' ) cancel_meeting_reminder: Optional[bool] = Field( False, description='When a meeting is cancelled.' ) jbh_reminder: Optional[bool] = Field( False, description='When attendees join meeting before host.' ) schedule_for_reminder: Optional[bool] = Field( False, description='Notify the host there is a meeting is scheduled, rescheduled, or cancelled.', ) class Feature8(BaseModel): cn_meeting: Optional[bool] = Field(None, description='Host meeting in China.') in_meeting: Optional[bool] = Field(None, description='Host meeting in India.') large_meeting: Optional[bool] = Field(None, description='Large meeting feature.') large_meeting_capacity: Optional[int] = Field( None, description='Large meeting capacity: can be 500 or 1000, depending on if the user has a large meeting capacity plan subscription or not.', ) meeting_capacity: Optional[int] = Field( None, description='User’s meeting capacity.' ) webinar: Optional[bool] = Field(None, description='Webinar feature.') webinar_capacity: Optional[int] = Field( None, description='Webinar capacity: can be 100, 500, 1000, 3000, 5000 or 10000, depending on if the user has a webinar capacity plan subscription or not.', ) zoom_phone: Optional[bool] = Field(None, description='Zoom phone feature.') class DataCenterRegions14(Enum): HK = 'HK' AU = 'AU' IN = 'IN' TY = 'TY' CN = 'CN' US = 'US' CA = 'CA' DE = 'DE' NL = 'NL' LA = 'LA' class VirtualBackgroundSettings12(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting20(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions14]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings12] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class Profile17(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class RecordingPasswordRequirement10(BaseModel): have_letter: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain at least one alphabetical letter (a, b, c..).', ) have_number: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain at least one number(1, 2, 3..).', ) have_special_character: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain at least one special character(!, @, #..).', ) length: Optional[conint(le=10)] = Field( None, description='Minimum required length for the passcode.' ) only_allow_numeric: Optional[bool] = Field( None, description='Indicates whether or not passcode must contain only numeric characters.', ) class Recording27(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement10] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement27(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class RequirePasswordForPmiMeetings14(Enum): jbh_only = 'jbh_only' all = 'all' none = 'none' class ScheduleMeeting20(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement27] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings14] = ( Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class TelephonyRegions14(BaseModel): allowed_values: Optional[List[str]] = Field( None, description='Telephony region options provided by Zoom to select from.' ) selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony20(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions14] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class Tsp12(BaseModel): call_out: Optional[bool] = Field(None, description='Call Out') call_out_countries: Optional[List] = Field( None, description='Call Out Countries/Regions' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show international numbers link on the invitation email' ) class UsersUserIdSettingsGetResponse1(BaseModel): email_notification: Optional[EmailNotification20] = Field( None, description='', title='User settings: Notification settings' ) feature: Optional[Feature8] = Field( None, description='', title='User settings: Feature settings' ) in_meeting: Optional[InMeeting20] = Field( None, description='', title='User settings: Meeting settings' ) profile: Optional[Profile17] = Field(None, title='Profile') recording: Optional[Recording27] = Field( None, description='', title='User settings: Recording settings' ) schedule_meeting: Optional[ScheduleMeeting20] = Field( None, description='', title='User settings: Meeting settings' ) telephony: Optional[Telephony20] = Field( None, title='User settings: Meeting settings' ) tsp: Optional[Tsp12] = Field( None, description='Account Settings: TSP.', title='User settings: TSP settings' ) class Type275(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption27(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type275] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class UsersUserIdSettingsGetResponse2(BaseModel): authentication_options: Optional[List[AuthenticationOption27]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type276(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption28(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type276] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class UsersUserIdSettingsGetResponse3(BaseModel): authentication_options: Optional[List[AuthenticationOption28]] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement28(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings17(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity25(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement28] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings17] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class UsersUserIdSettingsGetResponse4(BaseModel): meeting_security: Optional[MeetingSecurity25] = None class UsersUserIdSettingsGetResponse( RootModel[ Union[ UsersUserIdSettingsGetResponse1, Union[UsersUserIdSettingsGetResponse2, UsersUserIdSettingsGetResponse3], UsersUserIdSettingsGetResponse4, ] ] ): root: Union[ UsersUserIdSettingsGetResponse1, Union[UsersUserIdSettingsGetResponse2, UsersUserIdSettingsGetResponse3], UsersUserIdSettingsGetResponse4, ] class VirtualBackgroundSettings13(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting21(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions14]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings13] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class Profile18(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Recording28(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement10] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement29(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class ScheduleMeeting21(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement29] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings14] = ( Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Telephony21(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions14] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class UsersUserIdSettingsGetResponse6(BaseModel): email_notification: Optional[EmailNotification20] = Field( None, description='', title='User settings: Notification settings' ) feature: Optional[Feature8] = Field( None, description='', title='User settings: Feature settings' ) in_meeting: Optional[InMeeting21] = Field( None, description='', title='User settings: Meeting settings' ) profile: Optional[Profile18] = Field(None, title='Profile') recording: Optional[Recording28] = Field( None, description='', title='User settings: Recording settings' ) schedule_meeting: Optional[ScheduleMeeting21] = Field( None, description='', title='User settings: Meeting settings' ) telephony: Optional[Telephony21] = Field( None, title='User settings: Meeting settings' ) tsp: Optional[Tsp12] = Field( None, description='Account Settings: TSP.', title='User settings: TSP settings' ) class Type277(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption29(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type277] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) visible: Optional[bool] = Field(None, description='Authentication visible') class UsersUserIdSettingsGetResponse7(BaseModel): authentication_options: Optional[List[AuthenticationOption29]] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type278(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption30(BaseModel): default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type278] = Field(None, description='Authentication type') visible: Optional[bool] = Field(None, description='Authentication visible') class UsersUserIdSettingsGetResponse8(BaseModel): authentication_options: Optional[List[AuthenticationOption30]] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement30(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings18(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity26(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement30] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings18] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class UsersUserIdSettingsGetResponse9(BaseModel): meeting_security: Optional[MeetingSecurity26] = None class UsersUserIdSettingsGetResponse5( RootModel[ Union[ UsersUserIdSettingsGetResponse6, Union[UsersUserIdSettingsGetResponse7, UsersUserIdSettingsGetResponse8], UsersUserIdSettingsGetResponse9, ] ] ): root: Union[ UsersUserIdSettingsGetResponse6, Union[UsersUserIdSettingsGetResponse7, UsersUserIdSettingsGetResponse8], UsersUserIdSettingsGetResponse9, ] class Option10(Enum): meeting_authentication = 'meeting_authentication' recording_authentication = 'recording_authentication' meeting_secuirty = 'meeting_secuirty' class Feature10(BaseModel): large_meeting: Optional[bool] = Field( None, description='Enable [large meeting](https://support.zoom.us/hc/en-us/articles/201362823-What-is-a-Large-Meeting-) feature for the user.', ) large_meeting_capacity: Optional[int] = Field( None, description='Set the meeting capacity for the user if the user has **Large meeting** feature enabled. The value for the field can be either 500 or 1000.', ) meeting_capacity: Optional[int] = Field( None, description="Set a user's meeting capacity. User’s meeting capacity denotes the maximum number of participants that can join a meeting scheduled by the user.", ) webinar: Optional[bool] = Field( None, description='Enable Webinar feature for the user.' ) webinar_capacity: Optional[int] = Field( None, description='Set the Webinar capacity for a user who has the Webinar feature enabled. The value of this field can be 100, 500, 1000, 3000, 5000 or 10000.', ) zoom_phone: Optional[bool] = Field(None, description='Zoom phone feature.') class VirtualBackgroundSettings14(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting22(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions14]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings14] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class Profile19(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Recording29(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement10] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement31(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class ScheduleMeeting22(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement31] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings14] = ( Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class TelephonyRegions16(BaseModel): selection_values: Optional[List[str]] = Field( None, description='Telephony regions selected by the account to indicate where most of the participants call into or call from during a meeting.', ) class Telephony22(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions16] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class UsersUserIdSettingsPatchRequest1(BaseModel): email_notification: Optional[EmailNotification20] = Field( None, description='', title='User settings: Notification settings' ) feature: Optional[Feature10] = Field( None, description='', title='User settings: Feature settings' ) in_meeting: Optional[InMeeting22] = Field( None, description='', title='User settings: Meeting settings' ) profile: Optional[Profile19] = Field(None, title='Profile') recording: Optional[Recording29] = Field( None, description='', title='User settings: Recording settings' ) schedule_meeting: Optional[ScheduleMeeting22] = Field( None, description='', title='User settings: Meeting settings' ) telephony: Optional[Telephony22] = Field( None, title='Telephony update settings: Meeting settings' ) tsp: Optional[Tsp12] = Field( None, description='Account Settings: TSP.', title='User settings: TSP settings' ) class Action56(Enum): update = 'update' show = 'show' hide = 'hide' class Type279(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption31(BaseModel): action: Optional[Action56] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type279] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class UsersUserIdSettingsPatchRequest2(BaseModel): authentication_option: Optional[AuthenticationOption31] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type280(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption32(BaseModel): action: Optional[Action56] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domians: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type280] = Field(None, description='Authentication type') class UsersUserIdSettingsPatchRequest3(BaseModel): authentication_option: Optional[AuthenticationOption32] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement32(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings19(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity27(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement32] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings19] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class UsersUserIdSettingsPatchRequest4(BaseModel): meeting_security: Optional[MeetingSecurity27] = None class UsersUserIdSettingsPatchRequest( RootModel[ Union[ UsersUserIdSettingsPatchRequest1, Union[UsersUserIdSettingsPatchRequest2, UsersUserIdSettingsPatchRequest3], UsersUserIdSettingsPatchRequest4, ] ] ): root: Union[ UsersUserIdSettingsPatchRequest1, Union[UsersUserIdSettingsPatchRequest2, UsersUserIdSettingsPatchRequest3], UsersUserIdSettingsPatchRequest4, ] class VirtualBackgroundSettings15(BaseModel): allow_upload_custom: Optional[bool] = Field( None, description='Allow user to upload custom backgrounds.' ) allow_videos: Optional[bool] = Field( None, description='Allow use of videos for virtual backgrounds.' ) enable: Optional[bool] = Field(None, description='Enable virtual background.') files: Optional[List[File]] = None class InMeeting23(BaseModel): allow_live_streaming: Optional[bool] = Field( None, description='Allow live streaming.' ) annotation: Optional[bool] = Field( False, description='Allow participants to use annotation tools.' ) attendee_on_hold: Optional[bool] = Field( False, description='Allow host to put attendee on hold.\n\n**This field has been deprecated and is no longer supported.**', ) auto_saving_chat: Optional[bool] = Field( False, description='Auto save all in-meeting chats.' ) breakout_room: Optional[bool] = Field( False, description='Allow host to split meeting participants into separate breakout rooms.', ) chat: Optional[bool] = Field( False, description='Enable chat during meeting for all participants.' ) closed_caption: Optional[bool] = Field(False, description='Enable closed captions.') co_host: Optional[bool] = Field( False, description='Allow the host to add co-hosts.' ) custom_data_center_regions: Optional[bool] = Field( None, description='If set to `true`, you can [select data center regions](https://support.zoom.us/hc/en-us/articles/360042411451-Selecting-data-center-regions-for-hosted-meetings-and-webinars) to use for hosting your real-time meeting and webinar traffic. These regions can be provided in the `data_center_regions` field. If set to `false`, the regions cannot be customized and the default regions will be used.', ) custom_live_streaming_service: Optional[bool] = Field( None, description='Allow custom live streaming.' ) custom_service_instructions: Optional[str] = Field( None, description='Custom service instructions.' ) data_center_regions: Optional[Union[List[str], DataCenterRegions14]] = Field( None, description='If you have set the value of `custom_data_center_regions` to `true`, specify the data center regions that you would like to opt in to (country codes from among: ["DE", "NL", "HK", "AU", "IN", "LA", "TY", "CN", "US", "CA"]).\n', ) e2e_encryption: Optional[bool] = Field( None, description='Zoom requires encryption for all data between the Zoom cloud, Zoom client, and Zoom Room. Require encryption for 3rd party endpoints (H323/SIP).', ) entry_exit_chime: Optional[EntryExitChime] = Field( 'all', description='Play sound when participants join or leave:<br>`host` - When host joins or leaves.<br>`all` - When any participant joins or leaves.<br>`none` - No join or leave sound.', ) far_end_camera_control: Optional[bool] = Field( False, description='Allow another user to take control of the camera.' ) feedback: Optional[bool] = Field( False, description='Enable option to send feedback to Zoom at the end of the meeting.', ) file_transfer: Optional[bool] = Field( None, description='Indicates whether [in-meeting file transfer](https://support.zoom.us/hc/en-us/articles/209605493-In-meeting-file-transfer) setting has been enabled for the user or not.', ) group_hd: Optional[bool] = Field(False, description='Enable group HD video.') non_verbal_feedback: Optional[bool] = Field( False, description='Enable non-verbal feedback through screens.' ) polling: Optional[bool] = Field( False, description='Add polls to the meeting controls.' ) private_chat: Optional[bool] = Field( False, description='Enable 1:1 private chat between participants during meetings.', ) record_play_voice: Optional[bool] = Field( None, description='Record and play their own voice.' ) remote_control: Optional[bool] = Field( False, description='Enable remote control during screensharing.' ) remote_support: Optional[bool] = Field( False, description='Allow host to provide 1:1 remote support to a participant.' ) request_permission_to_unmute: Optional[bool] = Field( None, description='Indicates whether the [**Request permission to unmute participants**](https://support.zoom.us/hc/en-us/articles/203435537-Muting-and-unmuting-participants-in-a-meeting#h_01EGK4XFWS1SJGZ71MYGKF7260) option has been enabled for the user or not.', ) screen_sharing: Optional[bool] = Field( None, description='Allow host and participants to share their screen or content during meetings\n', ) share_dual_camera: Optional[bool] = Field( False, description='Share dual camera (deprecated).' ) show_meeting_control_toolbar: Optional[bool] = Field( None, description='Always show meeting controls during a meeting.' ) virtual_background: Optional[bool] = Field( False, description='Enable virtual background.' ) virtual_background_settings: Optional[VirtualBackgroundSettings15] = Field( None, description='Settings to manage virtual background.' ) waiting_room: Optional[bool] = Field( False, description='Enable Waiting room - if enabled, attendees can only join after host approves.', ) who_can_share_screen: Optional[WhoCanShareScreen] = Field( None, description='Indicates who can share their screen or content during meetings. The value can be one of the following: <br>\n`host`: Only host can share the screen.<br>\n`all`: Both hosts and attendees can share their screen during meetings. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) who_can_share_screen_when_someone_is_sharing: Optional[ WhoCanShareScreenWhenSomeoneIsSharing ] = Field( None, description='Indicates who is allowed to start sharing screen when someone else in the meeting is sharing their screen. The value can be one of the following:<br>\n`host`: Only a host can share the screen when someone else is sharing.<br>\n`all`: Anyone in the meeting is allowed to start sharing their screen when someone else is sharing. For Webinar, the hosts and panelists can start screen sharing, but not the attendees.\n', ) workplace_by_facebook: Optional[bool] = Field( None, description='Allow livestreaming by host through Workplace by Facebook.' ) class Profile20(BaseModel): recording_storage_location: Optional[RecordingStorageLocation] = None class Recording30(BaseModel): ask_host_to_confirm_disclaimer: Optional[bool] = Field( None, description='Ask host to confirm the disclaimer.' ) ask_participants_to_consent_disclaimer: Optional[bool] = Field( None, description='This field can be used if `recording_disclaimer` is set to true. This field indicates whether or not you would like to ask participants for consent when a recording starts. The value can be one of the following:<br>\n* `true`: Ask participants for consent when a recording starts. <br>\n* `false`: Do not ask participants for consent when a recording starts.', ) auto_delete_cmr: Optional[bool] = Field( False, description='Auto delete cloud recordings.' ) auto_delete_cmr_days: Optional[conint(ge=1, le=60)] = Field( None, description='A specified number of days of auto delete cloud recordings.' ) auto_recording: Optional[AutoRecording] = Field( 'local', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) cloud_recording: Optional[bool] = Field(False, description='Cloud recording.') host_pause_stop_recording: Optional[bool] = Field( False, description='Host can pause/stop the auto recording in the cloud.' ) ip_address_access_control: Optional[IpAddressAccessControl] = Field( None, description='Setting to allow cloud recording access only from specific IP address ranges.\n', ) local_recording: Optional[bool] = Field(None, description='Local recording.') record_audio_file: Optional[bool] = Field( False, description='Record an audio only file.' ) record_gallery_view: Optional[bool] = Field( False, description='Record the gallery view.' ) record_speaker_view: Optional[bool] = Field( False, description='Record the active speaker view.' ) recording_audio_transcript: Optional[bool] = Field( None, description='Audio transcript.' ) recording_disclaimer: Optional[bool] = Field( None, description='Show a disclaimer to participants before a recording starts\n', ) recording_password_requirement: Optional[RecordingPasswordRequirement10] = Field( None, description='This object represents the minimum passcode requirements set for recordings via Account Recording Settings.', ) save_chat_text: Optional[bool] = Field( False, description='Save chat text from the meeting.' ) show_timestamp: Optional[bool] = Field( False, description='Show timestamp on video.' ) class MeetingPasswordRequirement33(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class ScheduleMeeting23(BaseModel): audio_type: Optional[AudioType] = Field( 'voip', description='Determine how participants can join the audio portion of the meeting:<br>`both` - Telephony and VoIP.<br>`telephony` - Audio PSTN telephony only.<br>`voip` - VoIP only.<br>`thirdParty` - Third party audio conference.', ) default_password_for_scheduled_meetings: Optional[str] = Field( None, description='Passcode for already scheduled meetings\n' ) embed_password_in_join_link: Optional[bool] = Field( None, description='If the value is set to `true`, the meeting passcode will be encrypted and included in the join meeting link to allow participants to join with just one click without having to enter the passcode.\n ', ) force_pmi_jbh_password: Optional[bool] = Field( None, description='Require a passcode for personal meetings if attendees can join before host.', ) host_video: Optional[bool] = Field( None, description='Start meetings with host video on.' ) join_before_host: Optional[bool] = Field( None, description='Join the meeting before host arrives.' ) meeting_password_requirement: Optional[MeetingPasswordRequirement33] = Field( None, description='Account wide meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) participants_video: Optional[bool] = Field( None, description='Start meetings with participants video on.' ) personal_meeting: Optional[bool] = Field( None, description='Personal Meeting Setting.<br><br>\n`true`: Indicates that the **"Enable Personal Meeting ID"** setting is turned on. Users can choose to use personal meeting ID for their meetings. <br><br>\n`false`: Indicates that the **"Enable Personal Meeting ID"** setting is [turned off](https://support.zoom.us/hc/en-us/articles/201362843-Personal-meeting-ID-PMI-and-personal-link#h_aa0335c8-3b06-41bc-bc1f-a8b84ef17f2a). If this setting is disabled, meetings that were scheduled with PMI will be invalid. Scheduled meetings will need to be manually updated.\nFor Zoom Phone only:If a user has been assigned a desk phone, **"Elevate to Zoom Meeting"** on desk phone will be disabled.\n\n\n', ) pmi_password: Optional[str] = Field(None, description='PMI passcode\n') pstn_password_protected: Optional[bool] = Field( None, description='Generate and require passcode for participants joining by phone.', ) require_password_for_instant_meetings: Optional[bool] = Field( None, description='Require a passcode for instant meetings. If you use PMI for your instant meetings, this option will be disabled. This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) require_password_for_pmi_meetings: Optional[RequirePasswordForPmiMeetings14] = ( Field( None, description='Require a passcode for Personal Meeting ID (PMI). This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) ) require_password_for_scheduled_meetings: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled\n', ) require_password_for_scheduling_new_meetings: Optional[bool] = Field( None, description='Require a passcode when scheduling new meetings.This setting is always enabled for free accounts and Pro accounts with a single host and cannot be modified for these accounts.\n', ) use_pmi_for_instant_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when starting an instant meeting\n', ) use_pmi_for_scheduled_meetings: Optional[bool] = Field( None, description='Use Personal Meeting ID (PMI) when scheduling a meeting\n' ) class Telephony23(BaseModel): audio_conference_info: Optional[constr(max_length=2048)] = Field( '', description='Third party audio conference info.' ) show_international_numbers_link: Optional[bool] = Field( None, description='Show the international numbers link on the invitation email.' ) telephony_regions: Optional[TelephonyRegions16] = Field( None, description='Indicates where most of the participants call into or call from duriing a meeting.', ) third_party_audio: Optional[bool] = Field( None, description='Third party audio conference.' ) class UsersUserIdSettingsPatchRequest6(BaseModel): email_notification: Optional[EmailNotification20] = Field( None, description='', title='User settings: Notification settings' ) feature: Optional[Feature10] = Field( None, description='', title='User settings: Feature settings' ) in_meeting: Optional[InMeeting23] = Field( None, description='', title='User settings: Meeting settings' ) profile: Optional[Profile20] = Field(None, title='Profile') recording: Optional[Recording30] = Field( None, description='', title='User settings: Recording settings' ) schedule_meeting: Optional[ScheduleMeeting23] = Field( None, description='', title='User settings: Meeting settings' ) telephony: Optional[Telephony23] = Field( None, title='Telephony update settings: Meeting settings' ) tsp: Optional[Tsp12] = Field( None, description='Account Settings: TSP.', title='User settings: TSP settings' ) class Type281(Enum): enforce_login = 'enforce_login' enforce_login_with_same_account = 'enforce_login_with_same_account' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption33(BaseModel): action: Optional[Action56] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domains: Optional[str] = Field(None, description='Authentication domains') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type281] = Field( None, description=' Authentication type. Specify one of the following authentication types for the authentication profile:<br>\n * `enforce_login`: This option allows any users to join the meeting or webinar, as long as they are signed into their Zoom account.\n * `enforce_login_with_domains`: This option, allows you to specify a rule so that only those Zoom users whose email addresses contain a certain domain, can join the meeting or webinar. You can either add multiple domains using a comma in between and/or use a wildcard for listing domains.<br>\n * `enforce_login_with_same_account`: This option allows users to join the meeting or webinar with the same Zoom account.', ) class UsersUserIdSettingsPatchRequest7(BaseModel): authentication_option: Optional[AuthenticationOption33] = Field( None, description='Meeting Authentication Options' ) meeting_authentication: Optional[bool] = Field( None, description='Only authenticated users can join meetings' ) class Type282(Enum): internally = 'internally' enforce_login = 'enforce_login' enforce_login_with_domains = 'enforce_login_with_domains' class AuthenticationOption34(BaseModel): action: Optional[Action56] = Field(None, description='Authentication action') default_option: Optional[bool] = Field( None, description='Authentication default option' ) domians: Optional[str] = Field(None, description='Authentication domians') id: Optional[str] = Field(None, description='Authentication id') name: Optional[str] = Field(None, description='Authentication name') type: Optional[Type282] = Field(None, description='Authentication type') class UsersUserIdSettingsPatchRequest8(BaseModel): authentication_option: Optional[AuthenticationOption34] = Field( None, description='Authentication Options' ) recording_authentication: Optional[bool] = Field( None, description='Only authenticated users can view cloud recordings' ) class MeetingPasswordRequirement34(BaseModel): consecutive_characters_length: Optional[ConsecutiveCharactersLength] = None have_letter: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 letter (such as a,b,c...).\n', ) have_number: Optional[bool] = Field( None, description='If set to `true`, the passcode must contain at least 1 number (such as 1,2,3...).', ) have_special_character: Optional[bool] = Field( None, description='If set to `true`, the passcode must have at least 1 special character (!,@,#...).', ) have_upper_and_lower_characters: Optional[bool] = Field( None, description='If set to `true`, the passcode must include both uppercase and lowercase characters.', ) length: Optional[int] = Field( None, description='The minimum length that the meeting/webinar passcode needs to have.', ) only_allow_numeric: Optional[bool] = Field( None, description='If set to `true`, the passcode must only contain numbers and no other characters.', ) weak_enhance_detection: Optional[bool] = Field( None, description='If set to `true`, users will be informed if the provided passcode is weak.', ) class WaitingRoomSettings20(BaseModel): participants_to_place_in_waiting_room: Optional[ ParticipantsToPlaceInWaitingRoom ] = Field( None, description='\n\nSpecify who should be admitted to the waiting room. The value of this field can be one of the following:<br>\n`0`: All attendees<br> `1`: Users who are not in your account<br> `2`: Users who are not in your account and are not part of your whitelisted domains that are specified in ', ) users_who_can_admit_participants_from_waiting_room: Optional[int] = Field( None, description='Specify who can admit participants from the waiting room. The value of this field can be one of the following:<br>\n`0`: Host and co-hosts only<br> `1`: Host, co-hosts, and anyone who bypassed the waiting room (only if host and co-hosts are not present).\n\n\n', ) whitelisted_domains_for_waiting_room: Optional[str] = Field( None, description='If the value of the `participants_to_place_in_waiting_room` field is `2`, use this setting to specify the domains that can bypass the waiting room feature. Separate multiple domains with commas(example: "aaa.com,bbb.com").', ) class MeetingSecurity28(BaseModel): auto_security: Optional[bool] = Field( None, description='`true`: Require that all meetings are secured with at least one security option.\n\nThis setting can only be disabled by Enterprise, ISV, Business (with more than 100 licenses), and Education accounts. [Learn more](https://marketplace.zoom.us/docs/guides/stay-up-to-date/announcements#meeting-security).', ) embed_password_in_join_link: Optional[bool] = Field( None, description='If set to `true`, meeting passcode will be encrypted and included in the invite link to allow participants to join with just one click without having to enter the passcode.\n', ) encryption_type: Optional[EncryptionType] = Field( None, description='Choose between enhanced encryption and [end-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871) when starting or a meeting. When using end-to-end encryption, several features (e.g. cloud recording, phone/SIP/H.323 dial-in) will be **automatically disabled**. <br><br>The value of this field can be one of the following:<br>\n`enhanced_encryption`: Enhanced encryption. Encryption is stored in the cloud if you enable this option. <br>\n\n`e2ee`: [End-to-end encryption](https://support.zoom.us/hc/en-us/articles/360048660871). The encryption key is stored in your local device and can not be obtained by anyone else. Enabling this setting also **disables** the following features: join before host, cloud recording, streaming, live transcription, breakout rooms, polling, 1:1 private chat, and meeting reactions.', ) end_to_end_encrypted_meetings: Optional[bool] = Field( None, description='Allow use of end-to-end encryption for meetings. If set to `true`, you can specify the encryption type in `encryption_type` field.', ) meeting_password: Optional[bool] = Field( None, description='If set to `true`, all instant, and scheduled meetings that users can join via client, or room systems will be passcode-protected. The Personal Meeting ID (PMI) meetings are not included in this setting.', ) meeting_password_requirement: Optional[MeetingPasswordRequirement34] = Field( None, description='Meeting/webinar [passcode requirements](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604).', ) phone_password: Optional[bool] = Field( None, description='Require passcode for participants joining by phone. If set to `true`, a numeric passcode will be required for participants joining by phone if your meeting has a passcode. For meeting with an alphanumeric passcode, a numeric version will be generated.', ) pmi_password: Optional[bool] = Field( None, description='If set to `true`, all Personal Meeting ID (PMI) meetings that users can join via client, or room systems will be passcode-protected.\n', ) require_password_for_scheduled_meeting: Optional[bool] = Field( None, description='Require a passcode for meetings which have already been scheduled.\n', ) require_password_for_scheduled_webinar: Optional[bool] = Field( None, description='Require a passcode for webinars which have already been scheduled.\n', ) waiting_room: Optional[bool] = Field( None, description='When participants join a meeting, place them in a waiting room and require the host to admit them individually. Enabling the waiting room automatically disables the setting for allowing participants to join before host.\n', ) waiting_room_settings: Optional[WaitingRoomSettings20] = Field( None, description='Specify the settings to be applied if waiting room is enabled.', ) webinar_password: Optional[bool] = Field( None, description='If set to `true`, a passcode will be generated when scheduling a Webinar and participants require the passcode to join the Webinar.\n', ) class UsersUserIdSettingsPatchRequest9(BaseModel): meeting_security: Optional[MeetingSecurity28] = None class UsersUserIdSettingsPatchRequest5( RootModel[ Union[ UsersUserIdSettingsPatchRequest6, Union[UsersUserIdSettingsPatchRequest7, UsersUserIdSettingsPatchRequest8], UsersUserIdSettingsPatchRequest9, ] ] ): root: Union[ UsersUserIdSettingsPatchRequest6, Union[UsersUserIdSettingsPatchRequest7, UsersUserIdSettingsPatchRequest8], UsersUserIdSettingsPatchRequest9, ] class UsersUserIdSettingsVirtualBackgroundsPostRequest(BaseModel): file: Optional[str] = Field(None, description="Provide the file's path here.") class UsersUserIdSettingsVirtualBackgroundsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Unique identifier of the file.') is_default: Optional[bool] = Field( None, description='Indicate whether or not this file is the default virtual background file.', ) name: Optional[str] = Field(None, description='File name.') size: Optional[str] = Field(None, description='File size.') type: Optional[str] = Field(None, description='File type.') class Action60(Enum): activate = 'activate' deactivate = 'deactivate' class UsersUserIdStatusPutRequest(BaseModel): action: Action60 = Field( ..., description='The action types:<br>`activate` - Activate a deactivated user.<br>`deactivate` - Deactivate a user.', ) class UsersUserIdStatusPutRequest1(BaseModel): action: Action60 = Field( ..., description='The action types:<br>`activate` - Activate a deactivated user.<br>`deactivate` - Deactivate a user.', ) class Type283(Enum): token = 'token' zak = 'zak' class UsersUserIdTokenGetResponse(BaseModel): token: Optional[str] = Field(None, description='User token.') class Type285(Enum): toll = 'toll' tollfree = 'tollfree' media_link = 'media_link' class DialInNumber3(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link', ) class Id(Enum): integer_1 = 1 integer_2 = 2 class TspAccount(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber3]] = Field( None, description='List of dial in numbers.' ) id: Optional[Id] = Field(None, description='The ID of the TSP account.') leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge\n') class UsersUserIdTspGetResponse(BaseModel): tsp_accounts: Optional[List[TspAccount]] = None class DialInNumber4(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link', ) class TspAccount1(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber4]] = Field( None, description='List of dial in numbers.' ) id: Optional[Id] = Field(None, description='The ID of the TSP account.') leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge\n') class UsersUserIdTspGetResponse1(BaseModel): tsp_accounts: Optional[List[TspAccount1]] = None class DialInNumber5(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link.', ) class UsersUserIdTspPostRequest(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber5]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class DialInNumber6(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link.', ) class UsersUserIdTspPostRequest1(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber6]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class DialInNumber7(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link.', ) class UsersUserIdTspPostResponse(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber7]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class DialInNumber8(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>\n`media_link` - Media link.', ) class UsersUserIdTspPostResponse1(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber8]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class UsersUserIdTspSettingsPatchRequest(BaseModel): audio_url: Optional[constr(max_length=512)] = Field( None, description='The global dial-in URL for a TSP enabled account. The URL must be valid with a max-length of 512 characters.', ) class TspId(Enum): field_1 = 1 field_2 = 2 class DialInNumber9(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number. <br> `media_link` - Media link phone number. This is used for PSTN integration instead of a paid bridge number.', ) class UsersUserIdTspTspIdGetResponse(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber9]] = Field( None, description='List of dial in numbers.' ) id: Optional[int] = Field(None, description='The ID of the TSP account.') leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class DialInNumber10(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number. <br> `media_link` - Media link phone number. This is used for PSTN integration instead of a paid bridge number.', ) class UsersUserIdTspTspIdGetResponse1(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber10]] = Field( None, description='List of dial in numbers.' ) id: Optional[int] = Field(None, description='The ID of the TSP account.') leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class DialInNumber11(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>`media_link` - Media Link Phone Number. It is used for PSTN integration instead of paid bridge number.', ) class UsersUserIdTspTspIdPatchRequest(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber11]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class DialInNumber12(BaseModel): code: Optional[constr(max_length=6)] = Field(None, description='Country code.') country_label: Optional[constr(max_length=10)] = Field( None, description='Country Label, if passed, will display in place of code.' ) number: Optional[constr(min_length=1, max_length=16)] = Field( None, description='Dial-in number: length is less than 16.' ) type: Optional[Type285] = Field( None, description='Dial-in number types:<br>`toll` - Toll number.<br>`tollfree` -Toll free number.<br>`media_link` - Media Link Phone Number. It is used for PSTN integration instead of paid bridge number.', ) class UsersUserIdTspTspIdPatchRequest1(BaseModel): conference_code: constr(min_length=1, max_length=16) = Field( ..., description='Conference code: numeric value, length is less than 16.' ) dial_in_numbers: Optional[List[DialInNumber12]] = Field( None, description='List of dial in numbers.' ) leader_pin: constr(min_length=1, max_length=16) = Field( ..., description='Leader PIN: numeric value, length is less than 16.' ) tsp_bridge: Optional[TspBridge] = Field(None, description='Telephony bridge') class Template4(BaseModel): id: Optional[str] = Field( None, description='Unique identifier of the template. If you would like to use this template while scheduling a webinar, you can provide the value of this field in `template_id` field of [Create a Webinar](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate) API.', ) name: Optional[str] = Field(None, description='Name of the template.') class UsersUserIdWebinarTemplatesGetResponse(BaseModel): templates: Optional[List[Template4]] = None total_records: Optional[int] = Field( None, description='Total number of records returned.' ) class UsersUserIdWebinarTemplatesGetResponse1(BaseModel): templates: Optional[List[Template4]] = None total_records: Optional[int] = Field( None, description='Total number of records returned.' ) class Webinar7(BaseModel): agenda: Optional[str] = Field( None, description='Webinar Description. The length of agenda gets truncated to 250 characters when you list all webinars for a user. To view the complete agenda, retrieve details for a single webinar [here](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar).', ) created_at: Optional[datetime] = Field( None, description='Time of webinar creation.' ) duration: Optional[int] = Field(None, description='Meeting duration.') host_id: Optional[str] = Field(None, description='ID of the host of the webinar.') id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) join_url: Optional[str] = Field( None, description='Join URL of the webinar (using which others can join the webinar).', ) start_time: Optional[datetime] = Field( None, description='Scheduled start time of the Webinar.' ) timezone: Optional[str] = Field( None, description='[Timezone ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) for the Webinar.', ) topic: Optional[str] = Field(None, description='Meeting topic.') type: Optional[str] = Field( None, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) uuid: Optional[str] = Field( None, description='Unique identifier of a Webinar. Each webinar instance will generate its own UUID. Once a Webinar ends, the value of uuid for the same webinar will be different from when it was scheduled.', ) class UsersUserIdWebinarsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) webinars: Optional[List[Webinar7]] = Field( None, description='List of webinar objects.' ) class UsersUserIdWebinarsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) webinars: Optional[List[Webinar7]] = Field( None, description='List of webinar objects.' ) class Type295(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence22(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type295 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type296(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification8(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type296] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification8(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type296] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification8(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type296] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer8(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings35(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification8 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the Webinar. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a Webinar with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed-in users can join this meeting. \n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "meeting_authentication", "authentication_option" and/or "authentication_domains" fields to establish the authentication mechanism for this Webinar. ', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed-in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "authentication_domains" field for this Webinar. ', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification8 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification8 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer8] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class TrackingField32(BaseModel): field: str = Field(..., description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type299(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class UsersUserIdWebinarsPostRequest(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinars only.', ) password: Optional[str] = Field( None, description='Webinar passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !]. Max of 10 characters.\n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n', ) recurrence: Optional[Recurrence22] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings35] = Field(None, description='Create Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`.\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField32]] = Field( None, description='Tracking fields' ) type: Optional[Type299] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type300(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence23(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type300 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type301(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification9(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type301] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification9(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type301] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification9(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type301] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer9(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings36(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='The default value is `2`. To enable registration required, set the approval type to `0` or `1`. Values include:<br>\n\n`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification9 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the meeting.', ) authentication_domains: Optional[str] = Field( None, description='Meeting authentication domains. This option, allows you to specify the rule so that Zoom users, whose email address contains a certain domain, can join the Webinar. You can either provide multiple domains, using a comma in between and/or use a wildcard for listing domains.', ) authentication_option: Optional[str] = Field( None, description='Specify the authentication type for users to join a Webinar with`meeting_authentication` setting set to `true`. The value of this field can be retrieved from the `id` field within `authentication_options` array in the response of [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings).', ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed-in users can join this meeting. \n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "meeting_authentication", "authentication_option" and/or "authentication_domains" fields to establish the authentication mechanism for this Webinar. ', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed-in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in future.** <br><br> Instead of this field, use the "authentication_domains" field for this Webinar. ', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification9 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification9 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='Only [authenticated](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) users can join meeting if the value of this field is set to `true`.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer9] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type304(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class UsersUserIdWebinarsPostRequest1(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinars only.', ) password: Optional[str] = Field( None, description='Webinar passcode. Passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !]. Max of 10 characters.\n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n', ) recurrence: Optional[Recurrence23] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings36] = Field(None, description='Create Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time. We support two formats for `start_time` - local time and GMT.<br> \n\nTo set time as GMT the format should be `yyyy-MM-dd`T`HH:mm:ssZ`.\n\nTo set time using a specific timezone, use `yyyy-MM-dd`T`HH:mm:ss` format and specify the timezone [ID](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) in the `timezone` field OR leave it blank and the timezone set on your Zoom account will be used. You can also set the time as UTC as the timezone field.\n\nThe `start_time` should only be used for scheduled and / or recurring webinars with fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [timezone](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField32]] = Field( None, description='Tracking fields' ) type: Optional[Type304] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type305(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence24(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type305 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type306(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification10(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type306] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification10(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type306] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification10(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type306] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer10(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings37(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification10 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification10 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification10 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer10] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class TrackingField34(BaseModel): field: Optional[str] = Field(None, description='Tracking fields type') value: Optional[str] = Field(None, description='Tracking fields value') class Type309(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class UsersUserIdWebinarsPostResponse(BaseModel): host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) host_id: Optional[str] = Field( None, description='ID of the user set as host of the webinar.' ) id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) registrants_confirmation_email: Optional[bool] = Field( None, description='Specify whether or not registrants of this Webinar should receieve confirmation emails.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the Webinar template. Use this field only if you would like to [schedule the webinar using an existing template](https://support.zoom.us/hc/en-us/articles/115001079746-Webinar-Templates#schedule). The value of this field can be retrieved from [List Webinar Templates](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listwebinartemplates) API.\nYou must provide the user ID of the host instead of the email address in the `userId` path parameter in order to use a template for scheduling a Webinar.', ) uuid: Optional[str] = Field( None, description='Unique identifier of a Webinar. Each Webinar instance will generate its own UUID(i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). Once a Webinar ends, the value of uuid for the same webinar will be different from when it was scheduled.', ) agenda: Optional[str] = Field(None, description='Webinar agenda.') created_at: Optional[datetime] = Field(None, description='Create time.') duration: Optional[int] = Field(None, description='Webinar duration.') join_url: Optional[str] = Field( None, description='URL to join the Webinar. This URL should only be shared with the users who should be invited to the Webinar.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[constr(max_length=10)] = Field( None, description='Webinar passcode. \n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n\n\n', ) recurrence: Optional[Recurrence24] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings37] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time in GMT/UTC.' ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Webinar is a URL using which a host or an alternative host can start the Webinar. This URL should only be used by the host of the meeting and should not be shared with anyone other than the host of the Webinar. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the latest value for the <code>start_url</code> field programmatically (after expiry), you must call the [Retrieve a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar) and refer to the value of the <code>start_url</code> field in the response.</aside><br><br><br>', ) timezone: Optional[str] = Field(None, description='Time zone to format start_time.') topic: Optional[constr(max_length=200)] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField34]] = Field( None, description='Tracking fields' ) type: Optional[Type309] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type310(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence25(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type310 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type311(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification11(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type311] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification11(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type311] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification11(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type311] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer11(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings38(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification11 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification11 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification11 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer11] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type314(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class UsersUserIdWebinarsPostResponse1(BaseModel): host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) host_id: Optional[str] = Field( None, description='ID of the user set as host of the webinar.' ) id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) registrants_confirmation_email: Optional[bool] = Field( None, description='Specify whether or not registrants of this Webinar should receieve confirmation emails.', ) template_id: Optional[str] = Field( None, description='Unique identifier of the Webinar template. Use this field only if you would like to [schedule the webinar using an existing template](https://support.zoom.us/hc/en-us/articles/115001079746-Webinar-Templates#schedule). The value of this field can be retrieved from [List Webinar Templates](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/listwebinartemplates) API.\nYou must provide the user ID of the host instead of the email address in the `userId` path parameter in order to use a template for scheduling a Webinar.', ) uuid: Optional[str] = Field( None, description='Unique identifier of a Webinar. Each Webinar instance will generate its own UUID(i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). Once a Webinar ends, the value of uuid for the same webinar will be different from when it was scheduled.', ) agenda: Optional[str] = Field(None, description='Webinar agenda.') created_at: Optional[datetime] = Field(None, description='Create time.') duration: Optional[int] = Field(None, description='Webinar duration.') join_url: Optional[str] = Field( None, description='URL to join the Webinar. This URL should only be shared with the users who should be invited to the Webinar.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[constr(max_length=10)] = Field( None, description='Webinar passcode. \n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n\n\n', ) recurrence: Optional[Recurrence25] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings38] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time in GMT/UTC.' ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Webinar is a URL using which a host or an alternative host can start the Webinar. This URL should only be used by the host of the meeting and should not be shared with anyone other than the host of the Webinar. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the latest value for the <code>start_url</code> field programmatically (after expiry), you must call the [Retrieve a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar) and refer to the value of the <code>start_url</code> field in the response.</aside><br><br><br>', ) timezone: Optional[str] = Field(None, description='Time zone to format start_time.') topic: Optional[constr(max_length=200)] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField34]] = Field( None, description='Tracking fields' ) type: Optional[Type314] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type315(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence26(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type315 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type316(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification12(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type316] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification12(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type316] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification12(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type316] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer12(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings39(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification12 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification12 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification12 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer12] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type319(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class WebinarsWebinarIdGetResponse(BaseModel): host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) host_id: Optional[str] = Field( None, description='ID of the user set as host of webinar.' ) id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) uuid: Optional[str] = Field( None, description="Unique Webinar ID. Each Webinar instance will generate its own Webinar UUID (i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). You can retrieve a list of UUIDs from past Webinar instances using [this API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/pastwebinars). Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.\n\n", ) agenda: Optional[str] = Field(None, description='Webinar agenda.') created_at: Optional[datetime] = Field(None, description='Create time.') duration: Optional[int] = Field(None, description='Webinar duration.') join_url: Optional[str] = Field( None, description='URL to join the Webinar. This URL should only be shared with the users who should be invited to the Webinar.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[constr(max_length=10)] = Field( None, description='Webinar passcode. \n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n\n\n', ) recurrence: Optional[Recurrence26] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings39] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time in GMT/UTC.' ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Webinar is a URL using which a host or an alternative host can start the Webinar. This URL should only be used by the host of the meeting and should not be shared with anyone other than the host of the Webinar. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the latest value for the <code>start_url</code> field programmatically (after expiry), you must call the [Retrieve a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar) and refer to the value of the <code>start_url</code> field in the response.</aside><br><br><br>', ) timezone: Optional[str] = Field(None, description='Time zone to format start_time.') topic: Optional[constr(max_length=200)] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField34]] = Field( None, description='Tracking fields' ) type: Optional[Type319] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type320(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence27(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select a date when the webinar will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the webinar will recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state which day in a month, the webinar should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the webinar to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the webinar to recur once every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state the week of the month when the webinar should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the webinar should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring webinar of type** `3` to state a specific day in a week when the monthly webinar should recur. To use this field, you must also use the `monthly_week` field. <br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the webinar should recur. For instance, if you would like to schedule a Webinar that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily webinar, the maximum interval you can set is `90` days. For a weekly webinar, the maximum interval that you can set is `12` weeks. For a monthly webinar, the maximum interval that you can set is `3` months.', ) type: Type320 = Field( ..., description='Recurrence webinar types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[str] = Field( None, description='Use this field **only if you\'re scheduling a recurring webinar of type** `2` to state which day(s) of the week the webinar should repeat. <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the Webinar should recur on Sunday, provide `"1"` as the value of this field. <br><br> **Note:** If you would like the webinar to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the Webinar should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n<br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.\n\n', ) class Type321(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification13(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type321] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification13(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type321] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification13(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type321] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer13(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings40(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification13 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification13 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification13 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer13] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type324(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class WebinarsWebinarIdGetResponse1(BaseModel): host_email: Optional[EmailStr] = Field( None, description='Email address of the meeting host.' ) host_id: Optional[str] = Field( None, description='ID of the user set as host of webinar.' ) id: Optional[int] = Field( None, description='Webinar ID in "**long**" format(represented as int64 data type in JSON), also known as the webinar number.', ) uuid: Optional[str] = Field( None, description="Unique Webinar ID. Each Webinar instance will generate its own Webinar UUID (i.e., after a Webinar ends, a new UUID will be generated for the next instance of the Webinar). You can retrieve a list of UUIDs from past Webinar instances using [this API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/pastwebinars). Please double encode your UUID when using it for API calls if the UUID begins with a '/'or contains '//' in it.\n\n", ) agenda: Optional[str] = Field(None, description='Webinar agenda.') created_at: Optional[datetime] = Field(None, description='Create time.') duration: Optional[int] = Field(None, description='Webinar duration.') join_url: Optional[str] = Field( None, description='URL to join the Webinar. This URL should only be shared with the users who should be invited to the Webinar.', ) occurrences: Optional[List[Occurrence]] = Field( None, description='Array of occurrence objects.' ) password: Optional[constr(max_length=10)] = Field( None, description='Webinar passcode. \n\nIf "Require a passcode when scheduling new meetings" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\n\n\n\n\n', ) recurrence: Optional[Recurrence27] = Field( None, description='Recurrence object. Use this object only for a webinar of type `9` i.e., a recurring webinar with fixed time. ', title='Recurrence Webinar', ) settings: Optional[Settings40] = Field(None, description='Webinar settings.') start_time: Optional[datetime] = Field( None, description='Webinar start time in GMT/UTC.' ) start_url: Optional[str] = Field( None, description='<br><aside>The <code>start_url</code> of a Webinar is a URL using which a host or an alternative host can start the Webinar. This URL should only be used by the host of the meeting and should not be shared with anyone other than the host of the Webinar. \n\nThe expiration time for the <code>start_url</code> field listed in the response of [Create a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate) is two hours for all regular users. \n\t\nFor users created using the <code>custCreate</code> option via the [Create Users](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usercreate) API, the expiration time of the <code>start_url</code> field is 90 days.\n\t\nFor security reasons, to retrieve the latest value for the <code>start_url</code> field programmatically (after expiry), you must call the [Retrieve a Webinar API](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinar) and refer to the value of the <code>start_url</code> field in the response.</aside><br><br><br>', ) timezone: Optional[str] = Field(None, description='Time zone to format start_time.') topic: Optional[constr(max_length=200)] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField34]] = Field( None, description='Tracking fields' ) type: Optional[Type324] = Field( 5, description='Webinar Types:<br>`5` - Webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type325(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence28(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type325 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class Type326(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification14(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type326] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification14(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type326] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification14(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type326] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer14(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings41(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification14 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification14 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification14 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer14] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type329(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class WebinarsWebinarIdPatchRequest(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinar only.' ) password: Optional[constr(max_length=10)] = Field( None, description='[Webinar passcode](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords). By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\nIf "**Require a passcode when scheduling new meetings**" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n\n\n\n\n\n\n', ) recurrence: Optional[Recurrence28] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings41] = None start_time: Optional[datetime] = Field( None, description='Webinar start time, in the format "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'." Should be in GMT time. In the format "yyyy-MM-dd\'T\'HH:mm:ss." This should be in local time and the timezone should be specified. Only used for scheduled webinars and recurring webinars with a fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField34]] = Field( None, description='Tracking fields' ) type: Optional[Type329] = Field( 5, description='Webinar Types:<br>`5` - webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Type330(Enum): integer_1 = 1 integer_2 = 2 integer_3 = 3 class Recurrence29(BaseModel): end_date_time: Optional[datetime] = Field( None, description='Select the final date on which the meeting will recur before it is canceled. Should be in UTC time, such as 2017-11-25T12:00:00Z. (Cannot be used with "end_times".)', ) end_times: Optional[conint(le=365)] = Field( 1, description='Select how many times the meeting should recur before it is canceled. (Cannot be used with "end_date_time".)', ) monthly_day: Optional[int] = Field( 1, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state which day in a month, the meeting should recur. The value range is from 1 to 31.\n\nFor instance, if you would like the meeting to recur on 23rd of each month, provide `23` as the value of this field and `1` as the value of the `repeat_interval` field. Instead, if you would like the meeting to recur every three months, on 23rd of the month, change the value of the `repeat_interval` field to `3`.", ) monthly_week: Optional[MonthlyWeek] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state the week of the month when the meeting should recur. If you use this field, **you must also use the `monthly_week_day` field to state the day of the week when the meeting should recur.** <br>`-1` - Last week of the month.<br>`1` - First week of the month.<br>`2` - Second week of the month.<br>`3` - Third week of the month.<br>`4` - Fourth week of the month.", ) monthly_week_day: Optional[MonthlyWeekDay] = Field( None, description="Use this field **only if you're scheduling a recurring meeting of type** `3` to state a specific day in a week when the monthly meeting should recur. To use this field, you must also use the `monthly_week` field. \n\n<br>`1` - Sunday.<br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.", ) repeat_interval: Optional[int] = Field( None, description='Define the interval at which the meeting should recur. For instance, if you would like to schedule a meeting that recurs every two months, you must set the value of this field as `2` and the value of the `type` parameter as `3`. \n\nFor a daily meeting, the maximum interval you can set is `90` days. For a weekly meeting the maximum interval that you can set is of `12` weeks. For a monthly meeting, there is a maximum of `3` months.\n\n', ) type: Type330 = Field( ..., description='Recurrence meeting types:<br>`1` - Daily.<br>`2` - Weekly.<br>`3` - Monthly.', ) weekly_days: Optional[WeeklyDays] = Field( '1', description='This field is required **if you\'re scheduling a recurring meeting of type** `2` to state which day(s) of the week the meeting should repeat. <br> <br> The value for this field could be a number between `1` to `7` in string format. For instance, if the meeting should recur on Sunday, provide `"1"` as the value of this field.<br><br> **Note:** If you would like the meeting to occur on multiple days of a week, you should provide comma separated values for this field. For instance, if the meeting should recur on Sundays and Tuesdays provide `"1,3"` as the value of this field.\n\n <br>`1` - Sunday. <br>`2` - Monday.<br>`3` - Tuesday.<br>`4` - Wednesday.<br>`5` - Thursday.<br>`6` - Friday.<br>`7` - Saturday.', ) class Type331(Enum): integer_0 = 0 integer_1 = 1 integer_2 = 2 integer_3 = 3 integer_4 = 4 integer_5 = 5 integer_6 = 6 integer_7 = 7 class AttendeesAndPanelistsReminderEmailNotification15(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send reminder email to attendees and panelists.\n\n* `false`: Do not send reminder email to attendees and panelists.', ) type: Optional[Type331] = Field( None, description='`0` - No plan.<br>`1` - Send 1 hour before webinar.<br>`2` - Send 1 day before webinar.<br>`3` - Send 1 hour and 1 day before webinar.<br>`4` - Send 1 week before webinar.<br>`5` - Send 1 hour and 1 week before webinar.<br>`6` - Send 1 day and 1 week before webinar.<br>`7` - Send 1 hour, 1 day and 1 week before webinar.', ) class FollowUpAbsenteesEmailNotification15(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to absentees.\n\n* `false`: Do not send follow-up email to absentees.', ) type: Optional[Type331] = Field( None, description='`0` - No plan.<br>`1` - Send 1 days after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class FollowUpAttendeesEmailNotification15(BaseModel): enable: Optional[bool] = Field( None, description='* `true`: Send follow-up email to attendees.\n\n* `false`: Do not send follow-up email to attendees.', ) type: Optional[Type331] = Field( None, description='`0` - No plan.<br>`1` - Send 1 day after the scheduled end date.<br>`2` - Send 2 days after the scheduled end date.<br>`3` - Send 3 days after the scheduled end date.<br>`4` - Send 4 days after the scheduled end date.<br>`5` - Send 5 days after the scheduled end date.<br>`6` - Send 6 days after the scheduled end date.<br>`7` - Send 7 days after the scheduled end date.', ) class QuestionAndAnswer15(BaseModel): allow_anonymous_questions: Optional[bool] = Field( None, description='* `true`: Allow participants to send questions without providing their name to the host, co-host, and panelists..\n\n* `false`: Do not allow anonymous questions.', ) answer_questions: Optional[AnswerQuestions] = Field( None, description='Indicate whether you want attendees to be able to view answered questions only or view all questions.\n\n* `only`: Attendees are able to view answered questions only.\n\n* `all`: Attendees are able to view all questions submitted in the Q&A.', ) attendees_can_comment: Optional[bool] = Field( None, description='* `true`: Attendees can answer questions or leave a comment in the question thread.\n\n* `false`: Attendees can not answer questions or leave a comment in the question thread', ) attendees_can_upvote: Optional[bool] = Field( None, description='* `true`: Attendees can click the thumbs up button to bring popular questions to the top of the Q&A window.\n\n* `false`: Attendees can not click the thumbs up butoon on questions.', ) enable: Optional[bool] = Field( None, description="* `true`: Enable [Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.\n\n* `false`: Disable Q&A for webinar.", ) class Settings42(BaseModel): allow_multiple_devices: Optional[bool] = Field( None, description='Allow attendees to join from multiple devices.' ) alternative_hosts: Optional[str] = Field( None, description='Alternative host emails or IDs. Multiple values separated by comma.', ) approval_type: Optional[ApprovalType] = Field( 2, description='`0` - Automatically approve.<br>`1` - Manually approve.<br>`2` - No registration required.', ) attendees_and_panelists_reminder_email_notification: Optional[ AttendeesAndPanelistsReminderEmailNotification15 ] = Field(None, description='Send reminder email to attendees and panelists.') audio: Optional[Audio] = Field( 'both', description='Determine how participants can join the audio portion of the webinar.', ) authentication_domains: Optional[str] = Field( None, description='If user has configured ["Sign Into Zoom with Specified Domains"](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f) option, this will list the domains that are authenticated.', ) authentication_name: Optional[str] = Field( None, description='Authentication name set in the [authentication profile](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars#h_5c0df2e1-cfd2-469f-bb4a-c77d7c0cca6f).', ) authentication_option: Optional[str] = Field( None, description='Webinar authentication option id.' ) auto_recording: Optional[AutoRecording] = Field( 'none', description='Automatic recording:<br>`local` - Record on local.<br>`cloud` - Record on cloud.<br>`none` - Disabled.', ) close_registration: Optional[bool] = Field( None, description='Close registration after event date.' ) contact_email: Optional[str] = Field( None, description='Contact email for registration' ) contact_name: Optional[str] = Field( None, description='Contact name for registration' ) email_language: Optional[str] = Field( None, description='Set the email language to one of the following:\n`en-US`,`de-DE`,`es-ES`,`fr-FR`,`jp-JP`,`pt-PT`,`ru-RU`,`zh-CN`, `zh-TW`, `ko-KO`, `it-IT`, `vi-VN`.', ) enforce_login: Optional[bool] = Field( None, description='Only signed in users can join this meeting.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) enforce_login_domains: Optional[str] = Field( None, description='Only signed in users with specified domains can join meetings.\n\n**This field is deprecated and will not be supported in the future.** <br><br>As an alternative, use the "meeting_authentication", "authentication_option" and "authentication_domains" fields to understand the [authentication configurations](https://support.zoom.us/hc/en-us/articles/360037117472-Authentication-Profiles-for-Meetings-and-Webinars) set for the Webinar.', ) follow_up_absentees_email_notification: Optional[ FollowUpAbsenteesEmailNotification15 ] = Field(None, description='Send follow-up email to absentees.') follow_up_attendees_email_notification: Optional[ FollowUpAttendeesEmailNotification15 ] = Field(None, description='Send follow-up email to attendees.') global_dial_in_countries: Optional[List[str]] = Field( None, description='List of global dial-in countries' ) hd_video: Optional[bool] = Field(False, description='Default to HD video.') host_video: Optional[bool] = Field( None, description='Start video when host joins webinar.' ) meeting_authentication: Optional[bool] = Field( None, description='`true`- Only authenticated users can join Webinar.' ) notify_registrants: Optional[bool] = Field( None, description='Send notification email to registrants when the host updates a webinar.', ) on_demand: Optional[bool] = Field(False, description='Make the webinar on-demand') panelists_invitation_email_notification: Optional[bool] = Field( None, description='* `true`: Send invitation email to panelists.\n\n* `false`: Do not send invitation email to panelists.', ) panelists_video: Optional[bool] = Field( None, description='Start video when panelists join webinar.' ) post_webinar_survey: Optional[bool] = Field( None, description="Zoom will open a survey page in attendees' browsers after leaving the webinar", ) practice_session: Optional[bool] = Field( False, description='Enable practice session.' ) question_and_answer: Optional[QuestionAndAnswer15] = Field( None, description="[Q&A](https://support.zoom.us/hc/en-us/articles/203686015-Using-Q-A-as-the-webinar-host#:~:text=Overview,and%20upvote%20each%20other's%20questions.) for webinar.", ) registrants_confirmation_email: Optional[bool] = Field( None, description='Send confirmation email to registrants' ) registrants_email_notification: Optional[bool] = Field( None, description='Send email notifications to registrants about approval, cancellation, denial of the registration. The value of this field must be set to true in order to use the `registrants_confirmation_email` field.', ) registrants_restrict_number: Optional[conint(ge=0, le=20000)] = Field( 0, description='Restrict number of registrants for a webinar. By default, it is set to `0`. A `0` value means that the restriction option is disabled. Provide a number higher than 0 to restrict the webinar registrants by the that number.', ) registration_type: Optional[RegistrationType] = Field( 1, description='Registration types. Only used for recurring webinars with a fixed time.<br>`1` - Attendees register once and can attend any of the webinar sessions.<br>`2` - Attendees need to register for each session in order to attend.<br>`3` - Attendees register once and can choose one or more sessions to attend.', ) show_share_button: Optional[bool] = Field( None, description='Show social share buttons on the registration page.' ) survey_url: Optional[str] = Field( None, description='Survey url for post webinar survey' ) class Type334(Enum): integer_5 = 5 integer_6 = 6 integer_9 = 9 class WebinarsWebinarIdPatchRequest1(BaseModel): agenda: Optional[str] = Field(None, description='Webinar description.') duration: Optional[int] = Field( None, description='Webinar duration (minutes). Used for scheduled webinar only.' ) password: Optional[constr(max_length=10)] = Field( None, description='[Webinar passcode](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords). By default, passcode may only contain the following characters: [a-z A-Z 0-9 @ - _ * !] and can have a maximum of 10 characters.\n\n**Note:** If the account owner or the admin has configured [minimum passcode requirement settings](https://support.zoom.us/hc/en-us/articles/360033559832-Meeting-and-webinar-passwords#h_a427384b-e383-4f80-864d-794bf0a37604), the passcode value provided here must meet those requirements. <br><br>If the requirements are enabled, you can view those requirements by calling either the [Get User Settings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/usersettings) or the [Get Account Settings](https://marketplace.zoom.us/docs/api-reference/zoom-api/accounts/accountsettings) API. \n\nIf "**Require a passcode when scheduling new meetings**" setting has been **enabled** **and** [locked](https://support.zoom.us/hc/en-us/articles/115005269866-Using-Tiered-Settings#locked) for the user, the passcode field will be autogenerated for the Webinar in the response even if it is not provided in the API request. <br><br>\n\n\n\n\n\n\n\n', ) recurrence: Optional[Recurrence29] = Field( None, description='Recurrence object. Use this object only for a meeting with type `8` i.e., a recurring meeting with fixed time. ', ) settings: Optional[Settings42] = None start_time: Optional[datetime] = Field( None, description='Webinar start time, in the format "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'." Should be in GMT time. In the format "yyyy-MM-dd\'T\'HH:mm:ss." This should be in local time and the timezone should be specified. Only used for scheduled webinars and recurring webinars with a fixed time.', ) timezone: Optional[str] = Field( None, description='Time zone to format start_time. For example, "America/Los_Angeles". For scheduled meetings only. Please reference our [time zone](#timezones) list for supported time zones and their formats.', ) topic: Optional[str] = Field(None, description='Webinar topic.') tracking_fields: Optional[List[TrackingField34]] = Field( None, description='Tracking fields' ) type: Optional[Type334] = Field( 5, description='Webinar Types:<br>`5` - webinar.<br>`6` - Recurring webinar with no fixed time.<br>`9` - Recurring webinar with a fixed time.', ) class Registrant18(BaseModel): email: EmailStr = Field(..., description='Email address of the registrant.') first_name: str = Field(..., description='First name of the registrant.') last_name: Optional[str] = Field(None, description='Last name of the registrant.') class WebinarsWebinarIdBatchRegistrantsPostRequest(BaseModel): auto_approve: Optional[bool] = Field( None, description='If a meeting was scheduled with approval_type `1` (manual approval), but you would like to automatically approve the registrants that are added via this API, you can set the value of this field to `true`. \n\nYou **cannot** use this field to change approval setting for a meeting that was originally scheduled with approval_type `0` (automatic approval).', ) registrants: Optional[List[Registrant18]] = None class WebinarsWebinarIdBatchRegistrantsPostRequest1(BaseModel): auto_approve: Optional[bool] = Field( None, description='If a meeting was scheduled with approval_type `1` (manual approval), but you would like to automatically approve the registrants that are added via this API, you can set the value of this field to `true`. \n\nYou **cannot** use this field to change approval setting for a meeting that was originally scheduled with approval_type `0` (automatic approval).', ) registrants: Optional[List[Registrant18]] = None class Registrant20(BaseModel): email: Optional[str] = Field(None, description='Email address of the registrant.') join_url: Optional[str] = Field( None, description='Unique URL using which registrant can join the webinar.' ) registrant_id: Optional[str] = Field( None, description='Unique identifier of the registrant.' ) class WebinarsWebinarIdBatchRegistrantsPostResponse(BaseModel): registrants: Optional[List[Registrant20]] = None class WebinarsWebinarIdBatchRegistrantsPostResponse1(BaseModel): registrants: Optional[List[Registrant20]] = None class WebinarsWebinarIdPanelistsGetResponse(BaseModel): panelists: Optional[List[Panelist3]] = Field( None, description='List of panelist objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class WebinarsWebinarIdPanelistsGetResponse1(BaseModel): panelists: Optional[List[Panelist3]] = Field( None, description='List of panelist objects.' ) total_records: Optional[int] = Field(None, description='Total records.') class Panelist6(BaseModel): email: Optional[EmailStr] = Field(None, description="Panelist's email.") name: Optional[str] = Field(None, description="Panelist's full name.") class WebinarsWebinarIdPanelistsPostRequest(BaseModel): panelists: Optional[List[Panelist6]] = Field( None, description='List of panelist objects.', le=30 ) class WebinarsWebinarIdPanelistsPostRequest1(BaseModel): panelists: Optional[List[Panelist6]] = Field( None, description='List of panelist objects.', le=30 ) class WebinarsWebinarIdPanelistsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Webinar Id.') updated_at: Optional[datetime] = Field( None, description='The time at which the panelist was added.' ) class Status96(Enum): notstart = 'notstart' started = 'started' ended = 'ended' sharing = 'sharing' class Type335(Enum): single = 'single' multiple = 'multiple' class Question39(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class Poll6(BaseModel): id: Optional[str] = Field(None, description='ID of Poll') status: Optional[Status96] = Field( None, description='Status of Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question39]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class WebinarsWebinarIdPollsGetResponse(BaseModel): polls: Optional[List[Poll6]] = Field(None, description='Array of Polls') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class Question40(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class Poll7(BaseModel): id: Optional[str] = Field(None, description='ID of Poll') status: Optional[Status96] = Field( None, description='Status of Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question40]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class WebinarsWebinarIdPollsGetResponse1(BaseModel): polls: Optional[List[Poll7]] = Field(None, description='Array of Polls') total_records: Optional[int] = Field( None, description='The number of all records available across pages' ) class Question41(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPostRequest(BaseModel): questions: Optional[List[Question41]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question42(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPostRequest1(BaseModel): questions: Optional[List[Question42]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question43(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Webinar Poll ID') status: Optional[Status96] = Field( None, description='Status of the Webinar Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question43]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question44(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPostResponse1(BaseModel): id: Optional[str] = Field(None, description='Webinar Poll ID') status: Optional[Status96] = Field( None, description='Status of the Webinar Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question44]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question45(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPollIdGetResponse(BaseModel): id: Optional[str] = Field(None, description='Webinar Poll ID') status: Optional[Status96] = Field( None, description='Status of the Webinar Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question45]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question46(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPollIdGetResponse1(BaseModel): id: Optional[str] = Field(None, description='Webinar Poll ID') status: Optional[Status96] = Field( None, description='Status of the Webinar Poll:<br>`notstart` - Poll not started<br>`started` - Poll started<br>`ended` - Poll ended<br>`sharing` - Sharing poll results', ) questions: Optional[List[Question46]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question47(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPollIdPutRequest(BaseModel): questions: Optional[List[Question47]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Question48(BaseModel): answers: Optional[List[str]] = Field(None, description='Answers to the questions') name: Optional[str] = Field( None, description='Question to be asked to the attendees.' ) type: Optional[Type335] = Field( None, description='Poll Question & Answer type:<br>`single` - Single choice<br>`mutliple` - Multiple choice', ) class WebinarsWebinarIdPollsPollIdPutRequest1(BaseModel): questions: Optional[List[Question48]] = Field(None, description='Array of Polls') title: Optional[str] = Field(None, description='Title for the poll.') class Status102(Enum): pending = 'pending' approved = 'approved' denied = 'denied' class Registrant22(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion28]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class WebinarsWebinarIdRegistrantsGetResponse(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant22]] = Field( None, description='List of registrant objects.' ) class Registrant23(BaseModel): id: Optional[str] = Field(None, description='Registrant ID.') address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion28]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = Field( None, description='The time at which the registrant registered.' ) join_url: Optional[str] = Field( None, description='The URL using which an approved registrant can join the webinar.', ) status: Optional[str] = Field( None, description="The status of the registrant's registration. <br> `approved`: User has been successfully approved for the webinar.<br> `pending`: The registration is still pending.<br> `denied`: User has been denied from joining the webinar.", ) class WebinarsWebinarIdRegistrantsGetResponse1(BaseModel): next_page_token: Optional[str] = Field( None, description='The next page token is used to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. The expiration period for this token is 15 minutes.', ) page_count: Optional[int] = Field( None, description='The number of pages returned for the request made.' ) page_number: Optional[int] = Field( 1, description='**Deprecated**: This field has been deprecated. Please use the "next_page_token" field for pagination instead of this field.\n\nThe page number of the current results.', ) page_size: Optional[conint(le=300)] = Field( 30, description='The number of records returned with a single API call.' ) total_records: Optional[int] = Field( None, description='The total number of all the records available across pages.' ) registrants: Optional[List[Registrant23]] = Field( None, description='List of registrant objects.' ) class WebinarsWebinarIdRegistrantsPostRequest(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion28]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class WebinarsWebinarIdRegistrantsPostRequest1(BaseModel): address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion28]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") class WebinarsWebinarIdRegistrantsPostResponse(BaseModel): id: Optional[str] = Field(None, description='Webinar ID') join_url: Optional[str] = Field( None, description='Unique URL for this registrant to join the Webinar. This URL should only be shared with the registrant for whom the API request was made.', ) registrant_id: Optional[str] = Field(None, description='Registrant ID') start_time: Optional[datetime] = Field(None, description='Start time') topic: Optional[constr(max_length=200)] = Field(None, description='Topic') class Type345(Enum): short = 'short' single_radio = 'single_radio' single_dropdown = 'single_dropdown' multiple = 'multiple' class CustomQuestion34(BaseModel): answers: Optional[List[str]] = Field( None, description="An array of answer choices. Can't be used for short answer type.", ) required: Optional[bool] = Field( None, description='State whether or not the custom question is required to be answered by a registrant.', ) title: Optional[str] = Field(None, description='Custom question.') type: Optional[Type345] = Field(None, description='The question-answer type.') class FieldName11(Enum): last_name = 'last_name' address = 'address' city = 'city' country = 'country' zip = 'zip' state = 'state' phone = 'phone' industry = 'industry' org = 'org' job_title = 'job_title' purchasing_time_frame = 'purchasing_time_frame' role_in_purchase_process = 'role_in_purchase_process' no_of_employees = 'no_of_employees' comments = 'comments' class Question49(BaseModel): field_name: Optional[FieldName11] = Field(None, description='Field name') required: Optional[bool] = Field( None, description='State whether the selected fields are required or optional.' ) class WebinarsWebinarIdRegistrantsQuestionsGetResponse(BaseModel): custom_questions: Optional[List[CustomQuestion34]] = Field( None, description='Array of Registrant Custom Questions.' ) questions: Optional[List[Question49]] = Field( None, description='Array of registration fields whose values should be provided by registrants during registration.', ) class CustomQuestion35(BaseModel): answers: Optional[List[str]] = Field( None, description="An array of answer choices. Can't be used for short answer type.", ) required: Optional[bool] = Field( None, description='State whether or not the custom question is required to be answered by a registrant.', ) title: Optional[str] = Field(None, description='Custom question.') type: Optional[Type345] = Field(None, description='The question-answer type.') class Question50(BaseModel): field_name: Optional[FieldName11] = Field(None, description='Field name') required: Optional[bool] = Field( None, description='State whether the selected fields are required or optional.' ) class WebinarsWebinarIdRegistrantsQuestionsGetResponse1(BaseModel): custom_questions: Optional[List[CustomQuestion35]] = Field( None, description='Array of Registrant Custom Questions.' ) questions: Optional[List[Question50]] = Field( None, description='Array of registration fields whose values should be provided by registrants during registration.', ) class CustomQuestion36(BaseModel): answers: Optional[List[str]] = Field( None, description="An array of answer choices. Can't be used for short answer type.", ) required: Optional[bool] = Field( None, description='State whether or not the custom question is required to be answered by a registrant.', ) title: Optional[str] = Field(None, description='Custom question.') type: Optional[Type345] = Field(None, description='The question-answer type.') class Question51(BaseModel): field_name: Optional[FieldName11] = Field(None, description='Field name') required: Optional[bool] = Field( None, description='State whether the selected fields are required or optional.' ) class WebinarsWebinarIdRegistrantsQuestionsPatchRequest(BaseModel): custom_questions: Optional[List[CustomQuestion36]] = Field( None, description='Array of Registrant Custom Questions.' ) questions: Optional[List[Question51]] = Field( None, description='Array of registration fields whose values should be provided by registrants during registration.', ) class CustomQuestion37(BaseModel): answers: Optional[List[str]] = Field( None, description="An array of answer choices. Can't be used for short answer type.", ) required: Optional[bool] = Field( None, description='State whether or not the custom question is required to be answered by a registrant.', ) title: Optional[str] = Field(None, description='Custom question.') type: Optional[Type345] = Field(None, description='The question-answer type.') class Question52(BaseModel): field_name: Optional[FieldName11] = Field(None, description='Field name') required: Optional[bool] = Field( None, description='State whether the selected fields are required or optional.' ) class WebinarsWebinarIdRegistrantsQuestionsPatchRequest1(BaseModel): custom_questions: Optional[List[CustomQuestion37]] = Field( None, description='Array of Registrant Custom Questions.' ) questions: Optional[List[Question52]] = Field( None, description='Array of registration fields whose values should be provided by registrants during registration.', ) class Action62(Enum): approve = 'approve' cancel = 'cancel' deny = 'deny' class Registrant24(BaseModel): email: Optional[str] = Field(None, description="Registrant's email address.") id: Optional[str] = Field(None, description='Registrant ID') class WebinarsWebinarIdRegistrantsStatusPutRequest(BaseModel): action: Action62 = Field( ..., description='Used to approve a registrant, deny a registrant, or cancel a previously approved registrant. ', ) registrants: Optional[List[Registrant24]] = Field( None, description='List of registrants.', le=30 ) class WebinarsWebinarIdRegistrantsStatusPutRequest1(BaseModel): action: Action62 = Field( ..., description='Used to approve a registrant, deny a registrant, or cancel a previously approved registrant. ', ) registrants: Optional[List[Registrant24]] = Field( None, description='List of registrants.', le=30 ) class CustomQuestion38(BaseModel): title: Optional[str] = None value: Optional[str] = None class WebinarsWebinarIdRegistrantsRegistrantIdGetResponse(BaseModel): id: Optional[str] = None address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion38]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = None join_url: Optional[str] = None status: Optional[str] = None class WebinarsWebinarIdRegistrantsRegistrantIdGetResponse1(BaseModel): id: Optional[str] = None address: Optional[str] = Field(None, description="Registrant's address.") city: Optional[str] = Field(None, description="Registrant's city.") comments: Optional[str] = Field( None, description='A field that allows registrants to provide any questions or comments that they might have.', ) country: Optional[str] = Field( None, description="Registrant's country. The value of this field must be in two-letter abbreviated form and must match the ID field provided in the [Countries](https://marketplace.zoom.us/docs/api-reference/other-references/abbreviation-lists#countries) table.", ) custom_questions: Optional[List[CustomQuestion38]] = Field( None, description='Custom questions.' ) email: constr(max_length=128) = Field( ..., description='A valid email address of the registrant.' ) first_name: constr(max_length=64) = Field( ..., description="Registrant's first name." ) industry: Optional[str] = Field(None, description="Registrant's Industry.") job_title: Optional[str] = Field(None, description="Registrant's job title.") last_name: Optional[constr(max_length=64)] = Field( None, description="Registrant's last name." ) no_of_employees: Optional[str] = Field( None, description='Number of Employees:<br>`1-20`<br>`21-50`<br>`51-100`<br>`101-500`<br>`500-1,000`<br>`1,001-5,000`<br>`5,001-10,000`<br>`More than 10,000`', ) org: Optional[str] = Field(None, description="Registrant's Organization.") phone: Optional[str] = Field(None, description="Registrant's Phone number.") purchasing_time_frame: Optional[str] = Field( None, description='This field can be included to gauge interest of webinar attendees towards buying your product or service.\n\nPurchasing Time Frame:<br>`Within a month`<br>`1-3 months`<br>`4-6 months`<br>`More than 6 months`<br>`No timeframe`', ) role_in_purchase_process: Optional[str] = Field( None, description='Role in Purchase Process:<br>`Decision Maker`<br>`Evaluator/Recommender`<br>`Influencer`<br>`Not involved` ', ) state: Optional[str] = Field(None, description="Registrant's State/Province.") zip: Optional[str] = Field(None, description="Registrant's Zip/Postal Code.") create_time: Optional[datetime] = None join_url: Optional[str] = None status: Optional[str] = None class Action64(Enum): end = 'end' class WebinarsWebinarIdStatusPutRequest(BaseModel): action: Optional[Action64] = None class WebinarsWebinarIdStatusPutRequest1(BaseModel): action: Optional[Action64] = None class TrackingSource(BaseModel): id: Optional[str] = Field( None, description='Unique Identifier of the tracking source.' ) registration_count: Optional[int] = Field( None, description='Number of registrations made from this source.' ) source_name: Optional[str] = Field( None, description='Name of the source (platform) where the registration URL was shared.', ) tracking_url: Optional[str] = Field( None, description='Tracking URL. The URL that was shared for the registration.' ) visitor_count: Optional[int] = Field( None, description='Number of visitors who visited the registration page from this source.', ) class WebinarsWebinarIdTrackingSourcesGetResponse(BaseModel): total_records: Optional[int] = Field( None, description='The total number of registration records for this Webinar.' ) tracking_sources: Optional[List[TrackingSource]] = Field( None, description='Tracking Sources object.' ) class WebinarsWebinarIdTrackingSourcesGetResponse1(BaseModel): total_records: Optional[int] = Field( None, description='The total number of registration records for this Webinar.' ) tracking_sources: Optional[List[TrackingSource]] = Field( None, description='Tracking Sources object.' )

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/heesookiim/zoom-api'

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