{"version":3,"sources":["../src/generated/v1/api/calendars/calendars.zod.ts","../src/generated/v1/api/default/default.zod.ts","../src/generated/v2/api/bots/bots.zod.ts","../src/generated/v2/api/calendars/calendars.zod.ts","../src/custom-axios.ts","../src/generated/v1/api/default/default.ts","../src/generated/v1/api/calendars/calendars.ts","../src/generated/v1/api/webhooks/webhooks.ts","../src/generated/v1/api/zoom-oauth/zoom-oauth.ts","../src/generated/v1/api/zoom-oauth/zoom-oauth.zod.ts","../src/generated/v2/api/bots/bots.ts","../src/generated/v2/api/calendars/calendars.ts","../src/generated/v2/api/zoom-credentials/zoom-credentials.ts","../src/generated/v2/api/zoom-credentials/zoom-credentials.zod.ts","../src/index.ts","../src/generated/v1/api/webhooks/webhooks.zod.ts","../src/generated/v1/schema/audioFrequency.ts","../src/generated/v1/schema/deleteStatus.ts","../src/generated/v1/schema/provider.ts","../src/generated/v1/schema/recordingMode.ts","../src/generated/v1/schema/speechToTextProvider.ts","../src/generated/v1/schema/userReportedErrorStatus.ts","../src/generated/v2/schema/index.ts","../src/generated/v2/schema/calendarWebhookConnectionCreatedDataCalendarPlatform.ts","../src/generated/v2/schema/calendarWebhookConnectionCreatedDataStatus.ts","../src/generated/v2/schema/calendarWebhookConnectionCreatedInputDataCalendarPlatform.ts","../src/generated/v2/schema/calendarWebhookConnectionCreatedInputDataStatus.ts","../src/generated/v2/schema/calendarWebhookConnectionDeletedDataCalendarPlatform.ts","../src/generated/v2/schema/calendarWebhookConnectionDeletedInputDataCalendarPlatform.ts","../src/generated/v2/schema/calendarWebhookConnectionUpdatedDataCalendarPlatform.ts","../src/generated/v2/schema/calendarWebhookConnectionUpdatedDataStatus.ts","../src/generated/v2/schema/calendarWebhookConnectionUpdatedInputDataCalendarPlatform.ts","../src/generated/v2/schema/calendarWebhookConnectionUpdatedInputDataStatus.ts","../src/generated/v2/schema/calendarWebhookEventCancelledDataCancelledInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventCancelledDataEventType.ts","../src/generated/v2/schema/calendarWebhookEventCancelledInputDataCancelledInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventCancelledInputDataEventType.ts","../src/generated/v2/schema/calendarWebhookEventCreatedDataEventType.ts","../src/generated/v2/schema/calendarWebhookEventCreatedDataInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventCreatedInputDataEventType.ts","../src/generated/v2/schema/calendarWebhookEventCreatedInputDataInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventsSyncedDataEventsItemEventType.ts","../src/generated/v2/schema/calendarWebhookEventsSyncedDataEventsItemInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventsSyncedInputDataEventsItemEventType.ts","../src/generated/v2/schema/calendarWebhookEventsSyncedInputDataEventsItemInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventUpdatedDataAffectedInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventUpdatedDataEventType.ts","../src/generated/v2/schema/calendarWebhookEventUpdatedInputDataAffectedInstancesItemStatus.ts","../src/generated/v2/schema/calendarWebhookEventUpdatedInputDataEventType.ts","../src/generated/v2/schema/createBotRequestBodyInputBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/createBotRequestBodyInputCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/createBotRequestBodyInputRecordingMode.ts","../src/generated/v2/schema/createBotRequestBodyInputTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/createCalendarBotRequestBodyAllOfBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/createCalendarBotRequestBodyAllOfCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/createCalendarBotRequestBodyAllOfRecordingMode.ts","../src/generated/v2/schema/createCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/createCalendarBotRequestBodyInputAllOfBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/createCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/createCalendarBotRequestBodyInputAllOfRecordingMode.ts","../src/generated/v2/schema/createCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/createCalendarConnectionRequestBodyCalendarPlatform.ts","../src/generated/v2/schema/createCalendarConnectionRequestBodyInputCalendarPlatform.ts","../src/generated/v2/schema/createCalendarConnectionResponseDataCalendarPlatform.ts","../src/generated/v2/schema/createCalendarConnectionResponseDataStatus.ts","../src/generated/v2/schema/createCalendarConnectionResponseInputDataCalendarPlatform.ts","../src/generated/v2/schema/createCalendarConnectionResponseInputDataStatus.ts","../src/generated/v2/schema/createZoomCredential201DataCredentialType.ts","../src/generated/v2/schema/createZoomCredential201DataState.ts","../src/generated/v2/schema/getBotDetailsResponseDataMeetingPlatform.ts","../src/generated/v2/schema/getBotDetailsResponseDataRecordingMode.ts","../src/generated/v2/schema/getBotDetailsResponseDataStatus.ts","../src/generated/v2/schema/getBotDetailsResponseInputDataMeetingPlatform.ts","../src/generated/v2/schema/getBotDetailsResponseInputDataRecordingMode.ts","../src/generated/v2/schema/getBotDetailsResponseInputDataStatus.ts","../src/generated/v2/schema/getBotStatusResponseDataStatus.ts","../src/generated/v2/schema/getBotStatusResponseDataTranscriptionStatus.ts","../src/generated/v2/schema/getBotStatusResponseInputDataStatus.ts","../src/generated/v2/schema/getBotStatusResponseInputDataTranscriptionStatus.ts","../src/generated/v2/schema/getCalendarDetailsResponseDataCalendarPlatform.ts","../src/generated/v2/schema/getCalendarDetailsResponseDataStatus.ts","../src/generated/v2/schema/getCalendarDetailsResponseInputDataCalendarPlatform.ts","../src/generated/v2/schema/getCalendarDetailsResponseInputDataStatus.ts","../src/generated/v2/schema/getEventDetailsResponseDataAttendeesAnyOfItemResponseStatus.ts","../src/generated/v2/schema/getEventDetailsResponseDataCalendarPlatform.ts","../src/generated/v2/schema/getEventDetailsResponseDataEventType.ts","../src/generated/v2/schema/getEventDetailsResponseDataStatus.ts","../src/generated/v2/schema/getEventDetailsResponseInputDataAttendeesAnyOfItemResponseStatus.ts","../src/generated/v2/schema/getEventDetailsResponseInputDataCalendarPlatform.ts","../src/generated/v2/schema/getEventDetailsResponseInputDataEventType.ts","../src/generated/v2/schema/getEventDetailsResponseInputDataStatus.ts","../src/generated/v2/schema/getScheduledBotResponseDataCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/getScheduledBotResponseDataMeetingPlatform.ts","../src/generated/v2/schema/getScheduledBotResponseDataRecordingMode.ts","../src/generated/v2/schema/getScheduledBotResponseDataStatus.ts","../src/generated/v2/schema/getScheduledBotResponseDataTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/getScheduledBotResponseInputDataCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/getScheduledBotResponseInputDataMeetingPlatform.ts","../src/generated/v2/schema/getScheduledBotResponseInputDataRecordingMode.ts","../src/generated/v2/schema/getScheduledBotResponseInputDataStatus.ts","../src/generated/v2/schema/getScheduledBotResponseInputDataTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/getZoomCredential200DataCredentialType.ts","../src/generated/v2/schema/getZoomCredential200DataState.ts","../src/generated/v2/schema/listBotsResponseDataItemMeetingPlatform.ts","../src/generated/v2/schema/listBotsResponseDataItemStatus.ts","../src/generated/v2/schema/listBotsResponseInputDataItemMeetingPlatform.ts","../src/generated/v2/schema/listBotsResponseInputDataItemStatus.ts","../src/generated/v2/schema/listCalendarsResponseDataItemCalendarPlatform.ts","../src/generated/v2/schema/listCalendarsResponseDataItemStatus.ts","../src/generated/v2/schema/listCalendarsResponseInputDataItemCalendarPlatform.ts","../src/generated/v2/schema/listCalendarsResponseInputDataItemStatus.ts","../src/generated/v2/schema/listEventSeriesResponseDataItemEventsItemStatus.ts","../src/generated/v2/schema/listEventSeriesResponseDataItemEventType.ts","../src/generated/v2/schema/listEventSeriesResponseInputDataItemEventsItemStatus.ts","../src/generated/v2/schema/listEventSeriesResponseInputDataItemEventType.ts","../src/generated/v2/schema/listEventsResponseDataItemEventType.ts","../src/generated/v2/schema/listEventsResponseDataItemStatus.ts","../src/generated/v2/schema/listEventsResponseInputDataItemEventType.ts","../src/generated/v2/schema/listEventsResponseInputDataItemStatus.ts","../src/generated/v2/schema/listRawCalendarsRequestBodyCalendarPlatform.ts","../src/generated/v2/schema/listRawCalendarsRequestBodyInputCalendarPlatform.ts","../src/generated/v2/schema/listScheduledBotsResponseDataItemMeetingPlatform.ts","../src/generated/v2/schema/listScheduledBotsResponseDataItemStatus.ts","../src/generated/v2/schema/listScheduledBotsResponseInputDataItemMeetingPlatform.ts","../src/generated/v2/schema/listScheduledBotsResponseInputDataItemStatus.ts","../src/generated/v2/schema/listZoomCredentials200DataItemCredentialType.ts","../src/generated/v2/schema/listZoomCredentials200DataItemState.ts","../src/generated/v2/schema/retryCallbackRequestBodyAnyOfMethod.ts","../src/generated/v2/schema/retryCallbackRequestBodyInputAnyOfMethod.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyAllOfTwoCallbackConfigMethod.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyAllOfTwoRecordingMode.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyAllOfTwoTranscriptionConfigProvider.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyInputAllOfTwoCallbackConfigMethod.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyInputAllOfTwoRecordingMode.ts","../src/generated/v2/schema/updateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigProvider.ts","../src/generated/v2/schema/updateCalendarConnectionResponseDataCalendarPlatform.ts","../src/generated/v2/schema/updateCalendarConnectionResponseDataStatus.ts","../src/generated/v2/schema/updateCalendarConnectionResponseInputDataCalendarPlatform.ts","../src/generated/v2/schema/updateCalendarConnectionResponseInputDataStatus.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyInputBotImageConfigAnyOfLoopMode.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyInputCallbackConfigAnyOfMethod.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyInputRecordingMode.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyInputTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyRecordingMode.ts","../src/generated/v2/schema/updateScheduledBotRequestBodyTranscriptionConfigAnyOfProvider.ts","../src/generated/v2/schema/updateZoomCredential200DataCredentialType.ts","../src/generated/v2/schema/updateZoomCredential200DataState.ts","../src/node/client-state.ts","../src/node/v1-methods.ts","../src/node/api.ts","../src/node/v2-methods.ts","../src/node/client.ts"],"sourcesContent":["/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Retrieves unprocessed calendar data directly from the provider (Google, Microsoft) using provided OAuth credentials. This endpoint is typically used during the initial setup process to allow users to select which calendars to integrate. Returns a list of available calendars with their unique IDs, email addresses, and primary status. This data is not persisted until a calendar is formally created using the create_calendar endpoint.\n * @summary List Raw Calendars\n */\nexport const listRawCalendarsBody = zod.object({\n  oauth_client_id: zod.string(),\n  oauth_client_secret: zod.string(),\n  oauth_refresh_token: zod.string(),\n  platform: zod\n    .enum([\"Google\", \"Microsoft\"])\n    .describe(\n      'Fields with value `\\\"simple\\\"` parse as `Kind::Simple`. Fields with value `\\\"fancy\\\"` parse as `Kind::SoFancy`.'\n    )\n})\n\nexport const listRawCalendarsResponse = zod.object({\n  calendars: zod.array(\n    zod.object({\n      email: zod.string(),\n      id: zod.string(),\n      is_primary: zod.boolean()\n    })\n  )\n})\n\n/**\n * Retrieves all calendars that have been integrated with the system for the authenticated user. Returns a list of calendars with their names, email addresses, provider information, and sync status. This endpoint shows only calendars that have been formally connected through the create_calendar endpoint, not all available calendars from the provider.\n * @summary List Calendars\n */\nexport const listCalendarsResponseItem = zod.object({\n  email: zod.string(),\n  google_id: zod.string(),\n  name: zod.string(),\n  resource_id: zod.string().nullish(),\n  uuid: zod.string().uuid()\n})\nexport const listCalendarsResponse = zod.array(listCalendarsResponseItem)\n\n/**\n * Integrates a new calendar with the system using OAuth credentials. This endpoint establishes a connection with the calendar provider (Google, Microsoft), sets up webhook notifications for real-time updates, and performs an initial sync of all calendar events. It requires OAuth credentials (client ID, client secret, and refresh token) and the platform type. Once created, the calendar is assigned a unique UUID that should be used for all subsequent operations. Returns the newly created calendar object with all integration details.\n * @summary Create Calendar\n */\nexport const createCalendarBody = zod.object({\n  oauth_client_id: zod.string(),\n  oauth_client_secret: zod.string(),\n  oauth_refresh_token: zod.string(),\n  platform: zod\n    .enum([\"Google\", \"Microsoft\"])\n    .describe(\n      'Fields with value `\\\"simple\\\"` parse as `Kind::Simple`. Fields with value `\\\"fancy\\\"` parse as `Kind::SoFancy`.'\n    ),\n  raw_calendar_id: zod.string().nullish()\n})\n\nexport const createCalendarResponse = zod.object({\n  calendar: zod.object({\n    email: zod.string(),\n    google_id: zod.string(),\n    name: zod.string(),\n    resource_id: zod.string().nullish(),\n    uuid: zod.string().uuid()\n  })\n})\n\n/**\n * Forces a sync of all your connected calendars with their providers (Google, Microsoft).\n\nProcesses each calendar individually and returns:\n- `synced_calendars`: UUIDs of successfully synced calendars\n- `errors`: Details of any failures\n\nSends webhook notifications for calendars with updates.\n * @summary Resync All Calendars\n */\nexport const resyncAllCalendarsQueryParams = zod.object({\n  days: zod\n    .number()\n    .nullish()\n    .describe(\"Number of days to sync forward (default: 30 for rolling window)\")\n})\n\nexport const resyncAllCalendarsResponseErrorsItemMin = 2\n\nexport const resyncAllCalendarsResponseErrorsItemMax = 2\n\nexport const resyncAllCalendarsResponse = zod.object({\n  errors: zod\n    .array(\n      zod\n        .array(zod.record(zod.string(), zod.any()))\n        .min(resyncAllCalendarsResponseErrorsItemMin)\n        .max(resyncAllCalendarsResponseErrorsItemMax)\n    )\n    .describe(\n      \"List of calendar UUIDs that failed to resync, with detailed error messages explaining the failure reason\"\n    ),\n  synced_calendars: zod\n    .array(zod.string().uuid())\n    .describe(\n      \"List of calendar UUIDs that were successfully resynced with their calendar provider (Google, Microsoft)\"\n    )\n})\n\n/**\n * Retrieves detailed information about a specific calendar integration by its UUID. Returns comprehensive calendar data including the calendar name, email address, provider details (Google, Microsoft), sync status, and other metadata. This endpoint is useful for displaying calendar information to users or verifying the status of a calendar integration before performing operations on its events.\n * @summary Get Calendar\n */\nexport const getCalendarParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const getCalendarResponse = zod.object({\n  email: zod.string(),\n  google_id: zod.string(),\n  name: zod.string(),\n  resource_id: zod.string().nullish(),\n  uuid: zod.string().uuid()\n})\n\n/**\n * Permanently removes a calendar integration by its UUID, including all associated events and bot configurations. This operation cancels any active subscriptions with the calendar provider, stops all webhook notifications, and unschedules any pending recordings. All related resources are cleaned up in the database. This action cannot be undone, and subsequent requests to this calendar's UUID will return 404 Not Found errors.\n * @summary Delete Calendar\n */\nexport const deleteCalendarParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\n/**\n * Updates a calendar integration with new credentials or platform while maintaining the same UUID. This operation is performed as an atomic transaction to ensure data integrity. The system automatically unschedules existing bots to prevent duplicates, updates the calendar credentials, and triggers a full resync of all events. Useful when OAuth tokens need to be refreshed or when migrating a calendar between providers. Returns the updated calendar object with its new configuration.\n * @summary Update Calendar\n */\nexport const updateCalendarParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const updateCalendarBody = zod.object({\n  oauth_client_id: zod.string(),\n  oauth_client_secret: zod.string(),\n  oauth_refresh_token: zod.string(),\n  platform: zod\n    .enum([\"Google\", \"Microsoft\"])\n    .describe(\n      'Fields with value `\\\"simple\\\"` parse as `Kind::Simple`. Fields with value `\\\"fancy\\\"` parse as `Kind::SoFancy`.'\n    )\n})\n\nexport const updateCalendarResponse = zod.object({\n  calendar: zod.object({\n    email: zod.string(),\n    google_id: zod.string(),\n    name: zod.string(),\n    resource_id: zod.string().nullish(),\n    uuid: zod.string().uuid()\n  })\n})\n\n/**\n * Retrieves comprehensive details about a specific calendar event by its UUID. Returns complete event information including title, meeting link, start and end times, organizer status, recurrence information, and the full list of attendees with their names and email addresses. Also includes any associated bot parameters if recording is scheduled for this event. The raw calendar data from the provider is also included for advanced use cases.\n * @summary Get Event\n */\nexport const getEventParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const getEventResponse = zod.object({\n  attendees: zod.array(\n    zod.object({\n      email: zod.string().describe(\"The email address of the meeting attendee\"),\n      name: zod\n        .string()\n        .nullish()\n        .describe(\n          \"The display name of the attendee if available from the calendar provider (Google, Microsoft)\"\n        )\n    })\n  ),\n  bot_param: zod\n    .object({\n      bot_image: zod.string().nullish(),\n      bot_name: zod.string(),\n      deduplication_key: zod.string().nullish(),\n      enter_message: zod.string().nullish(),\n      extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n      noone_joined_timeout: zod.number().nullish(),\n      recording_mode: zod\n        .enum([\"speaker_view\"])\n        .describe(\"Records the active speaker view\")\n        .or(\n          zod\n            .enum([\"gallery_view\"])\n            .describe(\"Records the gallery view showing multiple participants\")\n        )\n        .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n        .describe(\"Recording mode for the bot\")\n        .or(zod.null())\n        .optional(),\n      speech_to_text_api_key: zod.string().nullish(),\n      speech_to_text_provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"]).or(zod.null()).optional(),\n      streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n      streaming_input: zod.string().nullish(),\n      streaming_output: zod.string().nullish(),\n      transcription_custom_parameters: zod\n        .record(zod.string(), zod.any())\n        .describe(\"Custom data object\"),\n      waiting_room_timeout: zod.number().nullish(),\n      webhook_url: zod.string(),\n      zoom_access_token_url: zod.string().nullish(),\n      zoom_obf_token: zod.string().nullish(),\n      zoom_obf_token_url: zod.string().nullish(),\n      zoom_obf_token_user_id: zod.string().nullish(),\n      zoom_sdk_id: zod.string().nullish(),\n      zoom_sdk_pwd: zod.string().nullish()\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\"Associated bot parameters if a bot is scheduled for this event\"),\n  calendar_uuid: zod.string().uuid(),\n  deleted: zod.boolean().describe(\"Indicates whether this event has been deleted\"),\n  end_time: zod.string().datetime({}).describe(\"The end time of the event in UTC timezone\"),\n  google_id: zod\n    .string()\n    .describe(\"The unique identifier of the event from the calendar provider (Google, Microsoft)\"),\n  is_organizer: zod\n    .boolean()\n    .describe(\"Indicates whether the current user is the organizer of this event\"),\n  is_recurring: zod\n    .boolean()\n    .describe(\"Indicates whether this event is part of a recurring series\"),\n  last_updated_at: zod\n    .string()\n    .datetime({})\n    .describe(\"The timestamp when this event was last updated\"),\n  meeting_url: zod.string().describe(\"The URL that can be used to join the meeting (if available)\"),\n  name: zod.string().describe(\"The title/name of the calendar event\"),\n  raw: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n  recurring_event_id: zod\n    .string()\n    .nullish()\n    .describe(\"For recurring events, the ID of the parent recurring event series (if applicable)\"),\n  start_time: zod.string().datetime({}).describe(\"The start time of the event in UTC timezone\"),\n  uuid: zod.string().uuid()\n})\n\n/**\n * Configures a bot to automatically join and record a specific calendar event at its scheduled time. The UUID in the request path is the event UUID. The request body contains detailed bot configuration, including recording options, streaming settings, and webhook notification URLs. For recurring events, the 'all_occurrences' parameter can be set to true to schedule recording for all instances of the recurring series, or false (default) to schedule only the specific instance. Returns the updated event(s) with the bot parameters attached.\n * @summary Schedule Record Event\n */\nexport const scheduleRecordEventParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const scheduleRecordEventQueryParams = zod.object({\n  all_occurrences: zod\n    .boolean()\n    .nullish()\n    .describe(\"schedule a bot to all occurences of a recurring event\")\n})\n\nexport const scheduleRecordEventBody = zod.object({\n  bot_image: zod.string().nullish(),\n  bot_name: zod.string(),\n  deduplication_key: zod.string().nullish(),\n  enter_message: zod.string().nullish(),\n  extra: zod.record(zod.string(), zod.any()).optional().describe(\"Custom data object\"),\n  noone_joined_timeout: zod.number().nullish(),\n  recording_mode: zod\n    .enum([\"speaker_view\"])\n    .describe(\"Records the active speaker view\")\n    .or(\n      zod.enum([\"gallery_view\"]).describe(\"Records the gallery view showing multiple participants\")\n    )\n    .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n    .describe(\"Recording mode for the bot\")\n    .or(zod.null())\n    .optional(),\n  silence_timeout: zod.number().nullish(),\n  speech_to_text: zod\n    .object({\n      api_key: zod.string().nullish(),\n      provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"])\n    })\n    .or(zod.enum([\"Gladia\", \"Runpod\", \"Default\"]))\n    .or(zod.null())\n    .optional(),\n  streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n  streaming_input: zod.string().nullish(),\n  streaming_output: zod.string().nullish(),\n  transcription_custom_parameters: zod\n    .record(zod.string(), zod.any())\n    .optional()\n    .describe(\"Custom data object\"),\n  waiting_room_timeout: zod.number().nullish(),\n  webhook_url: zod.string().nullish(),\n  zoom_access_token_url: zod.string().nullish(),\n  zoom_obf_token: zod.string().nullish(),\n  zoom_obf_token_url: zod.string().nullish(),\n  zoom_obf_token_user_id: zod.string().nullish(),\n  zoom_sdk_id: zod.string().nullish(),\n  zoom_sdk_pwd: zod.string().nullish()\n})\n\nexport const scheduleRecordEventResponseItem = zod.object({\n  attendees: zod.array(\n    zod.object({\n      email: zod.string().describe(\"The email address of the meeting attendee\"),\n      name: zod\n        .string()\n        .nullish()\n        .describe(\n          \"The display name of the attendee if available from the calendar provider (Google, Microsoft)\"\n        )\n    })\n  ),\n  bot_param: zod\n    .object({\n      bot_image: zod.string().nullish(),\n      bot_name: zod.string(),\n      deduplication_key: zod.string().nullish(),\n      enter_message: zod.string().nullish(),\n      extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n      noone_joined_timeout: zod.number().nullish(),\n      recording_mode: zod\n        .enum([\"speaker_view\"])\n        .describe(\"Records the active speaker view\")\n        .or(\n          zod\n            .enum([\"gallery_view\"])\n            .describe(\"Records the gallery view showing multiple participants\")\n        )\n        .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n        .describe(\"Recording mode for the bot\")\n        .or(zod.null())\n        .optional(),\n      speech_to_text_api_key: zod.string().nullish(),\n      speech_to_text_provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"]).or(zod.null()).optional(),\n      streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n      streaming_input: zod.string().nullish(),\n      streaming_output: zod.string().nullish(),\n      transcription_custom_parameters: zod\n        .record(zod.string(), zod.any())\n        .describe(\"Custom data object\"),\n      waiting_room_timeout: zod.number().nullish(),\n      webhook_url: zod.string(),\n      zoom_access_token_url: zod.string().nullish(),\n      zoom_obf_token: zod.string().nullish(),\n      zoom_obf_token_url: zod.string().nullish(),\n      zoom_obf_token_user_id: zod.string().nullish(),\n      zoom_sdk_id: zod.string().nullish(),\n      zoom_sdk_pwd: zod.string().nullish()\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\"Associated bot parameters if a bot is scheduled for this event\"),\n  calendar_uuid: zod.string().uuid(),\n  deleted: zod.boolean().describe(\"Indicates whether this event has been deleted\"),\n  end_time: zod.string().datetime({}).describe(\"The end time of the event in UTC timezone\"),\n  google_id: zod\n    .string()\n    .describe(\"The unique identifier of the event from the calendar provider (Google, Microsoft)\"),\n  is_organizer: zod\n    .boolean()\n    .describe(\"Indicates whether the current user is the organizer of this event\"),\n  is_recurring: zod\n    .boolean()\n    .describe(\"Indicates whether this event is part of a recurring series\"),\n  last_updated_at: zod\n    .string()\n    .datetime({})\n    .describe(\"The timestamp when this event was last updated\"),\n  meeting_url: zod.string().describe(\"The URL that can be used to join the meeting (if available)\"),\n  name: zod.string().describe(\"The title/name of the calendar event\"),\n  raw: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n  recurring_event_id: zod\n    .string()\n    .nullish()\n    .describe(\"For recurring events, the ID of the parent recurring event series (if applicable)\"),\n  start_time: zod.string().datetime({}).describe(\"The start time of the event in UTC timezone\"),\n  uuid: zod.string().uuid()\n})\nexport const scheduleRecordEventResponse = zod.array(scheduleRecordEventResponseItem)\n\n/**\n * Cancels a previously scheduled recording for a calendar event and releases associated bot resources. For recurring events, the 'all_occurrences' parameter controls whether to unschedule from all instances of the recurring series or just the specific occurrence. This operation is idempotent and will not error if no bot was scheduled. Returns the updated event(s) with the bot parameters removed.\n * @summary Unschedule Record Event\n */\nexport const unscheduleRecordEventParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const unscheduleRecordEventQueryParams = zod.object({\n  all_occurrences: zod\n    .boolean()\n    .nullish()\n    .describe(\"unschedule a bot from all occurences of a recurring event\")\n})\n\nexport const unscheduleRecordEventResponseItem = zod.object({\n  attendees: zod.array(\n    zod.object({\n      email: zod.string().describe(\"The email address of the meeting attendee\"),\n      name: zod\n        .string()\n        .nullish()\n        .describe(\n          \"The display name of the attendee if available from the calendar provider (Google, Microsoft)\"\n        )\n    })\n  ),\n  bot_param: zod\n    .object({\n      bot_image: zod.string().nullish(),\n      bot_name: zod.string(),\n      deduplication_key: zod.string().nullish(),\n      enter_message: zod.string().nullish(),\n      extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n      noone_joined_timeout: zod.number().nullish(),\n      recording_mode: zod\n        .enum([\"speaker_view\"])\n        .describe(\"Records the active speaker view\")\n        .or(\n          zod\n            .enum([\"gallery_view\"])\n            .describe(\"Records the gallery view showing multiple participants\")\n        )\n        .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n        .describe(\"Recording mode for the bot\")\n        .or(zod.null())\n        .optional(),\n      speech_to_text_api_key: zod.string().nullish(),\n      speech_to_text_provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"]).or(zod.null()).optional(),\n      streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n      streaming_input: zod.string().nullish(),\n      streaming_output: zod.string().nullish(),\n      transcription_custom_parameters: zod\n        .record(zod.string(), zod.any())\n        .describe(\"Custom data object\"),\n      waiting_room_timeout: zod.number().nullish(),\n      webhook_url: zod.string(),\n      zoom_access_token_url: zod.string().nullish(),\n      zoom_obf_token: zod.string().nullish(),\n      zoom_obf_token_url: zod.string().nullish(),\n      zoom_obf_token_user_id: zod.string().nullish(),\n      zoom_sdk_id: zod.string().nullish(),\n      zoom_sdk_pwd: zod.string().nullish()\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\"Associated bot parameters if a bot is scheduled for this event\"),\n  calendar_uuid: zod.string().uuid(),\n  deleted: zod.boolean().describe(\"Indicates whether this event has been deleted\"),\n  end_time: zod.string().datetime({}).describe(\"The end time of the event in UTC timezone\"),\n  google_id: zod\n    .string()\n    .describe(\"The unique identifier of the event from the calendar provider (Google, Microsoft)\"),\n  is_organizer: zod\n    .boolean()\n    .describe(\"Indicates whether the current user is the organizer of this event\"),\n  is_recurring: zod\n    .boolean()\n    .describe(\"Indicates whether this event is part of a recurring series\"),\n  last_updated_at: zod\n    .string()\n    .datetime({})\n    .describe(\"The timestamp when this event was last updated\"),\n  meeting_url: zod.string().describe(\"The URL that can be used to join the meeting (if available)\"),\n  name: zod.string().describe(\"The title/name of the calendar event\"),\n  raw: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n  recurring_event_id: zod\n    .string()\n    .nullish()\n    .describe(\"For recurring events, the ID of the parent recurring event series (if applicable)\"),\n  start_time: zod.string().datetime({}).describe(\"The start time of the event in UTC timezone\"),\n  uuid: zod.string().uuid()\n})\nexport const unscheduleRecordEventResponse = zod.array(unscheduleRecordEventResponseItem)\n\n/**\n * Updates the configuration of a bot already scheduled to record an event. Allows modification of recording settings, webhook URLs, and other bot parameters without canceling and recreating the scheduled recording. For recurring events, the 'all_occurrences' parameter determines whether changes apply to all instances or just the specific occurrence. Returns the updated event(s) with the modified bot parameters.\n * @summary Patch Bot\n */\nexport const patchBotParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const patchBotQueryParams = zod.object({\n  all_occurrences: zod\n    .boolean()\n    .nullish()\n    .describe(\"schedule a bot to all occurences of a recurring event\")\n})\n\nexport const patchBotBodyBotImageDefault = null\nexport const patchBotBodyBotNameDefault = null\nexport const patchBotBodyDeduplicationKeyDefault = null\nexport const patchBotBodyEnterMessageDefault = null\nexport const patchBotBodyExtraDefault = null\nexport const patchBotBodyNooneJoinedTimeoutDefault = null\nexport const patchBotBodySpeechToTextDefault = null\nexport const patchBotBodyStreamingAudioFrequencyDefault = null\nexport const patchBotBodyStreamingInputDefault = null\nexport const patchBotBodyStreamingOutputDefault = null\nexport const patchBotBodyTranscriptionCustomParametersDefault = null\nexport const patchBotBodyWaitingRoomTimeoutDefault = null\nexport const patchBotBodyWebhookUrlDefault = null\nexport const patchBotBodyZoomAccessTokenUrlDefault = null\nexport const patchBotBodyZoomObfTokenDefault = null\nexport const patchBotBodyZoomObfTokenUrlDefault = null\nexport const patchBotBodyZoomObfTokenUserIdDefault = null\nexport const patchBotBodyZoomSdkIdDefault = null\nexport const patchBotBodyZoomSdkPwdDefault = null\n\nexport const patchBotBody = zod.object({\n  bot_image: zod.string().nullish(),\n  bot_name: zod.string().nullish(),\n  deduplication_key: zod.string().nullish(),\n  enter_message: zod.string().nullish(),\n  extra: zod.any().optional(),\n  noone_joined_timeout: zod.number().nullish(),\n  recording_mode: zod\n    .enum([\"speaker_view\"])\n    .describe(\"Records the active speaker view\")\n    .or(\n      zod.enum([\"gallery_view\"]).describe(\"Records the gallery view showing multiple participants\")\n    )\n    .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n    .describe(\"Recording mode for the bot\")\n    .or(zod.null())\n    .or(zod.null())\n    .optional(),\n  speech_to_text: zod\n    .object({\n      api_key: zod.string().nullish(),\n      provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"])\n    })\n    .or(zod.enum([\"Gladia\", \"Runpod\", \"Default\"]))\n    .or(zod.null())\n    .or(zod.null())\n    .optional(),\n  streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).or(zod.null()).optional(),\n  streaming_input: zod.string().nullish(),\n  streaming_output: zod.string().nullish(),\n  transcription_custom_parameters: zod.any().optional(),\n  waiting_room_timeout: zod.number().nullish(),\n  webhook_url: zod.string().nullish(),\n  zoom_access_token_url: zod.string().nullish(),\n  zoom_obf_token: zod.string().nullish(),\n  zoom_obf_token_url: zod.string().nullish(),\n  zoom_obf_token_user_id: zod.string().nullish(),\n  zoom_sdk_id: zod.string().nullish(),\n  zoom_sdk_pwd: zod.string().nullish()\n})\n\nexport const patchBotResponseItem = zod.object({\n  attendees: zod.array(\n    zod.object({\n      email: zod.string().describe(\"The email address of the meeting attendee\"),\n      name: zod\n        .string()\n        .nullish()\n        .describe(\n          \"The display name of the attendee if available from the calendar provider (Google, Microsoft)\"\n        )\n    })\n  ),\n  bot_param: zod\n    .object({\n      bot_image: zod.string().nullish(),\n      bot_name: zod.string(),\n      deduplication_key: zod.string().nullish(),\n      enter_message: zod.string().nullish(),\n      extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n      noone_joined_timeout: zod.number().nullish(),\n      recording_mode: zod\n        .enum([\"speaker_view\"])\n        .describe(\"Records the active speaker view\")\n        .or(\n          zod\n            .enum([\"gallery_view\"])\n            .describe(\"Records the gallery view showing multiple participants\")\n        )\n        .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n        .describe(\"Recording mode for the bot\")\n        .or(zod.null())\n        .optional(),\n      speech_to_text_api_key: zod.string().nullish(),\n      speech_to_text_provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"]).or(zod.null()).optional(),\n      streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n      streaming_input: zod.string().nullish(),\n      streaming_output: zod.string().nullish(),\n      transcription_custom_parameters: zod\n        .record(zod.string(), zod.any())\n        .describe(\"Custom data object\"),\n      waiting_room_timeout: zod.number().nullish(),\n      webhook_url: zod.string(),\n      zoom_access_token_url: zod.string().nullish(),\n      zoom_obf_token: zod.string().nullish(),\n      zoom_obf_token_url: zod.string().nullish(),\n      zoom_obf_token_user_id: zod.string().nullish(),\n      zoom_sdk_id: zod.string().nullish(),\n      zoom_sdk_pwd: zod.string().nullish()\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\"Associated bot parameters if a bot is scheduled for this event\"),\n  calendar_uuid: zod.string().uuid(),\n  deleted: zod.boolean().describe(\"Indicates whether this event has been deleted\"),\n  end_time: zod.string().datetime({}).describe(\"The end time of the event in UTC timezone\"),\n  google_id: zod\n    .string()\n    .describe(\"The unique identifier of the event from the calendar provider (Google, Microsoft)\"),\n  is_organizer: zod\n    .boolean()\n    .describe(\"Indicates whether the current user is the organizer of this event\"),\n  is_recurring: zod\n    .boolean()\n    .describe(\"Indicates whether this event is part of a recurring series\"),\n  last_updated_at: zod\n    .string()\n    .datetime({})\n    .describe(\"The timestamp when this event was last updated\"),\n  meeting_url: zod.string().describe(\"The URL that can be used to join the meeting (if available)\"),\n  name: zod.string().describe(\"The title/name of the calendar event\"),\n  raw: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n  recurring_event_id: zod\n    .string()\n    .nullish()\n    .describe(\"For recurring events, the ID of the parent recurring event series (if applicable)\"),\n  start_time: zod.string().datetime({}).describe(\"The start time of the event in UTC timezone\"),\n  uuid: zod.string().uuid()\n})\nexport const patchBotResponse = zod.array(patchBotResponseItem)\n\n/**\n * Retrieves a paginated list of calendar events with comprehensive filtering options. Supports filtering by organizer email, attendee email, date ranges (start_date_gte, start_date_lte), and event status. Results can be limited to upcoming events (default), past events, or all events. Each event includes full details such as meeting links, participants, and recording status. The response includes a 'next' pagination cursor for retrieving additional results.\n * @summary List Events\n */\nexport const listEventsQueryParams = zod.object({\n  attendee_email: zod\n    .string()\n    .nullish()\n    .describe(\n      'If provided, filters events to include only those with this attendee\\'s email address Example: \\\"jane.smith@example.com\\\"'\n    ),\n  calendar_id: zod\n    .string()\n    .describe(\n      \"Calendar ID to filter events by This is required to specify which calendar's events to retrieve\"\n    ),\n  cursor: zod\n    .string()\n    .nullish()\n    .describe(\n      \"Optional cursor for pagination This value is included in the `next` field of the previous response\"\n    ),\n  organizer_email: zod\n    .string()\n    .nullish()\n    .describe(\n      'If provided, filters events to include only those with this organizer\\'s email address Example: \\\"john.doe@example.com\\\"'\n    ),\n  start_date_gte: zod\n    .string()\n    .nullish()\n    .describe(\n      'If provided, filters events to include only those with a start date greater than or equal to this timestamp Format: ISO-8601 string, e.g., \\\"2023-01-01T00:00:00Z\\\"'\n    ),\n  start_date_lte: zod\n    .string()\n    .nullish()\n    .describe(\n      'If provided, filters events to include only those with a start date less than or equal to this timestamp Format: ISO-8601 string, e.g., \\\"2023-12-31T23:59:59Z\\\"'\n    ),\n  status: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter events by meeting status Valid values: \\\"upcoming\\\" (default) returns events after current time, \\\"past\\\" returns previous events, \\\"all\\\" returns both'\n    ),\n  updated_at_gte: zod\n    .string()\n    .nullish()\n    .describe(\n      'If provided, fetches only events updated at or after this timestamp Format: ISO-8601 string, e.g., \\\"2023-01-01T00:00:00Z\\\"'\n    )\n})\n\nexport const listEventsResponse = zod.object({\n  data: zod\n    .array(\n      zod.object({\n        attendees: zod.array(\n          zod.object({\n            email: zod.string().describe(\"The email address of the meeting attendee\"),\n            name: zod\n              .string()\n              .nullish()\n              .describe(\n                \"The display name of the attendee if available from the calendar provider (Google, Microsoft)\"\n              )\n          })\n        ),\n        bot_param: zod\n          .object({\n            bot_image: zod.string().nullish(),\n            bot_name: zod.string(),\n            deduplication_key: zod.string().nullish(),\n            enter_message: zod.string().nullish(),\n            extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n            noone_joined_timeout: zod.number().nullish(),\n            recording_mode: zod\n              .enum([\"speaker_view\"])\n              .describe(\"Records the active speaker view\")\n              .or(\n                zod\n                  .enum([\"gallery_view\"])\n                  .describe(\"Records the gallery view showing multiple participants\")\n              )\n              .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n              .describe(\"Recording mode for the bot\")\n              .or(zod.null())\n              .optional(),\n            speech_to_text_api_key: zod.string().nullish(),\n            speech_to_text_provider: zod\n              .enum([\"Gladia\", \"Runpod\", \"Default\"])\n              .or(zod.null())\n              .optional(),\n            streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n            streaming_input: zod.string().nullish(),\n            streaming_output: zod.string().nullish(),\n            transcription_custom_parameters: zod\n              .record(zod.string(), zod.any())\n              .describe(\"Custom data object\"),\n            waiting_room_timeout: zod.number().nullish(),\n            webhook_url: zod.string(),\n            zoom_access_token_url: zod.string().nullish(),\n            zoom_obf_token: zod.string().nullish(),\n            zoom_obf_token_url: zod.string().nullish(),\n            zoom_obf_token_user_id: zod.string().nullish(),\n            zoom_sdk_id: zod.string().nullish(),\n            zoom_sdk_pwd: zod.string().nullish()\n          })\n          .or(zod.null())\n          .optional()\n          .describe(\"Associated bot parameters if a bot is scheduled for this event\"),\n        calendar_uuid: zod.string().uuid(),\n        deleted: zod.boolean().describe(\"Indicates whether this event has been deleted\"),\n        end_time: zod.string().datetime({}).describe(\"The end time of the event in UTC timezone\"),\n        google_id: zod\n          .string()\n          .describe(\n            \"The unique identifier of the event from the calendar provider (Google, Microsoft)\"\n          ),\n        is_organizer: zod\n          .boolean()\n          .describe(\"Indicates whether the current user is the organizer of this event\"),\n        is_recurring: zod\n          .boolean()\n          .describe(\"Indicates whether this event is part of a recurring series\"),\n        last_updated_at: zod\n          .string()\n          .datetime({})\n          .describe(\"The timestamp when this event was last updated\"),\n        meeting_url: zod\n          .string()\n          .describe(\"The URL that can be used to join the meeting (if available)\"),\n        name: zod.string().describe(\"The title/name of the calendar event\"),\n        raw: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n        recurring_event_id: zod\n          .string()\n          .nullish()\n          .describe(\n            \"For recurring events, the ID of the parent recurring event series (if applicable)\"\n          ),\n        start_time: zod\n          .string()\n          .datetime({})\n          .describe(\"The start time of the event in UTC timezone\"),\n        uuid: zod.string().uuid()\n      })\n    )\n    .describe(\"Vector of calendar events matching the list criteria\"),\n  next: zod\n    .string()\n    .nullish()\n    .describe(\n      \"Optional url for fetching the next page of results if there are more results to fetch. The limit of events returned is 100. When None, there are no more results to fetch.\"\n    )\n})\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Have a bot join a meeting, now or in the future. You can provide a `webhook_url` parameter to receive webhook events specific to this bot, overriding your account's default webhook URL. Events include recording completion, failures, and transcription updates.\n * @summary Join\n */\nexport const joinBodyAutomaticLeaveNooneJoinedTimeoutMin = 0\nexport const joinBodyAutomaticLeaveSilenceTimeoutMin = 0\nexport const joinBodyAutomaticLeaveWaitingRoomTimeoutMin = 0\nexport const joinBodyReservedDefault = false\nexport const joinBodyStartTimeMin = 0\nexport const joinBodyTranscriptionCustomParametersDefault = null\n\nexport const joinBody = zod.object({\n  automatic_leave: zod\n    .object({\n      noone_joined_timeout: zod\n        .number()\n        .min(joinBodyAutomaticLeaveNooneJoinedTimeoutMin)\n        .nullish()\n        .describe(\n          \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting, defaults to 600 seconds (10 minutes). Minimum: 120 seconds (2 minutes). Maximum: 1800 seconds (30 minutes). When a bot first joins a meeting, it uses this timeout to determine if any participants have joined. If no participants are detected within this period, the bot will leave the meeting. Once participants are detected, the silence_timeout takes over. Applies to Google Meet and Microsoft Teams only.\"\n        ),\n      silence_timeout: zod\n        .number()\n        .min(joinBodyAutomaticLeaveSilenceTimeoutMin)\n        .nullish()\n        .describe(\n          \"The timeout in seconds for the bot to leave the meeting if no speaker activity is detected, defaults to 600 seconds (10 minutes). Minimum: 300 seconds (5 minutes). Maximum: 1800 seconds (30 minutes). This timeout becomes active after participants are detected. The bot monitors for audio activity, and if no sound is detected for the duration of this timeout, it will automatically leave the meeting. Important: Configure these timeouts carefully to ensure the bot doesn't leave too early - the noone_joined_timeout should be long enough to wait for late joiners, and the silence_timeout should account for intentional pauses. Applies to Google Meet and Microsoft Teams only.\"\n        ),\n      waiting_room_timeout: zod\n        .number()\n        .min(joinBodyAutomaticLeaveWaitingRoomTimeoutMin)\n        .nullish()\n        .describe(\n          \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting, defaults to 600 seconds (10 minutes). Minimum: 120 seconds (2 minutes). Maximum: 1800 seconds (30 minutes). Note: Google Meet also has it's own waiting room timeout (about ~10 minutes). Setting a higher value for such meetings would have no effect because Google Meet will deny entry to the bot after its own timeout.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Configuration for automatic meeting exit behavior. The bot uses waiting_room_timeout to wait in the waiting room, then noone_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Applies to Google Meet and Microsoft Teams only.\"\n    ),\n  bot_image: zod\n    .string()\n    .url()\n    .nullish()\n    .describe(\"The image to use for the bot, must be a URL. Recommended ratio is 16:9.\"),\n  bot_name: zod.string(),\n  deduplication_key: zod\n    .string()\n    .nullish()\n    .describe(\n      \"We prevent multiple bots with same API key joining a meeting within 5 mins, unless overridden by deduplication_key.\"\n    ),\n  entry_message: zod\n    .string()\n    .nullish()\n    .describe(\n      \"There are no entry messages on Microsoft Teams as guests outside of an organization do not have access to the chat.\"\n    ),\n  extra: zod.record(zod.string(), zod.any()).optional().describe(\"Custom data object\"),\n  meeting_url: zod.string(),\n  recording_mode: zod\n    .enum([\"speaker_view\"])\n    .describe(\"Records the active speaker view\")\n    .or(\n      zod.enum([\"gallery_view\"]).describe(\"Records the gallery view showing multiple participants\")\n    )\n    .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n    .describe(\"Recording mode for the bot\")\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The recording mode for the bot, defaults to 'speaker_view'. Supported values are 'speaker_view' and 'audio_only'. 'gallery_view' is currently under development.\"\n    ),\n  reserved: zod.boolean().optional().describe(\"Deprecated, do not use.\"),\n  speech_to_text: zod\n    .object({\n      api_key: zod.string().nullish(),\n      provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"])\n    })\n    .or(zod.enum([\"Gladia\", \"Runpod\", \"Default\"]))\n    .or(zod.null())\n    .optional()\n    .describe(\"The default speech to text provider is Gladia.\"),\n  start_time: zod\n    .number()\n    .min(joinBodyStartTimeMin)\n    .nullish()\n    .describe(\n      \"Reserved has been deprecated in favour of start_time. Unix timestamp (in seconds) for when the bot should join the meeting. The bot joins eaxctly at the start time.\"\n    ),\n  streaming: zod\n    .object({\n      audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n      input: zod.string().nullish(),\n      output: zod.string().nullish()\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"WebSocket streams for 16 kHz audio. Input stream receives audio sent to the bot. Output stream receives audio from the bot.\"\n    ),\n  transcription_custom_parameters: zod\n    .any()\n    .optional()\n    .describe(\"For your own transcription parameters\"),\n  webhook_url: zod\n    .string()\n    .nullish()\n    .describe(\n      \"A webhook URL to send events to, overrides the webhook URL set in your account settings.\"\n    ),\n  zoom_access_token_url: zod\n    .string()\n    .nullish()\n    .describe(\n      \"URL that returns a Zoom ZAK token (short-lived access token) for joining authenticated meetings.\"\n    ),\n  zoom_obf_token: zod\n    .string()\n    .nullish()\n    .describe(\n      \"A raw Zoom On Behalf Of (OBF) token for joining external Zoom meetings. Required for meetings that enforce authenticated join after March 2, 2026.\"\n    ),\n  zoom_obf_token_url: zod\n    .string()\n    .nullish()\n    .describe(\n      \"URL that returns a Zoom OBF token. The bot will fetch the token from this URL at join time.\"\n    ),\n  zoom_obf_token_user_id: zod\n    .string()\n    .nullish()\n    .describe(\n      \"The Zoom user ID associated with a stored OAuth connection. When set, the system will automatically fetch an OBF token using the managed OAuth credentials.\"\n    ),\n  zoom_sdk_id: zod\n    .string()\n    .nullish()\n    .describe(\"For the Own Zoom Credentials feature, we need your zoom sdk id.\"),\n  zoom_sdk_pwd: zod\n    .string()\n    .nullish()\n    .describe(\"For the Own Zoom Credentials feature, we need your zoom sdk pwd.\")\n})\n\nexport const joinResponse = zod.object({\n  bot_id: zod.string().uuid()\n})\n\n/**\n * Leave\n * @summary Leave\n */\nexport const leaveParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const leaveResponse = zod.object({\n  ok: zod.boolean()\n})\n\n/**\n * Get meeting recording and metadata\n * @summary Get Meeting Data\n */\nexport const getMeetingDataQueryIncludeTranscriptsDefault = true\n\nexport const getMeetingDataQueryParams = zod.object({\n  bot_id: zod.string(),\n  include_transcripts: zod\n    .boolean()\n    .default(getMeetingDataQueryIncludeTranscriptsDefault)\n    .describe(\n      \"Whether to include transcription data in the response. Defaults to true if not specified.\"\n    )\n})\n\nexport const getMeetingDataResponse = zod.object({\n  audio: zod\n    .string()\n    .describe(\n      \"URL to access the recording WAV audio file. Will be an empty string if the file doesn't exist in S3.\"\n    ),\n  bot_data: zod.object({\n    bot: zod.object({\n      account_id: zod.number(),\n      bot_exited_at: zod.string().datetime({}).nullable(),\n      bot_image: zod.string().nullish(),\n      bot_joined_at: zod.string().datetime({}).nullable(),\n      bot_name: zod.string(),\n      bot_param_id: zod.number(),\n      created_at: zod.string().datetime({}),\n      deduplication_key: zod.string().nullish(),\n      diarization_fails: zod.number().nullish(),\n      diarization_v2: zod.boolean(),\n      ended_at: zod.string().datetime({}).nullable(),\n      enter_message: zod.string().nullish(),\n      errors: zod.string().nullish(),\n      event_id: zod.number().nullish(),\n      extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n      id: zod.number(),\n      is_stopped: zod.boolean(),\n      meeting_url: zod.string(),\n      mp4_s3_path: zod.string(),\n      noone_joined_timeout: zod.number().nullish(),\n      recording_mode: zod\n        .enum([\"speaker_view\"])\n        .describe(\"Records the active speaker view\")\n        .or(\n          zod\n            .enum([\"gallery_view\"])\n            .describe(\"Records the gallery view showing multiple participants\")\n        )\n        .or(zod.enum([\"audio_only\"]).describe(\"Records only the audio from the meeting\"))\n        .describe(\"Recording mode for the bot\")\n        .or(zod.null())\n        .optional(),\n      reserved: zod.boolean(),\n      scheduled_bot_id: zod.number().nullish(),\n      session_id: zod.string().nullish(),\n      silence_timeout: zod.number().nullish(),\n      speech_to_text_api_key: zod.string().nullish(),\n      speech_to_text_provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"]).or(zod.null()).optional(),\n      streaming_audio_frequency: zod.enum([\"16khz\", \"24khz\"]).or(zod.null()).optional(),\n      streaming_input: zod.string().nullish(),\n      streaming_output: zod.string().nullish(),\n      transcription_custom_parameters: zod\n        .record(zod.string(), zod.any())\n        .describe(\"Custom data object\"),\n      transcription_fails: zod.number().nullish(),\n      transcription_payloads: zod.any().optional(),\n      user_reported_error: zod.any().optional(),\n      uuid: zod.string().uuid(),\n      waiting_room_timeout: zod.number().nullish(),\n      webhook_url: zod.string(),\n      zoom_access_token_url: zod.string().nullish(),\n      zoom_obf_token: zod.string().nullish(),\n      zoom_obf_token_url: zod.string().nullish(),\n      zoom_obf_token_user_id: zod.string().nullish(),\n      zoom_sdk_id: zod.string().nullish(),\n      zoom_sdk_pwd: zod.string().nullish()\n    }),\n    event_uuid: zod\n      .string()\n      .uuid()\n      .nullish()\n      .describe(\"UUID of the calendar event (if this bot was created from an event)\"),\n    transcripts: zod.array(\n      zod.object({\n        bot_id: zod.number(),\n        end_time: zod.number().nullish(),\n        id: zod.number(),\n        lang: zod.string().nullish(),\n        speaker: zod.string(),\n        start_time: zod.number(),\n        user_id: zod.number().nullish(),\n        words: zod.array(\n          zod.object({\n            bot_id: zod.number(),\n            end_time: zod.number(),\n            id: zod.number(),\n            start_time: zod.number(),\n            text: zod.string(),\n            user_id: zod.number().nullish()\n          })\n        )\n      })\n    )\n  }),\n  duration: zod.number().describe(\"Duration of the recording in seconds\"),\n  meeting_participants_file: zod\n    .string()\n    .describe(\n      \"URL to access the meeting participants log file. Contains information about meeting participants. Will be an empty string if the file doesn't exist in S3.\"\n    ),\n  mp4: zod\n    .string()\n    .describe(\n      \"URL to access the recording MP4 file. Will be an empty string if the file doesn't exist in S3.\"\n    ),\n  speaker_diarization_file: zod\n    .string()\n    .describe(\n      \"URL to access the speaker diarization metadata file. Contains real-time speaker activity data with timestamps indicating when each speaker is talking. The file contains JSON arrays with speaker information including name, ID, timestamp, and speaking status. Will be an empty string if the file doesn't exist in S3.\"\n    ),\n  speaker_diarization_file_network: zod\n    .string()\n    .describe(\n      \"URL to access the network speaker detection log file. Contains speaker observation observed through network (not UI changes). Will be an empty string if the file doesn't exist in S3.\"\n    )\n})\n\n/**\n * Deletes a bot's data including recording, transcription, and logs. Only metadata is retained. Rate limited to 5 requests per minute per API key.\n * @summary Delete Data\n */\nexport const deleteDataParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const deleteDataResponse = zod.object({\n  ok: zod.boolean().describe(\"Whether the request was processed successfully\"),\n  status: zod\n    .enum([\"deleted\"])\n    .describe(\"All data was successfully deleted\")\n    .or(\n      zod\n        .enum([\"partiallyDeleted\"])\n        .describe(\"Some data was deleted, but other parts couldn't be removed\")\n    )\n    .or(\n      zod\n        .enum([\"alreadyDeleted\"])\n        .describe(\"No data needed to be deleted as it was already removed\")\n    )\n    .or(zod.enum([\"noDataFound\"]).describe(\"No data was found for the specified bot\"))\n})\n\n/**\n * Retrieves a paginated list of the user's bots with essential metadata, including IDs, names, and meeting details. Supports filtering, sorting, and advanced querying options.\n * @summary List Bots with Metadata\n */\nexport const botsWithMetadataQueryLimitDefault = 10\n\nexport const botsWithMetadataQueryParams = zod.object({\n  bot_name: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter bots by name containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s name. Useful for finding bots with specific naming conventions or to locate a particular bot when you don\\'t have its ID.\\n\\nExample: \\\"Sales\\\" would match \\\"Sales Meeting\\\", \\\"Quarterly Sales\\\", etc.'\n    ),\n  created_after: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter bots created after this date (ISO format).\\n\\nLimits results to bots created at or after the specified timestamp. Used for time-based filtering to find recent additions.\\n\\nFormat: ISO-8601 date-time string (YYYY-MM-DDThh:mm:ss) Example: \\\"2023-05-01T00:00:00\\\"'\n    ),\n  created_before: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter bots created before this date (ISO format).\\n\\nLimits results to bots created at or before the specified timestamp. Used for time-based filtering to exclude recent additions.\\n\\nFormat: ISO-8601 date-time string (YYYY-MM-DDThh:mm:ss) Example: \\\"2023-05-31T23:59:59\\\"'\n    ),\n  cursor: zod\n    .string()\n    .nullish()\n    .describe(\n      \"Cursor for pagination, obtained from previous response.\\n\\nUsed for retrieving the next set of results after a previous call. The cursor value is returned in the `nextCursor` field of responses that have additional results available.\\n\\nFormat: Base64-encoded string containing pagination metadata\"\n    ),\n  ended_after: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter bots ended after this date (ISO format).\\n\\nLimits results to bots that ended at or after the specified timestamp. Useful for finding completed meetings within a specific time period.\\n\\nFormat: ISO-8601 date-time string (YYYY-MM-DDThh:mm:ss) Example: \\\"2023-05-01T00:00:00\\\"'\n    ),\n  filter_by_extra: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter bots by matching values in the extra JSON payload.\\n\\nThis parameter performs in-memory filtering on the `extra` JSON field, similar to a SQL WHERE clause. It reduces the result set to only include bots that match all specified conditions.\\n\\nFormat specifications: - Single condition: \\\"field:value\\\" - Multiple conditions: \\\"field1:value1,field2:value2\\\"\\n\\nExamples: - \\\"customer_id:12345\\\" - Only bots with this customer ID - \\\"status:active,project:sales\\\" - Only active bots from sales projects\\n\\nNotes: - All conditions must match for a bot to be included - Values are matched exactly (case-sensitive) - Bots without the specified field are excluded'\n    ),\n  limit: zod\n    .number()\n    .default(botsWithMetadataQueryLimitDefault)\n    .describe(\n      \"Maximum number of bots to return in a single request.\\n\\nLimits the number of results returned in a single API call. This parameter helps control response size and page length.\\n\\nDefault: 10 Minimum: 1 Maximum: 50\"\n    ),\n  meeting_url: zod\n    .string()\n    .nullish()\n    .describe(\n      'Filter bots by meeting URL containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s meeting URL. Use this to find bots associated with specific meeting platforms or particular meeting IDs.\\n\\nExample: \\\"zoom.us\\\" would match all Zoom meetings'\n    ),\n  sort_by_extra: zod\n    .string()\n    .nullish()\n    .describe(\n      'Sort the results by a field in the extra JSON payload.\\n\\nThis parameter performs in-memory sorting on the `extra` JSON field, similar to a SQL ORDER BY clause. It changes the order of results but not which results are included.\\n\\nFormat specifications: - Default (ascending): \\\"field\\\" - Explicit direction: \\\"field:asc\\\" or \\\"field:desc\\\"\\n\\nExamples: - \\\"customer_id\\\" - Sort by customer_id (ascending) - \\\"priority:desc\\\" - Sort by priority (descending)\\n\\nNotes: - Applied after all filtering - String comparison is used for sorting - Bots with the field come before bots without it - Can be combined with filter_by_extra'\n    ),\n  speaker_name: zod\n    .string()\n    .nullish()\n    .describe(\n      'NOTE: this is a preview feature and not yet available\\n\\nFilter bots by speaker name containing this string.\\n\\nPerforms a case-insensitive partial match on the speakers in the meeting. Useful for finding meetings that included a specific person.\\n\\nExample: \\\"John\\\" would match meetings with speakers like \\\"John Smith\\\" or \\\"John Doe\\\"'\n    )\n})\n\nexport const botsWithMetadataResponseLastUpdatedDefault = \"2025-01-01T00:00:00.000000000+00:00\"\n\nexport const botsWithMetadataResponse = zod\n  .object({\n    bots: zod\n      .array(\n        zod\n          .object({\n            access_count: zod\n              .number()\n              .nullish()\n              .describe(\"Number of times this bot data has been accessed (if tracked)\"),\n            bot_name: zod.string().describe(\"Name of the bot\"),\n            created_at: zod.string().describe(\"Creation timestamp of the bot in ISO-8601 format\"),\n            duration: zod\n              .number()\n              .nullish()\n              .describe(\"Duration of the bot session in seconds (if completed)\"),\n            ended_at: zod\n              .string()\n              .nullish()\n              .describe(\"End time of the bot session (if completed) in ISO-8601 format\"),\n            extra: zod.record(zod.string(), zod.any()).describe(\"Custom data object\"),\n            id: zod\n              .number()\n              .describe(\n                \"Unique identifier of the bot (legacy field)\\n\\nThis field is maintained for backwards compatibility. It is serialized as a UUID string to match the old API format. New clients should use the uuid field instead.\"\n              ),\n            last_accessed_at: zod\n              .string()\n              .nullish()\n              .describe(\"Last time this bot data was accessed (if available)\"),\n            meeting_url: zod.string().describe(\"URL of the meeting the bot joined\"),\n            session_id: zod.string().nullish().describe(\"Session ID if the bot is active\"),\n            speakers: zod\n              .array(zod.string())\n              .describe(\"List of unique speaker names from the bot's transcripts\"),\n            uuid: zod\n              .string()\n              .uuid()\n              .describe(\n                \"Unique identifier of the bot (new field)\\n\\nThis is the preferred field to use for bot identification. The id field is maintained for backwards compatibility.\"\n              )\n          })\n          .describe(\"Entry for a recent bot in the list response\")\n      )\n      .describe(\n        'List of recent bots with their metadata\\n\\nThis field is serialized as both \\\"bots\\\" and \\\"recent_bots\\\" for backwards compatibility. New clients should use the \\\"bots\\\" field name.'\n      ),\n    last_updated: zod\n      .string()\n      .datetime({})\n      .default(botsWithMetadataResponseLastUpdatedDefault)\n      .describe(\n        \"Timestamp of when this data was generated (in ISO-8601 format)\\n\\nThis field is maintained for backwards compatibility. It is automatically set to the current time when the response is created.\"\n      ),\n    next_cursor: zod.string().nullish().describe(\"Optional cursor for pagination\")\n  })\n  .describe(\"Response for listing recent bots\")\n\n/**\n * Transcribe or retranscribe a bot's audio using the Default or your provided Speech to Text Provider\n * @summary Retranscribe Bot\n */\nexport const retranscribeBotBody = zod.object({\n  bot_uuid: zod.string(),\n  speech_to_text: zod\n    .object({\n      api_key: zod.string().nullish(),\n      provider: zod.enum([\"Gladia\", \"Runpod\", \"Default\"])\n    })\n    .or(zod.enum([\"Gladia\", \"Runpod\", \"Default\"]))\n    .or(zod.null())\n    .optional(),\n  webhook_url: zod.string().nullish()\n})\n\n/**\n * Retrieves screenshots captured during the bot's session\n * @summary Get Screenshots\n */\nexport const getScreenshotsParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const getScreenshotsResponseItem = zod\n  .object({\n    date: zod.string(),\n    url: zod.string()\n  })\n  .describe(\"Schema-compatible wrapper for the Screenshot struct\")\nexport const getScreenshotsResponse = zod.array(getScreenshotsResponseItem)\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Create a bot to join a meeting immediately.\n    \n    The bot will automatically join the meeting, request recording permissions, and start recording once accepted. You can provide a bot-specific callback URL to receive bot.completed and bot.failed events for this bot (in addition to your account's webhooks). The bot will send webhook events for status changes, completion, and failures.\n    \n    Returns a `bot_id` (UUID) that you can use to track status, retrieve meeting data, and manage the bot. The bot will be queued immediately and join the meeting as soon as possible (may take up to 2 minutes depending on availability of bot slots).\n    \n    **Token Reservation:** 0.5 tokens are reserved immediately upon creation. These tokens will be consumed based on the bot's duration and outcome. If the bot fails due to user-responsible errors (`BOT_NOT_ACCEPTED`, `TIMEOUT_WAITING_TO_START`), recording tokens will be charged based on the time spent in the waiting room.\n    \n    **Deduplication:** By default, multiple bots can join the same meeting URL. Set `allow_multiple_bots: false` to prevent duplicate bots within 5 minutes. The deduplication check expires after 5 minutes, allowing a new bot to join the same meeting URL after that period.\n    \n    **Rate Limits:** Subject to your API key's rate limits and your team's daily bot cap. The daily bot cap is checked before token reservation. If the cap is reached, the request will fail with a 429 status code.\n    \n    **Error Scenarios:**\n    - `402 Payment Required`: Insufficient tokens available\n    - `409 Conflict`: Bot already exists for the same meeting URL (when `allow_multiple_bots` is false)\n    - `429 Too Many Requests`: Daily bot cap reached or rate limit exceeded\n * @summary Create a bot\n */\nexport const createBotBodyBotNameMax = 255\nexport const createBotBodyBotImageMaxThree = 5\nexport const createBotBodyBotImageDefault = null\nexport const createBotBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const createBotBodyBotImageConfigImageDurationDefault = 30\nexport const createBotBodyBotImageConfigImageDurationMin = 10\n\nexport const createBotBodyBotImageConfigImageDurationMax = 120\nexport const createBotBodyBotImageConfigDefault = null\nexport const createBotBodyAllowMultipleBotsDefault = true\nexport const createBotBodyRecordingModeDefault = \"speaker_view\"\nexport const createBotBodyEntryMessageMaxOne = 500\nexport const createBotBodyEntryMessageDefault = null\nexport const createBotBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const createBotBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const createBotBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const createBotBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const createBotBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const createBotBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const createBotBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const createBotBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const createBotBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const createBotBodyTimeoutConfigGracePeriodDefault = 0\nexport const createBotBodyTimeoutConfigGracePeriodMin = 0\n\nexport const createBotBodyTimeoutConfigGracePeriodMax = 600\nexport const createBotBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const createBotBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const createBotBodyZoomConfigDefault = null\nexport const createBotBodyExtraDefault = null\nexport const createBotBodyStreamingEnabledDefault = false\nexport const createBotBodyStreamingConfigInputUrlDefault = null\nexport const createBotBodyStreamingConfigOutputUrlDefault = null\nexport const createBotBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const createBotBodyStreamingConfigDefault = null\nexport const createBotBodyTranscriptionEnabledDefault = false\nexport const createBotBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const createBotBodyTranscriptionConfigApiKeyDefault = null\nexport const createBotBodyTranscriptionConfigCustomParamsDefault = null\nexport const createBotBodyTranscriptionConfigDefault = null\nexport const createBotBodyCallbackEnabledDefault = false\nexport const createBotBodyCallbackConfigSecretDefault = null\nexport const createBotBodyCallbackConfigMethodDefault = \"POST\"\nexport const createBotBodyCallbackConfigDefault = null\n\nexport const createBotBody = zod.object({\n  bot_name: zod\n    .string()\n    .min(1)\n    .max(createBotBodyBotNameMax)\n    .describe(\n      \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n    ),\n  bot_image: zod\n    .string()\n    .url()\n    .or(zod.array(zod.string().url()).min(1).max(createBotBodyBotImageMaxThree))\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n    ),\n  bot_image_config: zod\n    .object({\n      loop_mode: zod\n        .enum([\"auto\", \"bot_status\"])\n        .default(createBotBodyBotImageConfigLoopModeDefault)\n        .describe(\n          \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n        ),\n      image_duration: zod\n        .number()\n        .min(createBotBodyBotImageConfigImageDurationMin)\n        .max(createBotBodyBotImageConfigImageDurationMax)\n        .default(createBotBodyBotImageConfigImageDurationDefault)\n        .describe(\n          \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n    ),\n  meeting_url: zod\n    .string()\n    .url()\n    .describe(\n      'The URL of the meeting to join.\\n\\nMust be a valid HTTPS URL for a Microsoft Teams, Google Meet, or Zoom meeting.\\n\\nExample: \\\"https://zoom.us/j/123456789\\\" or \\\"https://meet.google.com/abc-defg-hij\\\"'\n    ),\n  allow_multiple_bots: zod\n    .boolean()\n    .default(createBotBodyAllowMultipleBotsDefault)\n    .describe(\n      \"Whether to allow multiple bots to join the same meeting.\\n\\nIf set to `false`, only a single bot will be allowed to join using the same meeting URL within the last 5 minutes. This prevents duplicate bots from joining the same meeting.\\n\\nIf set to `true` (default), multiple bots can join the same meeting URL.\\n\\nDefault: `true`\"\n    ),\n  recording_mode: zod\n    .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n    .default(createBotBodyRecordingModeDefault)\n    .describe(\n      \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n    ),\n  entry_message: zod\n    .string()\n    .max(createBotBodyEntryMessageMaxOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n    ),\n  timeout_config: zod\n    .object({\n      waiting_room_timeout: zod\n        .number()\n        .min(createBotBodyTimeoutConfigWaitingRoomTimeoutMin)\n        .max(createBotBodyTimeoutConfigWaitingRoomTimeoutMax)\n        .default(createBotBodyTimeoutConfigWaitingRoomTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n        ),\n      no_one_joined_timeout: zod\n        .number()\n        .min(createBotBodyTimeoutConfigNoOneJoinedTimeoutMin)\n        .max(createBotBodyTimeoutConfigNoOneJoinedTimeoutMax)\n        .default(createBotBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n        ),\n      silence_timeout: zod\n        .number()\n        .min(createBotBodyTimeoutConfigSilenceTimeoutMin)\n        .max(createBotBodyTimeoutConfigSilenceTimeoutMax)\n        .default(createBotBodyTimeoutConfigSilenceTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n        ),\n      grace_period: zod\n        .number()\n        .min(createBotBodyTimeoutConfigGracePeriodMin)\n        .max(createBotBodyTimeoutConfigGracePeriodMax)\n        .optional()\n        .describe(\n          \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n        )\n    })\n    .default(createBotBodyTimeoutConfigDefault)\n    .describe(\n      \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n    ),\n  zoom_config: zod\n    .object({\n      credential_id: zod\n        .string()\n        .uuid()\n        .regex(createBotBodyZoomConfigCredentialIdRegExp)\n        .optional()\n        .describe(\n          \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n        ),\n      credential_user_id: zod\n        .string()\n        .optional()\n        .describe(\n          \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n        ),\n      obf_token: zod\n        .string()\n        .optional()\n        .describe(\n          \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n        ),\n      obf_token_url: zod\n        .string()\n        .url()\n        .optional()\n        .describe(\n          \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n        ),\n      zak_token_url: zod\n        .string()\n        .url()\n        .optional()\n        .describe(\n          \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n    ),\n  extra: zod\n    .record(zod.string(), zod.any())\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n    ),\n  streaming_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable audio streaming for this bot. When enabled, the streaming_config property is used to provide the configuration.\"\n    ),\n  streaming_config: zod\n    .object({\n      input_url: zod\n        .string()\n        .url()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n        ),\n      output_url: zod\n        .string()\n        .url()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n        ),\n      audio_frequency: zod\n        .number()\n        .or(zod.number())\n        .or(zod.number())\n        .or(zod.number())\n        .describe(\n          \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n        )\n        .or(zod.null())\n        .default(createBotBodyStreamingConfigAudioFrequencyDefault)\n        .describe(\"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\")\n    })\n    .or(zod.null())\n    .optional(),\n  transcription_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable transcription for this bot. When enabled, the transcription_config property is used to customise the transcription provider and parameters.\"\n    ),\n  transcription_config: zod\n    .object({\n      provider: zod\n        .enum([\"gladia\"])\n        .default(createBotBodyTranscriptionConfigProviderDefault)\n        .describe(\n          \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n        ),\n      api_key: zod\n        .string()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n        ),\n      custom_params: zod\n        .record(zod.string(), zod.any())\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n        )\n    })\n    .or(zod.null())\n    .optional(),\n  callback_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable callback for this bot. When enabled, the callback_config property is used to provide the configuration.\"\n    ),\n  callback_config: zod\n    .object({\n      url: zod\n        .string()\n        .url()\n        .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n      secret: zod\n        .string()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n        ),\n      method: zod\n        .enum([\"POST\", \"PUT\"])\n        .default(createBotBodyCallbackConfigMethodDefault)\n        .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n    })\n    .or(zod.null())\n    .optional()\n})\n\n/**\n * List all bots for your team with pagination support.\n    \n    Filter by status (queued, joining, in_call_recording, transcribing, completed, failed), meeting platform (zoom, meet, teams), and date range. Results are ordered by creation date (newest first). Use cursor-based pagination for efficient navigation through large result sets.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The response includes a `next_cursor` if more results are available. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Filtering:** \n    - `status`: Filter by bot status (comma-separated for multiple statuses)\n    - `platform`: Filter by meeting platform (zoom, meet, teams)\n    - `created_after`: ISO 8601 timestamp - only return bots created after this time\n    - `created_before`: ISO 8601 timestamp - only return bots created before this time\n    \n    **Date Range:** The `created_after` and `created_before` filters use ISO 8601 timestamps. Results are limited to bots created within the last 90 days by default.\n    \n    Returns a paginated list of bots with metadata including bot ID, status, meeting platform, creation time, and basic configuration.\n * @summary List bots\n */\nexport const listBotsQueryBotNameDefault = null\nexport const listBotsQueryParticipantNameDefault = null\nexport const listBotsQueryBotIdDefault = null\nexport const listBotsQueryCreatedBeforeRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listBotsQueryCreatedBeforeDefault = null\nexport const listBotsQueryCreatedAfterRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listBotsQueryCreatedAfterDefault = null\nexport const listBotsQueryLimitDefault = 50\nexport const listBotsQueryLimitMax = 250\nexport const listBotsQueryCursorDefault = null\nexport const listBotsQueryEndedAfterRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listBotsQueryEndedAfterDefault = null\nexport const listBotsQueryExtraDefault = null\nexport const listBotsQueryMeetingUrlDefault = null\n\nexport const listBotsQueryParams = zod.object({\n  bot_name: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by name containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s name. Useful for finding bots with specific naming conventions or to locate a particular bot when you don\\'t have its ID.\\n\\nExample: \\\"Sales\\\" would match \\\"Sales Meeting\\\", \\\"Quarterly Sales\\\", etc.'\n    ),\n  participant_name: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by participant name.\\n\\nPerforms a case-insensitive partial match on participant names in the meeting.\\n\\nExample: \\\"John\\\" would match meetings where \\\"John Smith\\\" participated.'\n    ),\n  bot_id: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by ID containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s ID. Useful for finding bots with specific IDs or to locate a particular bot when you don\\'t have its ID.\\n\\nExample: \\\"1234567890\\\" would match \\\"1234567890-1234-1234-1234-123456789012\\\"'\n    ),\n  created_before: zod\n    .string()\n    .datetime({})\n    .regex(listBotsQueryCreatedBeforeRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots created before this date.\\n\\nISO8601 format (e.g., \\\"2025-01-15T10:30:00Z\\\").\\n\\nCannot be more than 90 days before today and cannot be in the future.\\n\\nUse this in combination with `created_after` to filter bots within a specific date range.\\n\\nExample: \\\"2025-01-15T23:59:59Z\\\"'\n    ),\n  created_after: zod\n    .string()\n    .datetime({})\n    .regex(listBotsQueryCreatedAfterRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots created after this date.\\n\\nISO8601 format (e.g., \\\"2025-01-01T00:00:00Z\\\").\\n\\nCannot be more than 90 days before today and cannot be in the future.\\n\\nUse this in combination with `created_before` to filter bots within a specific date range.\\n\\nExample: \\\"2025-01-01T00:00:00Z\\\"'\n    ),\n  limit: zod\n    .number()\n    .max(listBotsQueryLimitMax)\n    .describe(\n      \"Maximum number of bots to return in a single request.\\n\\nLimits the number of results returned in a single API call.\\n\\nDefault: 50 Minimum: 1 Maximum: 250\"\n    ),\n  cursor: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'The cursor to use for pagination.\\n\\nObtained from the `cursor` or `prev_cursor` field in the previous response.\\n\\nThe cursor is a base64-encoded string containing `<isoDate>::<id>`. To paginate backward, prefix the cursor with a `-` (minus sign).\\n\\nLeave as `null` to get the first page of results.\\n\\nExample: \\\"MjAyNS0wMS0xNVQxMDozMDowMFo6OjEyMzQ1\\\" or \\\"LU1qQXlOM1UxTmpVME5qVXhNakUwTkRrPQ==\\\" (for backward pagination)'\n    ),\n  ended_after: zod\n    .string()\n    .datetime({})\n    .regex(listBotsQueryEndedAfterRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\"The date to filter bots ended after. ISO 8601 format.\"),\n  extra: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by matching values in the extra JSON payload.\\n\\nThis parameter applies SQL-level filtering on the `extra` JSON field and returns only bots that match all specified conditions.\\n\\nFormat specifications: - Single condition: \\\"field:value\\\" - Multiple conditions: \\\"field1:value1,field2:value2\\\"\\n\\nExamples: - \\\"customer_id:12345\\\" - Only bots with this customer ID - \\\"status:active,project:sales\\\" - Only active bots from sales projects\\n\\nNotes: - All conditions must match for a bot to be included - Values are matched exactly (case-sensitive) - Bots without the specified field are excluded'\n    ),\n  meeting_url: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by meeting URL containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s meeting URL. Useful for finding bots associated with specific meeting platforms or particular meeting IDs.\\n\\nExample: \\\"zoom.us\\\" would match all Zoom meetings'\n    ),\n  meeting_platform: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by meeting platform.\\n\\nThis parameter filters bots by the platform they are associated with. It can be used to find bots that are associated with a specific meeting platform. Valid values are: \\\"zoom\\\", \\\"meet\\\", \\\"teams\\\".\\n\\nExample: \\\"zoom\\\" would match all bots associated with Zoom meetings.\\n\\nTo filter multiple platforms, use a comma-separated list of values. For example, \\\"zoom,meet\\\" would match all bots associated with Zoom or Meet meetings.'\n    ),\n  status: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by bot statuses.\\n\\nThis parameter filters bots by their status. It can be used to find bots that have any of the specified statuses. Valid values are one or more of: queued, pickup_delayed, transcribing, completed, failed, joining_call, in_waiting_room, in_waiting_for_host, in_call_not_recording, in_call_recording, recording_paused, recording_resumed, call_ended, recording_succeeded, recording_failed, api_request_stop, bot_rejected, bot_removed, bot_removed_too_early, waiting_room_timeout, invalid_meeting_url, meeting_error.\\n\\nExample: \\\"queued,joining_call\\\" would match all bots that are queued or joining the call'\n    )\n})\n\nexport const listBotsResponseDataItemBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listBotsResponseDataItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listBotsResponseDataItemEndedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listBotsResponseDataItemJoinedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listBotsResponseDataItemExitedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const listBotsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      bot_id: zod\n        .string()\n        .uuid()\n        .regex(listBotsResponseDataItemBotIdRegExp)\n        .describe(\"The UUID of the bot\"),\n      bot_name: zod.string().describe(\"The name of the bot\"),\n      meeting_url: zod.string().url().describe(\"The URL of the meeting\"),\n      meeting_platform: zod\n        .enum([\"zoom\", \"meet\", \"teams\"])\n        .describe(\"The platform of the meeting (zoom, meet, or teams)\"),\n      extra: zod\n        .record(zod.string(), zod.any())\n        .or(zod.null())\n        .describe(\"Custom metadata associated with the bot\"),\n      duration: zod\n        .number()\n        .or(zod.null())\n        .describe(\"Duration of the meeting in seconds (null if meeting hasn't ended)\"),\n      created_at: zod\n        .string()\n        .datetime({})\n        .regex(listBotsResponseDataItemCreatedAtRegExp)\n        .describe(\"ISO 8601 timestamp when the bot was created\"),\n      ended_at: zod\n        .string()\n        .datetime({})\n        .regex(listBotsResponseDataItemEndedAtRegExpOne)\n        .or(zod.null())\n        .describe(\"ISO 8601 timestamp when the bot ended (null if still active)\"),\n      joined_at: zod\n        .string()\n        .datetime({})\n        .regex(listBotsResponseDataItemJoinedAtRegExpOne)\n        .or(zod.null())\n        .describe(\"ISO 8601 timestamp when the bot joined the meeting (null if not joined yet)\"),\n      exited_at: zod\n        .string()\n        .datetime({})\n        .regex(listBotsResponseDataItemExitedAtRegExpOne)\n        .or(zod.null())\n        .describe(\"ISO 8601 timestamp when the bot exited the meeting (null if not exited yet)\"),\n      status: zod\n        .enum([\n          \"queued\",\n          \"pickup_delayed\",\n          \"transcribing\",\n          \"completed\",\n          \"failed\",\n          \"joining_call\",\n          \"in_waiting_room\",\n          \"in_waiting_for_host\",\n          \"in_call_not_recording\",\n          \"in_call_recording\",\n          \"recording_paused\",\n          \"recording_resumed\",\n          \"call_ended\",\n          \"recording_succeeded\",\n          \"recording_failed\",\n          \"api_request_stop\",\n          \"bot_rejected\",\n          \"bot_removed\",\n          \"bot_removed_too_early\",\n          \"waiting_room_timeout\",\n          \"invalid_meeting_url\",\n          \"meeting_error\"\n        ])\n        .describe(\"The current status of the bot\"),\n      error_code: zod\n        .string()\n        .or(zod.null())\n        .describe(\"Error code if the bot failed (null if no error)\"),\n      error_message: zod\n        .string()\n        .or(zod.null())\n        .describe(\"Human-readable error message if the bot failed (null if no error)\"),\n      tokens: zod\n        .object({\n          recording: zod.number().describe(\"Recording tokens consumed\"),\n          transcription: zod.number().describe(\"Transcription tokens consumed\"),\n          byok_transcription: zod.number().describe(\"BYOK transcription tokens consumed\"),\n          streaming_input: zod.number().describe(\"Streaming input tokens consumed\"),\n          streaming_output: zod.number().describe(\"Streaming output tokens consumed\"),\n          total: zod.number().describe(\"Total tokens consumed\")\n        })\n        .or(zod.null())\n        .describe(\"Token consumption breakdown (null if not yet consumed)\")\n    })\n  ),\n  cursor: zod.string().or(zod.null()).describe(\"Cursor for the next page (null if no more pages)\"),\n  prev_cursor: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Cursor for the previous page (null if on first page)\")\n})\n\n/**\n * Create multiple bots in a single request with partial success support.\n    \n    Processes each bot creation request sequentially (index 0, 1, 2...). Each item is validated and processed independently. If some bots fail to create, the request still returns 201 with a `data` array containing successful creations and an `errors` array containing failures. Each error includes the `index` of the failed item in the original request array.\n    \n    **Processing Order:** Items are processed in the order they appear in the request array. Each item goes through the same validation and checks as a single bot creation: platform detection, BYOK transcription check, daily bot cap check, token availability check, and deduplication lock acquisition.\n    \n    **Partial Success:** The response always has `success: true`, even if all items fail. Check the `errors` array to identify failed items. The `data` array contains successfully created bots with their `bot_id` and preserved `extra` metadata. The `errors` array contains failed items with `index`, `code`, `message`, `details`, and preserved `extra` metadata.\n    \n    **Daily Bot Cap:** The daily bot cap is checked per item, not per batch. If the cap is reached mid-batch, subsequent items will fail with `DAILY_BOT_CAP_REACHED` error. The cap is based on bots created in the last 24 hours.\n    \n    **Token Reservation:** Tokens are reserved individually for each successful bot creation (0.5 tokens per bot). If token availability becomes insufficient mid-batch, subsequent items will fail with `INSUFFICIENT_TOKENS`.\n    \n    **Error Index Mapping:** Each error includes an `index` field (0-based) that corresponds to the item's position in the request array. Use this to correlate errors with your original request. Validation errors include detailed validation issues in the `details` field.\n    \n    **Error Isolation:** Each bot creation is processed independently. If one bot creation fails, it does not affect other bots in the batch. Failed items are included in the `errors` array while successful items are in the `data` array.\n    \n    Returns 201 with partial success response. All items may succeed, all may fail, or any combination. Always check both `data` and `errors` arrays.\n * @summary Create multiple bots\n */\nexport const batchCreateBotsBodyBotNameMax = 255\nexport const batchCreateBotsBodyBotImageMaxThree = 5\nexport const batchCreateBotsBodyBotImageDefault = null\nexport const batchCreateBotsBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const batchCreateBotsBodyBotImageConfigImageDurationDefault = 30\nexport const batchCreateBotsBodyBotImageConfigImageDurationMin = 10\n\nexport const batchCreateBotsBodyBotImageConfigImageDurationMax = 120\nexport const batchCreateBotsBodyBotImageConfigDefault = null\nexport const batchCreateBotsBodyAllowMultipleBotsDefault = true\nexport const batchCreateBotsBodyRecordingModeDefault = \"speaker_view\"\nexport const batchCreateBotsBodyEntryMessageMaxOne = 500\nexport const batchCreateBotsBodyEntryMessageDefault = null\nexport const batchCreateBotsBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const batchCreateBotsBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const batchCreateBotsBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const batchCreateBotsBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const batchCreateBotsBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const batchCreateBotsBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const batchCreateBotsBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const batchCreateBotsBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const batchCreateBotsBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const batchCreateBotsBodyTimeoutConfigGracePeriodDefault = 0\nexport const batchCreateBotsBodyTimeoutConfigGracePeriodMin = 0\n\nexport const batchCreateBotsBodyTimeoutConfigGracePeriodMax = 600\nexport const batchCreateBotsBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const batchCreateBotsBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const batchCreateBotsBodyZoomConfigDefault = null\nexport const batchCreateBotsBodyExtraDefault = null\nexport const batchCreateBotsBodyStreamingEnabledDefault = false\nexport const batchCreateBotsBodyStreamingConfigInputUrlDefault = null\nexport const batchCreateBotsBodyStreamingConfigOutputUrlDefault = null\nexport const batchCreateBotsBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const batchCreateBotsBodyStreamingConfigDefault = null\nexport const batchCreateBotsBodyTranscriptionEnabledDefault = false\nexport const batchCreateBotsBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const batchCreateBotsBodyTranscriptionConfigApiKeyDefault = null\nexport const batchCreateBotsBodyTranscriptionConfigCustomParamsDefault = null\nexport const batchCreateBotsBodyTranscriptionConfigDefault = null\nexport const batchCreateBotsBodyCallbackEnabledDefault = false\nexport const batchCreateBotsBodyCallbackConfigSecretDefault = null\nexport const batchCreateBotsBodyCallbackConfigMethodDefault = \"POST\"\nexport const batchCreateBotsBodyCallbackConfigDefault = null\n\nexport const batchCreateBotsBodyItem = zod.object({\n  bot_name: zod\n    .string()\n    .min(1)\n    .max(batchCreateBotsBodyBotNameMax)\n    .describe(\n      \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n    ),\n  bot_image: zod\n    .string()\n    .url()\n    .or(zod.array(zod.string().url()).min(1).max(batchCreateBotsBodyBotImageMaxThree))\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n    ),\n  bot_image_config: zod\n    .object({\n      loop_mode: zod\n        .enum([\"auto\", \"bot_status\"])\n        .default(batchCreateBotsBodyBotImageConfigLoopModeDefault)\n        .describe(\n          \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n        ),\n      image_duration: zod\n        .number()\n        .min(batchCreateBotsBodyBotImageConfigImageDurationMin)\n        .max(batchCreateBotsBodyBotImageConfigImageDurationMax)\n        .default(batchCreateBotsBodyBotImageConfigImageDurationDefault)\n        .describe(\n          \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n    ),\n  meeting_url: zod\n    .string()\n    .url()\n    .describe(\n      'The URL of the meeting to join.\\n\\nMust be a valid HTTPS URL for a Microsoft Teams, Google Meet, or Zoom meeting.\\n\\nExample: \\\"https://zoom.us/j/123456789\\\" or \\\"https://meet.google.com/abc-defg-hij\\\"'\n    ),\n  allow_multiple_bots: zod\n    .boolean()\n    .default(batchCreateBotsBodyAllowMultipleBotsDefault)\n    .describe(\n      \"Whether to allow multiple bots to join the same meeting.\\n\\nIf set to `false`, only a single bot will be allowed to join using the same meeting URL within the last 5 minutes. This prevents duplicate bots from joining the same meeting.\\n\\nIf set to `true` (default), multiple bots can join the same meeting URL.\\n\\nDefault: `true`\"\n    ),\n  recording_mode: zod\n    .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n    .default(batchCreateBotsBodyRecordingModeDefault)\n    .describe(\n      \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n    ),\n  entry_message: zod\n    .string()\n    .max(batchCreateBotsBodyEntryMessageMaxOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n    ),\n  timeout_config: zod\n    .object({\n      waiting_room_timeout: zod\n        .number()\n        .min(batchCreateBotsBodyTimeoutConfigWaitingRoomTimeoutMin)\n        .max(batchCreateBotsBodyTimeoutConfigWaitingRoomTimeoutMax)\n        .default(batchCreateBotsBodyTimeoutConfigWaitingRoomTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n        ),\n      no_one_joined_timeout: zod\n        .number()\n        .min(batchCreateBotsBodyTimeoutConfigNoOneJoinedTimeoutMin)\n        .max(batchCreateBotsBodyTimeoutConfigNoOneJoinedTimeoutMax)\n        .default(batchCreateBotsBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n        ),\n      silence_timeout: zod\n        .number()\n        .min(batchCreateBotsBodyTimeoutConfigSilenceTimeoutMin)\n        .max(batchCreateBotsBodyTimeoutConfigSilenceTimeoutMax)\n        .default(batchCreateBotsBodyTimeoutConfigSilenceTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n        ),\n      grace_period: zod\n        .number()\n        .min(batchCreateBotsBodyTimeoutConfigGracePeriodMin)\n        .max(batchCreateBotsBodyTimeoutConfigGracePeriodMax)\n        .optional()\n        .describe(\n          \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n        )\n    })\n    .default(batchCreateBotsBodyTimeoutConfigDefault)\n    .describe(\n      \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n    ),\n  zoom_config: zod\n    .object({\n      credential_id: zod\n        .string()\n        .uuid()\n        .regex(batchCreateBotsBodyZoomConfigCredentialIdRegExp)\n        .optional()\n        .describe(\n          \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n        ),\n      credential_user_id: zod\n        .string()\n        .optional()\n        .describe(\n          \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n        ),\n      obf_token: zod\n        .string()\n        .optional()\n        .describe(\n          \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n        ),\n      obf_token_url: zod\n        .string()\n        .url()\n        .optional()\n        .describe(\n          \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n        ),\n      zak_token_url: zod\n        .string()\n        .url()\n        .optional()\n        .describe(\n          \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n    ),\n  extra: zod\n    .record(zod.string(), zod.any())\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n    ),\n  streaming_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable audio streaming for this bot. When enabled, the streaming_config property is used to provide the configuration.\"\n    ),\n  streaming_config: zod\n    .object({\n      input_url: zod\n        .string()\n        .url()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n        ),\n      output_url: zod\n        .string()\n        .url()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n        ),\n      audio_frequency: zod\n        .number()\n        .or(zod.number())\n        .or(zod.number())\n        .or(zod.number())\n        .describe(\n          \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n        )\n        .or(zod.null())\n        .default(batchCreateBotsBodyStreamingConfigAudioFrequencyDefault)\n        .describe(\"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\")\n    })\n    .or(zod.null())\n    .optional(),\n  transcription_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable transcription for this bot. When enabled, the transcription_config property is used to customise the transcription provider and parameters.\"\n    ),\n  transcription_config: zod\n    .object({\n      provider: zod\n        .enum([\"gladia\"])\n        .default(batchCreateBotsBodyTranscriptionConfigProviderDefault)\n        .describe(\n          \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n        ),\n      api_key: zod\n        .string()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n        ),\n      custom_params: zod\n        .record(zod.string(), zod.any())\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n        )\n    })\n    .or(zod.null())\n    .optional(),\n  callback_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable callback for this bot. When enabled, the callback_config property is used to provide the configuration.\"\n    ),\n  callback_config: zod\n    .object({\n      url: zod\n        .string()\n        .url()\n        .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n      secret: zod\n        .string()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n        ),\n      method: zod\n        .enum([\"POST\", \"PUT\"])\n        .default(batchCreateBotsBodyCallbackConfigMethodDefault)\n        .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n    })\n    .or(zod.null())\n    .optional()\n})\nexport const batchCreateBotsBody = zod.array(batchCreateBotsBodyItem).min(1).max(100)\n\n/**\n * Get comprehensive information about a specific bot.\n    \n    Returns detailed bot information including current status, configuration, meeting metadata, and presigned URLs for all artifacts (video, audio, transcription, diarization). Artifact URLs are valid for 4 hours from the time of request. Returns `null` for artifacts if the bot's data has been deleted.\n    \n    **Artifact URLs:** All artifact URLs (video, audio, transcription, diarization) are presigned URLs that expire after 4 hours. If the bot's data has been deleted (via the delete-data endpoint or data retention policy), these fields will be `null`. The `artifacts_deleted` field indicates whether the bot's data has been permanently removed.\n    \n    **Status Information:** The response includes the bot's current status (`status` field) and timestamps for key events (joined_at, exited_at, created_at). If the bot failed, the response includes `error_code` and `error_message` fields with details about what went wrong.\n    \n    **Meeting Metadata:** Includes meeting platform, meeting URL, participants list, speakers list, and meeting duration (if available). Some metadata may be `null` if the bot failed before joining or if the information is not available.\n    \n    **Transcription Information:** If transcription was enabled, the response includes transcription provider, transcription IDs (for BYOK providers), and URLs to raw and processed transcription files.\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Get bot details\n */\nexport const getBotDetailsPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getBotDetailsParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(getBotDetailsPathBotIdRegExp)\n    .describe(\"The UUID of the bot to get details for.\")\n})\n\nexport const getBotDetailsResponseDataBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getBotDetailsResponseDataCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getBotDetailsResponseDataJoinedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getBotDetailsResponseDataExitedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getBotDetailsResponseDataParticipantsItemIdMinOne = -9007199254740991\nexport const getBotDetailsResponseDataParticipantsItemIdMaxOne = 9007199254740991\nexport const getBotDetailsResponseDataSpeakersItemIdMinOne = -9007199254740991\nexport const getBotDetailsResponseDataSpeakersItemIdMaxOne = 9007199254740991\nexport const getBotDetailsResponseDataZoomConfigCredentialIdRegExpOne =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getBotDetailsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    bot_id: zod\n      .string()\n      .uuid()\n      .regex(getBotDetailsResponseDataBotIdRegExp)\n      .describe(\"The UUID of the bot\"),\n    bot_name: zod.string().describe(\"The name of the bot\"),\n    meeting_url: zod.string().url().describe(\"The URL of the meeting\"),\n    meeting_platform: zod.enum([\"zoom\", \"meet\", \"teams\"]).describe(\"The platform of the meeting\"),\n    recording_mode: zod\n      .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n      .describe(\"The recording mode used by the bot\"),\n    status: zod\n      .enum([\n        \"queued\",\n        \"pickup_delayed\",\n        \"transcribing\",\n        \"completed\",\n        \"failed\",\n        \"joining_call\",\n        \"in_waiting_room\",\n        \"in_waiting_for_host\",\n        \"in_call_not_recording\",\n        \"in_call_recording\",\n        \"recording_paused\",\n        \"recording_resumed\",\n        \"call_ended\",\n        \"recording_succeeded\",\n        \"recording_failed\",\n        \"api_request_stop\",\n        \"bot_rejected\",\n        \"bot_removed\",\n        \"bot_removed_too_early\",\n        \"waiting_room_timeout\",\n        \"invalid_meeting_url\",\n        \"meeting_error\"\n      ])\n      .describe(\"The current status of the bot\"),\n    created_at: zod\n      .string()\n      .datetime({})\n      .regex(getBotDetailsResponseDataCreatedAtRegExp)\n      .describe(\"ISO 8601 timestamp when the bot was created\"),\n    joined_at: zod\n      .string()\n      .datetime({})\n      .regex(getBotDetailsResponseDataJoinedAtRegExpOne)\n      .or(zod.null())\n      .describe(\"ISO 8601 timestamp when the bot joined the meeting (null if not joined yet)\"),\n    exited_at: zod\n      .string()\n      .datetime({})\n      .regex(getBotDetailsResponseDataExitedAtRegExpOne)\n      .or(zod.null())\n      .describe(\"ISO 8601 timestamp when the bot exited the meeting (null if not exited yet)\"),\n    duration_seconds: zod\n      .number()\n      .or(zod.null())\n      .describe(\"Duration of the meeting in seconds (null if meeting hasn't ended)\"),\n    participants: zod\n      .array(\n        zod.object({\n          name: zod.string().describe(\"Participant's name (full name or display name)\"),\n          id: zod\n            .number()\n            .min(getBotDetailsResponseDataParticipantsItemIdMinOne)\n            .max(getBotDetailsResponseDataParticipantsItemIdMaxOne)\n            .or(zod.null())\n            .describe(\"Sequential participant ID (1, 2, 3...). Null if not available\"),\n          display_name: zod\n            .string()\n            .optional()\n            .describe(\"Display name shown in UI (if different from name)\"),\n          profile_picture: zod\n            .string()\n            .url()\n            .optional()\n            .describe(\"Profile picture URL (if available)\")\n        })\n      )\n      .describe(\"List of participants who joined the meeting with their names and metadata\"),\n    speakers: zod\n      .array(\n        zod.object({\n          name: zod.string().describe(\"Participant's name (full name or display name)\"),\n          id: zod\n            .number()\n            .min(getBotDetailsResponseDataSpeakersItemIdMinOne)\n            .max(getBotDetailsResponseDataSpeakersItemIdMaxOne)\n            .or(zod.null())\n            .describe(\"Sequential participant ID (1, 2, 3...). Null if not available\"),\n          display_name: zod\n            .string()\n            .optional()\n            .describe(\"Display name shown in UI (if different from name)\"),\n          profile_picture: zod\n            .string()\n            .url()\n            .optional()\n            .describe(\"Profile picture URL (if available)\")\n        })\n      )\n      .describe(\"List of speakers identified in the meeting with their names and metadata\"),\n    artifacts_deleted: zod.boolean().describe(\"Whether the artifacts have been deleted\"),\n    video: zod\n      .string()\n      .url()\n      .or(zod.null())\n      .describe(\"Signed URL to the video recording (valid for 4 hours, null if not available)\"),\n    audio: zod\n      .string()\n      .url()\n      .or(zod.null())\n      .describe(\"Signed URL to the audio recording (valid for 4 hours, null if not available)\"),\n    diarization: zod\n      .string()\n      .url()\n      .or(zod.null())\n      .describe(\"Signed URL to the diarization file (valid for 4 hours, null if not available)\"),\n    raw_transcription: zod\n      .string()\n      .url()\n      .or(zod.null())\n      .describe(\n        \"Signed URL to the raw transcription file (valid for 4 hours, null if not available)\"\n      ),\n    transcription: zod\n      .string()\n      .url()\n      .or(zod.null())\n      .describe(\"Signed URL to the transcription file (valid for 4 hours, null if not available)\"),\n    chat_messages: zod\n      .string()\n      .url()\n      .or(zod.null())\n      .describe(\n        \"Signed URL to the chat messages JSON file (valid for 4 hours, null if not available)\"\n      ),\n    transcription_ids: zod\n      .array(zod.string())\n      .or(zod.null())\n      .describe(\"Array of transcription job IDs from the transcription provider\"),\n    transcription_provider: zod\n      .enum([\"gladia\"])\n      .or(zod.null())\n      .describe(\n        \"The transcription provider used (null if transcription is disabled or provider is 'none')\"\n      ),\n    error_code: zod\n      .string()\n      .or(zod.null())\n      .describe(\"Error code if the bot failed (null if no error)\"),\n    error_message: zod\n      .string()\n      .or(zod.null())\n      .describe(\"Human-readable error message if the bot failed (null if no error)\"),\n    tokens: zod\n      .object({\n        recording: zod.number().describe(\"Recording tokens consumed\"),\n        transcription: zod.number().describe(\"Transcription tokens consumed\"),\n        byok_transcription: zod.number().describe(\"BYOK transcription tokens consumed\"),\n        streaming_input: zod.number().describe(\"Streaming input tokens consumed\"),\n        streaming_output: zod.number().describe(\"Streaming output tokens consumed\"),\n        total: zod.number().describe(\"Total tokens consumed\")\n      })\n      .or(zod.null())\n      .describe(\"Token consumption breakdown (null if not yet consumed)\"),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .describe(\"Custom metadata associated with the bot\"),\n    zoom_config: zod\n      .object({\n        credential_id: zod\n          .string()\n          .uuid()\n          .regex(getBotDetailsResponseDataZoomConfigCredentialIdRegExpOne)\n          .or(zod.null())\n          .optional()\n          .describe(\"UUID of the stored Zoom credential\"),\n        credential_user_id: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\"Zoom user ID used to look up the credential\"),\n        obf_token_url: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\"URL that returns an OBF token at join time\"),\n        zak_token_url: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\"URL that returns a ZAK token at join time\")\n      })\n      .or(zod.null())\n      .describe(\n        \"Zoom configuration for this bot (null if not a Zoom bot or no zoom config provided)\"\n      )\n  })\n})\n\n/**\n * Get the current status of a bot, including the latest status code, transcription status, and timestamp.\n    \n    Useful for polling bot state without fetching the full bot details. Returns lightweight status information including the current status code, transcription status, and when the status was last updated (`updated_at`).\n    \n    **Response Fields:**\n    - `bot_id`: The UUID of the bot\n    - `status`: The current bot status (queued, joining, in_call_recording, transcribing, completed, failed)\n    - `transcription_status`: The current transcription status (not-applicable, not-started, queued, processing, done, error)\n    - `updated_at`: ISO 8601 timestamp when the status was last updated\n    \n    **Transcription Status:** The transcription status is fetched in real-time from the transcription provider (e.g., Gladia) if transcription is enabled. This allows you to track transcription progress separately from the bot's overall status.\n    \n    **Polling Considerations:** \n    - **Not Recommended for Active Monitoring:** Due to the nature of meetings running for extended periods (often hours), frequent polling is not recommended. Instead, use `callback_config` when creating bots or configure webhooks at the account level to receive real-time status updates.\n    - **Reconciliation Use Case:** This endpoint is better suited for reconciliation purposes (e.g., checking bot status after a webhook delivery failure or verifying final state).\n    - **If Polling is Necessary:** If you must poll, use a judicious interval (e.g., every 5-10 minutes) and implement exponential backoff to avoid rate limits. Consider the meeting duration when determining polling frequency.\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Get bot status\n */\nexport const getBotStatusPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getBotStatusParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(getBotStatusPathBotIdRegExp)\n    .describe(\"The UUID of the bot to get status for.\")\n})\n\nexport const getBotStatusResponseDataBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getBotStatusResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const getBotStatusResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    bot_id: zod\n      .string()\n      .uuid()\n      .regex(getBotStatusResponseDataBotIdRegExp)\n      .describe(\"The UUID of the bot\"),\n    status: zod\n      .enum([\n        \"queued\",\n        \"pickup_delayed\",\n        \"transcribing\",\n        \"completed\",\n        \"failed\",\n        \"joining_call\",\n        \"in_waiting_room\",\n        \"in_waiting_for_host\",\n        \"in_call_not_recording\",\n        \"in_call_recording\",\n        \"recording_paused\",\n        \"recording_resumed\",\n        \"call_ended\",\n        \"recording_succeeded\",\n        \"recording_failed\",\n        \"api_request_stop\",\n        \"bot_rejected\",\n        \"bot_removed\",\n        \"bot_removed_too_early\",\n        \"waiting_room_timeout\",\n        \"invalid_meeting_url\",\n        \"meeting_error\"\n      ])\n      .describe(\"The current status of the bot\"),\n    transcription_status: zod\n      .enum([\"queued\", \"processing\", \"done\", \"error\", \"not-applicable\", \"not-started\"])\n      .describe(\"The current transcription status\"),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(getBotStatusResponseDataUpdatedAtRegExp)\n      .describe(\"ISO 8601 timestamp when the status was last updated\")\n  })\n})\n\n/**\n * Retrieve a paginated list of screenshot URLs captured during the meeting.\n    \n    Screenshots are taken periodically during the meeting and can be used to visualize meeting content. Each screenshot is a presigned URL valid for 4 hours.\n    \n    **Screenshot Availability:** \n    - Screenshots are only available for Google Meet and Microsoft Teams bots\n    - Screenshots are only available for bots with `recording_mode` set to `speaker_view` or `gallery_view`\n    - Audio-only recordings do not have screenshots\n    - Screenshots are captured at regular intervals during the meeting\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many screenshots are returned per page (default: 50, max: 100).\n    \n    **URL Expiration:** All screenshot URLs are presigned URLs that expire after 4 hours. If the bot's data has been deleted, this endpoint will return an empty list.\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Get bot screenshots\n */\nexport const getBotScreenshotsPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getBotScreenshotsParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(getBotScreenshotsPathBotIdRegExp)\n    .describe(\"The UUID of the bot to get screenshots for.\")\n})\n\nexport const getBotScreenshotsQueryLimitDefault = 50\nexport const getBotScreenshotsQueryLimitMax = 250\nexport const getBotScreenshotsQueryCursorDefault = null\n\nexport const getBotScreenshotsQueryParams = zod.object({\n  limit: zod\n    .number()\n    .max(getBotScreenshotsQueryLimitMax)\n    .describe(\"Maximum number of screenshots to return (default: 50, max: 250).\"),\n  cursor: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'The cursor to use for pagination.\\n\\nObtained from the `cursor` or `prev_cursor` field in the previous response.\\n\\nThe cursor is a base64-encoded string containing the screenshot index. To paginate backward, prefix the cursor with a `-` (minus sign).\\n\\nLeave as `null` to get the first page of results.\\n\\nExample: \\\"MQ==\\\" (for index 1) or \\\"-MTA=\\\" (for backward pagination from index 10)'\n    )\n})\n\nexport const getBotScreenshotsResponseDataItemScreenshotIdMax = 9007199254740991\n\nexport const getBotScreenshotsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      screenshot_id: zod\n        .number()\n        .max(getBotScreenshotsResponseDataItemScreenshotIdMax)\n        .describe(\"The index of the screenshot (1-based)\"),\n      url: zod.string().url().describe(\"Signed URL to the screenshot (valid for 4 hours)\")\n    })\n  ),\n  cursor: zod.string().or(zod.null()).describe(\"Cursor for the next page (null if no more pages)\"),\n  prev_cursor: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Cursor for the previous page (null if on first page)\")\n})\n\n/**\n * Instruct a bot to leave the meeting immediately.\n\n    The bot will stop recording and processing, then exit the meeting. Works for bots in any active state: `queued`, `joining_call`, `in_waiting_room`, `in_call_not_recording`, `in_call_recording`, `recording_paused`, or `recording_resumed`. Also works for scheduled bots that haven't spawned yet — the scheduled bot will be cancelled atomically. The bot will send a final webhook event when it leaves.\n\n    **Status Requirements:** The bot must be in an active (non-terminal) state. Bots that have already `completed` or `failed` cannot be left via this endpoint. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n\n    **Pre-Recording Stops:** If the bot hasn't started recording yet (e.g., still `queued` or in the waiting room), it will exit with an `EXITING_MEETING_BEFORE_RECORD` error code. No tokens are consumed for pre-recording stops.\n\n    **Token Consumption:** When a bot that was recording is manually left, tokens are consumed based on the duration from when recording started to when the bot left. The bot will transition to `completed` status and send a completion webhook.\n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Leave meeting\n */\nexport const leaveBotPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const leaveBotParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(leaveBotPathBotIdRegExp)\n    .describe(\"The UUID of the bot to leave the meeting.\")\n})\n\nexport const leaveBotResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Send a chat message to the meeting through the bot.\n\n    The message will be sent as the bot in the meeting's chat. The bot must be actively in the meeting to send messages. Messages are limited to 500 characters and cannot be empty or whitespace-only.\n\n    **Status Requirements:** The bot must be in one of the following statuses: `in_call_not_recording`, `in_call_recording`, `recording_paused`, or `recording_resumed`. If the bot is in any other state (e.g., `queued`, `joining_call`, `in_waiting_room`, `completed`, `failed`), the request will fail with a 409 Conflict error (`FST_ERR_BOT_STATUS`).\n\n    **Chat Disabled:** Some meetings have chat disabled by the host or meeting policy. If the bot attempts to send a message in a meeting where chat is not available, the request will fail with a 422 Unprocessable Entity error (`FST_ERR_CHAT_DISABLED`). This is determined at runtime by the meeting platform and cannot be known in advance. Chat disabled detection works for Zoom and Microsoft Teams meetings. For Google Meet, message delivery is best-effort — the bot may report success even if the host has restricted chat permissions for external participants.\n\n    **Message Delivery:** The message is forwarded to the bot process which sends it through the meeting platform's chat API (Google Meet, Microsoft Teams, or Zoom). Delivery is best-effort — if the bot process is unreachable or the platform rejects the message, the request will fail with a 500 Internal Server Error (`FST_ERR_SEND_CHAT_MESSAGE_FAILED`).\n\n    **Message Persistence:** Successfully sent messages are included in the `chat_messages` artifact alongside received messages when the bot completes. Bot-sent messages have `sender_id: null` and the bot's display name as `sender_name`.\n\n    Returns 404 if the bot is not found, 409 if the bot's status does not allow this operation, or 422 if chat is disabled in the meeting.\n * @summary Send chat message\n */\nexport const sendChatMessagePathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const sendChatMessageParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(sendChatMessagePathBotIdRegExp)\n    .describe(\"The UUID of the bot to send the chat message through.\")\n})\n\nexport const sendChatMessageBodyMessageMax = 500\n\nexport const sendChatMessageBody = zod.object({\n  message: zod\n    .string()\n    .min(1)\n    .max(sendChatMessageBodyMessageMax)\n    .describe(\"The chat message text to send in the meeting.\")\n})\n\nexport const sendChatMessageResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Pause the bot's recording during a meeting.\n\n    The bot stays in the meeting, but the paused portion is excluded from the final recording, transcript, and diarization. If you have streaming output enabled, the stream is paused too and no audio is forwarded until you resume.\n\n    **Status Requirements:** The bot must be actively recording (`in_call_recording`, or `recording_resumed` if it was previously paused). Bots that are already paused, still joining, or have finished will fail with a 409 Conflict.\n\n    **Chat Message:** Optionally include `chat_message` in the body to post a message in the meeting chat when pausing — e.g., \"Recording has been paused\".\n\n    **Pairing:** Use `POST /bots/{bot_id}/resume-recording` to continue. You can pause and resume as many times as needed within a single meeting.\n\n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Pause recording\n */\nexport const pauseBotRecordingPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const pauseBotRecordingParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(pauseBotRecordingPathBotIdRegExp)\n    .describe(\"The UUID of the bot to pause recording.\")\n})\n\nexport const pauseBotRecordingBodyChatMessageMaxOne = 500\nexport const pauseBotRecordingBodyChatMessageDefault = null\n\nexport const pauseBotRecordingBody = zod.object({\n  chat_message: zod\n    .string()\n    .max(pauseBotRecordingBodyChatMessageMaxOne)\n    .or(zod.null())\n    .optional()\n    .describe(\"Optional chat message to send to meeting participants when pausing.\")\n})\n\nexport const pauseBotRecordingResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Resume a bot's recording after it was paused.\n\n    Meeting content from this point onward is captured again and included in the final recording, transcript, and diarization. If you have streaming output enabled, audio resumes flowing. Timestamps in the final artifacts are continuous across the pause — the paused gap is collapsed, not represented as silence.\n\n    **Status Requirements:** The bot must be in `recording_paused` status. Bots that are already recording, still joining, or have finished will fail with a 409 Conflict.\n\n    **Chat Message:** Optionally include `chat_message` in the body to post a message in the meeting chat when resuming — e.g., \"Recording has resumed\".\n\n    **Pairing:** Follows a prior `POST /bots/{bot_id}/pause-recording`. You can pause and resume multiple times within a single meeting.\n\n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Resume recording\n */\nexport const resumeBotRecordingPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const resumeBotRecordingParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(resumeBotRecordingPathBotIdRegExp)\n    .describe(\"The UUID of the bot to resume recording.\")\n})\n\nexport const resumeBotRecordingBodyChatMessageMaxOne = 500\nexport const resumeBotRecordingBodyChatMessageDefault = null\n\nexport const resumeBotRecordingBody = zod.object({\n  chat_message: zod\n    .string()\n    .max(resumeBotRecordingBodyChatMessageMaxOne)\n    .or(zod.null())\n    .optional()\n    .describe(\"Optional chat message to send to meeting participants when resuming.\")\n})\n\nexport const resumeBotRecordingResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Permanently delete all bot data including recordings, transcripts, summaries, and screenshots.\n    \n    This operation is irreversible. All artifacts (video, audio, transcription, diarization, screenshots) will be permanently deleted. Optionally delete transcription data from the transcription provider as well using the `delete_transcription` query parameter.\n    \n    **Data Deletion:** \n    - All artifacts (video, audio, transcription, diarization, screenshots) are permanently deleted\n    - The `artifacts_deleted` field is set to `true`\n    - Artifact URLs will return `null` in subsequent API calls\n    - Bot metadata remains accessible but all associated data is removed\n    \n    **Transcription Provider Deletion:** If `delete_transcription=true` is provided, the transcription data will also be deleted from the transcription provider (e.g., Gladia). This requires the bot to have transcription enabled and a transcription provider configured. If the bot uses BYOK transcription, you must have access to the transcription provider API key.\n    \n    **Irreversible Operation:** Once data is deleted, it cannot be recovered. Make sure you have downloaded or backed up any data you need before calling this endpoint.\n    \n    **Status Requirements:** The bot must be in `completed` or `failed` status. Bots that are still in progress (queued, joining, in_call_recording, transcribing) cannot have their data deleted. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Delete bot data\n */\nexport const deleteBotDataPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteBotDataParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(deleteBotDataPathBotIdRegExp)\n    .describe(\"The UUID of the bot whose data should be deleted.\")\n})\n\nexport const deleteBotDataQueryDeleteFromProviderDefault = true\n\nexport const deleteBotDataQueryParams = zod.object({\n  delete_from_provider: zod\n    .boolean()\n    .describe(\n      \"Whether to delete transcription data from the transcription provider.\\n\\nIf `true` (default), the transcription data will be deleted from the transcription provider's servers in addition to deleting artifacts from S3. This ensures complete data deletion.\\n\\nIf `false`, only S3 artifacts will be deleted, and transcription data will remain on the transcription provider's servers.\\n\\nNote: If the bot was created with a BYOK (Bring Your Own Key) transcription API key, the deletion will use that key to authenticate with the transcription provider.\\n\\nDefault: `true`\"\n    )\n})\n\nexport const deleteBotDataResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Resend the final webhook (completed or failed) for a bot.\n    \n    Useful if the webhook delivery failed or you need to reprocess the webhook event. The webhook will be sent to all configured webhook endpoints for your account.\n    \n    **Webhook Delivery:** The webhook will be sent to all configured webhook endpoints for your account. The webhook payload will be identical to the original final webhook (either `bot.completed` or `bot.failed` event).\n    \n    **Status Requirements:** The bot must be in `completed` or `failed` status. Bots that are still in progress cannot have their final webhook resent. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Use Cases:** \n    - Webhook delivery failed due to network issues\n    - Webhook endpoint was temporarily unavailable\n    - Need to reprocess a webhook event\n    - Testing webhook integration\n    \n    **Idempotency:** This operation is idempotent. You can call it multiple times, and it will resend the webhook each time. There is no limit on how many times you can resend a webhook.\n    \n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Resend final webhook\n */\nexport const resendFinalWebhookPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const resendFinalWebhookParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(resendFinalWebhookPathBotIdRegExp)\n    .describe(\n      \"The UUID of the bot to resend the final webhook for.\\n\\nThis will recreate and resend the `bot.completed` or `bot.failed` webhook to all configured webhook endpoints.\"\n    )\n})\n\nexport const resendFinalWebhookResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Retry sending the transcription callback for a bot.\n    \n    You can override the callback configuration (URL, method, secret) if needed. Only works for bots that have completed or failed. The callback will be sent to the provided URL (or the bot's original callback URL if not overridden).\n    \n    **Callback Configuration:** You can override the callback URL, HTTP method (POST or PUT), and secret in the request body. If not provided, the bot's original callback configuration will be used. The secret will be included in the `x-mb-secret` header for validation.\n    \n    **Status Requirements:** The bot must be in `completed` or `failed` status and must have had transcription enabled. Bots without transcription or bots that are still in progress cannot have their callback retried. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Callback Payload:** The callback payload will be identical to the original callback (either `bot.completed` or `bot.failed` event with transcription data). The payload format matches the webhook format.\n    \n    **Use Cases:**\n    - Callback delivery failed due to network issues\n    - Callback endpoint was temporarily unavailable\n    - Need to send callback to a different endpoint\n    - Testing callback integration\n    \n    **Idempotency:** This operation is idempotent. You can call it multiple times with the same or different configurations.\n    \n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation or if no callback was configured.\n * @summary Retry callback\n */\nexport const retryCallbackPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const retryCallbackParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(retryCallbackPathBotIdRegExp)\n    .describe(\n      \"The UUID of the bot to retry the callback for.\\n\\nThis will recreate and resend the callback payload to the configured callback URL (or a custom URL if provided in the request body).\"\n    )\n})\n\nexport const retryCallbackBodyDefault = null\nexport const retryCallbackBodySecretDefault = null\nexport const retryCallbackBodyMethodDefault = \"POST\"\n\nexport const retryCallbackBody = zod\n  .object({\n    url: zod\n      .string()\n      .url()\n      .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n    secret: zod\n      .string()\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n      ),\n    method: zod\n      .enum([\"POST\", \"PUT\"])\n      .default(retryCallbackBodyMethodDefault)\n      .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n  })\n  .or(zod.null())\n  .describe(\n    \"Optional callback configuration to override the bot's configured callback.\\n\\nIf provided, all fields must be included and these values will be used instead of the bot's original callback configuration. If omitted (null), the bot's original callback configuration will be used.\\n\\n- `url`: Custom callback URL (overrides configured URL)\\n- `method`: HTTP method (`POST` or `PUT`, default: `POST`)\\n- `secret`: Custom HMAC secret (overrides configured secret, sent in `x-mb-secret` header)\"\n  )\n\nexport const retryCallbackResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Update bot configuration (currently only supports updating the extra parameter).\n    \n    Allows updating the `extra` metadata even while the bot is running. The updated extra will be reflected in subsequent webhooks and API responses. This is useful when your system evolves and you need to attach additional tracking information to a bot after it has started.\n    \n    **Merge Behavior:** The `extra` parameter performs a shallow merge with the existing extra object:\n    - New keys are added to the existing extra object\n    - Existing keys are overwritten with new values\n    - Keys not included in the update request remain unchanged\n    - Pass `null` to clear all extra data\n    \n    **Example Merge:**\n    - Current extra: `{ \"customer_id\": \"123\", \"session_id\": \"abc\" }`\n    - Update with: `{ \"session_id\": \"xyz\", \"order_id\": \"456\" }`\n    - Result: `{ \"customer_id\": \"123\", \"session_id\": \"xyz\", \"order_id\": \"456\" }`\n    \n    **Webhook Behavior:** After updating extra, all future webhooks (including status updates) will use the new value from the database. The updated extra is fetched in real-time for each webhook, ensuring consistency.\n    \n    **Works for Any Bot Status:** You can update extra for bots in any status (queued, recording, completed, failed). This allows you to add correlation metadata even after a bot has finished.\n    \n    **Use Cases:**\n    - Add tracking IDs after bot creation\n    - Update correlation metadata when your system state changes\n    - Fix incorrect tracking information\n    - Add additional context for completed bots\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Update bot configuration\n */\nexport const updateBotConfigPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const updateBotConfigParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(updateBotConfigPathBotIdRegExp)\n    .describe(\"The UUID of the bot to update configuration for.\")\n})\n\nexport const updateBotConfigBody = zod.object({\n  extra: zod\n    .record(zod.string(), zod.any())\n    .or(zod.null())\n    .describe(\"Custom metadata to merge with existing extra data (shallow merge)\")\n})\n\nexport const updateBotConfigResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Schedule a bot to join a meeting at a specific time in the future.\n    \n    The bot will automatically join the meeting at the specified `join_at` time (ISO 8601 timestamp). You can provide a callback URL to receive events for this bot. The bot configuration is stored immediately, but token reservation and daily bot cap checks are performed when the bot actually joins the meeting.\n    \n    **Scheduling:** The `join_at` timestamp must be in the future (at least 1 minute ahead). The bot will automatically attempt to join the meeting at the specified time. There may be a small processing delay (typically less than a minute).\n    \n    **Token Reservation:** Tokens are NOT reserved at creation time. Token availability and daily bot cap are checked when the bot actually joins the meeting. If tokens are insufficient or the daily cap is reached at join time, the bot will fail with an appropriate error and transition to `failed` status.\n    \n    **Deduplication:** Deduplication is checked when the bot joins, not at creation time. This means you can schedule multiple bots for the same meeting URL, but only one will successfully join (unless `allow_multiple_bots` is true).\n    \n    **Status:** The scheduled bot starts in `scheduled` status and transitions to `completed` when the bot instance is created and queued to join. If the bot fails to join, it transitions to `failed` status.\n    \n    **Updates and Deletions:** Scheduled bots can be updated or deleted as long as they are in `scheduled` status and the join time is at least 4 minutes in the future. This ensures the bot can be modified before it starts processing.\n    \n    Returns a `bot_id` (UUID) that you can use to track and manage the scheduled bot. This UUID will be reused as the bot's UUID when it actually joins.\n * @summary Create scheduled bot\n */\nexport const createScheduledBotBodyBotNameMax = 255\nexport const createScheduledBotBodyBotImageMaxThree = 5\nexport const createScheduledBotBodyBotImageDefault = null\nexport const createScheduledBotBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const createScheduledBotBodyBotImageConfigImageDurationDefault = 30\nexport const createScheduledBotBodyBotImageConfigImageDurationMin = 10\n\nexport const createScheduledBotBodyBotImageConfigImageDurationMax = 120\nexport const createScheduledBotBodyBotImageConfigDefault = null\nexport const createScheduledBotBodyAllowMultipleBotsDefault = true\nexport const createScheduledBotBodyRecordingModeDefault = \"speaker_view\"\nexport const createScheduledBotBodyEntryMessageMaxOne = 500\nexport const createScheduledBotBodyEntryMessageDefault = null\nexport const createScheduledBotBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const createScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const createScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const createScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const createScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const createScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const createScheduledBotBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const createScheduledBotBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const createScheduledBotBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const createScheduledBotBodyTimeoutConfigGracePeriodDefault = 0\nexport const createScheduledBotBodyTimeoutConfigGracePeriodMin = 0\n\nexport const createScheduledBotBodyTimeoutConfigGracePeriodMax = 600\nexport const createScheduledBotBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const createScheduledBotBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const createScheduledBotBodyZoomConfigDefault = null\nexport const createScheduledBotBodyExtraDefault = null\nexport const createScheduledBotBodyStreamingEnabledDefault = false\nexport const createScheduledBotBodyStreamingConfigInputUrlDefault = null\nexport const createScheduledBotBodyStreamingConfigOutputUrlDefault = null\nexport const createScheduledBotBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const createScheduledBotBodyStreamingConfigDefault = null\nexport const createScheduledBotBodyTranscriptionEnabledDefault = false\nexport const createScheduledBotBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const createScheduledBotBodyTranscriptionConfigApiKeyDefault = null\nexport const createScheduledBotBodyTranscriptionConfigCustomParamsDefault = null\nexport const createScheduledBotBodyTranscriptionConfigDefault = null\nexport const createScheduledBotBodyCallbackEnabledDefault = false\nexport const createScheduledBotBodyCallbackConfigSecretDefault = null\nexport const createScheduledBotBodyCallbackConfigMethodDefault = \"POST\"\nexport const createScheduledBotBodyCallbackConfigDefault = null\nexport const createScheduledBotBodyJoinAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const createScheduledBotBody = zod\n  .object({\n    bot_name: zod\n      .string()\n      .min(1)\n      .max(createScheduledBotBodyBotNameMax)\n      .describe(\n        \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n      ),\n    bot_image: zod\n      .string()\n      .url()\n      .or(zod.array(zod.string().url()).min(1).max(createScheduledBotBodyBotImageMaxThree))\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n      ),\n    bot_image_config: zod\n      .object({\n        loop_mode: zod\n          .enum([\"auto\", \"bot_status\"])\n          .default(createScheduledBotBodyBotImageConfigLoopModeDefault)\n          .describe(\n            \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n          ),\n        image_duration: zod\n          .number()\n          .min(createScheduledBotBodyBotImageConfigImageDurationMin)\n          .max(createScheduledBotBodyBotImageConfigImageDurationMax)\n          .default(createScheduledBotBodyBotImageConfigImageDurationDefault)\n          .describe(\n            \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n          )\n      })\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n      ),\n    meeting_url: zod\n      .string()\n      .url()\n      .describe(\n        'The URL of the meeting to join.\\n\\nMust be a valid HTTPS URL for a Microsoft Teams, Google Meet, or Zoom meeting.\\n\\nExample: \\\"https://zoom.us/j/123456789\\\" or \\\"https://meet.google.com/abc-defg-hij\\\"'\n      ),\n    allow_multiple_bots: zod\n      .boolean()\n      .default(createScheduledBotBodyAllowMultipleBotsDefault)\n      .describe(\n        \"Whether to allow multiple bots to join the same meeting.\\n\\nIf set to `false`, only a single bot will be allowed to join using the same meeting URL within the last 5 minutes. This prevents duplicate bots from joining the same meeting.\\n\\nIf set to `true` (default), multiple bots can join the same meeting URL.\\n\\nDefault: `true`\"\n      ),\n    recording_mode: zod\n      .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n      .default(createScheduledBotBodyRecordingModeDefault)\n      .describe(\n        \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n      ),\n    entry_message: zod\n      .string()\n      .max(createScheduledBotBodyEntryMessageMaxOne)\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n      ),\n    timeout_config: zod\n      .object({\n        waiting_room_timeout: zod\n          .number()\n          .min(createScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMin)\n          .max(createScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMax)\n          .default(createScheduledBotBodyTimeoutConfigWaitingRoomTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n          ),\n        no_one_joined_timeout: zod\n          .number()\n          .min(createScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMin)\n          .max(createScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMax)\n          .default(createScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n          ),\n        silence_timeout: zod\n          .number()\n          .min(createScheduledBotBodyTimeoutConfigSilenceTimeoutMin)\n          .max(createScheduledBotBodyTimeoutConfigSilenceTimeoutMax)\n          .default(createScheduledBotBodyTimeoutConfigSilenceTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n          ),\n        grace_period: zod\n          .number()\n          .min(createScheduledBotBodyTimeoutConfigGracePeriodMin)\n          .max(createScheduledBotBodyTimeoutConfigGracePeriodMax)\n          .optional()\n          .describe(\n            \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n          )\n      })\n      .default(createScheduledBotBodyTimeoutConfigDefault)\n      .describe(\n        \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n      ),\n    zoom_config: zod\n      .object({\n        credential_id: zod\n          .string()\n          .uuid()\n          .regex(createScheduledBotBodyZoomConfigCredentialIdRegExp)\n          .optional()\n          .describe(\n            \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n          ),\n        credential_user_id: zod\n          .string()\n          .optional()\n          .describe(\n            \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n          ),\n        obf_token: zod\n          .string()\n          .optional()\n          .describe(\n            \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n          ),\n        obf_token_url: zod\n          .string()\n          .url()\n          .optional()\n          .describe(\n            \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n          ),\n        zak_token_url: zod\n          .string()\n          .url()\n          .optional()\n          .describe(\n            \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n          )\n      })\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n      ),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n      ),\n    streaming_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable audio streaming for this bot. When enabled, the streaming_config property is used to provide the configuration.\"\n      ),\n    streaming_config: zod\n      .object({\n        input_url: zod\n          .string()\n          .url()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n          ),\n        output_url: zod\n          .string()\n          .url()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n          ),\n        audio_frequency: zod\n          .number()\n          .or(zod.number())\n          .or(zod.number())\n          .or(zod.number())\n          .describe(\n            \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n          )\n          .or(zod.null())\n          .default(createScheduledBotBodyStreamingConfigAudioFrequencyDefault)\n          .describe(\n            \"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\"\n          )\n      })\n      .or(zod.null())\n      .optional(),\n    transcription_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable transcription for this bot. When enabled, the transcription_config property is used to customise the transcription provider and parameters.\"\n      ),\n    transcription_config: zod\n      .object({\n        provider: zod\n          .enum([\"gladia\"])\n          .default(createScheduledBotBodyTranscriptionConfigProviderDefault)\n          .describe(\n            \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n          ),\n        api_key: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n          ),\n        custom_params: zod\n          .record(zod.string(), zod.any())\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n          )\n      })\n      .or(zod.null())\n      .optional(),\n    callback_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable callback for this bot. When enabled, the callback_config property is used to provide the configuration.\"\n      ),\n    callback_config: zod\n      .object({\n        url: zod\n          .string()\n          .url()\n          .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n        secret: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n          ),\n        method: zod\n          .enum([\"POST\", \"PUT\"])\n          .default(createScheduledBotBodyCallbackConfigMethodDefault)\n          .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n      })\n      .or(zod.null())\n      .optional()\n  })\n  .and(\n    zod.object({\n      join_at: zod\n        .string()\n        .datetime({})\n        .regex(createScheduledBotBodyJoinAtRegExp)\n        .describe(\n          'ISO8601 timestamp when the bot should join the meeting.\\n\\nCannot be in the past (with 1 minute leeway) and cannot be more than 90 days in the future.\\n\\nExample: \\\"2025-12-25T10:00:00Z\\\"'\n        )\n    })\n  )\n\n/**\n * Retrieve a paginated list of scheduled bots.\n    \n    Supports filtering by status (`scheduled`, `completed`, `failed`) and date range. Results are ordered by scheduled join time (earliest first). Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 20, max: 100).\n    \n    **Filtering:**\n    - `status`: Filter by scheduled bot status (comma-separated for multiple statuses)\n    - `scheduled_after`: ISO 8601 timestamp - only return bots scheduled to join after this time\n    - `scheduled_before`: ISO 8601 timestamp - only return bots scheduled to join before this time\n    - `bot_id`, `bot_name`, `meeting_url`: case-insensitive partial match\n    - `meeting_platform`: comma-separated list of `zoom`, `meet`, `teams`\n    - `extra`: filter by values in the `extra` JSON payload using `key:value` syntax (comma-separated for multiple conditions, e.g. `extra=customer_id:12345,project:sales`). Values match exactly (case-sensitive); scheduled bots without the key are excluded.\n\n    **Status Values:**\n    - `scheduled`: Bot is scheduled but has not yet joined\n    - `completed`: Bot instance was created and queued to join (bot may still be joining)\n    - `failed`: Bot failed to join (token issues, daily cap, etc.)\n    \n    Returns a paginated list of scheduled bots with metadata including bot ID, scheduled join time, status, and basic configuration.\n * @summary List scheduled bots\n */\nexport const listScheduledBotsQueryLimitDefault = 50\nexport const listScheduledBotsQueryLimitMax = 100\nexport const listScheduledBotsQueryCursorDefault = null\nexport const listScheduledBotsQueryBotIdDefault = null\nexport const listScheduledBotsQueryScheduledBeforeRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listScheduledBotsQueryScheduledBeforeDefault = null\nexport const listScheduledBotsQueryScheduledAfterRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listScheduledBotsQueryScheduledAfterDefault = null\nexport const listScheduledBotsQueryBotNameDefault = null\nexport const listScheduledBotsQueryMeetingUrlDefault = null\nexport const listScheduledBotsQueryExtraDefault = null\n\nexport const listScheduledBotsQueryParams = zod.object({\n  limit: zod\n    .number()\n    .max(listScheduledBotsQueryLimitMax)\n    .describe(\n      \"Maximum number of scheduled bots to return in a single request.\\n\\nLimits the number of results returned in a single API call.\\n\\nDefault: 50 Minimum: 1 Maximum: 100\"\n    ),\n  cursor: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'The cursor to use for pagination.\\n\\nObtained from the `cursor` or `prev_cursor` field in the previous response.\\n\\nThe cursor is a base64-encoded string containing `<isoDate>::<id>`. To paginate backward, prefix the cursor with a `-` (minus sign).\\n\\nLeave as `null` to get the first page of results.\\n\\nExample: \\\"MjAyNS0wMS0xNVQxMDozMDowMFo6OjEyMzQ1\\\" or \\\"LU1qQXlOM1UxTmpVME5qVXhNakUwTkRrPQ==\\\" (for backward pagination)'\n    ),\n  bot_id: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Filter scheduled bots by UUID (partial match, case-insensitive).\\n\\nUse this to find a scheduled bot when you only know part of the identifier.\"\n    ),\n  scheduled_before: zod\n    .string()\n    .datetime({})\n    .regex(listScheduledBotsQueryScheduledBeforeRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter scheduled bots with join_at before this timestamp.\\n\\nReturns only scheduled bots that are scheduled to join before the specified date.\\n\\nISO 8601 format. Must be within ±90 days from today.\\n\\nExample: \\\"2025-12-25T10:00:00Z\\\"'\n    ),\n  scheduled_after: zod\n    .string()\n    .datetime({})\n    .regex(listScheduledBotsQueryScheduledAfterRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter scheduled bots with join_at after this timestamp.\\n\\nReturns only scheduled bots that are scheduled to join after the specified date.\\n\\nISO 8601 format. Must be within ±90 days from today.\\n\\nExample: \\\"2025-12-25T10:00:00Z\\\"'\n    ),\n  status: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter by scheduled bot status.\\n\\nReturns only scheduled bots with the specified status(es).\\n\\nAvailable statuses:\\n- scheduled: Bot is scheduled to join at a future time\\n- cancelled: Bot schedule was cancelled\\n- completed: Bot has completed its scheduled task\\n- failed: Bot failed to execute its scheduled task\\n\\nTo filter multiple statuses, use a comma-separated list of values. For example, \\\"scheduled,completed\\\" would match all bots that are scheduled or completed.'\n    ),\n  bot_name: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by name containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s name. Useful for finding bots with specific naming conventions or to locate a particular bot when you don\\'t have its ID.\\n\\nExample: \\\"Sales\\\" would match \\\"Sales Meeting\\\", \\\"Quarterly Sales\\\", etc.'\n    ),\n  meeting_url: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter bots by meeting URL containing this string.\\n\\nPerforms a case-insensitive partial match on the bot\\'s meeting URL. Useful for finding bots associated with specific meeting platforms or particular meeting IDs.\\n\\nExample: \\\"zoom.us\\\" would match all Zoom meetings'\n    ),\n  meeting_platform: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter by meeting platform.\\n\\nThis parameter filters scheduled bots by the platform they are associated with. It can be used to find bots that are associated with a specific meeting platform. Valid values are: \\\"zoom\\\", \\\"meet\\\", \\\"teams\\\".\\n\\nExample: \\\"zoom\\\" would match all bots associated with Zoom meetings.\\n\\nTo filter multiple platforms, use a comma-separated list of values. For example, \\\"zoom,meet\\\" would match all bots associated with Zoom or Meet meetings.'\n    ),\n  extra: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter scheduled bots by matching values in the extra JSON payload.\\n\\nThis parameter applies SQL-level filtering on the `extra` JSON field and returns only scheduled bots that match all specified conditions.\\n\\nFormat specifications: - Single condition: \\\"field:value\\\" - Multiple conditions: \\\"field1:value1,field2:value2\\\"\\n\\nExamples: - \\\"customer_id:12345\\\" - Only scheduled bots with this customer ID - \\\"status:active,project:sales\\\" - Only active scheduled bots from sales projects\\n\\nNotes: - All conditions must match for a scheduled bot to be included - Values are matched exactly (case-sensitive) - Scheduled bots without the specified field are excluded'\n    )\n})\n\nexport const listScheduledBotsResponseDataItemBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listScheduledBotsResponseDataItemJoinAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listScheduledBotsResponseDataItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listScheduledBotsResponseDataItemUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const listScheduledBotsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      bot_id: zod\n        .string()\n        .uuid()\n        .regex(listScheduledBotsResponseDataItemBotIdRegExp)\n        .describe(\"The UUID of the scheduled bot\"),\n      bot_name: zod.string().describe(\"The name of the scheduled bot\"),\n      meeting_url: zod.string().describe(\"The URL of the meeting\"),\n      meeting_platform: zod.enum([\"zoom\", \"meet\", \"teams\"]).describe(\"The platform of the meeting\"),\n      join_at: zod\n        .string()\n        .datetime({})\n        .regex(listScheduledBotsResponseDataItemJoinAtRegExp)\n        .describe(\"ISO 8601 timestamp when the bot should join the meeting\"),\n      status: zod\n        .enum([\"scheduled\", \"cancelled\", \"completed\", \"failed\"])\n        .describe(\"The current status of the scheduled bot\"),\n      extra: zod\n        .record(zod.string(), zod.any())\n        .or(zod.null())\n        .describe(\"Custom metadata associated with the scheduled bot\"),\n      created_at: zod\n        .string()\n        .datetime({})\n        .regex(listScheduledBotsResponseDataItemCreatedAtRegExp)\n        .describe(\"ISO 8601 timestamp when the scheduled bot was created\"),\n      updated_at: zod\n        .string()\n        .datetime({})\n        .regex(listScheduledBotsResponseDataItemUpdatedAtRegExp)\n        .describe(\"ISO 8601 timestamp when the scheduled bot was last updated\")\n    })\n  ),\n  cursor: zod.string().or(zod.null()).describe(\"Cursor for the next page (null if no more pages)\"),\n  prev_cursor: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Cursor for the previous page (null if on first page)\")\n})\n\n/**\n * Create multiple scheduled bots in a single request with partial success support.\n    \n    Processes each scheduled bot creation request sequentially. Each item is validated and processed independently. Token reservation and daily bot cap checks are NOT performed at creation time - they are performed when each bot actually joins the meeting.\n    \n    **Processing Order:** Items are processed in the order they appear in the request array. Each item goes through validation: platform detection, BYOK transcription check, and join time validation. Unlike immediate bot creation, daily bot cap and token availability are not checked at creation time.\n    \n    **Partial Success:** The response always has `success: true`, even if all items fail. Check the `errors` array to identify failed items. The `data` array contains successfully scheduled bots with their `bot_id` and preserved `extra` metadata.\n    \n    **Join Time Validation:** Each scheduled bot's `join_at` time must be in the future (at least 1 minute ahead). If a join time is invalid, that item will fail with a validation error, but other items will continue processing.\n    \n    **Error Scenarios:** \n    - Validation errors: Invalid join time, invalid meeting URL, invalid configuration\n    - Platform detection failures: `INVALID_MEETING_PLATFORM`\n    - BYOK not enabled: `BYOK_TRANSCRIPTION_NOT_ENABLED_ON_PLAN`\n    - System failures: `BOT_CREATE_FAILED`\n    \n    **Note:** Daily bot cap and token availability are checked when each bot joins, not at creation time. If these checks fail at join time, the bot will transition to `failed` status and send a failure webhook.\n    \n    Returns 201 with partial success response. All items may succeed, all may fail, or any combination.\n * @summary Create multiple scheduled bots\n */\nexport const batchCreateScheduledBotsBodyBotNameMax = 255\nexport const batchCreateScheduledBotsBodyBotImageMaxThree = 5\nexport const batchCreateScheduledBotsBodyBotImageDefault = null\nexport const batchCreateScheduledBotsBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const batchCreateScheduledBotsBodyBotImageConfigImageDurationDefault = 30\nexport const batchCreateScheduledBotsBodyBotImageConfigImageDurationMin = 10\n\nexport const batchCreateScheduledBotsBodyBotImageConfigImageDurationMax = 120\nexport const batchCreateScheduledBotsBodyBotImageConfigDefault = null\nexport const batchCreateScheduledBotsBodyAllowMultipleBotsDefault = true\nexport const batchCreateScheduledBotsBodyRecordingModeDefault = \"speaker_view\"\nexport const batchCreateScheduledBotsBodyEntryMessageMaxOne = 500\nexport const batchCreateScheduledBotsBodyEntryMessageDefault = null\nexport const batchCreateScheduledBotsBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const batchCreateScheduledBotsBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const batchCreateScheduledBotsBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const batchCreateScheduledBotsBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const batchCreateScheduledBotsBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const batchCreateScheduledBotsBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const batchCreateScheduledBotsBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const batchCreateScheduledBotsBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const batchCreateScheduledBotsBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const batchCreateScheduledBotsBodyTimeoutConfigGracePeriodDefault = 0\nexport const batchCreateScheduledBotsBodyTimeoutConfigGracePeriodMin = 0\n\nexport const batchCreateScheduledBotsBodyTimeoutConfigGracePeriodMax = 600\nexport const batchCreateScheduledBotsBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const batchCreateScheduledBotsBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const batchCreateScheduledBotsBodyZoomConfigDefault = null\nexport const batchCreateScheduledBotsBodyExtraDefault = null\nexport const batchCreateScheduledBotsBodyStreamingEnabledDefault = false\nexport const batchCreateScheduledBotsBodyStreamingConfigInputUrlDefault = null\nexport const batchCreateScheduledBotsBodyStreamingConfigOutputUrlDefault = null\nexport const batchCreateScheduledBotsBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const batchCreateScheduledBotsBodyStreamingConfigDefault = null\nexport const batchCreateScheduledBotsBodyTranscriptionEnabledDefault = false\nexport const batchCreateScheduledBotsBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const batchCreateScheduledBotsBodyTranscriptionConfigApiKeyDefault = null\nexport const batchCreateScheduledBotsBodyTranscriptionConfigCustomParamsDefault = null\nexport const batchCreateScheduledBotsBodyTranscriptionConfigDefault = null\nexport const batchCreateScheduledBotsBodyCallbackEnabledDefault = false\nexport const batchCreateScheduledBotsBodyCallbackConfigSecretDefault = null\nexport const batchCreateScheduledBotsBodyCallbackConfigMethodDefault = \"POST\"\nexport const batchCreateScheduledBotsBodyCallbackConfigDefault = null\nexport const batchCreateScheduledBotsBodyJoinAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const batchCreateScheduledBotsBodyItem = zod\n  .object({\n    bot_name: zod\n      .string()\n      .min(1)\n      .max(batchCreateScheduledBotsBodyBotNameMax)\n      .describe(\n        \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n      ),\n    bot_image: zod\n      .string()\n      .url()\n      .or(zod.array(zod.string().url()).min(1).max(batchCreateScheduledBotsBodyBotImageMaxThree))\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n      ),\n    bot_image_config: zod\n      .object({\n        loop_mode: zod\n          .enum([\"auto\", \"bot_status\"])\n          .default(batchCreateScheduledBotsBodyBotImageConfigLoopModeDefault)\n          .describe(\n            \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n          ),\n        image_duration: zod\n          .number()\n          .min(batchCreateScheduledBotsBodyBotImageConfigImageDurationMin)\n          .max(batchCreateScheduledBotsBodyBotImageConfigImageDurationMax)\n          .default(batchCreateScheduledBotsBodyBotImageConfigImageDurationDefault)\n          .describe(\n            \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n          )\n      })\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n      ),\n    meeting_url: zod\n      .string()\n      .url()\n      .describe(\n        'The URL of the meeting to join.\\n\\nMust be a valid HTTPS URL for a Microsoft Teams, Google Meet, or Zoom meeting.\\n\\nExample: \\\"https://zoom.us/j/123456789\\\" or \\\"https://meet.google.com/abc-defg-hij\\\"'\n      ),\n    allow_multiple_bots: zod\n      .boolean()\n      .default(batchCreateScheduledBotsBodyAllowMultipleBotsDefault)\n      .describe(\n        \"Whether to allow multiple bots to join the same meeting.\\n\\nIf set to `false`, only a single bot will be allowed to join using the same meeting URL within the last 5 minutes. This prevents duplicate bots from joining the same meeting.\\n\\nIf set to `true` (default), multiple bots can join the same meeting URL.\\n\\nDefault: `true`\"\n      ),\n    recording_mode: zod\n      .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n      .default(batchCreateScheduledBotsBodyRecordingModeDefault)\n      .describe(\n        \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n      ),\n    entry_message: zod\n      .string()\n      .max(batchCreateScheduledBotsBodyEntryMessageMaxOne)\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n      ),\n    timeout_config: zod\n      .object({\n        waiting_room_timeout: zod\n          .number()\n          .min(batchCreateScheduledBotsBodyTimeoutConfigWaitingRoomTimeoutMin)\n          .max(batchCreateScheduledBotsBodyTimeoutConfigWaitingRoomTimeoutMax)\n          .default(batchCreateScheduledBotsBodyTimeoutConfigWaitingRoomTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n          ),\n        no_one_joined_timeout: zod\n          .number()\n          .min(batchCreateScheduledBotsBodyTimeoutConfigNoOneJoinedTimeoutMin)\n          .max(batchCreateScheduledBotsBodyTimeoutConfigNoOneJoinedTimeoutMax)\n          .default(batchCreateScheduledBotsBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n          ),\n        silence_timeout: zod\n          .number()\n          .min(batchCreateScheduledBotsBodyTimeoutConfigSilenceTimeoutMin)\n          .max(batchCreateScheduledBotsBodyTimeoutConfigSilenceTimeoutMax)\n          .default(batchCreateScheduledBotsBodyTimeoutConfigSilenceTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n          ),\n        grace_period: zod\n          .number()\n          .min(batchCreateScheduledBotsBodyTimeoutConfigGracePeriodMin)\n          .max(batchCreateScheduledBotsBodyTimeoutConfigGracePeriodMax)\n          .optional()\n          .describe(\n            \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n          )\n      })\n      .default(batchCreateScheduledBotsBodyTimeoutConfigDefault)\n      .describe(\n        \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n      ),\n    zoom_config: zod\n      .object({\n        credential_id: zod\n          .string()\n          .uuid()\n          .regex(batchCreateScheduledBotsBodyZoomConfigCredentialIdRegExp)\n          .optional()\n          .describe(\n            \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n          ),\n        credential_user_id: zod\n          .string()\n          .optional()\n          .describe(\n            \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n          ),\n        obf_token: zod\n          .string()\n          .optional()\n          .describe(\n            \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n          ),\n        obf_token_url: zod\n          .string()\n          .url()\n          .optional()\n          .describe(\n            \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n          ),\n        zak_token_url: zod\n          .string()\n          .url()\n          .optional()\n          .describe(\n            \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n          )\n      })\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n      ),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n      ),\n    streaming_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable audio streaming for this bot. When enabled, the streaming_config property is used to provide the configuration.\"\n      ),\n    streaming_config: zod\n      .object({\n        input_url: zod\n          .string()\n          .url()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n          ),\n        output_url: zod\n          .string()\n          .url()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n          ),\n        audio_frequency: zod\n          .number()\n          .or(zod.number())\n          .or(zod.number())\n          .or(zod.number())\n          .describe(\n            \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n          )\n          .or(zod.null())\n          .default(batchCreateScheduledBotsBodyStreamingConfigAudioFrequencyDefault)\n          .describe(\n            \"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\"\n          )\n      })\n      .or(zod.null())\n      .optional(),\n    transcription_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable transcription for this bot. When enabled, the transcription_config property is used to customise the transcription provider and parameters.\"\n      ),\n    transcription_config: zod\n      .object({\n        provider: zod\n          .enum([\"gladia\"])\n          .default(batchCreateScheduledBotsBodyTranscriptionConfigProviderDefault)\n          .describe(\n            \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n          ),\n        api_key: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n          ),\n        custom_params: zod\n          .record(zod.string(), zod.any())\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n          )\n      })\n      .or(zod.null())\n      .optional(),\n    callback_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable callback for this bot. When enabled, the callback_config property is used to provide the configuration.\"\n      ),\n    callback_config: zod\n      .object({\n        url: zod\n          .string()\n          .url()\n          .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n        secret: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n          ),\n        method: zod\n          .enum([\"POST\", \"PUT\"])\n          .default(batchCreateScheduledBotsBodyCallbackConfigMethodDefault)\n          .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n      })\n      .or(zod.null())\n      .optional()\n  })\n  .and(\n    zod.object({\n      join_at: zod\n        .string()\n        .datetime({})\n        .regex(batchCreateScheduledBotsBodyJoinAtRegExp)\n        .describe(\n          'ISO8601 timestamp when the bot should join the meeting.\\n\\nCannot be in the past (with 1 minute leeway) and cannot be more than 90 days in the future.\\n\\nExample: \\\"2025-12-25T10:00:00Z\\\"'\n        )\n    })\n  )\nexport const batchCreateScheduledBotsBody = zod\n  .array(batchCreateScheduledBotsBodyItem)\n  .min(1)\n  .max(100)\n\n/**\n * Retrieve detailed information about a specific scheduled bot.\n    \n    Returns the scheduled bot's configuration, scheduled join time, current status, and associated bot instance (if the bot has already joined). Includes all the same configuration options as immediate bot creation.\n    \n    **Status Information:** The response includes the scheduled bot's current status (`scheduled`, `completed`, or `failed`) and when the status was last updated. If the bot has joined, the response includes a link to the actual bot instance.\n    \n    **Scheduled Join Time:** The `join_at` field contains the ISO 8601 timestamp when the bot is scheduled to join the meeting.\n    \n    **Bot Instance:** If the scheduled bot has transitioned to `completed` status, the bot instance has been created and is queued to join. You can use the `bot_id` (which will be reused as the bot's UUID when it joins) to query the bot's status and retrieve meeting data once it has joined.\n    \n    **Updates and Deletions:** If the bot is in `scheduled` status and the join time is at least 4 minutes in the future, you can update or delete the scheduled bot. This ensures the bot can be modified before it starts processing.\n    \n    Returns 404 if the scheduled bot is not found or does not belong to your team.\n * @summary Get scheduled bot details\n */\nexport const getScheduledBotDetailsPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getScheduledBotDetailsParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(getScheduledBotDetailsPathBotIdRegExp)\n    .describe(\"The UUID of the scheduled bot to get details for.\")\n})\n\nexport const getScheduledBotDetailsResponseDataBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getScheduledBotDetailsResponseDataJoinAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getScheduledBotDetailsResponseDataCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getScheduledBotDetailsResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getScheduledBotDetailsResponseDataCancelledAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getScheduledBotDetailsResponseDataTimeoutConfigWaitingRoomTimeoutMinOne =\n  -9007199254740991\nexport const getScheduledBotDetailsResponseDataTimeoutConfigWaitingRoomTimeoutMaxOne = 9007199254740991\nexport const getScheduledBotDetailsResponseDataTimeoutConfigNoOneJoinedTimeoutMinOne =\n  -9007199254740991\nexport const getScheduledBotDetailsResponseDataTimeoutConfigNoOneJoinedTimeoutMaxOne = 9007199254740991\nexport const getScheduledBotDetailsResponseDataStreamingConfigAudioFrequencyMinOne =\n  -9007199254740991\nexport const getScheduledBotDetailsResponseDataStreamingConfigAudioFrequencyMaxOne = 9007199254740991\nexport const getScheduledBotDetailsResponseDataZoomConfigCredentialIdRegExpOne =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getScheduledBotDetailsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    bot_id: zod\n      .string()\n      .uuid()\n      .regex(getScheduledBotDetailsResponseDataBotIdRegExp)\n      .describe(\"The UUID of the scheduled bot\"),\n    bot_name: zod.string().describe(\"The name of the scheduled bot\"),\n    bot_image: zod.string().or(zod.null()).describe(\"The image URL for the bot (null if not set)\"),\n    meeting_url: zod.string().describe(\"The URL of the meeting\"),\n    meeting_platform: zod.enum([\"zoom\", \"meet\", \"teams\"]).describe(\"The platform of the meeting\"),\n    recording_mode: zod\n      .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n      .describe(\"The recording mode for the bot\"),\n    join_at: zod\n      .string()\n      .datetime({})\n      .regex(getScheduledBotDetailsResponseDataJoinAtRegExp)\n      .describe(\"ISO 8601 timestamp when the bot should join the meeting\"),\n    status: zod\n      .enum([\"scheduled\", \"cancelled\", \"completed\", \"failed\"])\n      .describe(\"The current status of the scheduled bot\"),\n    created_at: zod\n      .string()\n      .datetime({})\n      .regex(getScheduledBotDetailsResponseDataCreatedAtRegExp)\n      .describe(\"ISO 8601 timestamp when the scheduled bot was created\"),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(getScheduledBotDetailsResponseDataUpdatedAtRegExp)\n      .describe(\"ISO 8601 timestamp when the scheduled bot was last updated\"),\n    cancelled_at: zod\n      .string()\n      .datetime({})\n      .regex(getScheduledBotDetailsResponseDataCancelledAtRegExpOne)\n      .or(zod.null())\n      .describe(\"ISO 8601 timestamp when the scheduled bot was cancelled (null if not cancelled)\"),\n    allow_multiple_bots: zod.boolean().describe(\"Whether multiple bots are allowed in the meeting\"),\n    entry_message: zod\n      .string()\n      .or(zod.null())\n      .describe(\"Custom message to send when bot joins (null if not set)\"),\n    timeout_config: zod.object({\n      waiting_room_timeout: zod\n        .number()\n        .min(getScheduledBotDetailsResponseDataTimeoutConfigWaitingRoomTimeoutMinOne)\n        .max(getScheduledBotDetailsResponseDataTimeoutConfigWaitingRoomTimeoutMaxOne)\n        .or(zod.null())\n        .describe(\"Timeout in seconds for waiting room (null if not set)\"),\n      no_one_joined_timeout: zod\n        .number()\n        .min(getScheduledBotDetailsResponseDataTimeoutConfigNoOneJoinedTimeoutMinOne)\n        .max(getScheduledBotDetailsResponseDataTimeoutConfigNoOneJoinedTimeoutMaxOne)\n        .or(zod.null())\n        .describe(\"Timeout in seconds if no one joins (null if not set)\")\n    }),\n    transcription_config: zod\n      .object({\n        enabled: zod.boolean(),\n        provider: zod.enum([\"gladia\"]),\n        custom_params: zod\n          .record(zod.string(), zod.any())\n          .or(zod.null())\n          .describe(\"Custom parameters for transcription (null if not set)\")\n      })\n      .or(zod.null())\n      .describe(\"Transcription configuration (null if transcription is disabled)\"),\n    streaming_config: zod\n      .object({\n        enabled: zod.boolean(),\n        input_url: zod\n          .string()\n          .or(zod.null())\n          .describe(\"Websocket URL for receiving audio (null if not set)\"),\n        output_url: zod\n          .string()\n          .or(zod.null())\n          .describe(\"Websocket URL for sending audio (null if not set)\"),\n        audio_frequency: zod\n          .number()\n          .min(getScheduledBotDetailsResponseDataStreamingConfigAudioFrequencyMinOne)\n          .max(getScheduledBotDetailsResponseDataStreamingConfigAudioFrequencyMaxOne)\n          .or(zod.null())\n          .describe(\n            \"Audio frequency in Hz (null if not set). Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n          )\n      })\n      .or(zod.null())\n      .describe(\"Streaming configuration (null if streaming is disabled)\"),\n    callback_config: zod\n      .object({\n        enabled: zod.boolean(),\n        url: zod.string().describe(\"Callback URL\"),\n        secret: zod\n          .string()\n          .or(zod.null())\n          .describe(\"Secret for validating callbacks (null if not set)\"),\n        method: zod.enum([\"POST\", \"PUT\"]).describe(\"HTTP method for callback\")\n      })\n      .or(zod.null())\n      .describe(\"Callback configuration (null if callback is disabled)\"),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .describe(\"Custom metadata associated with the scheduled bot\"),\n    zoom_config: zod\n      .object({\n        credential_id: zod\n          .string()\n          .uuid()\n          .regex(getScheduledBotDetailsResponseDataZoomConfigCredentialIdRegExpOne)\n          .or(zod.null())\n          .optional()\n          .describe(\"UUID of the stored Zoom credential\"),\n        credential_user_id: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\"Zoom user ID used to look up the credential\"),\n        obf_token_url: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\"URL that returns an OBF token at join time\"),\n        zak_token_url: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\"URL that returns a ZAK token at join time\")\n      })\n      .or(zod.null())\n      .describe(\n        \"Zoom configuration for this bot (null if not a Zoom bot or no zoom config provided)\"\n      )\n  })\n})\n\n/**\n * Update a scheduled bot's configuration or scheduled join time.\n    \n    The bot must be in `scheduled` status and the join time must be at least 4 minutes in the future. This ensures the bot can be updated before it starts processing.\n    \n    **Updateable Fields:** You can update any configuration field (bot name, image, recording mode, transcription settings, etc.) and the scheduled join time (`join_at`). All fields are optional - only provided fields will be updated.\n    \n    **Join Time Requirements:** \n    - The new `join_at` time must be in the future\n    - The bot must be in `scheduled` status\n    - The join time must be at least 4 minutes in the future (lock window)\n    - If the join time is too close, the request will fail with 409 Conflict\n    \n    **Status Requirements:** The bot must be in `scheduled` status. Bots that have already joined (`completed`) or failed (`failed`) cannot be updated. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Validation:** All updated fields are validated using the same rules as bot creation. Invalid configurations will result in a 400 Bad Request error.\n    \n    Returns 404 if the scheduled bot is not found, or 409 if the bot's status does not allow update or the join time is too close.\n * @summary Update scheduled bot\n */\nexport const updateScheduledBotPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const updateScheduledBotParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(updateScheduledBotPathBotIdRegExp)\n    .describe(\n      'The UUID of the scheduled bot to update.\\n\\nThis is the unique identifier returned when creating a scheduled bot.\\n\\nExample: \\\"123e4567-e89b-12d3-a456-426614174000\\\"'\n    )\n})\n\nexport const updateScheduledBotBodyBotNameMax = 255\nexport const updateScheduledBotBodyBotImageMaxThree = 5\nexport const updateScheduledBotBodyBotImageDefault = null\nexport const updateScheduledBotBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const updateScheduledBotBodyBotImageConfigImageDurationDefault = 30\nexport const updateScheduledBotBodyBotImageConfigImageDurationMin = 10\n\nexport const updateScheduledBotBodyBotImageConfigImageDurationMax = 120\nexport const updateScheduledBotBodyBotImageConfigDefault = null\nexport const updateScheduledBotBodyAllowMultipleBotsDefault = true\nexport const updateScheduledBotBodyRecordingModeDefault = \"speaker_view\"\nexport const updateScheduledBotBodyEntryMessageMaxOne = 500\nexport const updateScheduledBotBodyEntryMessageDefault = null\nexport const updateScheduledBotBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const updateScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const updateScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const updateScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const updateScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const updateScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const updateScheduledBotBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const updateScheduledBotBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const updateScheduledBotBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const updateScheduledBotBodyTimeoutConfigGracePeriodDefault = 0\nexport const updateScheduledBotBodyTimeoutConfigGracePeriodMin = 0\n\nexport const updateScheduledBotBodyTimeoutConfigGracePeriodMax = 600\nexport const updateScheduledBotBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const updateScheduledBotBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateScheduledBotBodyZoomConfigDefault = null\nexport const updateScheduledBotBodyExtraDefault = null\nexport const updateScheduledBotBodyStreamingEnabledDefault = false\nexport const updateScheduledBotBodyStreamingConfigInputUrlDefault = null\nexport const updateScheduledBotBodyStreamingConfigOutputUrlDefault = null\nexport const updateScheduledBotBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const updateScheduledBotBodyStreamingConfigDefault = null\nexport const updateScheduledBotBodyTranscriptionEnabledDefault = false\nexport const updateScheduledBotBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const updateScheduledBotBodyTranscriptionConfigApiKeyDefault = null\nexport const updateScheduledBotBodyTranscriptionConfigCustomParamsDefault = null\nexport const updateScheduledBotBodyTranscriptionConfigDefault = null\nexport const updateScheduledBotBodyCallbackEnabledDefault = false\nexport const updateScheduledBotBodyCallbackConfigSecretDefault = null\nexport const updateScheduledBotBodyCallbackConfigMethodDefault = \"POST\"\nexport const updateScheduledBotBodyCallbackConfigDefault = null\nexport const updateScheduledBotBodyJoinAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const updateScheduledBotBody = zod.object({\n  bot_name: zod\n    .string()\n    .min(1)\n    .max(updateScheduledBotBodyBotNameMax)\n    .optional()\n    .describe(\n      \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n    ),\n  bot_image: zod\n    .string()\n    .url()\n    .or(zod.array(zod.string().url()).min(1).max(updateScheduledBotBodyBotImageMaxThree))\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n    ),\n  bot_image_config: zod\n    .object({\n      loop_mode: zod\n        .enum([\"auto\", \"bot_status\"])\n        .default(updateScheduledBotBodyBotImageConfigLoopModeDefault)\n        .describe(\n          \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n        ),\n      image_duration: zod\n        .number()\n        .min(updateScheduledBotBodyBotImageConfigImageDurationMin)\n        .max(updateScheduledBotBodyBotImageConfigImageDurationMax)\n        .default(updateScheduledBotBodyBotImageConfigImageDurationDefault)\n        .describe(\n          \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n    ),\n  meeting_url: zod\n    .string()\n    .url()\n    .optional()\n    .describe(\n      'The URL of the meeting to join.\\n\\nMust be a valid HTTPS URL for a Microsoft Teams, Google Meet, or Zoom meeting.\\n\\nExample: \\\"https://zoom.us/j/123456789\\\" or \\\"https://meet.google.com/abc-defg-hij\\\"'\n    ),\n  allow_multiple_bots: zod\n    .boolean()\n    .default(updateScheduledBotBodyAllowMultipleBotsDefault)\n    .describe(\n      \"Whether to allow multiple bots to join the same meeting.\\n\\nIf set to `false`, only a single bot will be allowed to join using the same meeting URL within the last 5 minutes. This prevents duplicate bots from joining the same meeting.\\n\\nIf set to `true` (default), multiple bots can join the same meeting URL.\\n\\nDefault: `true`\"\n    ),\n  recording_mode: zod\n    .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n    .default(updateScheduledBotBodyRecordingModeDefault)\n    .describe(\n      \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n    ),\n  entry_message: zod\n    .string()\n    .max(updateScheduledBotBodyEntryMessageMaxOne)\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n    ),\n  timeout_config: zod\n    .object({\n      waiting_room_timeout: zod\n        .number()\n        .min(updateScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMin)\n        .max(updateScheduledBotBodyTimeoutConfigWaitingRoomTimeoutMax)\n        .default(updateScheduledBotBodyTimeoutConfigWaitingRoomTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n        ),\n      no_one_joined_timeout: zod\n        .number()\n        .min(updateScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMin)\n        .max(updateScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutMax)\n        .default(updateScheduledBotBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n        ),\n      silence_timeout: zod\n        .number()\n        .min(updateScheduledBotBodyTimeoutConfigSilenceTimeoutMin)\n        .max(updateScheduledBotBodyTimeoutConfigSilenceTimeoutMax)\n        .default(updateScheduledBotBodyTimeoutConfigSilenceTimeoutDefault)\n        .describe(\n          \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n        ),\n      grace_period: zod\n        .number()\n        .min(updateScheduledBotBodyTimeoutConfigGracePeriodMin)\n        .max(updateScheduledBotBodyTimeoutConfigGracePeriodMax)\n        .optional()\n        .describe(\n          \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n        )\n    })\n    .default(updateScheduledBotBodyTimeoutConfigDefault)\n    .describe(\n      \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n    ),\n  zoom_config: zod\n    .object({\n      credential_id: zod\n        .string()\n        .uuid()\n        .regex(updateScheduledBotBodyZoomConfigCredentialIdRegExp)\n        .optional()\n        .describe(\n          \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n        ),\n      credential_user_id: zod\n        .string()\n        .optional()\n        .describe(\n          \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n        ),\n      obf_token: zod\n        .string()\n        .optional()\n        .describe(\n          \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n        ),\n      obf_token_url: zod\n        .string()\n        .url()\n        .optional()\n        .describe(\n          \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n        ),\n      zak_token_url: zod\n        .string()\n        .url()\n        .optional()\n        .describe(\n          \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n        )\n    })\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n    ),\n  extra: zod\n    .record(zod.string(), zod.any())\n    .or(zod.null())\n    .optional()\n    .describe(\n      \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n    ),\n  streaming_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable audio streaming for this bot. When enabled, the streaming_config property is used to provide the configuration.\"\n    ),\n  streaming_config: zod\n    .object({\n      input_url: zod\n        .string()\n        .url()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n        ),\n      output_url: zod\n        .string()\n        .url()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n        ),\n      audio_frequency: zod\n        .number()\n        .or(zod.number())\n        .or(zod.number())\n        .or(zod.number())\n        .describe(\n          \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n        )\n        .or(zod.null())\n        .default(updateScheduledBotBodyStreamingConfigAudioFrequencyDefault)\n        .describe(\"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\")\n    })\n    .or(zod.null())\n    .optional(),\n  transcription_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable transcription for this bot. When enabled, the transcription_config property is used to customise the transcription provider and parameters.\"\n    ),\n  transcription_config: zod\n    .object({\n      provider: zod\n        .enum([\"gladia\"])\n        .default(updateScheduledBotBodyTranscriptionConfigProviderDefault)\n        .describe(\n          \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n        ),\n      api_key: zod\n        .string()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n        ),\n      custom_params: zod\n        .record(zod.string(), zod.any())\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n        )\n    })\n    .or(zod.null())\n    .optional(),\n  callback_enabled: zod\n    .boolean()\n    .optional()\n    .describe(\n      \"Enable callback for this bot. When enabled, the callback_config property is used to provide the configuration.\"\n    ),\n  callback_config: zod\n    .object({\n      url: zod\n        .string()\n        .url()\n        .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n      secret: zod\n        .string()\n        .or(zod.null())\n        .optional()\n        .describe(\n          \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n        ),\n      method: zod\n        .enum([\"POST\", \"PUT\"])\n        .default(updateScheduledBotBodyCallbackConfigMethodDefault)\n        .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n    })\n    .or(zod.null())\n    .optional(),\n  join_at: zod\n    .string()\n    .datetime({})\n    .regex(updateScheduledBotBodyJoinAtRegExp)\n    .optional()\n    .describe(\n      'Update the scheduled join time.\\n\\nISO8601 format. Must be at least 4 minutes in the future and cannot be more than 90 days in the future.\\n\\nExample: \\\"2025-12-25T10:00:00Z\\\"'\n    )\n})\n\nexport const updateScheduledBotResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n\n/**\n * Cancel and delete a scheduled bot. The behavior depends on where the bot is in its lifecycle when you call this:\n\n    - **Not yet launched** — the schedule is cancelled and the bot never starts.\n    - **Launched but not yet in the meeting** — the bot exits before joining, with an `EXITING_MEETING_BEFORE_RECORD` error code. No meeting content is captured.\n    - **Already in the meeting** — the bot leaves. Whatever it captured up to that point (audio, video, transcript, diarization) is still processed and delivered as usual.\n\n    **Status Requirements:** The scheduled bot must not already be `cancelled`, `completed`, or `failed`. If the bot is in a terminal state, the request will fail with a 409 Conflict status.\n\n    **Irreversible Operation:** Once a scheduled bot is cancelled, it cannot be recovered.\n\n    **Token Impact:** Tokens are not reserved for scheduled bots, so cancelling before the bot joins a meeting has no impact on your token balance. If the bot had already started recording, tokens are consumed only for the recorded portion — you won't be charged for time after the cancellation.\n\n    Returns 404 if the scheduled bot is not found, or 409 if the bot's status does not allow deletion.\n * @summary Delete scheduled bot\n */\nexport const deleteScheduledBotPathBotIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteScheduledBotParams = zod.object({\n  bot_id: zod\n    .string()\n    .uuid()\n    .regex(deleteScheduledBotPathBotIdRegExp)\n    .describe(\n      \"The UUID of the scheduled bot to cancel/delete.\\n\\nThis is the unique identifier returned when creating a scheduled bot.\\n\\nNote: This performs a soft delete (sets status to 'cancelled'). The bot must be in 'scheduled' status and the join_at time must be at least 10 minutes in the future.\\n\\nExample: \\\"123e4567-e89b-12d3-a456-426614174000\\\"\"\n    )\n})\n\nexport const deleteScheduledBotResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Preview available calendars from a Google or Microsoft account before creating a connection.\n    \n    Requires OAuth credentials (client ID, client secret, refresh token) to authenticate and list calendars. This endpoint does not create a connection - it only lists the calendars that are available for the given OAuth credentials. Useful for allowing users to select which calendars to sync.\n    \n    **OAuth Credentials:** You must provide valid OAuth credentials for the calendar provider. The endpoint will use the refresh token to obtain an access token and list calendars. If the refresh token is invalid or expired, the request will fail with 401 Unauthorized.\n    \n    **Calendar Information:** Returns a list of calendars with their IDs, names, descriptions, and whether they are primary calendars. Calendar IDs differ between providers (Google uses email-like IDs, Microsoft uses GUIDs).\n    \n    **Use Case:** This endpoint is typically called before creating a calendar connection to show users which calendars are available. Users can then select which calendars they want to sync.\n    \n    Returns 401 if OAuth token refresh failed, or 403 if a Microsoft account license is required.\n * @summary List raw calendars (preview before creating connection)\n */\nexport const listRawCalendarsBodyOauthTenantIdDefault = \"common\"\n\nexport const listRawCalendarsBody = zod.object({\n  calendar_platform: zod\n    .enum([\"google\", \"microsoft\"])\n    .describe(\n      \"The calendar platform to connect to. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365.\"\n    ),\n  oauth_client_id: zod\n    .string()\n    .min(1)\n    .describe(\"Your OAuth 2.0 client ID for the calendar platform.\"),\n  oauth_client_secret: zod\n    .string()\n    .min(1)\n    .describe(\"Your OAuth 2.0 client secret for the calendar platform.\"),\n  oauth_refresh_token: zod\n    .string()\n    .min(1)\n    .describe(\n      \"The OAuth 2.0 refresh token obtained from the user's authorization. Must include 'offline_access' scope (Microsoft) or 'access_type=offline' (Google).\"\n    ),\n  oauth_tenant_id: zod\n    .string()\n    .default(listRawCalendarsBodyOauthTenantIdDefault)\n    .describe(\n      \"Azure AD tenant ID (required for Microsoft only, defaults to 'common'). Find it in Azure Portal > Azure Active Directory > Overview. Example: '12345678-1234-1234-1234-123456789012'. You can also use 'common', 'organizations', or 'consumers' for multi-tenant scenarios.\"\n    )\n})\n\nexport const listRawCalendarsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      id: zod\n        .string()\n        .describe(\n          \"The calendar ID from the calendar platform. Use this value as the 'raw_calendar_id' parameter when creating a calendar connection\"\n        ),\n      name: zod\n        .string()\n        .describe(\"The display name of the calendar as shown in the calendar application\"),\n      email: zod\n        .string()\n        .describe(\n          \"The email address associated with the calendar. For Google Calendar, this is typically the calendar owner's email. For Microsoft, this is the calendar's email address\"\n        ),\n      is_primary: zod\n        .boolean()\n        .describe(\n          \"Whether this is the user's primary/default calendar. The primary calendar is typically the main calendar associated with the user's account\"\n        )\n    })\n  )\n})\n\n/**\n * Connect a Google or Microsoft calendar to your account.\n    \n    The connection will automatically sync events and create push subscriptions for real-time updates. You must provide your own OAuth credentials (client ID, secret, refresh token). Once connected, the calendar will be synced immediately, and webhook subscriptions will be created for real-time event updates.\n    \n    **OAuth Credentials:** You must provide valid OAuth credentials for the calendar provider. The endpoint will validate the credentials by attempting to refresh the access token. If the refresh token is invalid or expired, the request will fail with 401 Unauthorized.\n    \n    **Initial Sync:** After creating the connection, an initial sync is performed automatically. This fetches all events from the calendar provider. The sync may take a few minutes for calendars with many events.\n    \n    **Push Subscriptions:** A push subscription is created automatically for real-time event updates. The subscription will send webhooks when events are created, updated, or cancelled.\n    \n    **Calendar Limits:** There may be limits on the number of calendar connections per team. If the limit is exceeded, the request will fail with 429 Status Code.\n    \n    **Duplicate Connections:** If a connection already exists for the same calendar ID and team, the request will fail with 409 Conflict. You can update an existing connection using the PATCH endpoint instead.\n    \n    Returns 201 with the newly created calendar connection. Returns 401 if OAuth token refresh failed, 429 if the calendar connection limit is exceeded, or 409 if the connection already exists.\n * @summary Create calendar connection\n */\nexport const createCalendarConnectionBodyOauthTenantIdDefault = \"common\"\n\nexport const createCalendarConnectionBody = zod.object({\n  calendar_platform: zod\n    .enum([\"google\", \"microsoft\"])\n    .describe(\n      \"The calendar platform to connect to. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365.\"\n    ),\n  oauth_client_id: zod\n    .string()\n    .min(1)\n    .describe(\"Your OAuth 2.0 client ID for the calendar platform.\"),\n  oauth_client_secret: zod\n    .string()\n    .min(1)\n    .describe(\"Your OAuth 2.0 client secret for the calendar platform.\"),\n  oauth_refresh_token: zod\n    .string()\n    .min(1)\n    .describe(\n      \"The OAuth 2.0 refresh token obtained from the user's authorization. Must include 'offline_access' scope (Microsoft) or 'access_type=offline' (Google).\"\n    ),\n  oauth_tenant_id: zod\n    .string()\n    .default(createCalendarConnectionBodyOauthTenantIdDefault)\n    .describe(\n      \"Azure AD tenant ID (required for Microsoft only, defaults to 'common'). Find it in Azure Portal > Azure Active Directory > Overview. Example: '12345678-1234-1234-1234-123456789012'. You can also use 'common', 'organizations', or 'consumers' for multi-tenant scenarios.\"\n    ),\n  raw_calendar_id: zod\n    .string()\n    .min(1)\n    .describe(\n      \"The specific calendar ID to connect. Use the 'List Raw Calendars' endpoint to get available calendar IDs. For Google, this is typically the calendar email (e.g., 'primary' or 'user@gmail.com'). For Microsoft, this is the calendar's unique identifier.\"\n    )\n})\n\n/**\n * Retrieve a paginated list of calendar connections.\n    \n    Supports filtering by calendar platform (google, microsoft) and connection status (active, error, revoked, permission_denied). Results are ordered by creation date (newest first). Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Filtering:**\n    - `platform`: Filter by calendar platform (google, microsoft)\n    - `status`: Filter by connection status (active, error, revoked, permission_denied)\n    \n    **Connection Status:**\n    - `active`: Connection is working and syncing events\n    - `error`: Connection has errors (OAuth token refresh failed, etc.)\n    - `revoked`: OAuth access was revoked by the user\n    - `permission_denied`: Insufficient permissions for the OAuth scopes\n    \n    Returns a paginated list of calendar connections with metadata including calendar ID, platform, account email, status, and last sync time.\n * @summary List calendar connections\n */\nexport const listCalendarsQueryLimitDefault = 50\nexport const listCalendarsQueryLimitMax = 250\nexport const listCalendarsQueryCursorDefault = null\nexport const listCalendarsQueryAccountEmailDefault = null\n\nexport const listCalendarsQueryParams = zod.object({\n  limit: zod\n    .number()\n    .min(1)\n    .max(listCalendarsQueryLimitMax)\n    .describe(\n      \"Maximum number of calendars to return in a single request.\\n\\nLimits the number of results returned in a single API call.\\n\\nDefault: 50 Minimum: 1 Maximum: 250\"\n    ),\n  cursor: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'The cursor to use for pagination.\\n\\nObtained from the `cursor` or `prev_cursor` field in the previous response.\\n\\nThe cursor is a base64-encoded string containing `<isoDate>::<id>`. To paginate backward, prefix the cursor with a `-` (minus sign).\\n\\nLeave as `null` to get the first page of results.\\n\\nExample: \\\"MjAyNS0wMS0xNVQxMDozMDowMFo6OjEyMzQ1\\\" or \\\"LU1qQXlOM1UxTmpVME5qVXhNakUwTkRrPQ==\\\" (for backward pagination)'\n    ),\n  account_email: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter calendars by account email address. This performs a case-insensitive partial match (ilike) on the email address associated with the calendar account.\\n\\nExample: \\\"example\\\" would match all calendars with email addresses containing \\\"example\\\" (e.g., \\\"example@domain.com\\\", \\\"user@example.com\\\").'\n    ),\n  calendar_platform: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter calendars by platform. It can be used to find calendars that are associated with a specific platform. Valid values are: \\\"google\\\", \\\"microsoft\\\".\\n\\nExample: \\\"google\\\" would match all Google Calendar connections.\\n\\nTo filter multiple platforms, use a comma-separated list of values. For example, \\\"google,microsoft\\\" would match all calendars from both platforms.'\n    ),\n  status: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter calendars by connection status(es). It can be used to find calendars that have any of the specified statuses. Valid values are one or more of: active, error, revoked, permission_denied.\\n\\nExample: \\\"active,error\\\" would match all calendars that are active or have errors.\\n\\nTo filter multiple statuses, use a comma-separated list of values.'\n    )\n})\n\nexport const listCalendarsResponseDataItemCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listCalendarsResponseDataItemSyncedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listCalendarsResponseDataItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const listCalendarsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      calendar_id: zod\n        .string()\n        .uuid()\n        .regex(listCalendarsResponseDataItemCalendarIdRegExp)\n        .describe(\n          \"The UUID of the calendar connection. Use this ID to reference the calendar in other API endpoints\"\n        ),\n      calendar_platform: zod\n        .enum([\"google\", \"microsoft\"])\n        .describe(\n          \"The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\"\n        ),\n      account_email: zod\n        .string()\n        .describe(\n          \"The email address associated with the calendar account. This is the email of the calendar owner\"\n        ),\n      status: zod\n        .enum([\"active\", \"error\", \"revoked\", \"permission_denied\"])\n        .describe(\n          \"The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\"\n        ),\n      synced_at: zod\n        .string()\n        .datetime({})\n        .regex(listCalendarsResponseDataItemSyncedAtRegExpOne)\n        .or(zod.null())\n        .describe(\n          \"ISO 8601 timestamp of the last successful calendar sync. Null if the calendar has never been synced yet. Syncs happen automatically when events change, or can be triggered manually using the sync endpoint\"\n        ),\n      created_at: zod\n        .string()\n        .datetime({})\n        .regex(listCalendarsResponseDataItemCreatedAtRegExp)\n        .describe(\n          \"ISO 8601 timestamp when the calendar connection was created and initially synced\"\n        )\n    })\n  ),\n  cursor: zod.string().or(zod.null()).describe(\"Cursor for the next page (null if no more pages)\"),\n  prev_cursor: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Cursor for the previous page (null if on first page)\")\n})\n\n/**\n * Retrieve detailed information about a specific calendar connection.\n    \n    Returns the calendar connection's configuration, sync status, subscription status, and last sync time. Includes information about the OAuth credentials (without exposing sensitive data) and the calendar's metadata.\n    \n    **Sync Status:** The response includes the last sync time and whether the connection is actively syncing. If the connection has errors, the error information is included.\n    \n    **Subscription Status:** Includes information about the push subscription, including when it was created and when it expires. Subscriptions expire after a certain period and need to be renewed using the resubscribe endpoint.\n    \n    **Calendar Metadata:** Includes the calendar's ID, name, platform, and account email. This information is fetched from the calendar provider during the initial sync.\n    \n    Returns 404 if the calendar connection is not found or does not belong to your team.\n * @summary Get calendar connection details\n */\nexport const getCalendarDetailsPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getCalendarDetailsParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(getCalendarDetailsPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar to retrieve.\")\n})\n\nexport const getCalendarDetailsResponseDataCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getCalendarDetailsResponseDataSubscriptionExpiresAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getCalendarDetailsResponseDataSyncedAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getCalendarDetailsResponseDataCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getCalendarDetailsResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const getCalendarDetailsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    calendar_id: zod\n      .string()\n      .uuid()\n      .regex(getCalendarDetailsResponseDataCalendarIdRegExp)\n      .describe(\n        \"The UUID of the calendar connection. Use this ID to reference the calendar in other API endpoints\"\n      ),\n    calendar_platform: zod\n      .enum([\"google\", \"microsoft\"])\n      .describe(\n        \"The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\"\n      ),\n    account_email: zod\n      .string()\n      .describe(\n        \"The email address associated with the calendar account. This is the email of the calendar owner\"\n      ),\n    status: zod\n      .enum([\"active\", \"error\", \"revoked\", \"permission_denied\"])\n      .describe(\n        \"The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\"\n      ),\n    status_message: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"A human-readable message providing additional context about the connection status. Null if there is no additional status message to display\"\n      ),\n    subscription_id: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The subscription ID assigned by the calendar provider (Google or Microsoft). This ID is used to manage the webhook subscription. Null if no subscription exists\"\n      ),\n    subscription_expires_at: zod\n      .string()\n      .datetime({})\n      .regex(getCalendarDetailsResponseDataSubscriptionExpiresAtRegExpOne)\n      .or(zod.null())\n      .describe(\n        \"ISO 8601 timestamp when the webhook subscription expires. Subscriptions typically expire after a certain period (e.g., 7 days for Google, 3 days for Microsoft) and need to be renewed. Null if no subscription exists\"\n      ),\n    synced_at: zod\n      .string()\n      .datetime({})\n      .regex(getCalendarDetailsResponseDataSyncedAtRegExpOne)\n      .or(zod.null())\n      .describe(\n        \"ISO 8601 timestamp of the last successful calendar sync. Null if the calendar has never been synced. Syncs fetch events from the calendar platform and update the local database\"\n      ),\n    sync_status: zod\n      .enum([\"success\", \"failed\", \"partial\"])\n      .or(zod.null())\n      .describe(\n        \"The status of the last sync operation. Null if no sync has been performed yet. Possible values when not null: 'success' (sync completed successfully), 'failed' (sync failed completely), 'partial' (sync completed but some events could not be processed)\"\n      ),\n    sync_error: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"Error message from the last sync operation if it failed. This provides details about what went wrong during the sync. Null if the last sync was successful or if no sync has been performed\"\n      ),\n    provider_metadata: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .describe(\n        \"Additional metadata returned by the calendar provider about this calendar. This may include calendar-specific settings, permissions, or other platform-specific information. Null if the provider did not return metadata or if metadata is not available\"\n      ),\n    created_at: zod\n      .string()\n      .datetime({})\n      .regex(getCalendarDetailsResponseDataCreatedAtRegExp)\n      .describe(\"ISO 8601 timestamp when the calendar connection was created and initially synced\"),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(getCalendarDetailsResponseDataUpdatedAtRegExp)\n      .describe(\n        \"ISO 8601 timestamp when the calendar connection was last updated. This updates when connection settings change, credentials are refreshed, or subscription details are updated\"\n      )\n  })\n})\n\n/**\n * Disconnect and delete a calendar connection.\n    \n    This will stop syncing events and remove all associated calendar data (events, event instances, series). The push subscription will be cancelled automatically. This operation is irreversible.\n    \n    **Data Deletion:** All calendar data associated with this connection will be deleted:\n    - Event series and instances\n    - Calendar bot schedules\n    - Sync history\n    \n    **Subscription Cancellation:** The push subscription is cancelled automatically when the connection is deleted. You will no longer receive webhooks for this calendar.\n    \n    **Irreversible Operation:** Once a calendar connection is deleted, it cannot be recovered. All associated data is permanently removed. If you need to reconnect the calendar, you must create a new connection.\n    \n    **Bot Schedules:** If there are active calendar bot schedules for events in this calendar, they will be cancelled when the connection is deleted. Bots that have already joined meetings will continue to function normally.\n    \n    Returns 200 with confirmation of deletion. Returns 404 if the calendar connection is not found or does not belong to your team.\n * @summary Delete calendar connection\n */\nexport const deleteCalendarConnectionPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteCalendarConnectionParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(deleteCalendarConnectionPathCalendarIdRegExp)\n    .describe(\n      \"The unique identifier of the calendar to delete. This will stop syncing events and remove all scheduled bots for this calendar. It will also delete all event instances and remove the calendar\"\n    )\n})\n\nexport const deleteCalendarConnectionResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod\n      .string()\n      .describe(\n        \"Success message confirming that the calendar connection has been deleted. All associated event instances, series, and bot schedules have also been removed\"\n      )\n  })\n})\n\n/**\n * Update a calendar connection with new OAuth credentials.\n    \n    Useful when refresh tokens expire or credentials need to be rotated. The connection will be validated and a new push subscription will be created. The old subscription will be cancelled automatically.\n    \n    **OAuth Credentials:** You can update the client ID, client secret, and refresh token. All fields are optional - only provided fields will be updated. The endpoint will validate the new credentials by attempting to refresh the access token.\n    \n    **Validation:** After updating credentials, the connection is validated by attempting to refresh the access token. If the refresh fails, the connection status is updated to `error` and the request may fail with 401 Unauthorized.\n    \n    **Subscription Renewal:** A new push subscription is created automatically after updating credentials. The old subscription is cancelled to prevent duplicate webhooks.\n    \n    **Use Cases:**\n    - Refresh token expired and needs to be renewed\n    - OAuth credentials rotated for security\n    - Fixing connection errors by updating credentials\n    \n    Returns 200 with the updated calendar connection. Returns 401 if OAuth token refresh failed, 403 if permission is denied, or 404 if the calendar connection is not found.\n * @summary Update calendar connection\n */\nexport const updateCalendarConnectionPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const updateCalendarConnectionParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(updateCalendarConnectionPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar to update.\")\n})\n\nexport const updateCalendarConnectionBodyOauthTenantIdDefault = \"common\"\n\nexport const updateCalendarConnectionBody = zod.object({\n  oauth_client_id: zod\n    .string()\n    .min(1)\n    .describe(\"Your OAuth 2.0 client ID for the calendar platform.\"),\n  oauth_client_secret: zod\n    .string()\n    .min(1)\n    .describe(\"Your OAuth 2.0 client secret for the calendar platform.\"),\n  oauth_refresh_token: zod\n    .string()\n    .min(1)\n    .describe(\n      \"The OAuth 2.0 refresh token obtained from the user's authorization. Must include 'offline_access' scope (Microsoft) or 'access_type=offline' (Google).\"\n    ),\n  oauth_tenant_id: zod\n    .string()\n    .default(updateCalendarConnectionBodyOauthTenantIdDefault)\n    .describe(\n      \"Azure AD tenant ID (required for Microsoft only, defaults to 'common'). Find it in Azure Portal > Azure Active Directory > Overview. Example: '12345678-1234-1234-1234-123456789012'. You can also use 'common', 'organizations', or 'consumers' for multi-tenant scenarios.\"\n    )\n})\n\nexport const updateCalendarConnectionResponseDataCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateCalendarConnectionResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const updateCalendarConnectionResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    calendar_id: zod\n      .string()\n      .uuid()\n      .regex(updateCalendarConnectionResponseDataCalendarIdRegExp)\n      .describe(\n        \"The UUID of the updated calendar connection. Use this ID to reference the calendar in other API endpoints\"\n      ),\n    calendar_platform: zod\n      .enum([\"google\", \"microsoft\"])\n      .describe(\n        \"The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\"\n      ),\n    account_email: zod\n      .string()\n      .describe(\n        \"The email address associated with the calendar account. This is the email of the calendar owner\"\n      ),\n    status: zod\n      .enum([\"active\", \"error\", \"revoked\", \"permission_denied\"])\n      .describe(\n        \"The current status of the calendar connection after the update. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\"\n      ),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(updateCalendarConnectionResponseDataUpdatedAtRegExp)\n      .describe(\n        \"ISO 8601 timestamp when the calendar connection was last updated with the new credentials or settings\"\n      )\n  })\n})\n\n/**\n * Manually trigger a sync of calendar events.\n    \n    This will fetch all events from the calendar provider and update the calendar data. Events are normally synced automatically via push subscriptions, but you can use this endpoint to force a sync (e.g., after fixing connection errors or when you need immediate updates).\n    \n    **Sync Process:** The sync process fetches all events from the calendar provider. New events are added, updated events are modified, and cancelled events are marked as deleted. The sync may take a few minutes for calendars with many events.\n    \n    **Incremental vs Full Sync:** The endpoint performs a full sync, fetching all events from the calendar. Incremental syncs happen automatically via push subscriptions when events are created, updated, or cancelled.\n    \n    **Use Cases:**\n    - Force a sync after fixing connection errors\n    - Get immediate updates without waiting for push notifications\n    - Recover from missed push notifications\n    - Initial sync after creating a connection (though this happens automatically)\n    \n    **Response:** The response includes information about the sync operation, including how many events were synced. The actual event data is available via the list events endpoint.\n    \n    Returns 200 with sync results. Returns 401 if OAuth token refresh failed, or 404 if the calendar connection is not found.\n * @summary Sync calendar events\n */\nexport const syncCalendarPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const syncCalendarParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(syncCalendarPathCalendarIdRegExp)\n    .describe(\n      \"The unique identifier of the calendar to sync. This will fetch the latest events from the calendar provider and update the materialized instances (for the next 30 days).\"\n    )\n})\n\nexport const syncCalendarResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    message: zod\n      .string()\n      .describe(\n        \"Success message confirming that the calendar sync operation has been initiated. The sync will fetch the latest events from the calendar platform and update the local database\"\n      )\n  })\n})\n\n/**\n * Renew or recreate the push subscription for a calendar connection.\n    \n    Useful when subscriptions expire or need to be refreshed. A new subscription will be created and the old one will be cancelled. Subscriptions expire after a certain period (3 days for Microsoft, longer for Google) and need to be renewed periodically.\n    \n    **Subscription Renewal:** The endpoint creates a new push subscription with the calendar provider. The old subscription is cancelled to prevent duplicate webhooks. The new subscription will send webhooks for all calendar events (created, updated, cancelled).\n    \n    **Subscription Expiration:** Subscriptions expire automatically after a certain period:\n    - Microsoft: 3 days maximum\n    - Google: Longer period (varies)\n    \n    When a subscription expires, you will stop receiving webhook notifications. Use this endpoint to renew the subscription before it expires.\n    \n    **Use Cases:**\n    - Subscription is about to expire\n    - Subscription has expired and webhooks stopped working\n    - Need to refresh subscription for troubleshooting\n    \n    **Response:** The response includes information about the new subscription, including when it was created and when it expires.\n    \n    Returns 200 with subscription information. Returns 401 if OAuth token refresh failed, 403 if permission is denied, or 404 if the calendar connection is not found.\n * @summary Resubscribe to calendar webhooks\n */\nexport const resubscribeCalendarPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const resubscribeCalendarParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(resubscribeCalendarPathCalendarIdRegExp)\n    .describe(\n      \"The unique identifier of the calendar to sync. This will fetch the latest events from the calendar provider and update the materialized instances (for the next 30 days).\"\n    )\n})\n\nexport const resubscribeCalendarResponseDataCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const resubscribeCalendarResponseDataResubscribedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const resubscribeCalendarResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    calendar_id: zod\n      .string()\n      .uuid()\n      .regex(resubscribeCalendarResponseDataCalendarIdRegExp)\n      .describe(\n        \"The UUID of the calendar connection that was resubscribed. Use this ID to reference the calendar in other API endpoints\"\n      ),\n    resubscribed_at: zod\n      .string()\n      .datetime({})\n      .regex(resubscribeCalendarResponseDataResubscribedAtRegExp)\n      .describe(\"ISO 8601 timestamp when the calendar connection was resubscribed\")\n  })\n})\n\n/**\n * Retrieve a paginated list of calendar events.\n    \n    Supports filtering by date range, status (confirmed, cancelled, tentative), and whether events are deleted. Results include whether a bot is scheduled for each event. Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Filtering:**\n    - `start_after`: ISO 8601 timestamp - only return events starting after this time\n    - `start_before`: ISO 8601 timestamp - only return events starting before this time\n    - `status`: Filter by event status (confirmed, cancelled, tentative)\n    - `include_deleted`: Include deleted events in results (default: false)\n    \n    **Event Information:** Each event includes its ID, title, start/end times, status, meeting URL (if available), meeting platform (if detected), and whether a bot is scheduled for the event.\n    \n    **Bot Scheduling:** The `bot_scheduled` field indicates whether a calendar bot schedule exists for this event. This does not mean the bot has joined - it means a bot is scheduled to join when the event starts.\n    \n    Returns a paginated list of calendar events with metadata.\n * @summary List calendar events\n */\nexport const listEventsPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const listEventsParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(listEventsPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar to list events from.\")\n})\n\nexport const listEventsQueryLimitDefault = 50\nexport const listEventsQueryLimitMax = 250\nexport const listEventsQueryCursorDefaultOne = null\nexport const listEventsQueryStartDateRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventsQueryEndDateRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventsQueryShowCancelledDefault = true\n\nexport const listEventsQueryParams = zod.object({\n  limit: zod\n    .number()\n    .min(1)\n    .max(listEventsQueryLimitMax)\n    .describe(\n      \"Maximum number of events to return in a single request.\\n\\nLimits the number of results returned in a single API call.\\n\\nDefault: 50 Minimum: 1 Maximum: 250\"\n    ),\n  cursor: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'The cursor to use for pagination.\\n\\nObtained from the `cursor` or `prev_cursor` field in the previous response.\\n\\nThe cursor is a base64-encoded string containing `<isoDate>::<id>`. To paginate backward, prefix the cursor with a `-` (minus sign).\\n\\nLeave as `null` to get the first page of results.\\n\\nExample: \\\"MjAyNS0wMS0xNVQxMDozMDowMFo6OjEyMzQ1\\\" or \\\"LU1qQXlOM1UxTmpVME5qVXhNakUwTkRrPQ==\\\" (for backward pagination)'\n    ),\n  start_date: zod\n    .string()\n    .datetime({})\n    .regex(listEventsQueryStartDateRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\"Filter events starting on or after this date/time (ISO 8601 format).\"),\n  end_date: zod\n    .string()\n    .datetime({})\n    .regex(listEventsQueryEndDateRegExpOne)\n    .or(zod.null())\n    .optional()\n    .describe(\"Filter events ending on or before this date/time (ISO 8601 format).\"),\n  status: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter events by status(es). It can be used to find events that have any of the specified statuses. Valid values are one or more of: confirmed, cancelled, tentative.\\n\\nExample: \\\"confirmed,cancelled\\\" would match all events that are confirmed or cancelled.\\n\\nTo filter multiple statuses, use a comma-separated list of values.'\n    ),\n  show_cancelled: zod\n    .boolean()\n    .describe(\n      \"Whether to include cancelled events in the results. When set to 'false', only non-cancelled events are returned. Default: true\"\n    )\n})\n\nexport const listEventsResponseDataItemSeriesIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventsResponseDataItemEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventsResponseDataItemStartTimeRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventsResponseDataItemEndTimeRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventsResponseDataItemCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventsResponseDataItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const listEventsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      series_id: zod\n        .string()\n        .uuid()\n        .regex(listEventsResponseDataItemSeriesIdRegExp)\n        .describe(\n          \"The UUID of the event series this instance belongs to. Every event instance (both one-off and recurring) is associated with a series. Use this ID when scheduling bots for all occurrences of a recurring series\"\n        ),\n      event_type: zod\n        .enum([\"one_off\", \"recurring\"])\n        .describe(\n          \"The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\"\n        ),\n      event_id: zod\n        .string()\n        .uuid()\n        .regex(listEventsResponseDataItemEventIdRegExp)\n        .describe(\"The UUID of the event instance\"),\n      title: zod.string().describe(\"The title of the event\"),\n      start_time: zod\n        .string()\n        .datetime({})\n        .regex(listEventsResponseDataItemStartTimeRegExpOne)\n        .describe(\"ISO 8601 timestamp when the event starts\"),\n      end_time: zod\n        .string()\n        .datetime({})\n        .regex(listEventsResponseDataItemEndTimeRegExpOne)\n        .describe(\"ISO 8601 timestamp when the event ends\"),\n      status: zod\n        .enum([\"confirmed\", \"cancelled\", \"tentative\"])\n        .describe(\n          \"The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\"\n        ),\n      is_exception: zod\n        .boolean()\n        .describe(\n          \"Whether this is an exception to a recurring series. True if this instance has been modified differently from the recurring pattern\"\n        ),\n      meeting_url: zod\n        .string()\n        .or(zod.null())\n        .describe(\n          \"The meeting URL extracted from the event. Null if the calendar platform did not include a meeting link in the event\"\n        ),\n      meeting_platform: zod\n        .enum([\"zoom\", \"meet\", \"teams\"])\n        .or(zod.null())\n        .describe(\n          \"The meeting platform detected from the meeting URL. Null if no meeting link was found in the event. Possible values: 'zoom', 'meet', or 'teams'\"\n        ),\n      calendar_id: zod\n        .string()\n        .uuid()\n        .regex(listEventsResponseDataItemCalendarIdRegExp)\n        .describe(\"The UUID of the calendar connection this event belongs to\"),\n      bot_scheduled: zod\n        .boolean()\n        .describe(\n          \"Whether a bot has been scheduled for this event instance. True if a calendar bot schedule exists for this event\"\n        ),\n      created_at: zod\n        .string()\n        .datetime({})\n        .regex(listEventsResponseDataItemCreatedAtRegExp)\n        .describe(\"ISO 8601 timestamp when this event instance was first synced into the system\")\n    })\n  ),\n  cursor: zod.string().or(zod.null()).describe(\"Cursor for the next page (null if no more pages)\"),\n  prev_cursor: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Cursor for the previous page (null if on first page)\")\n})\n\n/**\n * Retrieve a paginated list of event series (both one-off and recurring events).\n    \n    Each series includes its associated event instances. Supports filtering by event type (one_off, recurring) and whether series are deleted. Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Event Types:**\n    - `one_off`: Single events (not part of a recurring series)\n    - `recurring`: Events that are part of a recurring series\n    \n    **Series Information:** Each series includes its series ID, event type, whether a bot is scheduled for all occurrences (`series_bot_scheduled`), and an array of event instances. For one-off events, the instances array contains a single instance. For recurring events, it contains all instances that have been synced.\n    \n    **Filtering:**\n    - `event_type`: Filter by event type (one_off, recurring)\n    - `include_deleted`: Include deleted series in results (default: false)\n    \n    **Bot Scheduling:** The `series_bot_scheduled` field indicates whether a calendar bot schedule exists for all occurrences of this series. Individual instances may have different bot scheduling status.\n    \n    Returns a paginated list of event series with their instances.\n * @summary List event series\n */\nexport const listEventSeriesPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const listEventSeriesParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(listEventSeriesPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar to list event series from.\")\n})\n\nexport const listEventSeriesQueryLimitDefault = 50\nexport const listEventSeriesQueryLimitMax = 250\nexport const listEventSeriesQueryCursorDefault = null\nexport const listEventSeriesQueryShowCancelledDefault = true\n\nexport const listEventSeriesQueryParams = zod.object({\n  limit: zod\n    .number()\n    .min(1)\n    .max(listEventSeriesQueryLimitMax)\n    .describe(\n      \"Maximum number of event series to return in a single request.\\n\\nLimits the number of results returned in a single API call.\\n\\nDefault: 50 Minimum: 1 Maximum: 250\"\n    ),\n  cursor: zod\n    .string()\n    .or(zod.null())\n    .optional()\n    .describe(\n      'The cursor to use for pagination.\\n\\nObtained from the `cursor` or `prev_cursor` field in the previous response.\\n\\nThe cursor is a base64-encoded string containing `<isoDate>::<id>`. To paginate backward, prefix the cursor with a `-` (minus sign).\\n\\nLeave as `null` to get the first page of results.\\n\\nExample: \\\"MjAyNS0wMS0xNVQxMDozMDowMFo6OjEyMzQ1\\\" or \\\"LU1qQXlOM1UxTmpVME5qVXhNakUwTkRrPQ==\\\" (for backward pagination)'\n    ),\n  event_type: zod\n    .string()\n    .or(zod.null())\n    .or(zod.null())\n    .optional()\n    .describe(\n      'Filter event series by type(s). It can be used to find event series that have any of the specified types. Valid values are one or more of: one_off, recurring.\\n\\nExample: \\\"one_off,recurring\\\" would match all event series that are one-off or recurring.\\n\\nTo filter multiple types, use a comma-separated list of values.'\n    ),\n  show_cancelled: zod\n    .boolean()\n    .describe(\n      \"Whether to include cancelled event instances in the results. When set to 'false', only non-cancelled event instances are returned. Note: This only affects event instances within series, not the series themselves. Default: true\"\n    )\n})\n\nexport const listEventSeriesResponseDataItemSeriesIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventSeriesResponseDataItemCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventSeriesResponseDataItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventSeriesResponseDataItemEventsItemEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventSeriesResponseDataItemEventsItemStartTimeRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventSeriesResponseDataItemEventsItemEndTimeRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listEventSeriesResponseDataItemEventsItemCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listEventSeriesResponseDataItemEventsItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const listEventSeriesResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.array(\n    zod.object({\n      series_id: zod\n        .string()\n        .uuid()\n        .regex(listEventSeriesResponseDataItemSeriesIdRegExp)\n        .describe(\n          \"The UUID of the event series. Every event (both one-off and recurring) is associated with a series. Use this ID when scheduling bots for all occurrences of a recurring series\"\n        ),\n      event_type: zod\n        .enum([\"one_off\", \"recurring\"])\n        .describe(\n          \"The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\"\n        ),\n      calendar_id: zod\n        .string()\n        .uuid()\n        .regex(listEventSeriesResponseDataItemCalendarIdRegExp)\n        .describe(\"The UUID of the calendar connection this event series belongs to\"),\n      created_at: zod\n        .string()\n        .datetime({})\n        .regex(listEventSeriesResponseDataItemCreatedAtRegExp)\n        .describe(\"ISO 8601 timestamp when this event series was first synced into the system\"),\n      events: zod\n        .array(\n          zod.object({\n            event_id: zod\n              .string()\n              .uuid()\n              .regex(listEventSeriesResponseDataItemEventsItemEventIdRegExp)\n              .describe(\"The UUID of the event instance\"),\n            title: zod.string().describe(\"The title of the event\"),\n            start_time: zod\n              .string()\n              .datetime({})\n              .regex(listEventSeriesResponseDataItemEventsItemStartTimeRegExp)\n              .describe(\"ISO 8601 timestamp when the event starts\"),\n            end_time: zod\n              .string()\n              .datetime({})\n              .regex(listEventSeriesResponseDataItemEventsItemEndTimeRegExp)\n              .describe(\"ISO 8601 timestamp when the event ends\"),\n            status: zod\n              .enum([\"confirmed\", \"cancelled\", \"tentative\"])\n              .describe(\n                \"The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\"\n              ),\n            is_exception: zod\n              .boolean()\n              .describe(\n                \"Whether this is an exception to a recurring series. True if this instance has been modified differently from the recurring pattern\"\n              ),\n            meeting_url: zod\n              .string()\n              .or(zod.null())\n              .describe(\n                \"The meeting URL extracted from the event. Null if the calendar platform did not include a meeting link in the event\"\n              ),\n            meeting_platform: zod\n              .enum([\"zoom\", \"meet\", \"teams\"])\n              .or(zod.null())\n              .describe(\n                \"The meeting platform detected from the meeting URL. Null if no meeting link was found in the event. Possible values: 'zoom', 'meet', or 'teams'\"\n              ),\n            calendar_id: zod\n              .string()\n              .uuid()\n              .regex(listEventSeriesResponseDataItemEventsItemCalendarIdRegExp)\n              .describe(\"The UUID of the calendar connection this event belongs to\"),\n            bot_scheduled: zod\n              .boolean()\n              .describe(\n                \"Whether a bot has been scheduled for this event instance. True if a calendar bot schedule exists for this event\"\n              ),\n            created_at: zod\n              .string()\n              .datetime({})\n              .regex(listEventSeriesResponseDataItemEventsItemCreatedAtRegExp)\n              .describe(\n                \"ISO 8601 timestamp when this event instance was first synced into the system\"\n              )\n          })\n        )\n        .describe(\n          \"List of event instances that belong to this series. For one-off events, this array contains a single instance. For recurring events, this array contains all instances that have been synced (typically within a 30-day window)\"\n        )\n    })\n  ),\n  cursor: zod.string().or(zod.null()).describe(\"Cursor for the next page (null if no more pages)\"),\n  prev_cursor: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Cursor for the previous page (null if on first page)\")\n})\n\n/**\n * Retrieve detailed information about a specific calendar event.\n    \n    Returns comprehensive event information including attendees, meeting URL, meeting platform, status, and whether a bot is scheduled. Returns deleted events as well (use the `include_deleted` parameter or check the `deleted_at` field).\n    \n    **Event Details:** Includes all event metadata:\n    - Title, description, location\n    - Start and end times (ISO 8601 timestamps)\n    - Status (confirmed, cancelled, tentative)\n    - Attendees list\n    - Meeting URL (if available)\n    - Meeting platform (if detected from URL)\n    - Whether it's an all-day event\n    - Whether it's an exception to a recurring series\n    \n    **Bot Scheduling:** The `bot_scheduled` field indicates whether a calendar bot schedule exists for this event. If the event is part of a recurring series, the `series_bot_scheduled` field indicates whether a bot is scheduled for all occurrences.\n    \n    **Deleted Events:** Deleted events are included in the response. Check the `deleted_at` field to determine if an event has been deleted. Deleted events may still have associated bot schedules if they were scheduled before deletion.\n    \n    Returns 404 if the event is not found or does not belong to the specified calendar.\n * @summary Get event details\n */\nexport const getEventDetailsPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getEventDetailsPathEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getEventDetailsParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(getEventDetailsPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar that contains the event.\"),\n  event_id: zod\n    .string()\n    .uuid()\n    .regex(getEventDetailsPathEventIdRegExp)\n    .describe(\n      \"The unique identifier of the event to retrieve. This is a specific occurrence of an event (for recurring events) or the event itself (for one-time events).\"\n    )\n})\n\nexport const getEventDetailsResponseDataEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getEventDetailsResponseDataSeriesIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getEventDetailsResponseDataStartTimeRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getEventDetailsResponseDataEndTimeRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getEventDetailsResponseDataCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getEventDetailsResponseDataCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getEventDetailsResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const getEventDetailsResponse = zod.object({\n  success: zod.boolean(),\n  data: zod.object({\n    event_id: zod\n      .string()\n      .uuid()\n      .regex(getEventDetailsResponseDataEventIdRegExp)\n      .describe(\"The UUID of the event instance\"),\n    series_id: zod\n      .string()\n      .uuid()\n      .regex(getEventDetailsResponseDataSeriesIdRegExp)\n      .describe(\n        \"The UUID of the event series this instance belongs to. Every event instance (both one-off and recurring) is associated with a series. Use this ID when scheduling bots for all occurrences of a recurring series\"\n      ),\n    event_type: zod\n      .enum([\"one_off\", \"recurring\"])\n      .describe(\n        \"The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\"\n      ),\n    title: zod.string().describe(\"The title of the event as stored in the calendar\"),\n    description: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The description of the event as returned by the calendar platform. Null if the calendar platform did not include a description for this event\"\n      ),\n    location: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The location of the event as returned by the calendar platform. Null if the calendar platform did not include a location for this event\"\n      ),\n    start_time: zod\n      .string()\n      .datetime({})\n      .regex(getEventDetailsResponseDataStartTimeRegExp)\n      .describe(\"ISO 8601 timestamp when the event starts\"),\n    end_time: zod\n      .string()\n      .datetime({})\n      .regex(getEventDetailsResponseDataEndTimeRegExp)\n      .describe(\"ISO 8601 timestamp when the event ends\"),\n    timezone: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The IANA timezone identifier for the event (e.g., 'America/New_York', 'Europe/London'). Null if the calendar platform did not provide timezone information or if the event is all-day\"\n      ),\n    is_all_day: zod\n      .boolean()\n      .describe(\n        \"Whether this is an all-day event. True if the event spans entire days without specific start/end times\"\n      ),\n    status: zod\n      .enum([\"confirmed\", \"cancelled\", \"tentative\"])\n      .describe(\n        \"The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\"\n      ),\n    organizer_email: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The email address of the event organizer as returned by the calendar platform. Null if the calendar platform did not provide organizer information\"\n      ),\n    organizer_name: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The display name of the event organizer as returned by the calendar platform. Null if the calendar platform did not provide organizer name information\"\n      ),\n    attendees: zod\n      .array(\n        zod.object({\n          email: zod.string().describe(\"The email address of the attendee\"),\n          name: zod\n            .string()\n            .or(zod.null())\n            .describe(\n              \"The display name of the attendee as returned by the calendar platform. Null if the calendar platform did not provide a display name for this attendee\"\n            ),\n          response_status: zod\n            .enum([\"accepted\", \"declined\", \"tentative\", \"needsAction\"])\n            .describe(\n              \"The attendee's response status to the event invitation. Defaults to 'needsAction' if the calendar platform did not provide response status information. Possible values: 'accepted' (attendee accepted the invitation), 'declined' (attendee declined the invitation), 'tentative' (attendee responded as tentative), 'needsAction' (attendee has not responded yet)\"\n            ),\n          organizer: zod\n            .boolean()\n            .optional()\n            .describe(\n              \"Whether this attendee is the organizer of the event. Only present if the calendar platform provides this information\"\n            ),\n          self: zod\n            .boolean()\n            .optional()\n            .describe(\n              \"Whether this attendee represents the authenticated user who owns the calendar connection. Only present if the calendar platform provides this information\"\n            )\n        })\n      )\n      .or(zod.null())\n      .describe(\n        \"List of event attendees as returned by the calendar platform. Null if the calendar platform did not provide attendee information or if the event has no attendees\"\n      ),\n    meeting_url: zod\n      .string()\n      .or(zod.null())\n      .describe(\n        \"The meeting URL extracted from the event. Null if the calendar platform did not include a meeting link in the event\"\n      ),\n    meeting_platform: zod\n      .enum([\"zoom\", \"meet\", \"teams\"])\n      .or(zod.null())\n      .describe(\n        \"The meeting platform detected from the meeting URL. Null if no meeting link was found in the event. Possible values: 'zoom', 'meet', or 'teams'\"\n      ),\n    calendar_id: zod\n      .string()\n      .uuid()\n      .regex(getEventDetailsResponseDataCalendarIdRegExp)\n      .describe(\"The UUID of the calendar connection this event belongs to\"),\n    calendar_platform: zod\n      .enum([\"google\", \"microsoft\"])\n      .describe(\n        \"The calendar platform where this event originates. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\"\n      ),\n    bot_scheduled: zod\n      .boolean()\n      .describe(\n        \"Whether a bot has been scheduled for this event instance. True if a calendar bot schedule exists for this event\"\n      ),\n    raw_payload: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .describe(\n        \"The most recent raw event object as returned by the calendar provider. Use this to access any provider-specific fields not surfaced by other properties on this response. The shape is provider-dependent: Google Calendar events follow the Google Calendar API event resource, and Microsoft events follow the Microsoft Graph event resource. Null if no provider payload has been captured yet (e.g. a row created from an internal source)\"\n      ),\n    created_at: zod\n      .string()\n      .datetime({})\n      .regex(getEventDetailsResponseDataCreatedAtRegExp)\n      .describe(\"ISO 8601 timestamp when this event instance was first synced into the system\"),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(getEventDetailsResponseDataUpdatedAtRegExp)\n      .describe(\n        \"ISO 8601 timestamp when this event instance was last updated (either from a sync or from a webhook notification)\"\n      )\n  })\n})\n\n/**\n * Schedule a bot to automatically join a calendar event.\n    \n    You can schedule for all occurrences of a recurring event or specific event instances. The bot will use the meeting URL from the event. Returns partial success if some events fail to schedule (e.g., if a bot is already scheduled or if the event doesn't have a meeting URL).\n    \n    **Scheduling Options:**\n    - `series_id`: Schedule for all occurrences of a recurring series\n    - `event_id`: Schedule for a specific event instance\n    - `all_occurrences`: Schedule for all future occurrences (for recurring events)\n    \n    **Meeting URL Requirement:** The event must have a meeting URL. If the event doesn't have a meeting URL, the scheduling will fail for that event. The meeting platform is automatically detected from the URL.\n    \n    **Bot Configuration:** You can provide bot configuration (name, image, recording mode, transcription settings, etc.) that will be used for all scheduled bots. The configuration applies to all events you're scheduling for.\n    \n    **Partial Success:** If you're scheduling for multiple events (e.g., all occurrences of a series), some events may fail to schedule (e.g., if a bot is already scheduled). The response includes information about which events succeeded and which failed.\n    \n    **Token Reservation:** Tokens are NOT reserved at scheduling time. Token availability and daily bot cap are checked when each bot actually joins the meeting. If tokens are insufficient or the daily cap is reached at join time, the bot will fail with an appropriate error.\n    \n    **Status:** The calendar bot schedule starts in `scheduled` status and transitions to `completed` when the bot instance is created and queued to join. If the bot fails to join, it transitions to `failed` status.\n    \n    Returns 201 with scheduling results. Returns 404 if the event series or event is not found.\n * @summary Schedule bot for calendar event\n */\nexport const createCalendarBotPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const createCalendarBotParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(createCalendarBotPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar that contains the event.\")\n})\n\nexport const createCalendarBotBodyBotNameMax = 255\nexport const createCalendarBotBodyBotImageMaxThree = 5\nexport const createCalendarBotBodyBotImageDefault = null\nexport const createCalendarBotBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const createCalendarBotBodyBotImageConfigImageDurationDefault = 30\nexport const createCalendarBotBodyBotImageConfigImageDurationMin = 10\n\nexport const createCalendarBotBodyBotImageConfigImageDurationMax = 120\nexport const createCalendarBotBodyBotImageConfigDefault = null\nexport const createCalendarBotBodyRecordingModeDefault = \"speaker_view\"\nexport const createCalendarBotBodyEntryMessageMaxOne = 500\nexport const createCalendarBotBodyEntryMessageDefault = null\nexport const createCalendarBotBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const createCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const createCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const createCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const createCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const createCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const createCalendarBotBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const createCalendarBotBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const createCalendarBotBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const createCalendarBotBodyTimeoutConfigGracePeriodDefault = 0\nexport const createCalendarBotBodyTimeoutConfigGracePeriodMin = 0\n\nexport const createCalendarBotBodyTimeoutConfigGracePeriodMax = 600\nexport const createCalendarBotBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const createCalendarBotBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const createCalendarBotBodyZoomConfigDefault = null\nexport const createCalendarBotBodyExtraDefault = null\nexport const createCalendarBotBodyStreamingEnabledDefault = false\nexport const createCalendarBotBodyStreamingConfigInputUrlDefault = null\nexport const createCalendarBotBodyStreamingConfigOutputUrlDefault = null\nexport const createCalendarBotBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const createCalendarBotBodyStreamingConfigDefault = null\nexport const createCalendarBotBodyTranscriptionEnabledDefault = false\nexport const createCalendarBotBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const createCalendarBotBodyTranscriptionConfigApiKeyDefault = null\nexport const createCalendarBotBodyTranscriptionConfigCustomParamsDefault = null\nexport const createCalendarBotBodyTranscriptionConfigDefault = null\nexport const createCalendarBotBodyCallbackEnabledDefault = false\nexport const createCalendarBotBodyCallbackConfigSecretDefault = null\nexport const createCalendarBotBodyCallbackConfigMethodDefault = \"POST\"\nexport const createCalendarBotBodyCallbackConfigDefault = null\nexport const createCalendarBotBodySeriesIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const createCalendarBotBodyAllOccurrencesDefault = false\nexport const createCalendarBotBodyEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const createCalendarBotBody = zod\n  .object({\n    bot_name: zod\n      .string()\n      .min(1)\n      .max(createCalendarBotBodyBotNameMax)\n      .describe(\n        \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n      ),\n    bot_image: zod\n      .string()\n      .url()\n      .or(zod.array(zod.string().url()).min(1).max(createCalendarBotBodyBotImageMaxThree))\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n      ),\n    bot_image_config: zod\n      .object({\n        loop_mode: zod\n          .enum([\"auto\", \"bot_status\"])\n          .default(createCalendarBotBodyBotImageConfigLoopModeDefault)\n          .describe(\n            \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n          ),\n        image_duration: zod\n          .number()\n          .min(createCalendarBotBodyBotImageConfigImageDurationMin)\n          .max(createCalendarBotBodyBotImageConfigImageDurationMax)\n          .default(createCalendarBotBodyBotImageConfigImageDurationDefault)\n          .describe(\n            \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n          )\n      })\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n      ),\n    recording_mode: zod\n      .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n      .default(createCalendarBotBodyRecordingModeDefault)\n      .describe(\n        \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n      ),\n    entry_message: zod\n      .string()\n      .max(createCalendarBotBodyEntryMessageMaxOne)\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n      ),\n    timeout_config: zod\n      .object({\n        waiting_room_timeout: zod\n          .number()\n          .min(createCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMin)\n          .max(createCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMax)\n          .default(createCalendarBotBodyTimeoutConfigWaitingRoomTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n          ),\n        no_one_joined_timeout: zod\n          .number()\n          .min(createCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMin)\n          .max(createCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMax)\n          .default(createCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n          ),\n        silence_timeout: zod\n          .number()\n          .min(createCalendarBotBodyTimeoutConfigSilenceTimeoutMin)\n          .max(createCalendarBotBodyTimeoutConfigSilenceTimeoutMax)\n          .default(createCalendarBotBodyTimeoutConfigSilenceTimeoutDefault)\n          .describe(\n            \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n          ),\n        grace_period: zod\n          .number()\n          .min(createCalendarBotBodyTimeoutConfigGracePeriodMin)\n          .max(createCalendarBotBodyTimeoutConfigGracePeriodMax)\n          .optional()\n          .describe(\n            \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n          )\n      })\n      .default(createCalendarBotBodyTimeoutConfigDefault)\n      .describe(\n        \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n      ),\n    zoom_config: zod\n      .object({\n        credential_id: zod\n          .string()\n          .uuid()\n          .regex(createCalendarBotBodyZoomConfigCredentialIdRegExp)\n          .optional()\n          .describe(\n            \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n          ),\n        credential_user_id: zod\n          .string()\n          .optional()\n          .describe(\n            \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n          ),\n        obf_token: zod\n          .string()\n          .optional()\n          .describe(\n            \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n          ),\n        obf_token_url: zod\n          .string()\n          .url()\n          .optional()\n          .describe(\n            \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n          ),\n        zak_token_url: zod\n          .string()\n          .url()\n          .optional()\n          .describe(\n            \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n          )\n      })\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n      ),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .or(zod.null())\n      .optional()\n      .describe(\n        \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n      ),\n    streaming_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable audio streaming for this bot. When enabled, the streaming_config property is used to provide the configuration.\"\n      ),\n    streaming_config: zod\n      .object({\n        input_url: zod\n          .string()\n          .url()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n          ),\n        output_url: zod\n          .string()\n          .url()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n          ),\n        audio_frequency: zod\n          .number()\n          .or(zod.number())\n          .or(zod.number())\n          .or(zod.number())\n          .describe(\n            \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n          )\n          .or(zod.null())\n          .default(createCalendarBotBodyStreamingConfigAudioFrequencyDefault)\n          .describe(\n            \"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\"\n          )\n      })\n      .or(zod.null())\n      .optional(),\n    transcription_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable transcription for this bot. When enabled, the transcription_config property is used to customise the transcription provider and parameters.\"\n      ),\n    transcription_config: zod\n      .object({\n        provider: zod\n          .enum([\"gladia\"])\n          .default(createCalendarBotBodyTranscriptionConfigProviderDefault)\n          .describe(\n            \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n          ),\n        api_key: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n          ),\n        custom_params: zod\n          .record(zod.string(), zod.any())\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n          )\n      })\n      .or(zod.null())\n      .optional(),\n    callback_enabled: zod\n      .boolean()\n      .optional()\n      .describe(\n        \"Enable callback for this bot. When enabled, the callback_config property is used to provide the configuration.\"\n      ),\n    callback_config: zod\n      .object({\n        url: zod\n          .string()\n          .url()\n          .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n        secret: zod\n          .string()\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n          ),\n        method: zod\n          .enum([\"POST\", \"PUT\"])\n          .default(createCalendarBotBodyCallbackConfigMethodDefault)\n          .describe(\"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\")\n      })\n      .or(zod.null())\n      .optional()\n  })\n  .and(\n    zod.object({\n      series_id: zod\n        .string()\n        .uuid()\n        .regex(createCalendarBotBodySeriesIdRegExp)\n        .describe(\n          \"The UUID of the event series to schedule bots for.\\n\\nBoth one-off and recurring events have a series_id. For recurring events, use 'all_occurrences' to schedule bots for all future occurrences.\"\n        ),\n      all_occurrences: zod\n        .boolean()\n        .describe(\n          \"Whether to schedule bots for all occurrences of the event series.\\n\\nIf `true`, bots will be scheduled for all future event instances in the series. If `false`, `event_id` must be provided to schedule a bot for a specific event instance.\\n\\nDefault: `false`\"\n        ),\n      event_id: zod\n        .string()\n        .uuid()\n        .regex(createCalendarBotBodyEventIdRegExp)\n        .optional()\n        .describe(\n          \"The UUID of a specific event instance to schedule a bot for.\\n\\nRequired when `all_occurrences` is `false`. Use this to schedule a bot for a single occurrence of a recurring event or a specific one-off event. If `all_occurrences` is `true`, this parameter is ignored.\"\n        )\n    })\n  )\n\n/**\n * Update one or more calendar bots for a calendar.\n    \n    You can target a single event or all occurrences in a series using `series_id`, `all_occurrences`, and `event_id` in the request body. The bot must be in `scheduled` status and the join time must be at least 4 minutes in the future.\n    \n    **Update Targets:**\n    - `event_id`: Update bot for a specific event instance\n    - `series_id`: Update bots for all occurrences of a series\n    - `all_occurrences`: Update all future occurrences (for recurring events)\n    \n    **Updateable Fields:** You can update any bot configuration field (bot name, image, recording mode, transcription settings, etc.). All fields are optional - only provided fields will be updated.\n    \n    **Status Requirements:** The bot must be in `scheduled` status. Bots that have already joined (`completed`) or failed (`failed`) cannot be updated. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Join Time Requirements:** The join time must be at least 4 minutes in the future. If the join time is too close, the request will fail with 409 Conflict. This ensures the bot can be updated before it starts processing.\n    \n    **Partial Updates:** If updating multiple bots (e.g., all occurrences of a series), some bots may fail to update (e.g., if they're not in `scheduled` status). The response includes information about which bots were updated and which failed.\n    \n    Returns 200 with update results. Returns 404 if the event or calendar bot schedule is not found, or 409 if the bot's status does not allow update.\n * @summary Update calendar bot\n */\nexport const updateCalendarBotPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const updateCalendarBotParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(updateCalendarBotPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar that contains the event.\")\n})\n\nexport const updateCalendarBotBodySeriesIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateCalendarBotBodyAllOccurrencesDefault = false\nexport const updateCalendarBotBodyEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateCalendarBotBodyBotNameMax = 255\nexport const updateCalendarBotBodyBotImageMaxThree = 5\nexport const updateCalendarBotBodyBotImageDefault = null\nexport const updateCalendarBotBodyBotImageConfigLoopModeDefault = \"auto\"\nexport const updateCalendarBotBodyBotImageConfigImageDurationDefault = 30\nexport const updateCalendarBotBodyBotImageConfigImageDurationMin = 10\n\nexport const updateCalendarBotBodyBotImageConfigImageDurationMax = 120\nexport const updateCalendarBotBodyBotImageConfigDefault = null\nexport const updateCalendarBotBodyRecordingModeDefault = \"speaker_view\"\nexport const updateCalendarBotBodyEntryMessageMaxOne = 500\nexport const updateCalendarBotBodyEntryMessageDefault = null\nexport const updateCalendarBotBodyTimeoutConfigWaitingRoomTimeoutDefault = 600\nexport const updateCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMin = 120\n\nexport const updateCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMax = 1800\nexport const updateCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutDefault = 600\nexport const updateCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMin = 120\n\nexport const updateCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMax = 1800\nexport const updateCalendarBotBodyTimeoutConfigSilenceTimeoutDefault = 600\nexport const updateCalendarBotBodyTimeoutConfigSilenceTimeoutMin = 300\n\nexport const updateCalendarBotBodyTimeoutConfigSilenceTimeoutMax = 1800\nexport const updateCalendarBotBodyTimeoutConfigGracePeriodDefault = 0\nexport const updateCalendarBotBodyTimeoutConfigGracePeriodMin = 0\n\nexport const updateCalendarBotBodyTimeoutConfigGracePeriodMax = 600\nexport const updateCalendarBotBodyTimeoutConfigDefault = {\n  waiting_room_timeout: 600,\n  no_one_joined_timeout: 600,\n  silence_timeout: 600,\n  grace_period: 0\n}\nexport const updateCalendarBotBodyZoomConfigCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateCalendarBotBodyZoomConfigDefault = null\nexport const updateCalendarBotBodyExtraDefault = null\nexport const updateCalendarBotBodyStreamingConfigInputUrlDefault = null\nexport const updateCalendarBotBodyStreamingConfigOutputUrlDefault = null\nexport const updateCalendarBotBodyStreamingConfigAudioFrequencyDefault = 24000\nexport const updateCalendarBotBodyTranscriptionConfigProviderDefault = \"gladia\"\nexport const updateCalendarBotBodyTranscriptionConfigApiKeyDefault = null\nexport const updateCalendarBotBodyTranscriptionConfigCustomParamsDefault = null\nexport const updateCalendarBotBodyCallbackConfigSecretDefault = null\nexport const updateCalendarBotBodyCallbackConfigMethodDefault = \"POST\"\n\nexport const updateCalendarBotBody = zod\n  .object({\n    series_id: zod\n      .string()\n      .uuid()\n      .regex(updateCalendarBotBodySeriesIdRegExp)\n      .describe(\n        \"The UUID of the event series to schedule bots for.\\n\\nBoth one-off and recurring events have a series_id. For recurring events, use 'all_occurrences' to schedule bots for all future occurrences.\"\n      ),\n    all_occurrences: zod\n      .boolean()\n      .describe(\n        \"Whether to schedule bots for all occurrences of the event series.\\n\\nIf `true`, bots will be scheduled for all future event instances in the series. If `false`, `event_id` must be provided to schedule a bot for a specific event instance.\\n\\nDefault: `false`\"\n      ),\n    event_id: zod\n      .string()\n      .uuid()\n      .regex(updateCalendarBotBodyEventIdRegExp)\n      .optional()\n      .describe(\n        \"The UUID of a specific event instance to schedule a bot for.\\n\\nRequired when `all_occurrences` is `false`. Use this to schedule a bot for a single occurrence of a recurring event or a specific one-off event. If `all_occurrences` is `true`, this parameter is ignored.\"\n      )\n  })\n  .and(\n    zod\n      .object({\n        bot_name: zod\n          .string()\n          .min(1)\n          .max(updateCalendarBotBodyBotNameMax)\n          .optional()\n          .describe(\n            \"The name of the bot.\\n\\nThis name will be displayed as the bot's name in the meeting.\"\n          ),\n        bot_image: zod\n          .string()\n          .url()\n          .or(zod.array(zod.string().url()).min(1).max(updateCalendarBotBodyBotImageMaxThree))\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"The bot's avatar image(s).\\n\\nAccepts a single HTTPS URL or an array of up to 5 HTTPS URLs pointing to image files (JPEG, PNG, or WebP). When multiple images are provided, they will be cycled based on the bot_image_config settings.\"\n          ),\n        bot_image_config: zod\n          .object({\n            loop_mode: zod\n              .enum([\"auto\", \"bot_status\"])\n              .default(updateCalendarBotBodyBotImageConfigLoopModeDefault)\n              .describe(\n                \"Controls how multiple bot images are cycled.\\n\\n- `auto`: Cycles through images at the interval specified by image_duration.\\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\"\n              ),\n            image_duration: zod\n              .number()\n              .min(updateCalendarBotBodyBotImageConfigImageDurationMin)\n              .max(updateCalendarBotBodyBotImageConfigImageDurationMax)\n              .default(updateCalendarBotBodyBotImageConfigImageDurationDefault)\n              .describe(\n                \"Duration in seconds each image is displayed before switching to the next. Only used when loop_mode is 'auto'.\\n\\nDefault: 30. Range: 10-120.\"\n              )\n          })\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Configuration for how bot avatar images are displayed. Only relevant when multiple images are provided in bot_image.\"\n          ),\n        recording_mode: zod\n          .enum([\"audio_only\", \"speaker_view\", \"gallery_view\"])\n          .default(updateCalendarBotBodyRecordingModeDefault)\n          .describe(\n            \"The recording mode of the bot.\\n\\nDetermines what the bot records during the meeting:\\n\\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\\n- `audio_only`: Records only the audio without video.\\n- `gallery_view`: Records the entire gallery view (coming soon).\\n\\nDefault: `speaker_view`\"\n          ),\n        entry_message: zod\n          .string()\n          .max(updateCalendarBotBodyEntryMessageMaxOne)\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"The message that the bot will send when it joins the meeting.\\n\\nThis message will be posted in the meeting chat when the bot successfully joins.\\n\\nAvailable for Google Meet, Microsoft Teams, and Zoom meetings.\\n\\nMaximum: 500 characters\"\n          ),\n        timeout_config: zod\n          .object({\n            waiting_room_timeout: zod\n              .number()\n              .min(updateCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMin)\n              .max(updateCalendarBotBodyTimeoutConfigWaitingRoomTimeoutMax)\n              .default(updateCalendarBotBodyTimeoutConfigWaitingRoomTimeoutDefault)\n              .describe(\n                \"The timeout in seconds for the bot to wait in the waiting room before leaving the meeting.\\n\\nIf the bot is placed in a waiting room and not admitted within this time, it will leave the meeting.\\n\\nNote: Google Meet has its own waiting room timeout (approximately 10 minutes). Setting a higher value for Google Meet meetings will have no effect, as Google Meet will deny entry to the bot after its own timeout.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n              ),\n            no_one_joined_timeout: zod\n              .number()\n              .min(updateCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMin)\n              .max(updateCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutMax)\n              .default(updateCalendarBotBodyTimeoutConfigNoOneJoinedTimeoutDefault)\n              .describe(\n                \"The timeout in seconds for the bot to wait for participants to join before leaving the meeting.\\n\\nIf no participants join the meeting within this time after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 2 minutes\\nMaximum: 30 minutes\"\n              ),\n            silence_timeout: zod\n              .number()\n              .min(updateCalendarBotBodyTimeoutConfigSilenceTimeoutMin)\n              .max(updateCalendarBotBodyTimeoutConfigSilenceTimeoutMax)\n              .default(updateCalendarBotBodyTimeoutConfigSilenceTimeoutDefault)\n              .describe(\n                \"The timeout in seconds for the bot to wait for silence before leaving the meeting.\\n\\nIf no audio is detected for this duration after the bot joins, the bot will leave the meeting. Only applicable for Google Meet and Microsoft Teams meetings.\\n\\nDefault: 600 seconds (10 minutes)\\nMinimum: 5 minutes\\nMaximum: 30 minutes\"\n              ),\n            grace_period: zod\n              .number()\n              .min(updateCalendarBotBodyTimeoutConfigGracePeriodMin)\n              .max(updateCalendarBotBodyTimeoutConfigGracePeriodMax)\n              .optional()\n              .describe(\n                \"The grace period in seconds at the start of the meeting during which no timeout conditions (waiting room, no participants, silence) will trigger.\\n\\nDefault: 0 (disabled)\\nMaximum: 600 seconds (10 minutes)\"\n              )\n          })\n          .default(updateCalendarBotBodyTimeoutConfigDefault)\n          .describe(\n            \"Configuration for automatic meeting exit behavior. For Google Meet and Microsoft Teams, the bot uses waiting_room_timeout to wait in the waiting room, then no_one_joined_timeout to wait for participants when first joining the meeting, and finally switches to silence_timeout monitoring once participants are detected. Zoom only uses waiting_room_timeout.\"\n          ),\n        zoom_config: zod\n          .object({\n            credential_id: zod\n              .string()\n              .uuid()\n              .regex(updateCalendarBotBodyZoomConfigCredentialIdRegExp)\n              .optional()\n              .describe(\n                \"UUID of a stored Zoom credential (created via Zoom credentials API). The bot will fetch the OBF token from the API server using this ID. Use this when you have saved a Zoom OAuth credential and want the bot to join on behalf of that user.\"\n              ),\n            credential_user_id: zod\n              .string()\n              .optional()\n              .describe(\n                \"Zoom user ID (e.g. from the Zoom profile) to look up a stored credential by user. The API server will resolve this to a credential_id. Use when you have multiple credentials and want to target a specific user.\"\n              ),\n            obf_token: zod\n              .string()\n              .optional()\n              .describe(\n                \"Direct OBF (On-Behalf-Of) token. Use this to join a Zoom meeting as a specific user without storing a credential. The token is a JWT issued by Zoom; the bot uses it once to join. Suitable for short-lived or one-off joins. For recurring use, prefer credential_id or obf_token_url.\"\n              ),\n            obf_token_url: zod\n              .string()\n              .url()\n              .optional()\n              .describe(\n                \"URL that returns an OBF token at join time. The bot will make a GET request with query params: bot_uuid (bot UUID) and extra (URL-encoded JSON of the run's extra payload). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) containing the OBF token. Timeout: 15 seconds.\"\n              ),\n            zak_token_url: zod\n              .string()\n              .url()\n              .optional()\n              .describe(\n                \"URL to get the Zoom ZAK (Zoom Access Token). The bot makes a GET request with query params: bot_uuid and extra (URL-encoded JSON). Use these to identify which bot/run is requesting the token. Response must be plain text (ASCII) with the raw ZAK. See https://developers.zoom.us/docs/api/users/#tag/users/get/users/me/zak. Timeout: 15 seconds.\"\n              )\n          })\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"Zoom-only configuration for authentication and join method.\\n\\n- **credential_id**: Use a stored Zoom credential (OBF token fetched by the bot from the API server).\\n- **credential_user_id**: Resolve a stored credential by Zoom user ID.\\n- **obf_token**: Provide a direct OBF token (one-off join).\\n- **obf_token_url**: URL that returns an OBF token when the bot joins.\\n- **zak_token_url**: URL that returns a ZAK for joining without the host.\\n\\nLeave `null` for Google Meet and Microsoft Teams.\"\n          ),\n        extra: zod\n          .record(zod.string(), zod.any())\n          .or(zod.null())\n          .optional()\n          .describe(\n            \"An optional extra configuration object for the bot.\\n\\nThis object can contain any custom key-value pairs that you want to associate with the bot. The data will be:\\n\\n- Included in all webhook event payloads (if a webhook endpoint is configured)\\n- Part of the callback payload (if callback is enabled)\\n- Returned when fetching the bot's details via the API\\n\\nUseful for storing custom metadata, tracking information, or any other data you need to correlate with the bot.\"\n          ),\n        streaming_enabled: zod\n          .boolean()\n          .optional()\n          .describe(\n            \"Enable or disable audio streaming for this bot.\\n\\n- Set to `true` to enable streaming (requires `streaming_config`)\\n- Set to `false` to disable streaming (do not provide `streaming_config`)\\n- Omit this field to leave streaming configuration unchanged\\n\\nIf you want to change streaming settings, you must provide both `streaming_enabled` and `streaming_config` together.\"\n          ),\n        streaming_config: zod\n          .object({\n            input_url: zod\n              .string()\n              .url()\n              .or(zod.null())\n              .optional()\n              .describe(\n                \"Websocket stream URL, which receives the audio sent to the bot, and the bot will stream the audio to the meeting.\"\n              ),\n            output_url: zod\n              .string()\n              .url()\n              .or(zod.null())\n              .optional()\n              .describe(\n                \"Websocket stream URL, which the bot sends the audio to. This is used to stream the output audio to a destination.\"\n              ),\n            audio_frequency: zod\n              .number()\n              .or(zod.number())\n              .or(zod.number())\n              .or(zod.number())\n              .describe(\n                \"Audio frequency in Hz. Supported values: 16000, 24000 (default), 32000, 48000 Hz.\"\n              )\n              .or(zod.null())\n              .default(updateCalendarBotBodyStreamingConfigAudioFrequencyDefault)\n              .describe(\n                \"The audio frequency in Hz. Supported values: 24000 (default), 32000, 48000 Hz.\"\n              )\n          })\n          .optional()\n          .describe(\n            \"The streaming configuration for the bot.\\n\\nRequired when `streaming_enabled` is `true`. Must not be provided when `streaming_enabled` is `false`.\\n\\n- `input_url`: Websocket stream URL that receives audio sent to the bot\\n- `output_url`: Websocket stream URL where the bot sends audio\\n- `audio_frequency`: Audio frequency in Hz (default: 24000)\\n\\nOmit this field to leave streaming configuration unchanged.\"\n          ),\n        transcription_enabled: zod\n          .boolean()\n          .optional()\n          .describe(\n            \"Enable or disable transcription for this bot.\\n\\n- Set to `true` to enable transcription (requires `transcription_config`)\\n- Set to `false` to disable transcription (do not provide `transcription_config`)\\n- Omit this field to leave transcription configuration unchanged\\n\\nIf you want to change transcription settings, you must provide both `transcription_enabled` and `transcription_config` together.\"\n          ),\n        transcription_config: zod\n          .object({\n            provider: zod\n              .enum([\"gladia\"])\n              .default(updateCalendarBotBodyTranscriptionConfigProviderDefault)\n              .describe(\n                \"The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\"\n              ),\n            api_key: zod\n              .string()\n              .or(zod.null())\n              .optional()\n              .describe(\n                \"The API key to use for the speech to text provider. This can be provided to use your own API key for the speech to text provider. It consumes less tokens than using the default API key. It is available on 'Pro' plans and above.\"\n              ),\n            custom_params: zod\n              .record(zod.string(), zod.any())\n              .or(zod.null())\n              .optional()\n              .describe(\n                \"Custom parameters for the transcription provider. See the transcription provider's documentation for available options. For Gladia, see https://docs.gladia.io/api-reference/v2/pre-recorded/init\"\n              )\n          })\n          .optional()\n          .describe(\n            'The transcription configuration for the bot.\\n\\nRequired when `transcription_enabled` is `true`. Must not be provided when `transcription_enabled` is `false`.\\n\\n- `provider`: Speech-to-text provider (default: \\\"gladia\\\")\\n- `api_key`: Your own API key for the provider (BYOK - available on Pro plans and above)\\n- `custom_params`: Custom parameters for transcription (see Gladia API documentation)\\n\\nOmit this field to leave transcription configuration unchanged.'\n          ),\n        callback_enabled: zod\n          .boolean()\n          .optional()\n          .describe(\n            \"Enable or disable callback for this bot.\\n\\n- Set to `true` to enable callback (requires `callback_config`)\\n- Set to `false` to disable callback (do not provide `callback_config`)\\n- Omit this field to leave callback configuration unchanged\\n\\nIf you want to change callback settings, you must provide both `callback_enabled` and `callback_config` together.\"\n          ),\n        callback_config: zod\n          .object({\n            url: zod\n              .string()\n              .url()\n              .describe(\"The URL to be called upon the completion or failure of the bot.\"),\n            secret: zod\n              .string()\n              .or(zod.null())\n              .optional()\n              .describe(\n                \"To ensure that you can validate the callback, this secret will be added to the request in the 'x-mb-secret' header\"\n              ),\n            method: zod\n              .enum([\"POST\", \"PUT\"])\n              .default(updateCalendarBotBodyCallbackConfigMethodDefault)\n              .describe(\n                \"The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\"\n              )\n          })\n          .optional()\n          .describe(\n            \"The callback configuration for the bot.\\n\\nRequired when `callback_enabled` is `true`. Must not be provided when `callback_enabled` is `false`.\\n\\n- `url`: The URL to be called upon completion or failure of the bot\\n- `secret`: Secret for HMAC validation (sent in `x-mb-secret` header)\\n- `method`: HTTP method (`POST` or `PUT`, default: `POST`)\\n\\nOmit this field to leave callback configuration unchanged.\"\n          )\n      })\n      .describe(\n        \"Partial update of bot configuration. Only provide the fields you want to update. All fields are optional.\"\n      )\n  )\n\nexport const updateCalendarBotResponseDataItemEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateCalendarBotResponseErrorsItemEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const updateCalendarBotResponse = zod.object({\n  success: zod.boolean(),\n  data: zod\n    .array(\n      zod.object({\n        event_id: zod\n          .string()\n          .uuid()\n          .regex(updateCalendarBotResponseDataItemEventIdRegExp)\n          .describe(\n            \"The UUID of the event instance that was successfully scheduled for bot recording\"\n          )\n      })\n    )\n    .describe(\"Event instances whose calendar bots were successfully updated\"),\n  errors: zod\n    .array(\n      zod.object({\n        event_id: zod\n          .string()\n          .uuid()\n          .regex(updateCalendarBotResponseErrorsItemEventIdRegExp)\n          .describe(\n            \"The UUID of the event instance that failed to be scheduled. Use this to identify which specific event could not be scheduled\"\n          ),\n        code: zod\n          .string()\n          .describe(\n            \"Error code for programmatic handling. This is a machine-readable identifier that indicates the type of error that occurred\"\n          ),\n        message: zod\n          .string()\n          .describe(\n            \"Human-readable error message explaining why the scheduling failed for this event instance\"\n          ),\n        details: zod\n          .string()\n          .or(zod.null())\n          .describe(\n            \"Additional error details providing more context about the failure. Null if no additional details are available\"\n          )\n      })\n    )\n    .describe(\n      \"Array of errors for event instances whose calendar bots could not be updated. This array is empty if all requested event instances were successfully updated\"\n    )\n})\n\n/**\n * Cancel one or more scheduled calendar bots. You can target a single event or all occurrences in a series using `series_id`, `all_occurrences`, and `event_id` in the request body. The behavior for each targeted bot depends on where it is in its lifecycle:\n\n    - **Not yet launched** — the schedule is cancelled and the bot never starts.\n    - **Launched but not yet in the meeting** — the bot exits before joining, with an `EXITING_MEETING_BEFORE_RECORD` error code.\n    - **Already in the meeting** — the bot leaves. Whatever it captured up to that point is still processed and delivered as usual. This case applies to single-event deletes and to series deletes for recent occurrences; see \"Series deletes\" below.\n\n    **Cancellation Targets:**\n    - `event_id`: Cancel bot for a specific event instance\n    - `series_id`: Cancel bots for all occurrences of a series\n    - `all_occurrences`: Cancel all future occurrences (for recurring events)\n\n    **Series deletes:** When `all_occurrences` is true, occurrences whose scheduled time is already well in the past are silently skipped — their bots would have long since finished. Recent and future occurrences are cancelled normally. For single-event deletes (`event_id`, no `all_occurrences`), no time filter is applied — whatever state the bot is in, the stop request is delivered.\n\n    **Partial Cancellation:** If cancelling multiple bots (e.g., all occurrences of a series), some bots may fail to cancel. The response includes which bots were cancelled and which failed.\n\n    **Irreversible Operation:** Once a calendar bot is cancelled, it cannot be recovered.\n\n    **Token Impact:** Tokens are not reserved for calendar bots, so cancelling before a bot joins a meeting has no impact on your token balance. If a bot had already started recording, tokens are consumed only for the recorded portion — you won't be charged for time after the cancellation.\n\n    Returns 200 with cancellation results. Returns 404 if the event or calendar bot schedule is not found.\n * @summary Cancel calendar bot\n */\nexport const deleteCalendarBotPathCalendarIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteCalendarBotParams = zod.object({\n  calendar_id: zod\n    .string()\n    .uuid()\n    .regex(deleteCalendarBotPathCalendarIdRegExp)\n    .describe(\"The unique identifier of the calendar that contains the event.\")\n})\n\nexport const deleteCalendarBotBodySeriesIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const deleteCalendarBotBodyAllOccurrencesDefault = false\nexport const deleteCalendarBotBodyEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteCalendarBotBody = zod.object({\n  series_id: zod\n    .string()\n    .uuid()\n    .regex(deleteCalendarBotBodySeriesIdRegExp)\n    .describe(\n      \"The UUID of the event series to schedule bots for.\\n\\nBoth one-off and recurring events have a series_id. For recurring events, use 'all_occurrences' to schedule bots for all future occurrences.\"\n    ),\n  all_occurrences: zod\n    .boolean()\n    .describe(\n      \"Whether to schedule bots for all occurrences of the event series.\\n\\nIf `true`, bots will be scheduled for all future event instances in the series. If `false`, `event_id` must be provided to schedule a bot for a specific event instance.\\n\\nDefault: `false`\"\n    ),\n  event_id: zod\n    .string()\n    .uuid()\n    .regex(deleteCalendarBotBodyEventIdRegExp)\n    .optional()\n    .describe(\n      \"The UUID of a specific event instance to schedule a bot for.\\n\\nRequired when `all_occurrences` is `false`. Use this to schedule a bot for a single occurrence of a recurring event or a specific one-off event. If `all_occurrences` is `true`, this parameter is ignored.\"\n    )\n})\n\nexport const deleteCalendarBotResponseDataItemEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const deleteCalendarBotResponseErrorsItemEventIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteCalendarBotResponse = zod.object({\n  success: zod.boolean(),\n  data: zod\n    .array(\n      zod.object({\n        event_id: zod\n          .string()\n          .uuid()\n          .regex(deleteCalendarBotResponseDataItemEventIdRegExp)\n          .describe(\n            \"The UUID of the event instance that was successfully scheduled for bot recording\"\n          )\n      })\n    )\n    .describe(\"Event instances whose calendar bots were successfully deleted/cancelled\"),\n  errors: zod\n    .array(\n      zod.object({\n        event_id: zod\n          .string()\n          .uuid()\n          .regex(deleteCalendarBotResponseErrorsItemEventIdRegExp)\n          .describe(\n            \"The UUID of the event instance that failed to be scheduled. Use this to identify which specific event could not be scheduled\"\n          ),\n        code: zod\n          .string()\n          .describe(\n            \"Error code for programmatic handling. This is a machine-readable identifier that indicates the type of error that occurred\"\n          ),\n        message: zod\n          .string()\n          .describe(\n            \"Human-readable error message explaining why the scheduling failed for this event instance\"\n          ),\n        details: zod\n          .string()\n          .or(zod.null())\n          .describe(\n            \"Additional error details providing more context about the failure. Null if no additional details are available\"\n          )\n      })\n    )\n    .describe(\n      \"Array of errors for event instances whose calendar bots could not be deleted. This array is empty if all requested event instances were successfully deleted\"\n    )\n})\n","import Axios, { type AxiosRequestConfig } from \"axios\"\n\nconst AXIOS_INSTANCE = Axios.create()\n\n// For requests with no body (data is undefined/null), set data to \"{}\" and\n// Content-Type to application/json. This prevents Node's http module from\n// adding Content-Type: application/x-www-form-urlencoded on POST requests,\n// which Fastify rejects with FST_ERR_CTP_INVALID_MEDIA_TYPE. Fastify accepts\n// an empty JSON object {} with application/json.\n//\n// We use a request interceptor which runs after axios merges defaults but\n// before the request is dispatched.\nAXIOS_INSTANCE.interceptors.request.use((config) => {\n  if (config.data === undefined || config.data === null) {\n    config.data = \"{}\"\n    config.headers.setContentType(\"application/json\")\n  }\n  return config\n})\n\nexport const customInstance = <T>(\n  config: AxiosRequestConfig,\n  options?: AxiosRequestConfig\n): Promise<T> => {\n  return AXIOS_INSTANCE({\n    ...config,\n    ...options,\n    headers: {\n      ...config?.headers,\n      ...options?.headers\n    }\n  }).then(({ data }) => data)\n}\n\nexport default customInstance\n\nexport type ErrorType<Error> = import(\"axios\").AxiosError<Error>\nexport type BodyType<BodyData> = BodyData\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\nimport type { BodyType } from \"../../../../custom-axios\"\n\nimport { customInstance } from \"../../../../custom-axios\"\nimport type {\n  BotsWithMetadataParams,\n  DeleteResponse,\n  GetMeetingDataParams,\n  JoinRequest,\n  JoinResponse,\n  LeaveResponse,\n  ListRecentBotsResponse,\n  Metadata,\n  RetranscribeBody,\n  ScreenshotsList\n} from \"../../schema\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Have a bot join a meeting, now or in the future. You can provide a `webhook_url` parameter to receive webhook events specific to this bot, overriding your account's default webhook URL. Events include recording completion, failures, and transcription updates.\n * @summary Join\n */\nexport const join = (\n  joinRequest: BodyType<JoinRequest>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<JoinResponse>(\n    {\n      url: \"/bots/\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: joinRequest\n    },\n    options\n  )\n}\n/**\n * Leave\n * @summary Leave\n */\nexport const leave = (uuid: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<LeaveResponse>({ url: `/bots/${uuid}`, method: \"DELETE\" }, options)\n}\n/**\n * Get meeting recording and metadata\n * @summary Get Meeting Data\n */\nexport const getMeetingData = (\n  params: GetMeetingDataParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<Metadata>({ url: \"/bots/meeting_data\", method: \"GET\", params }, options)\n}\n/**\n * Deletes a bot's data including recording, transcription, and logs. Only metadata is retained. Rate limited to 5 requests per minute per API key.\n * @summary Delete Data\n */\nexport const deleteData = (uuid: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<DeleteResponse>(\n    { url: `/bots/${uuid}/delete_data`, method: \"POST\" },\n    options\n  )\n}\n/**\n * Retrieves a paginated list of the user's bots with essential metadata, including IDs, names, and meeting details. Supports filtering, sorting, and advanced querying options.\n * @summary List Bots with Metadata\n */\nexport const botsWithMetadata = (\n  params?: BotsWithMetadataParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListRecentBotsResponse>(\n    { url: \"/bots/bots_with_metadata\", method: \"GET\", params },\n    options\n  )\n}\n/**\n * Transcribe or retranscribe a bot's audio using the Default or your provided Speech to Text Provider\n * @summary Retranscribe Bot\n */\nexport const retranscribeBot = (\n  retranscribeBody: BodyType<RetranscribeBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<void>(\n    {\n      url: \"/bots/retranscribe\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: retranscribeBody\n    },\n    options\n  )\n}\n/**\n * Retrieves screenshots captured during the bot's session\n * @summary Get Screenshots\n */\nexport const getScreenshots = (uuid: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<ScreenshotsList>(\n    { url: `/bots/${uuid}/screenshots`, method: \"GET\" },\n    options\n  )\n}\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\nimport type { BodyType } from \"../../../../custom-axios\"\n\nimport { customInstance } from \"../../../../custom-axios\"\nimport type {\n  BotParam2,\n  BotParam3,\n  Calendar,\n  CreateCalendarParams,\n  CreateCalendarResponse,\n  Event,\n  ListEventResponse,\n  ListEventsParams,\n  ListRawCalendarsParams,\n  ListRawCalendarsResponse,\n  PatchBotParams,\n  ResyncAllCalendarsParams,\n  ResyncAllCalendarsResponse,\n  ScheduleRecordEventParams,\n  UnscheduleRecordEventParams,\n  UpdateCalendarParams\n} from \"../../schema\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Retrieves unprocessed calendar data directly from the provider (Google, Microsoft) using provided OAuth credentials. This endpoint is typically used during the initial setup process to allow users to select which calendars to integrate. Returns a list of available calendars with their unique IDs, email addresses, and primary status. This data is not persisted until a calendar is formally created using the create_calendar endpoint.\n * @summary List Raw Calendars\n */\nexport const listRawCalendars = (\n  listRawCalendarsParams: BodyType<ListRawCalendarsParams>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListRawCalendarsResponse>(\n    {\n      url: \"/calendars/raw\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: listRawCalendarsParams\n    },\n    options\n  )\n}\n/**\n * Retrieves all calendars that have been integrated with the system for the authenticated user. Returns a list of calendars with their names, email addresses, provider information, and sync status. This endpoint shows only calendars that have been formally connected through the create_calendar endpoint, not all available calendars from the provider.\n * @summary List Calendars\n */\nexport const listCalendars = (options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<Calendar[]>({ url: \"/calendars/\", method: \"GET\" }, options)\n}\n/**\n * Integrates a new calendar with the system using OAuth credentials. This endpoint establishes a connection with the calendar provider (Google, Microsoft), sets up webhook notifications for real-time updates, and performs an initial sync of all calendar events. It requires OAuth credentials (client ID, client secret, and refresh token) and the platform type. Once created, the calendar is assigned a unique UUID that should be used for all subsequent operations. Returns the newly created calendar object with all integration details.\n * @summary Create Calendar\n */\nexport const createCalendar = (\n  createCalendarParams: BodyType<CreateCalendarParams>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateCalendarResponse>(\n    {\n      url: \"/calendars/\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createCalendarParams\n    },\n    options\n  )\n}\n/**\n * Forces a sync of all your connected calendars with their providers (Google, Microsoft).\n\nProcesses each calendar individually and returns:\n- `synced_calendars`: UUIDs of successfully synced calendars\n- `errors`: Details of any failures\n\nSends webhook notifications for calendars with updates.\n * @summary Resync All Calendars\n */\nexport const resyncAllCalendars = (\n  params?: ResyncAllCalendarsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ResyncAllCalendarsResponse>(\n    { url: \"/calendars/resync_all\", method: \"POST\", params },\n    options\n  )\n}\n/**\n * Retrieves detailed information about a specific calendar integration by its UUID. Returns comprehensive calendar data including the calendar name, email address, provider details (Google, Microsoft), sync status, and other metadata. This endpoint is useful for displaying calendar information to users or verifying the status of a calendar integration before performing operations on its events.\n * @summary Get Calendar\n */\nexport const getCalendar = (uuid: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<Calendar>({ url: `/calendars/${uuid}`, method: \"GET\" }, options)\n}\n/**\n * Permanently removes a calendar integration by its UUID, including all associated events and bot configurations. This operation cancels any active subscriptions with the calendar provider, stops all webhook notifications, and unschedules any pending recordings. All related resources are cleaned up in the database. This action cannot be undone, and subsequent requests to this calendar's UUID will return 404 Not Found errors.\n * @summary Delete Calendar\n */\nexport const deleteCalendar = (uuid: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<void>({ url: `/calendars/${uuid}`, method: \"DELETE\" }, options)\n}\n/**\n * Updates a calendar integration with new credentials or platform while maintaining the same UUID. This operation is performed as an atomic transaction to ensure data integrity. The system automatically unschedules existing bots to prevent duplicates, updates the calendar credentials, and triggers a full resync of all events. Useful when OAuth tokens need to be refreshed or when migrating a calendar between providers. Returns the updated calendar object with its new configuration.\n * @summary Update Calendar\n */\nexport const updateCalendar = (\n  uuid: string,\n  updateCalendarParams: BodyType<UpdateCalendarParams>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateCalendarResponse>(\n    {\n      url: `/calendars/${uuid}`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: updateCalendarParams\n    },\n    options\n  )\n}\n/**\n * Retrieves comprehensive details about a specific calendar event by its UUID. Returns complete event information including title, meeting link, start and end times, organizer status, recurrence information, and the full list of attendees with their names and email addresses. Also includes any associated bot parameters if recording is scheduled for this event. The raw calendar data from the provider is also included for advanced use cases.\n * @summary Get Event\n */\nexport const getEvent = (uuid: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<Event>({ url: `/calendar_events/${uuid}`, method: \"GET\" }, options)\n}\n/**\n * Configures a bot to automatically join and record a specific calendar event at its scheduled time. The UUID in the request path is the event UUID. The request body contains detailed bot configuration, including recording options, streaming settings, and webhook notification URLs. For recurring events, the 'all_occurrences' parameter can be set to true to schedule recording for all instances of the recurring series, or false (default) to schedule only the specific instance. Returns the updated event(s) with the bot parameters attached.\n * @summary Schedule Record Event\n */\nexport const scheduleRecordEvent = (\n  uuid: string,\n  botParam2: BodyType<BotParam2>,\n  params?: ScheduleRecordEventParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<Event[]>(\n    {\n      url: `/calendar_events/${uuid}/bot`,\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: botParam2,\n      params\n    },\n    options\n  )\n}\n/**\n * Cancels a previously scheduled recording for a calendar event and releases associated bot resources. For recurring events, the 'all_occurrences' parameter controls whether to unschedule from all instances of the recurring series or just the specific occurrence. This operation is idempotent and will not error if no bot was scheduled. Returns the updated event(s) with the bot parameters removed.\n * @summary Unschedule Record Event\n */\nexport const unscheduleRecordEvent = (\n  uuid: string,\n  params?: UnscheduleRecordEventParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<Event[]>(\n    { url: `/calendar_events/${uuid}/bot`, method: \"DELETE\", params },\n    options\n  )\n}\n/**\n * Updates the configuration of a bot already scheduled to record an event. Allows modification of recording settings, webhook URLs, and other bot parameters without canceling and recreating the scheduled recording. For recurring events, the 'all_occurrences' parameter determines whether changes apply to all instances or just the specific occurrence. Returns the updated event(s) with the modified bot parameters.\n * @summary Patch Bot\n */\nexport const patchBot = (\n  uuid: string,\n  botParam3: BodyType<BotParam3>,\n  params?: PatchBotParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<Event[]>(\n    {\n      url: `/calendar_events/${uuid}/bot`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: botParam3,\n      params\n    },\n    options\n  )\n}\n/**\n * Retrieves a paginated list of calendar events with comprehensive filtering options. Supports filtering by organizer email, attendee email, date ranges (start_date_gte, start_date_lte), and event status. Results can be limited to upcoming events (default), past events, or all events. Each event includes full details such as meeting links, participants, and recording status. The response includes a 'next' pagination cursor for retrieving additional results.\n * @summary List Events\n */\nexport const listEvents = (\n  params: ListEventsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListEventResponse>(\n    { url: \"/calendar_events/\", method: \"GET\", params },\n    options\n  )\n}\nexport type ListRawCalendarsResult = NonNullable<Awaited<ReturnType<typeof listRawCalendars>>>\nexport type ListCalendarsResult = NonNullable<Awaited<ReturnType<typeof listCalendars>>>\nexport type CreateCalendarResult = NonNullable<Awaited<ReturnType<typeof createCalendar>>>\nexport type ResyncAllCalendarsResult = NonNullable<Awaited<ReturnType<typeof resyncAllCalendars>>>\nexport type GetCalendarResult = NonNullable<Awaited<ReturnType<typeof getCalendar>>>\nexport type DeleteCalendarResult = NonNullable<Awaited<ReturnType<typeof deleteCalendar>>>\nexport type UpdateCalendarResult = NonNullable<Awaited<ReturnType<typeof updateCalendar>>>\nexport type GetEventResult = NonNullable<Awaited<ReturnType<typeof getEvent>>>\nexport type ScheduleRecordEventResult = NonNullable<Awaited<ReturnType<typeof scheduleRecordEvent>>>\nexport type UnscheduleRecordEventResult = NonNullable<\n  Awaited<ReturnType<typeof unscheduleRecordEvent>>\n>\nexport type PatchBotResult = NonNullable<Awaited<ReturnType<typeof patchBot>>>\nexport type ListEventsResult = NonNullable<Awaited<ReturnType<typeof listEvents>>>\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\nimport { customInstance } from \"../../../../custom-axios\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Meeting BaaS sends webhook events to your configured webhook URL when specific events occur.\n\n## Webhook Event Types\n\n### 1. `complete`\nSent when a bot successfully completes recording a meeting. Contains full transcription data and a link to the recording.\n```json\n{\n  \\\"event\\\": \\\"complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"transcript\\\": [\n      {\n        \\\"speaker\\\": \\\"John Doe\\\",\n        \\\"offset\\\": 1.5,\n        \\\"start_time\\\": 1.5,\n        \\\"end_time\\\": 2.4,\n        \\\"words\\\": [\n          {\n            \\\"start\\\": 1.5,\n            \\\"end\\\": 1.9,\n            \\\"word\\\": \\\"Hello\\\"\n          },\n          {\n            \\\"start\\\": 2.0,\n            \\\"end\\\": 2.4,\n            \\\"word\\\": \\\"everyone\\\"\n          }\n        ]\n      }\n    ],\n    \\\"speakers\\\": [\n      \\\"Jane Smith\\\",\n      \\\"John Doe\\\"\n    ],\n    \\\"mp4\\\": \\\"https://storage.example.com/recordings/video123.mp4?token=abc\\\",\n    \\\"audio\\\": \\\"https://storage.example.com/recordings/audio123.wav?token=abc\\\",\n    \\\"event\\\": \\\"complete\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\nThe `complete` event includes:\n- **bot_id**: Unique identifier for the bot that completed recording\n- **event_uuid**: UUID of the calendar event (if this bot was created from an event)\n- **speakers**: A set of speaker names identified in the meeting\n- **transcript**: Full transcript data with speaker identification and word timing\n- **mp4**: URL to the recording file (valid for 24 hours by default)\n- **event**: Event type identifier (\"complete\")\n\n### 2. `failed`\nSent when a bot fails to join or record a meeting. Contains error details.\n```json\n{\n  \\\"event\\\": \\\"failed\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"error\\\": \\\"meeting_not_found\\\",\n    \\\"message\\\": \\\"Could not join meeting: The meeting ID was not found or has expired\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\nThe `failed` event includes:\n- **bot_id**: Unique identifier for the bot that failed\n- **event_uuid**: UUID of the calendar event (if this bot was created from an event)\n- **error**: Error code identifying the type of failure\n- **message**: Detailed human-readable error message\n\nCommon error types include:\n- `meeting_not_found`: The meeting ID or link was invalid or expired\n- `access_denied`: The bot was denied access to the meeting\n- `authentication_error`: Failed to authenticate with the meeting platform\n- `network_error`: Network connectivity issues during recording\n- `internal_error`: Internal server error\n\n### 3. `calendar.sync_events`\nSent when calendar events are synced. Contains information about which events were updated.\n```json\n{\n  \\\"event\\\": \\\"calendar.sync_events\\\",\n  \\\"data\\\": {\n    \\\"calendar_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"last_updated_ts\\\": \\\"2023-05-01T12:00:00Z\\\",\n    \\\"affected_event_uuids\\\": [\n      \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n      \\\"123e4567-e89b-12d3-a456-426614174002\\\"\n    ]\n  }\n}\n```\n\nThe `calendar.sync_events` event includes:\n- **calendar_id**: UUID of the calendar that was synced\n- **last_updated_ts**: ISO-8601 timestamp of when the sync occurred\n- **affected_event_uuids**: Array of UUIDs for calendar events that were added, updated, or deleted\n\nThis event is triggered when:\n- Calendar data is synced with the external provider (Google, Microsoft)\n- Multiple events may be created, updated, or deleted in a single sync operation\n- Use this event to update your local cache of calendar events\n\n### 4. `transcription_complete`\nSent when transcription is completed separately from recording (e.g., after retranscribing).\n```json\n{\n  \\\"event\\\": \\\"transcription_complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\"\n  }\n}\n```\n\nThe `transcription_complete` event includes:\n- **bot_id**: Unique identifier for the bot with the completed transcription\n\nThis event is sent when:\n- You request a retranscription via the `/bots/retranscribe` endpoint\n- An asynchronous transcription process completes after the recording has ended\n\n## Setting Up Webhooks\n\nYou can configure webhooks in two ways:\n1. **Account-level webhook URL**: Set a default webhook URL for all bots in your account using the `/accounts/webhook_url` endpoint\n2. **Bot-specific webhook URL**: Provide a `webhook_url` parameter when creating a bot with the `/bots` endpoint\n\nYour webhook endpoint must:\n- Accept POST requests with JSON payload\n- Return a 2xx status code to acknowledge receipt\n- Process requests within 10 seconds to avoid timeouts\n- Handle each event type appropriately based on the event type\n\nAll webhook requests include:\n- `x-meeting-baas-api-key` header with your API key for verification\n- `content-type: application/json` header\n- JSON body containing the event details\n\n## Webhook Reliability\n\nIf your endpoint fails to respond or returns an error, the system will attempt to retry the webhook delivery. For critical events, we recommend implementing:\n\n- Idempotency handling to prevent duplicate processing of the same event\n- Proper logging of webhook receipts for audit purposes\n- Asynchronous processing to quickly acknowledge receipt before handling the event data\n\nFor security, always validate the API key in the `x-meeting-baas-api-key` header matches your API key.\n * @summary Webhook Events Documentation\n */\nexport const webhookDocumentation = (options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<unknown>({ url: \"/bots/webhooks\", method: \"GET\" }, options)\n}\n/**\n * Meeting BaaS sends the following webhook events related to bot recordings.\n\n## Bot Webhook Event Types\n\n### 1. `complete`\nSent when a bot successfully completes recording a meeting.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"transcript\\\": [\n      {\n        \\\"speaker\\\": \\\"John Doe\\\",\n        \\\"offset\\\": 1.5,\n        \\\"start_time\\\": 1.5,\n        \\\"end_time\\\": 2.4,\n        \\\"words\\\": [\n          {\n            \\\"start\\\": 1.5,\n            \\\"end\\\": 1.9,\n            \\\"word\\\": \\\"Hello\\\"\n          },\n          {\n            \\\"start\\\": 2.0,\n            \\\"end\\\": 2.4,\n            \\\"word\\\": \\\"everyone\\\"\n          }\n        ]\n      }\n    ],\n    \\\"speakers\\\": [\n      \\\"John Doe\\\",\n      \\\"Jane Smith\\\"\n    ],\n    \\\"mp4\\\": \\\"https://storage.example.com/recordings/video123.mp4?token=abc\\\",\n    \\\"audio\\\": \\\"https://storage.example.com/recordings/audio123.wav?token=abc\\\",\n    \\\"event\\\": \\\"complete\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\n**When it's triggered:**\n- After a bot successfully records and processes a meeting\n- After the recording is uploaded and made available\n- When all processing of the meeting recording is complete\n\n**What to do with it:**\n- Download the MP4 recording for storage in your system\n- Store the transcript data in your database\n- Update meeting status in your application\n- Notify users that the recording is available\n- Use `event_uuid` to correlate with calendar events (if applicable)\n\n### 2. `failed`\nSent when a bot fails to join or record a meeting.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"failed\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"error\\\": \\\"meeting_not_found\\\",\n    \\\"message\\\": \\\"Could not join meeting: The meeting ID was not found or has expired\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\n**Common error types:**\n- `meeting_not_found`: The meeting ID or link was invalid or expired\n- `access_denied`: The bot was denied access to the meeting\n- `authentication_error`: Failed to authenticate with the meeting platform\n- `network_error`: Network connectivity issues during recording\n- `internal_error`: Internal server error\n\n**What to do with it:**\n- Log the failure for troubleshooting\n- Notify administrators or users about the failed recording\n- Attempt to reschedule if appropriate\n- Update meeting status in your system\n- Use `event_uuid` to correlate with calendar events (if applicable)\n\n### 3. `transcription_complete`\nSent when transcription is completed separately from recording.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"transcription_complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\"\n  }\n}\n```\n\n**When it's triggered:**\n- After requesting retranscription via the API\n- When an asynchronous transcription job completes\n- When a higher quality or different language transcription becomes available\n\n**What to do with it:**\n- Update the transcript data in your system\n- Notify users that improved transcription is available\n- Run any post-processing on the new transcript data\n\n## Webhook Usage Tips\n\n- Each event includes the `bot_id` so you can correlate with your internal data\n- The `event_uuid` field is included when the bot was created from a calendar event (null for direct bots or scheduled bots)\n- The complete event includes speaker identification and full transcript data\n- For downloading recordings, the mp4 URL is valid for 24 hours\n- Handle the webhook asynchronously and return 200 OK quickly to prevent timeouts\n\nFor security, always validate the API key in the `x-meeting-baas-api-key` header matches your API key.\n * @summary Bot Webhook Events Documentation\n */\nexport const botWebhookDocumentation = (options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<unknown>({ url: \"/bots/webhooks/bot\", method: \"GET\" }, options)\n}\n/**\n * Meeting BaaS sends the following webhook events related to calendar integrations.\n\n## Calendar Webhook Event Types\n\n### 1. `calendar.sync_events`\nSent when calendar events are synced with external providers.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"calendar.sync_events\\\",\n  \\\"data\\\": {\n    \\\"calendar_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"last_updated_ts\\\": \\\"2023-05-01T12:00:00Z\\\",\n    \\\"affected_event_uuids\\\": [\n      \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n      \\\"123e4567-e89b-12d3-a456-426614174002\\\"\n    ]\n  }\n}\n```\n\n**When it's triggered:**\n- After initial calendar connection is established\n- When external calendar providers (Google, Microsoft) send change notifications\n- After manual calendar resync operations\n- During scheduled periodic syncs\n- When events are created, updated, or deleted in the source calendar\n\n**What to do with it:**\n- Update your local copy of calendar events\n- Process any new events that match your criteria\n- Remove any deleted events from your system\n- Update schedules for any modified events\n- Refresh your UI to show the latest calendar data\n\n**Field details:**\n- `calendar_id`: The UUID of the synchronized calendar\n- `last_updated_ts`: ISO-8601 timestamp when the sync occurred\n- `affected_event_uuids**: Array of UUIDs for events that were changed\n\n## Integration with Meeting BaaS Calendar API\n\nAfter receiving a calendar webhook event, you can:\n1. Use the `/calendar_events` endpoint to retrieve detailed information about specific events\n2. Use the `/calendars/:uuid` endpoint to get calendar metadata\n3. Schedule recording bots for any new meetings with the `/calendar_events/:uuid/bot` endpoint\n\n## Webhook Usage Tips\n\n- Each event includes affected event UUIDs for efficient processing\n- You don't need to retrieve all calendar events - just process the changed ones\n- The timestamp helps determine the sequence of updates\n- For high-frequency calendars, consider batch processing of multiple events\n\nFor security, always validate the API key in the `x-meeting-baas-api-key` header matches your API key.\n * @summary Calendar Webhook Events Documentation\n */\nexport const calendarWebhookDocumentation = (options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<unknown>({ url: \"/bots/webhooks/calendar\", method: \"GET\" }, options)\n}\nexport type WebhookDocumentationResult = NonNullable<\n  Awaited<ReturnType<typeof webhookDocumentation>>\n>\nexport type BotWebhookDocumentationResult = NonNullable<\n  Awaited<ReturnType<typeof botWebhookDocumentation>>\n>\nexport type CalendarWebhookDocumentationResult = NonNullable<\n  Awaited<ReturnType<typeof calendarWebhookDocumentation>>\n>\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\nimport type { BodyType } from \"../../../../custom-axios\"\n\nimport { customInstance } from \"../../../../custom-axios\"\nimport type { CreateConnectionRequest, ZoomOAuthConnectionResponse } from \"../../schema\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Retrieves all Zoom OAuth connections associated with the authenticated account. Each connection represents a Zoom user who has authorized your app via OAuth. Use this to display connected users or to find the `zoom_user_id` needed for the `zoom_obf_token_user_id` bot parameter. Sensitive token data is never included in the response.\n * @summary List Zoom OAuth Connections\n */\nexport const listZoomOauthConnections = (options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<ZoomOAuthConnectionResponse[]>(\n    { url: \"/zoom_oauth_connections/\", method: \"GET\" },\n    options\n  )\n}\n/**\n * Exchanges a Zoom OAuth authorization code for access and refresh tokens, retrieves the Zoom user's profile, and stores the connection for managed OBF token generation. The authorization code is obtained by directing a Zoom user through the OAuth consent flow for your Zoom OAuth app. Once stored, you can reference this connection's `zoom_user_id` as the `zoom_obf_token_user_id` parameter when creating a bot, and the system will automatically fetch a fresh OBF token at join time. Note: the authorization code is single-use and expires in approximately 10 minutes.\n * @summary Create Zoom OAuth Connection\n */\nexport const createZoomOauthConnection = (\n  createConnectionRequest: BodyType<CreateConnectionRequest>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<void | ZoomOAuthConnectionResponse>(\n    {\n      url: \"/zoom_oauth_connections/\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createConnectionRequest\n    },\n    options\n  )\n}\n/**\n * Retrieves a specific Zoom OAuth connection by its UUID. Returns the connection details including the Zoom user ID, account ID, connection state, and granted scopes. Sensitive token data is never included in the response.\n * @summary Get Zoom OAuth Connection\n */\nexport const getZoomOauthConnection = (\n  uuid: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ZoomOAuthConnectionResponse>(\n    { url: `/zoom_oauth_connections/${uuid}`, method: \"GET\" },\n    options\n  )\n}\n/**\n * Permanently deletes a Zoom OAuth connection by its UUID, removing all stored tokens. After deletion, bots using this connection's `zoom_user_id` as `zoom_obf_token_user_id` will no longer be able to automatically fetch OBF tokens. The Zoom user would need to re-authorize to create a new connection.\n * @summary Delete Zoom OAuth Connection\n */\nexport const deleteZoomOauthConnection = (\n  uuid: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<void>({ url: `/zoom_oauth_connections/${uuid}`, method: \"DELETE\" }, options)\n}\nexport type ListZoomOauthConnectionsResult = NonNullable<\n  Awaited<ReturnType<typeof listZoomOauthConnections>>\n>\nexport type CreateZoomOauthConnectionResult = NonNullable<\n  Awaited<ReturnType<typeof createZoomOauthConnection>>\n>\nexport type GetZoomOauthConnectionResult = NonNullable<\n  Awaited<ReturnType<typeof getZoomOauthConnection>>\n>\nexport type DeleteZoomOauthConnectionResult = NonNullable<\n  Awaited<ReturnType<typeof deleteZoomOauthConnection>>\n>\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Retrieves all Zoom OAuth connections associated with the authenticated account. Each connection represents a Zoom user who has authorized your app via OAuth. Use this to display connected users or to find the `zoom_user_id` needed for the `zoom_obf_token_user_id` bot parameter. Sensitive token data is never included in the response.\n * @summary List Zoom OAuth Connections\n */\nexport const listZoomOauthConnectionsResponseItem = zod\n  .object({\n    connection_failure_data: zod\n      .any()\n      .optional()\n      .describe(\n        \"Details about why the connection failed. Only present when `state` is `refresh_failed`.\"\n      ),\n    created_at: zod.string().describe(\"Timestamp when the connection was first created.\"),\n    scopes: zod\n      .string()\n      .nullish()\n      .describe(\"OAuth scopes granted by the user during authorization (e.g. `user:read:user`).\"),\n    state: zod\n      .string()\n      .describe(\n        \"Connection state. `connected` means tokens are valid; `refresh_failed` means the token refresh failed and the user needs to re-authorize.\"\n      ),\n    updated_at: zod\n      .string()\n      .describe(\"Timestamp when the connection was last updated (e.g. token refresh).\"),\n    uuid: zod.string().uuid().describe(\"Unique identifier for this connection.\"),\n    zoom_account_id: zod\n      .string()\n      .nullish()\n      .describe(\"The Zoom account ID that the connected user belongs to.\"),\n    zoom_user_id: zod\n      .string()\n      .describe(\n        \"The Zoom user ID of the connected user. Use this value as `zoom_obf_token_user_id` when creating a bot to have the system automatically fetch an OBF token for this user.\"\n      )\n  })\n  .describe(\"A stored Zoom OAuth connection. Tokens are managed server-side and never exposed.\")\nexport const listZoomOauthConnectionsResponse = zod.array(listZoomOauthConnectionsResponseItem)\n\n/**\n * Exchanges a Zoom OAuth authorization code for access and refresh tokens, retrieves the Zoom user's profile, and stores the connection for managed OBF token generation. The authorization code is obtained by directing a Zoom user through the OAuth consent flow for your Zoom OAuth app. Once stored, you can reference this connection's `zoom_user_id` as the `zoom_obf_token_user_id` parameter when creating a bot, and the system will automatically fetch a fresh OBF token at join time. Note: the authorization code is single-use and expires in approximately 10 minutes.\n * @summary Create Zoom OAuth Connection\n */\nexport const createZoomOauthConnectionBody = zod.object({\n  authorization_code: zod\n    .string()\n    .describe(\n      \"The OAuth authorization code received from Zoom after user consent. This is a single-use code that expires in approximately 10 minutes.\"\n    ),\n  redirect_uri: zod\n    .string()\n    .describe(\n      \"The redirect URI that was used in the OAuth authorization request. Must match exactly what was configured in your Zoom OAuth app.\"\n    ),\n  zoom_client_id: zod\n    .string()\n    .describe(\n      \"Your Zoom OAuth app's Client ID, found in the Zoom App Marketplace under your app's credentials.\"\n    ),\n  zoom_client_secret: zod\n    .string()\n    .describe(\n      \"Your Zoom OAuth app's Client Secret, found in the Zoom App Marketplace under your app's credentials.\"\n    )\n})\n\n/**\n * Retrieves a specific Zoom OAuth connection by its UUID. Returns the connection details including the Zoom user ID, account ID, connection state, and granted scopes. Sensitive token data is never included in the response.\n * @summary Get Zoom OAuth Connection\n */\nexport const getZoomOauthConnectionParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n\nexport const getZoomOauthConnectionResponse = zod\n  .object({\n    connection_failure_data: zod\n      .any()\n      .optional()\n      .describe(\n        \"Details about why the connection failed. Only present when `state` is `refresh_failed`.\"\n      ),\n    created_at: zod.string().describe(\"Timestamp when the connection was first created.\"),\n    scopes: zod\n      .string()\n      .nullish()\n      .describe(\"OAuth scopes granted by the user during authorization (e.g. `user:read:user`).\"),\n    state: zod\n      .string()\n      .describe(\n        \"Connection state. `connected` means tokens are valid; `refresh_failed` means the token refresh failed and the user needs to re-authorize.\"\n      ),\n    updated_at: zod\n      .string()\n      .describe(\"Timestamp when the connection was last updated (e.g. token refresh).\"),\n    uuid: zod.string().uuid().describe(\"Unique identifier for this connection.\"),\n    zoom_account_id: zod\n      .string()\n      .nullish()\n      .describe(\"The Zoom account ID that the connected user belongs to.\"),\n    zoom_user_id: zod\n      .string()\n      .describe(\n        \"The Zoom user ID of the connected user. Use this value as `zoom_obf_token_user_id` when creating a bot to have the system automatically fetch an OBF token for this user.\"\n      )\n  })\n  .describe(\"A stored Zoom OAuth connection. Tokens are managed server-side and never exposed.\")\n\n/**\n * Permanently deletes a Zoom OAuth connection by its UUID, removing all stored tokens. After deletion, bots using this connection's `zoom_user_id` as `zoom_obf_token_user_id` will no longer be able to automatically fetch OBF tokens. The Zoom user would need to re-authorize to create a new connection.\n * @summary Delete Zoom OAuth Connection\n */\nexport const deleteZoomOauthConnectionParams = zod.object({\n  uuid: zod.string().describe(\"The UUID identifier\")\n})\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\nimport type { BodyType } from \"../../../../custom-axios\"\n\nimport { customInstance } from \"../../../../custom-axios\"\nimport type {\n  BatchCreateBotResponse,\n  BatchCreateBotsRequestBodyInput,\n  BatchCreateScheduledBotResponse,\n  BatchCreateScheduledBotsRequestBodyInput,\n  CreateBotRequestBodyInput,\n  CreateBotResponse,\n  CreateScheduledBotRequestBodyInput,\n  CreateScheduledBotResponse,\n  DeleteBotDataParams,\n  DeleteBotDataResponse,\n  DeleteScheduledBotResponse,\n  GetBotDetailsResponse,\n  GetBotScreenshotsParams,\n  GetBotScreenshotsResponse,\n  GetBotStatusResponse,\n  GetScheduledBotResponse,\n  LeaveBotResponse,\n  ListBotsParams,\n  ListBotsResponse,\n  ListScheduledBotsParams,\n  ListScheduledBotsResponse,\n  PauseBotRecording200,\n  PauseBotRecordingBody,\n  ResendFinalWebhookResponse,\n  ResumeBotRecording200,\n  ResumeBotRecordingBody,\n  RetryCallbackRequestBodyInput,\n  RetryCallbackResponse,\n  SendChatMessage200,\n  SendChatMessageBody,\n  UpdateBotConfig200,\n  UpdateBotConfigBody,\n  UpdateScheduledBotRequestBodyInput,\n  UpdateScheduledBotResponse\n} from \"../../schema\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Create a bot to join a meeting immediately.\n    \n    The bot will automatically join the meeting, request recording permissions, and start recording once accepted. You can provide a bot-specific callback URL to receive bot.completed and bot.failed events for this bot (in addition to your account's webhooks). The bot will send webhook events for status changes, completion, and failures.\n    \n    Returns a `bot_id` (UUID) that you can use to track status, retrieve meeting data, and manage the bot. The bot will be queued immediately and join the meeting as soon as possible (may take up to 2 minutes depending on availability of bot slots).\n    \n    **Token Reservation:** 0.5 tokens are reserved immediately upon creation. These tokens will be consumed based on the bot's duration and outcome. If the bot fails due to user-responsible errors (`BOT_NOT_ACCEPTED`, `TIMEOUT_WAITING_TO_START`), recording tokens will be charged based on the time spent in the waiting room.\n    \n    **Deduplication:** By default, multiple bots can join the same meeting URL. Set `allow_multiple_bots: false` to prevent duplicate bots within 5 minutes. The deduplication check expires after 5 minutes, allowing a new bot to join the same meeting URL after that period.\n    \n    **Rate Limits:** Subject to your API key's rate limits and your team's daily bot cap. The daily bot cap is checked before token reservation. If the cap is reached, the request will fail with a 429 status code.\n    \n    **Error Scenarios:**\n    - `402 Payment Required`: Insufficient tokens available\n    - `409 Conflict`: Bot already exists for the same meeting URL (when `allow_multiple_bots` is false)\n    - `429 Too Many Requests`: Daily bot cap reached or rate limit exceeded\n * @summary Create a bot\n */\nexport const createBot = (\n  createBotRequestBodyInput: BodyType<CreateBotRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateBotResponse>(\n    {\n      url: \"/v2/bots\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createBotRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * List all bots for your team with pagination support.\n    \n    Filter by status (queued, joining, in_call_recording, transcribing, completed, failed), meeting platform (zoom, meet, teams), and date range. Results are ordered by creation date (newest first). Use cursor-based pagination for efficient navigation through large result sets.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The response includes a `next_cursor` if more results are available. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Filtering:** \n    - `status`: Filter by bot status (comma-separated for multiple statuses)\n    - `platform`: Filter by meeting platform (zoom, meet, teams)\n    - `created_after`: ISO 8601 timestamp - only return bots created after this time\n    - `created_before`: ISO 8601 timestamp - only return bots created before this time\n    \n    **Date Range:** The `created_after` and `created_before` filters use ISO 8601 timestamps. Results are limited to bots created within the last 90 days by default.\n    \n    Returns a paginated list of bots with metadata including bot ID, status, meeting platform, creation time, and basic configuration.\n * @summary List bots\n */\nexport const listBots = (\n  params: ListBotsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListBotsResponse>({ url: \"/v2/bots\", method: \"GET\", params }, options)\n}\n/**\n * Create multiple bots in a single request with partial success support.\n    \n    Processes each bot creation request sequentially (index 0, 1, 2...). Each item is validated and processed independently. If some bots fail to create, the request still returns 201 with a `data` array containing successful creations and an `errors` array containing failures. Each error includes the `index` of the failed item in the original request array.\n    \n    **Processing Order:** Items are processed in the order they appear in the request array. Each item goes through the same validation and checks as a single bot creation: platform detection, BYOK transcription check, daily bot cap check, token availability check, and deduplication lock acquisition.\n    \n    **Partial Success:** The response always has `success: true`, even if all items fail. Check the `errors` array to identify failed items. The `data` array contains successfully created bots with their `bot_id` and preserved `extra` metadata. The `errors` array contains failed items with `index`, `code`, `message`, `details`, and preserved `extra` metadata.\n    \n    **Daily Bot Cap:** The daily bot cap is checked per item, not per batch. If the cap is reached mid-batch, subsequent items will fail with `DAILY_BOT_CAP_REACHED` error. The cap is based on bots created in the last 24 hours.\n    \n    **Token Reservation:** Tokens are reserved individually for each successful bot creation (0.5 tokens per bot). If token availability becomes insufficient mid-batch, subsequent items will fail with `INSUFFICIENT_TOKENS`.\n    \n    **Error Index Mapping:** Each error includes an `index` field (0-based) that corresponds to the item's position in the request array. Use this to correlate errors with your original request. Validation errors include detailed validation issues in the `details` field.\n    \n    **Error Isolation:** Each bot creation is processed independently. If one bot creation fails, it does not affect other bots in the batch. Failed items are included in the `errors` array while successful items are in the `data` array.\n    \n    Returns 201 with partial success response. All items may succeed, all may fail, or any combination. Always check both `data` and `errors` arrays.\n * @summary Create multiple bots\n */\nexport const batchCreateBots = (\n  batchCreateBotsRequestBodyInput: BodyType<BatchCreateBotsRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<BatchCreateBotResponse>(\n    {\n      url: \"/v2/bots/batch\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: batchCreateBotsRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Get comprehensive information about a specific bot.\n    \n    Returns detailed bot information including current status, configuration, meeting metadata, and presigned URLs for all artifacts (video, audio, transcription, diarization). Artifact URLs are valid for 4 hours from the time of request. Returns `null` for artifacts if the bot's data has been deleted.\n    \n    **Artifact URLs:** All artifact URLs (video, audio, transcription, diarization) are presigned URLs that expire after 4 hours. If the bot's data has been deleted (via the delete-data endpoint or data retention policy), these fields will be `null`. The `artifacts_deleted` field indicates whether the bot's data has been permanently removed.\n    \n    **Status Information:** The response includes the bot's current status (`status` field) and timestamps for key events (joined_at, exited_at, created_at). If the bot failed, the response includes `error_code` and `error_message` fields with details about what went wrong.\n    \n    **Meeting Metadata:** Includes meeting platform, meeting URL, participants list, speakers list, and meeting duration (if available). Some metadata may be `null` if the bot failed before joining or if the information is not available.\n    \n    **Transcription Information:** If transcription was enabled, the response includes transcription provider, transcription IDs (for BYOK providers), and URLs to raw and processed transcription files.\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Get bot details\n */\nexport const getBotDetails = (botId: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<GetBotDetailsResponse>({ url: `/v2/bots/${botId}`, method: \"GET\" }, options)\n}\n/**\n * Get the current status of a bot, including the latest status code, transcription status, and timestamp.\n    \n    Useful for polling bot state without fetching the full bot details. Returns lightweight status information including the current status code, transcription status, and when the status was last updated (`updated_at`).\n    \n    **Response Fields:**\n    - `bot_id`: The UUID of the bot\n    - `status`: The current bot status (queued, joining, in_call_recording, transcribing, completed, failed)\n    - `transcription_status`: The current transcription status (not-applicable, not-started, queued, processing, done, error)\n    - `updated_at`: ISO 8601 timestamp when the status was last updated\n    \n    **Transcription Status:** The transcription status is fetched in real-time from the transcription provider (e.g., Gladia) if transcription is enabled. This allows you to track transcription progress separately from the bot's overall status.\n    \n    **Polling Considerations:** \n    - **Not Recommended for Active Monitoring:** Due to the nature of meetings running for extended periods (often hours), frequent polling is not recommended. Instead, use `callback_config` when creating bots or configure webhooks at the account level to receive real-time status updates.\n    - **Reconciliation Use Case:** This endpoint is better suited for reconciliation purposes (e.g., checking bot status after a webhook delivery failure or verifying final state).\n    - **If Polling is Necessary:** If you must poll, use a judicious interval (e.g., every 5-10 minutes) and implement exponential backoff to avoid rate limits. Consider the meeting duration when determining polling frequency.\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Get bot status\n */\nexport const getBotStatus = (botId: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<GetBotStatusResponse>(\n    { url: `/v2/bots/${botId}/status`, method: \"GET\" },\n    options\n  )\n}\n/**\n * Retrieve a paginated list of screenshot URLs captured during the meeting.\n    \n    Screenshots are taken periodically during the meeting and can be used to visualize meeting content. Each screenshot is a presigned URL valid for 4 hours.\n    \n    **Screenshot Availability:** \n    - Screenshots are only available for Google Meet and Microsoft Teams bots\n    - Screenshots are only available for bots with `recording_mode` set to `speaker_view` or `gallery_view`\n    - Audio-only recordings do not have screenshots\n    - Screenshots are captured at regular intervals during the meeting\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many screenshots are returned per page (default: 50, max: 100).\n    \n    **URL Expiration:** All screenshot URLs are presigned URLs that expire after 4 hours. If the bot's data has been deleted, this endpoint will return an empty list.\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Get bot screenshots\n */\nexport const getBotScreenshots = (\n  botId: string,\n  params: GetBotScreenshotsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<GetBotScreenshotsResponse>(\n    { url: `/v2/bots/${botId}/screenshots`, method: \"GET\", params },\n    options\n  )\n}\n/**\n * Instruct a bot to leave the meeting immediately.\n\n    The bot will stop recording and processing, then exit the meeting. Works for bots in any active state: `queued`, `joining_call`, `in_waiting_room`, `in_call_not_recording`, `in_call_recording`, `recording_paused`, or `recording_resumed`. Also works for scheduled bots that haven't spawned yet — the scheduled bot will be cancelled atomically. The bot will send a final webhook event when it leaves.\n\n    **Status Requirements:** The bot must be in an active (non-terminal) state. Bots that have already `completed` or `failed` cannot be left via this endpoint. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n\n    **Pre-Recording Stops:** If the bot hasn't started recording yet (e.g., still `queued` or in the waiting room), it will exit with an `EXITING_MEETING_BEFORE_RECORD` error code. No tokens are consumed for pre-recording stops.\n\n    **Token Consumption:** When a bot that was recording is manually left, tokens are consumed based on the duration from when recording started to when the bot left. The bot will transition to `completed` status and send a completion webhook.\n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Leave meeting\n */\nexport const leaveBot = (botId: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<LeaveBotResponse>(\n    { url: `/v2/bots/${botId}/leave`, method: \"POST\" },\n    options\n  )\n}\n/**\n * Send a chat message to the meeting through the bot.\n\n    The message will be sent as the bot in the meeting's chat. The bot must be actively in the meeting to send messages. Messages are limited to 500 characters and cannot be empty or whitespace-only.\n\n    **Status Requirements:** The bot must be in one of the following statuses: `in_call_not_recording`, `in_call_recording`, `recording_paused`, or `recording_resumed`. If the bot is in any other state (e.g., `queued`, `joining_call`, `in_waiting_room`, `completed`, `failed`), the request will fail with a 409 Conflict error (`FST_ERR_BOT_STATUS`).\n\n    **Chat Disabled:** Some meetings have chat disabled by the host or meeting policy. If the bot attempts to send a message in a meeting where chat is not available, the request will fail with a 422 Unprocessable Entity error (`FST_ERR_CHAT_DISABLED`). This is determined at runtime by the meeting platform and cannot be known in advance. Chat disabled detection works for Zoom and Microsoft Teams meetings. For Google Meet, message delivery is best-effort — the bot may report success even if the host has restricted chat permissions for external participants.\n\n    **Message Delivery:** The message is forwarded to the bot process which sends it through the meeting platform's chat API (Google Meet, Microsoft Teams, or Zoom). Delivery is best-effort — if the bot process is unreachable or the platform rejects the message, the request will fail with a 500 Internal Server Error (`FST_ERR_SEND_CHAT_MESSAGE_FAILED`).\n\n    **Message Persistence:** Successfully sent messages are included in the `chat_messages` artifact alongside received messages when the bot completes. Bot-sent messages have `sender_id: null` and the bot's display name as `sender_name`.\n\n    Returns 404 if the bot is not found, 409 if the bot's status does not allow this operation, or 422 if chat is disabled in the meeting.\n * @summary Send chat message\n */\nexport const sendChatMessage = (\n  botId: string,\n  sendChatMessageBody: BodyType<SendChatMessageBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<SendChatMessage200>(\n    {\n      url: `/v2/bots/${botId}/send-chat-message`,\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: sendChatMessageBody\n    },\n    options\n  )\n}\n/**\n * Pause the bot's recording during a meeting.\n\n    The bot stays in the meeting, but the paused portion is excluded from the final recording, transcript, and diarization. If you have streaming output enabled, the stream is paused too and no audio is forwarded until you resume.\n\n    **Status Requirements:** The bot must be actively recording (`in_call_recording`, or `recording_resumed` if it was previously paused). Bots that are already paused, still joining, or have finished will fail with a 409 Conflict.\n\n    **Chat Message:** Optionally include `chat_message` in the body to post a message in the meeting chat when pausing — e.g., \"Recording has been paused\".\n\n    **Pairing:** Use `POST /bots/{bot_id}/resume-recording` to continue. You can pause and resume as many times as needed within a single meeting.\n\n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Pause recording\n */\nexport const pauseBotRecording = (\n  botId: string,\n  pauseBotRecordingBody: BodyType<PauseBotRecordingBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<PauseBotRecording200>(\n    {\n      url: `/v2/bots/${botId}/pause-recording`,\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: pauseBotRecordingBody\n    },\n    options\n  )\n}\n/**\n * Resume a bot's recording after it was paused.\n\n    Meeting content from this point onward is captured again and included in the final recording, transcript, and diarization. If you have streaming output enabled, audio resumes flowing. Timestamps in the final artifacts are continuous across the pause — the paused gap is collapsed, not represented as silence.\n\n    **Status Requirements:** The bot must be in `recording_paused` status. Bots that are already recording, still joining, or have finished will fail with a 409 Conflict.\n\n    **Chat Message:** Optionally include `chat_message` in the body to post a message in the meeting chat when resuming — e.g., \"Recording has resumed\".\n\n    **Pairing:** Follows a prior `POST /bots/{bot_id}/pause-recording`. You can pause and resume multiple times within a single meeting.\n\n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Resume recording\n */\nexport const resumeBotRecording = (\n  botId: string,\n  resumeBotRecordingBody: BodyType<ResumeBotRecordingBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ResumeBotRecording200>(\n    {\n      url: `/v2/bots/${botId}/resume-recording`,\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: resumeBotRecordingBody\n    },\n    options\n  )\n}\n/**\n * Permanently delete all bot data including recordings, transcripts, summaries, and screenshots.\n    \n    This operation is irreversible. All artifacts (video, audio, transcription, diarization, screenshots) will be permanently deleted. Optionally delete transcription data from the transcription provider as well using the `delete_transcription` query parameter.\n    \n    **Data Deletion:** \n    - All artifacts (video, audio, transcription, diarization, screenshots) are permanently deleted\n    - The `artifacts_deleted` field is set to `true`\n    - Artifact URLs will return `null` in subsequent API calls\n    - Bot metadata remains accessible but all associated data is removed\n    \n    **Transcription Provider Deletion:** If `delete_transcription=true` is provided, the transcription data will also be deleted from the transcription provider (e.g., Gladia). This requires the bot to have transcription enabled and a transcription provider configured. If the bot uses BYOK transcription, you must have access to the transcription provider API key.\n    \n    **Irreversible Operation:** Once data is deleted, it cannot be recovered. Make sure you have downloaded or backed up any data you need before calling this endpoint.\n    \n    **Status Requirements:** The bot must be in `completed` or `failed` status. Bots that are still in progress (queued, joining, in_call_recording, transcribing) cannot have their data deleted. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Delete bot data\n */\nexport const deleteBotData = (\n  botId: string,\n  params: DeleteBotDataParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<DeleteBotDataResponse>(\n    { url: `/v2/bots/${botId}/delete-data`, method: \"DELETE\", params },\n    options\n  )\n}\n/**\n * Resend the final webhook (completed or failed) for a bot.\n    \n    Useful if the webhook delivery failed or you need to reprocess the webhook event. The webhook will be sent to all configured webhook endpoints for your account.\n    \n    **Webhook Delivery:** The webhook will be sent to all configured webhook endpoints for your account. The webhook payload will be identical to the original final webhook (either `bot.completed` or `bot.failed` event).\n    \n    **Status Requirements:** The bot must be in `completed` or `failed` status. Bots that are still in progress cannot have their final webhook resent. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Use Cases:** \n    - Webhook delivery failed due to network issues\n    - Webhook endpoint was temporarily unavailable\n    - Need to reprocess a webhook event\n    - Testing webhook integration\n    \n    **Idempotency:** This operation is idempotent. You can call it multiple times, and it will resend the webhook each time. There is no limit on how many times you can resend a webhook.\n    \n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation.\n * @summary Resend final webhook\n */\nexport const resendFinalWebhook = (\n  botId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ResendFinalWebhookResponse>(\n    { url: `/v2/bots/${botId}/resend-webhook`, method: \"POST\" },\n    options\n  )\n}\n/**\n * Retry sending the transcription callback for a bot.\n    \n    You can override the callback configuration (URL, method, secret) if needed. Only works for bots that have completed or failed. The callback will be sent to the provided URL (or the bot's original callback URL if not overridden).\n    \n    **Callback Configuration:** You can override the callback URL, HTTP method (POST or PUT), and secret in the request body. If not provided, the bot's original callback configuration will be used. The secret will be included in the `x-mb-secret` header for validation.\n    \n    **Status Requirements:** The bot must be in `completed` or `failed` status and must have had transcription enabled. Bots without transcription or bots that are still in progress cannot have their callback retried. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Callback Payload:** The callback payload will be identical to the original callback (either `bot.completed` or `bot.failed` event with transcription data). The payload format matches the webhook format.\n    \n    **Use Cases:**\n    - Callback delivery failed due to network issues\n    - Callback endpoint was temporarily unavailable\n    - Need to send callback to a different endpoint\n    - Testing callback integration\n    \n    **Idempotency:** This operation is idempotent. You can call it multiple times with the same or different configurations.\n    \n    Returns 404 if the bot is not found, or 409 if the bot's status does not allow this operation or if no callback was configured.\n * @summary Retry callback\n */\nexport const retryCallback = (\n  botId: string,\n  retryCallbackRequestBodyInput: BodyType<RetryCallbackRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<RetryCallbackResponse>(\n    {\n      url: `/v2/bots/${botId}/retry-callback`,\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: retryCallbackRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Update bot configuration (currently only supports updating the extra parameter).\n    \n    Allows updating the `extra` metadata even while the bot is running. The updated extra will be reflected in subsequent webhooks and API responses. This is useful when your system evolves and you need to attach additional tracking information to a bot after it has started.\n    \n    **Merge Behavior:** The `extra` parameter performs a shallow merge with the existing extra object:\n    - New keys are added to the existing extra object\n    - Existing keys are overwritten with new values\n    - Keys not included in the update request remain unchanged\n    - Pass `null` to clear all extra data\n    \n    **Example Merge:**\n    - Current extra: `{ \"customer_id\": \"123\", \"session_id\": \"abc\" }`\n    - Update with: `{ \"session_id\": \"xyz\", \"order_id\": \"456\" }`\n    - Result: `{ \"customer_id\": \"123\", \"session_id\": \"xyz\", \"order_id\": \"456\" }`\n    \n    **Webhook Behavior:** After updating extra, all future webhooks (including status updates) will use the new value from the database. The updated extra is fetched in real-time for each webhook, ensuring consistency.\n    \n    **Works for Any Bot Status:** You can update extra for bots in any status (queued, recording, completed, failed). This allows you to add correlation metadata even after a bot has finished.\n    \n    **Use Cases:**\n    - Add tracking IDs after bot creation\n    - Update correlation metadata when your system state changes\n    - Fix incorrect tracking information\n    - Add additional context for completed bots\n    \n    Returns 404 if the bot is not found or does not belong to your team.\n * @summary Update bot configuration\n */\nexport const updateBotConfig = (\n  botId: string,\n  updateBotConfigBody: BodyType<UpdateBotConfigBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<UpdateBotConfig200>(\n    {\n      url: `/v2/bots/${botId}/update-config`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: updateBotConfigBody\n    },\n    options\n  )\n}\n/**\n * Schedule a bot to join a meeting at a specific time in the future.\n    \n    The bot will automatically join the meeting at the specified `join_at` time (ISO 8601 timestamp). You can provide a callback URL to receive events for this bot. The bot configuration is stored immediately, but token reservation and daily bot cap checks are performed when the bot actually joins the meeting.\n    \n    **Scheduling:** The `join_at` timestamp must be in the future (at least 1 minute ahead). The bot will automatically attempt to join the meeting at the specified time. There may be a small processing delay (typically less than a minute).\n    \n    **Token Reservation:** Tokens are NOT reserved at creation time. Token availability and daily bot cap are checked when the bot actually joins the meeting. If tokens are insufficient or the daily cap is reached at join time, the bot will fail with an appropriate error and transition to `failed` status.\n    \n    **Deduplication:** Deduplication is checked when the bot joins, not at creation time. This means you can schedule multiple bots for the same meeting URL, but only one will successfully join (unless `allow_multiple_bots` is true).\n    \n    **Status:** The scheduled bot starts in `scheduled` status and transitions to `completed` when the bot instance is created and queued to join. If the bot fails to join, it transitions to `failed` status.\n    \n    **Updates and Deletions:** Scheduled bots can be updated or deleted as long as they are in `scheduled` status and the join time is at least 4 minutes in the future. This ensures the bot can be modified before it starts processing.\n    \n    Returns a `bot_id` (UUID) that you can use to track and manage the scheduled bot. This UUID will be reused as the bot's UUID when it actually joins.\n * @summary Create scheduled bot\n */\nexport const createScheduledBot = (\n  createScheduledBotRequestBodyInput: BodyType<CreateScheduledBotRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateScheduledBotResponse>(\n    {\n      url: \"/v2/bots/scheduled\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createScheduledBotRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Retrieve a paginated list of scheduled bots.\n    \n    Supports filtering by status (`scheduled`, `completed`, `failed`) and date range. Results are ordered by scheduled join time (earliest first). Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 20, max: 100).\n    \n    **Filtering:**\n    - `status`: Filter by scheduled bot status (comma-separated for multiple statuses)\n    - `scheduled_after`: ISO 8601 timestamp - only return bots scheduled to join after this time\n    - `scheduled_before`: ISO 8601 timestamp - only return bots scheduled to join before this time\n    - `bot_id`, `bot_name`, `meeting_url`: case-insensitive partial match\n    - `meeting_platform`: comma-separated list of `zoom`, `meet`, `teams`\n    - `extra`: filter by values in the `extra` JSON payload using `key:value` syntax (comma-separated for multiple conditions, e.g. `extra=customer_id:12345,project:sales`). Values match exactly (case-sensitive); scheduled bots without the key are excluded.\n\n    **Status Values:**\n    - `scheduled`: Bot is scheduled but has not yet joined\n    - `completed`: Bot instance was created and queued to join (bot may still be joining)\n    - `failed`: Bot failed to join (token issues, daily cap, etc.)\n    \n    Returns a paginated list of scheduled bots with metadata including bot ID, scheduled join time, status, and basic configuration.\n * @summary List scheduled bots\n */\nexport const listScheduledBots = (\n  params: ListScheduledBotsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListScheduledBotsResponse>(\n    { url: \"/v2/bots/scheduled\", method: \"GET\", params },\n    options\n  )\n}\n/**\n * Create multiple scheduled bots in a single request with partial success support.\n    \n    Processes each scheduled bot creation request sequentially. Each item is validated and processed independently. Token reservation and daily bot cap checks are NOT performed at creation time - they are performed when each bot actually joins the meeting.\n    \n    **Processing Order:** Items are processed in the order they appear in the request array. Each item goes through validation: platform detection, BYOK transcription check, and join time validation. Unlike immediate bot creation, daily bot cap and token availability are not checked at creation time.\n    \n    **Partial Success:** The response always has `success: true`, even if all items fail. Check the `errors` array to identify failed items. The `data` array contains successfully scheduled bots with their `bot_id` and preserved `extra` metadata.\n    \n    **Join Time Validation:** Each scheduled bot's `join_at` time must be in the future (at least 1 minute ahead). If a join time is invalid, that item will fail with a validation error, but other items will continue processing.\n    \n    **Error Scenarios:** \n    - Validation errors: Invalid join time, invalid meeting URL, invalid configuration\n    - Platform detection failures: `INVALID_MEETING_PLATFORM`\n    - BYOK not enabled: `BYOK_TRANSCRIPTION_NOT_ENABLED_ON_PLAN`\n    - System failures: `BOT_CREATE_FAILED`\n    \n    **Note:** Daily bot cap and token availability are checked when each bot joins, not at creation time. If these checks fail at join time, the bot will transition to `failed` status and send a failure webhook.\n    \n    Returns 201 with partial success response. All items may succeed, all may fail, or any combination.\n * @summary Create multiple scheduled bots\n */\nexport const batchCreateScheduledBots = (\n  batchCreateScheduledBotsRequestBodyInput: BodyType<BatchCreateScheduledBotsRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<BatchCreateScheduledBotResponse>(\n    {\n      url: \"/v2/bots/scheduled/batch\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: batchCreateScheduledBotsRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Retrieve detailed information about a specific scheduled bot.\n    \n    Returns the scheduled bot's configuration, scheduled join time, current status, and associated bot instance (if the bot has already joined). Includes all the same configuration options as immediate bot creation.\n    \n    **Status Information:** The response includes the scheduled bot's current status (`scheduled`, `completed`, or `failed`) and when the status was last updated. If the bot has joined, the response includes a link to the actual bot instance.\n    \n    **Scheduled Join Time:** The `join_at` field contains the ISO 8601 timestamp when the bot is scheduled to join the meeting.\n    \n    **Bot Instance:** If the scheduled bot has transitioned to `completed` status, the bot instance has been created and is queued to join. You can use the `bot_id` (which will be reused as the bot's UUID when it joins) to query the bot's status and retrieve meeting data once it has joined.\n    \n    **Updates and Deletions:** If the bot is in `scheduled` status and the join time is at least 4 minutes in the future, you can update or delete the scheduled bot. This ensures the bot can be modified before it starts processing.\n    \n    Returns 404 if the scheduled bot is not found or does not belong to your team.\n * @summary Get scheduled bot details\n */\nexport const getScheduledBotDetails = (\n  botId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<GetScheduledBotResponse>(\n    { url: `/v2/bots/scheduled/${botId}`, method: \"GET\" },\n    options\n  )\n}\n/**\n * Update a scheduled bot's configuration or scheduled join time.\n    \n    The bot must be in `scheduled` status and the join time must be at least 4 minutes in the future. This ensures the bot can be updated before it starts processing.\n    \n    **Updateable Fields:** You can update any configuration field (bot name, image, recording mode, transcription settings, etc.) and the scheduled join time (`join_at`). All fields are optional - only provided fields will be updated.\n    \n    **Join Time Requirements:** \n    - The new `join_at` time must be in the future\n    - The bot must be in `scheduled` status\n    - The join time must be at least 4 minutes in the future (lock window)\n    - If the join time is too close, the request will fail with 409 Conflict\n    \n    **Status Requirements:** The bot must be in `scheduled` status. Bots that have already joined (`completed`) or failed (`failed`) cannot be updated. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Validation:** All updated fields are validated using the same rules as bot creation. Invalid configurations will result in a 400 Bad Request error.\n    \n    Returns 404 if the scheduled bot is not found, or 409 if the bot's status does not allow update or the join time is too close.\n * @summary Update scheduled bot\n */\nexport const updateScheduledBot = (\n  botId: string,\n  updateScheduledBotRequestBodyInput: BodyType<UpdateScheduledBotRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<UpdateScheduledBotResponse>(\n    {\n      url: `/v2/bots/scheduled/${botId}`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: updateScheduledBotRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Cancel and delete a scheduled bot. The behavior depends on where the bot is in its lifecycle when you call this:\n\n    - **Not yet launched** — the schedule is cancelled and the bot never starts.\n    - **Launched but not yet in the meeting** — the bot exits before joining, with an `EXITING_MEETING_BEFORE_RECORD` error code. No meeting content is captured.\n    - **Already in the meeting** — the bot leaves. Whatever it captured up to that point (audio, video, transcript, diarization) is still processed and delivered as usual.\n\n    **Status Requirements:** The scheduled bot must not already be `cancelled`, `completed`, or `failed`. If the bot is in a terminal state, the request will fail with a 409 Conflict status.\n\n    **Irreversible Operation:** Once a scheduled bot is cancelled, it cannot be recovered.\n\n    **Token Impact:** Tokens are not reserved for scheduled bots, so cancelling before the bot joins a meeting has no impact on your token balance. If the bot had already started recording, tokens are consumed only for the recorded portion — you won't be charged for time after the cancellation.\n\n    Returns 404 if the scheduled bot is not found, or 409 if the bot's status does not allow deletion.\n * @summary Delete scheduled bot\n */\nexport const deleteScheduledBot = (\n  botId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<DeleteScheduledBotResponse>(\n    { url: `/v2/bots/scheduled/${botId}`, method: \"DELETE\" },\n    options\n  )\n}\nexport type CreateBotResult = NonNullable<Awaited<ReturnType<typeof createBot>>>\nexport type ListBotsResult = NonNullable<Awaited<ReturnType<typeof listBots>>>\nexport type BatchCreateBotsResult = NonNullable<Awaited<ReturnType<typeof batchCreateBots>>>\nexport type GetBotDetailsResult = NonNullable<Awaited<ReturnType<typeof getBotDetails>>>\nexport type GetBotStatusResult = NonNullable<Awaited<ReturnType<typeof getBotStatus>>>\nexport type GetBotScreenshotsResult = NonNullable<Awaited<ReturnType<typeof getBotScreenshots>>>\nexport type LeaveBotResult = NonNullable<Awaited<ReturnType<typeof leaveBot>>>\nexport type SendChatMessageResult = NonNullable<Awaited<ReturnType<typeof sendChatMessage>>>\nexport type PauseBotRecordingResult = NonNullable<Awaited<ReturnType<typeof pauseBotRecording>>>\nexport type ResumeBotRecordingResult = NonNullable<Awaited<ReturnType<typeof resumeBotRecording>>>\nexport type DeleteBotDataResult = NonNullable<Awaited<ReturnType<typeof deleteBotData>>>\nexport type ResendFinalWebhookResult = NonNullable<Awaited<ReturnType<typeof resendFinalWebhook>>>\nexport type RetryCallbackResult = NonNullable<Awaited<ReturnType<typeof retryCallback>>>\nexport type UpdateBotConfigResult = NonNullable<Awaited<ReturnType<typeof updateBotConfig>>>\nexport type CreateScheduledBotResult = NonNullable<Awaited<ReturnType<typeof createScheduledBot>>>\nexport type ListScheduledBotsResult = NonNullable<Awaited<ReturnType<typeof listScheduledBots>>>\nexport type BatchCreateScheduledBotsResult = NonNullable<\n  Awaited<ReturnType<typeof batchCreateScheduledBots>>\n>\nexport type GetScheduledBotDetailsResult = NonNullable<\n  Awaited<ReturnType<typeof getScheduledBotDetails>>\n>\nexport type UpdateScheduledBotResult = NonNullable<Awaited<ReturnType<typeof updateScheduledBot>>>\nexport type DeleteScheduledBotResult = NonNullable<Awaited<ReturnType<typeof deleteScheduledBot>>>\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\nimport type { BodyType } from \"../../../../custom-axios\"\n\nimport { customInstance } from \"../../../../custom-axios\"\nimport type {\n  CreateCalendarBotRequestBodyInput,\n  CreateCalendarBotResponse,\n  CreateCalendarConnectionRequestBodyInput,\n  CreateCalendarConnectionResponse,\n  DeleteCalendarBotBody,\n  DeleteCalendarBotResponse,\n  DeleteCalendarConnectionResponse,\n  GetCalendarDetailsResponse,\n  GetEventDetailsResponse,\n  ListCalendarsParams,\n  ListCalendarsResponse,\n  ListEventSeriesParams,\n  ListEventSeriesResponse,\n  ListEventsParams,\n  ListEventsResponse,\n  ListRawCalendarsRequestBodyInput,\n  ListRawCalendarsResponse,\n  ResubscribeCalendarResponse,\n  SyncCalendarResponse,\n  UpdateCalendarBotRequestBodyInput,\n  UpdateCalendarBotResponse,\n  UpdateCalendarConnectionRequestBodyInput,\n  UpdateCalendarConnectionResponse\n} from \"../../schema\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Preview available calendars from a Google or Microsoft account before creating a connection.\n    \n    Requires OAuth credentials (client ID, client secret, refresh token) to authenticate and list calendars. This endpoint does not create a connection - it only lists the calendars that are available for the given OAuth credentials. Useful for allowing users to select which calendars to sync.\n    \n    **OAuth Credentials:** You must provide valid OAuth credentials for the calendar provider. The endpoint will use the refresh token to obtain an access token and list calendars. If the refresh token is invalid or expired, the request will fail with 401 Unauthorized.\n    \n    **Calendar Information:** Returns a list of calendars with their IDs, names, descriptions, and whether they are primary calendars. Calendar IDs differ between providers (Google uses email-like IDs, Microsoft uses GUIDs).\n    \n    **Use Case:** This endpoint is typically called before creating a calendar connection to show users which calendars are available. Users can then select which calendars they want to sync.\n    \n    Returns 401 if OAuth token refresh failed, or 403 if a Microsoft account license is required.\n * @summary List raw calendars (preview before creating connection)\n */\nexport const listRawCalendars = (\n  listRawCalendarsRequestBodyInput: BodyType<ListRawCalendarsRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListRawCalendarsResponse>(\n    {\n      url: \"/v2/calendars/list-raw\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: listRawCalendarsRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Connect a Google or Microsoft calendar to your account.\n    \n    The connection will automatically sync events and create push subscriptions for real-time updates. You must provide your own OAuth credentials (client ID, secret, refresh token). Once connected, the calendar will be synced immediately, and webhook subscriptions will be created for real-time event updates.\n    \n    **OAuth Credentials:** You must provide valid OAuth credentials for the calendar provider. The endpoint will validate the credentials by attempting to refresh the access token. If the refresh token is invalid or expired, the request will fail with 401 Unauthorized.\n    \n    **Initial Sync:** After creating the connection, an initial sync is performed automatically. This fetches all events from the calendar provider. The sync may take a few minutes for calendars with many events.\n    \n    **Push Subscriptions:** A push subscription is created automatically for real-time event updates. The subscription will send webhooks when events are created, updated, or cancelled.\n    \n    **Calendar Limits:** There may be limits on the number of calendar connections per team. If the limit is exceeded, the request will fail with 429 Status Code.\n    \n    **Duplicate Connections:** If a connection already exists for the same calendar ID and team, the request will fail with 409 Conflict. You can update an existing connection using the PATCH endpoint instead.\n    \n    Returns 201 with the newly created calendar connection. Returns 401 if OAuth token refresh failed, 429 if the calendar connection limit is exceeded, or 409 if the connection already exists.\n * @summary Create calendar connection\n */\nexport const createCalendarConnection = (\n  createCalendarConnectionRequestBodyInput: BodyType<CreateCalendarConnectionRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateCalendarConnectionResponse>(\n    {\n      url: \"/v2/calendars\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createCalendarConnectionRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Retrieve a paginated list of calendar connections.\n    \n    Supports filtering by calendar platform (google, microsoft) and connection status (active, error, revoked, permission_denied). Results are ordered by creation date (newest first). Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Filtering:**\n    - `platform`: Filter by calendar platform (google, microsoft)\n    - `status`: Filter by connection status (active, error, revoked, permission_denied)\n    \n    **Connection Status:**\n    - `active`: Connection is working and syncing events\n    - `error`: Connection has errors (OAuth token refresh failed, etc.)\n    - `revoked`: OAuth access was revoked by the user\n    - `permission_denied`: Insufficient permissions for the OAuth scopes\n    \n    Returns a paginated list of calendar connections with metadata including calendar ID, platform, account email, status, and last sync time.\n * @summary List calendar connections\n */\nexport const listCalendars = (\n  params: ListCalendarsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListCalendarsResponse>(\n    { url: \"/v2/calendars\", method: \"GET\", params },\n    options\n  )\n}\n/**\n * Retrieve detailed information about a specific calendar connection.\n    \n    Returns the calendar connection's configuration, sync status, subscription status, and last sync time. Includes information about the OAuth credentials (without exposing sensitive data) and the calendar's metadata.\n    \n    **Sync Status:** The response includes the last sync time and whether the connection is actively syncing. If the connection has errors, the error information is included.\n    \n    **Subscription Status:** Includes information about the push subscription, including when it was created and when it expires. Subscriptions expire after a certain period and need to be renewed using the resubscribe endpoint.\n    \n    **Calendar Metadata:** Includes the calendar's ID, name, platform, and account email. This information is fetched from the calendar provider during the initial sync.\n    \n    Returns 404 if the calendar connection is not found or does not belong to your team.\n * @summary Get calendar connection details\n */\nexport const getCalendarDetails = (\n  calendarId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<GetCalendarDetailsResponse>(\n    { url: `/v2/calendars/${calendarId}`, method: \"GET\" },\n    options\n  )\n}\n/**\n * Disconnect and delete a calendar connection.\n    \n    This will stop syncing events and remove all associated calendar data (events, event instances, series). The push subscription will be cancelled automatically. This operation is irreversible.\n    \n    **Data Deletion:** All calendar data associated with this connection will be deleted:\n    - Event series and instances\n    - Calendar bot schedules\n    - Sync history\n    \n    **Subscription Cancellation:** The push subscription is cancelled automatically when the connection is deleted. You will no longer receive webhooks for this calendar.\n    \n    **Irreversible Operation:** Once a calendar connection is deleted, it cannot be recovered. All associated data is permanently removed. If you need to reconnect the calendar, you must create a new connection.\n    \n    **Bot Schedules:** If there are active calendar bot schedules for events in this calendar, they will be cancelled when the connection is deleted. Bots that have already joined meetings will continue to function normally.\n    \n    Returns 200 with confirmation of deletion. Returns 404 if the calendar connection is not found or does not belong to your team.\n * @summary Delete calendar connection\n */\nexport const deleteCalendarConnection = (\n  calendarId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<DeleteCalendarConnectionResponse>(\n    { url: `/v2/calendars/${calendarId}`, method: \"DELETE\" },\n    options\n  )\n}\n/**\n * Update a calendar connection with new OAuth credentials.\n    \n    Useful when refresh tokens expire or credentials need to be rotated. The connection will be validated and a new push subscription will be created. The old subscription will be cancelled automatically.\n    \n    **OAuth Credentials:** You can update the client ID, client secret, and refresh token. All fields are optional - only provided fields will be updated. The endpoint will validate the new credentials by attempting to refresh the access token.\n    \n    **Validation:** After updating credentials, the connection is validated by attempting to refresh the access token. If the refresh fails, the connection status is updated to `error` and the request may fail with 401 Unauthorized.\n    \n    **Subscription Renewal:** A new push subscription is created automatically after updating credentials. The old subscription is cancelled to prevent duplicate webhooks.\n    \n    **Use Cases:**\n    - Refresh token expired and needs to be renewed\n    - OAuth credentials rotated for security\n    - Fixing connection errors by updating credentials\n    \n    Returns 200 with the updated calendar connection. Returns 401 if OAuth token refresh failed, 403 if permission is denied, or 404 if the calendar connection is not found.\n * @summary Update calendar connection\n */\nexport const updateCalendarConnection = (\n  calendarId: string,\n  updateCalendarConnectionRequestBodyInput: BodyType<UpdateCalendarConnectionRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<UpdateCalendarConnectionResponse>(\n    {\n      url: `/v2/calendars/${calendarId}`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: updateCalendarConnectionRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Manually trigger a sync of calendar events.\n    \n    This will fetch all events from the calendar provider and update the calendar data. Events are normally synced automatically via push subscriptions, but you can use this endpoint to force a sync (e.g., after fixing connection errors or when you need immediate updates).\n    \n    **Sync Process:** The sync process fetches all events from the calendar provider. New events are added, updated events are modified, and cancelled events are marked as deleted. The sync may take a few minutes for calendars with many events.\n    \n    **Incremental vs Full Sync:** The endpoint performs a full sync, fetching all events from the calendar. Incremental syncs happen automatically via push subscriptions when events are created, updated, or cancelled.\n    \n    **Use Cases:**\n    - Force a sync after fixing connection errors\n    - Get immediate updates without waiting for push notifications\n    - Recover from missed push notifications\n    - Initial sync after creating a connection (though this happens automatically)\n    \n    **Response:** The response includes information about the sync operation, including how many events were synced. The actual event data is available via the list events endpoint.\n    \n    Returns 200 with sync results. Returns 401 if OAuth token refresh failed, or 404 if the calendar connection is not found.\n * @summary Sync calendar events\n */\nexport const syncCalendar = (\n  calendarId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<SyncCalendarResponse>(\n    { url: `/v2/calendars/${calendarId}/sync`, method: \"POST\" },\n    options\n  )\n}\n/**\n * Renew or recreate the push subscription for a calendar connection.\n    \n    Useful when subscriptions expire or need to be refreshed. A new subscription will be created and the old one will be cancelled. Subscriptions expire after a certain period (3 days for Microsoft, longer for Google) and need to be renewed periodically.\n    \n    **Subscription Renewal:** The endpoint creates a new push subscription with the calendar provider. The old subscription is cancelled to prevent duplicate webhooks. The new subscription will send webhooks for all calendar events (created, updated, cancelled).\n    \n    **Subscription Expiration:** Subscriptions expire automatically after a certain period:\n    - Microsoft: 3 days maximum\n    - Google: Longer period (varies)\n    \n    When a subscription expires, you will stop receiving webhook notifications. Use this endpoint to renew the subscription before it expires.\n    \n    **Use Cases:**\n    - Subscription is about to expire\n    - Subscription has expired and webhooks stopped working\n    - Need to refresh subscription for troubleshooting\n    \n    **Response:** The response includes information about the new subscription, including when it was created and when it expires.\n    \n    Returns 200 with subscription information. Returns 401 if OAuth token refresh failed, 403 if permission is denied, or 404 if the calendar connection is not found.\n * @summary Resubscribe to calendar webhooks\n */\nexport const resubscribeCalendar = (\n  calendarId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ResubscribeCalendarResponse>(\n    { url: `/v2/calendars/${calendarId}/resubscribe`, method: \"POST\" },\n    options\n  )\n}\n/**\n * Retrieve a paginated list of calendar events.\n    \n    Supports filtering by date range, status (confirmed, cancelled, tentative), and whether events are deleted. Results include whether a bot is scheduled for each event. Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Filtering:**\n    - `start_after`: ISO 8601 timestamp - only return events starting after this time\n    - `start_before`: ISO 8601 timestamp - only return events starting before this time\n    - `status`: Filter by event status (confirmed, cancelled, tentative)\n    - `include_deleted`: Include deleted events in results (default: false)\n    \n    **Event Information:** Each event includes its ID, title, start/end times, status, meeting URL (if available), meeting platform (if detected), and whether a bot is scheduled for the event.\n    \n    **Bot Scheduling:** The `bot_scheduled` field indicates whether a calendar bot schedule exists for this event. This does not mean the bot has joined - it means a bot is scheduled to join when the event starts.\n    \n    Returns a paginated list of calendar events with metadata.\n * @summary List calendar events\n */\nexport const listEvents = (\n  calendarId: string,\n  params: ListEventsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListEventsResponse>(\n    { url: `/v2/calendars/${calendarId}/events`, method: \"GET\", params },\n    options\n  )\n}\n/**\n * Retrieve a paginated list of event series (both one-off and recurring events).\n    \n    Each series includes its associated event instances. Supports filtering by event type (one_off, recurring) and whether series are deleted. Use cursor-based pagination for efficient navigation.\n    \n    **Pagination:** Uses cursor-based pagination. Provide a `cursor` query parameter to fetch the next page. The `limit` parameter controls how many results are returned per page (default: 50, max: 250).\n    \n    **Event Types:**\n    - `one_off`: Single events (not part of a recurring series)\n    - `recurring`: Events that are part of a recurring series\n    \n    **Series Information:** Each series includes its series ID, event type, whether a bot is scheduled for all occurrences (`series_bot_scheduled`), and an array of event instances. For one-off events, the instances array contains a single instance. For recurring events, it contains all instances that have been synced.\n    \n    **Filtering:**\n    - `event_type`: Filter by event type (one_off, recurring)\n    - `include_deleted`: Include deleted series in results (default: false)\n    \n    **Bot Scheduling:** The `series_bot_scheduled` field indicates whether a calendar bot schedule exists for all occurrences of this series. Individual instances may have different bot scheduling status.\n    \n    Returns a paginated list of event series with their instances.\n * @summary List event series\n */\nexport const listEventSeries = (\n  calendarId: string,\n  params: ListEventSeriesParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListEventSeriesResponse>(\n    { url: `/v2/calendars/${calendarId}/series`, method: \"GET\", params },\n    options\n  )\n}\n/**\n * Retrieve detailed information about a specific calendar event.\n    \n    Returns comprehensive event information including attendees, meeting URL, meeting platform, status, and whether a bot is scheduled. Returns deleted events as well (use the `include_deleted` parameter or check the `deleted_at` field).\n    \n    **Event Details:** Includes all event metadata:\n    - Title, description, location\n    - Start and end times (ISO 8601 timestamps)\n    - Status (confirmed, cancelled, tentative)\n    - Attendees list\n    - Meeting URL (if available)\n    - Meeting platform (if detected from URL)\n    - Whether it's an all-day event\n    - Whether it's an exception to a recurring series\n    \n    **Bot Scheduling:** The `bot_scheduled` field indicates whether a calendar bot schedule exists for this event. If the event is part of a recurring series, the `series_bot_scheduled` field indicates whether a bot is scheduled for all occurrences.\n    \n    **Deleted Events:** Deleted events are included in the response. Check the `deleted_at` field to determine if an event has been deleted. Deleted events may still have associated bot schedules if they were scheduled before deletion.\n    \n    Returns 404 if the event is not found or does not belong to the specified calendar.\n * @summary Get event details\n */\nexport const getEventDetails = (\n  calendarId: string,\n  eventId: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<GetEventDetailsResponse>(\n    { url: `/v2/calendars/${calendarId}/events/${eventId}`, method: \"GET\" },\n    options\n  )\n}\n/**\n * Schedule a bot to automatically join a calendar event.\n    \n    You can schedule for all occurrences of a recurring event or specific event instances. The bot will use the meeting URL from the event. Returns partial success if some events fail to schedule (e.g., if a bot is already scheduled or if the event doesn't have a meeting URL).\n    \n    **Scheduling Options:**\n    - `series_id`: Schedule for all occurrences of a recurring series\n    - `event_id`: Schedule for a specific event instance\n    - `all_occurrences`: Schedule for all future occurrences (for recurring events)\n    \n    **Meeting URL Requirement:** The event must have a meeting URL. If the event doesn't have a meeting URL, the scheduling will fail for that event. The meeting platform is automatically detected from the URL.\n    \n    **Bot Configuration:** You can provide bot configuration (name, image, recording mode, transcription settings, etc.) that will be used for all scheduled bots. The configuration applies to all events you're scheduling for.\n    \n    **Partial Success:** If you're scheduling for multiple events (e.g., all occurrences of a series), some events may fail to schedule (e.g., if a bot is already scheduled). The response includes information about which events succeeded and which failed.\n    \n    **Token Reservation:** Tokens are NOT reserved at scheduling time. Token availability and daily bot cap are checked when each bot actually joins the meeting. If tokens are insufficient or the daily cap is reached at join time, the bot will fail with an appropriate error.\n    \n    **Status:** The calendar bot schedule starts in `scheduled` status and transitions to `completed` when the bot instance is created and queued to join. If the bot fails to join, it transitions to `failed` status.\n    \n    Returns 201 with scheduling results. Returns 404 if the event series or event is not found.\n * @summary Schedule bot for calendar event\n */\nexport const createCalendarBot = (\n  calendarId: string,\n  createCalendarBotRequestBodyInput: BodyType<CreateCalendarBotRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateCalendarBotResponse>(\n    {\n      url: `/v2/calendars/${calendarId}/bots`,\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createCalendarBotRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Update one or more calendar bots for a calendar.\n    \n    You can target a single event or all occurrences in a series using `series_id`, `all_occurrences`, and `event_id` in the request body. The bot must be in `scheduled` status and the join time must be at least 4 minutes in the future.\n    \n    **Update Targets:**\n    - `event_id`: Update bot for a specific event instance\n    - `series_id`: Update bots for all occurrences of a series\n    - `all_occurrences`: Update all future occurrences (for recurring events)\n    \n    **Updateable Fields:** You can update any bot configuration field (bot name, image, recording mode, transcription settings, etc.). All fields are optional - only provided fields will be updated.\n    \n    **Status Requirements:** The bot must be in `scheduled` status. Bots that have already joined (`completed`) or failed (`failed`) cannot be updated. If the bot is in an invalid state, the request will fail with a 409 Conflict status.\n    \n    **Join Time Requirements:** The join time must be at least 4 minutes in the future. If the join time is too close, the request will fail with 409 Conflict. This ensures the bot can be updated before it starts processing.\n    \n    **Partial Updates:** If updating multiple bots (e.g., all occurrences of a series), some bots may fail to update (e.g., if they're not in `scheduled` status). The response includes information about which bots were updated and which failed.\n    \n    Returns 200 with update results. Returns 404 if the event or calendar bot schedule is not found, or 409 if the bot's status does not allow update.\n * @summary Update calendar bot\n */\nexport const updateCalendarBot = (\n  calendarId: string,\n  updateCalendarBotRequestBodyInput: BodyType<UpdateCalendarBotRequestBodyInput>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<UpdateCalendarBotResponse>(\n    {\n      url: `/v2/calendars/${calendarId}/bots`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: updateCalendarBotRequestBodyInput\n    },\n    options\n  )\n}\n/**\n * Cancel one or more scheduled calendar bots. You can target a single event or all occurrences in a series using `series_id`, `all_occurrences`, and `event_id` in the request body. The behavior for each targeted bot depends on where it is in its lifecycle:\n\n    - **Not yet launched** — the schedule is cancelled and the bot never starts.\n    - **Launched but not yet in the meeting** — the bot exits before joining, with an `EXITING_MEETING_BEFORE_RECORD` error code.\n    - **Already in the meeting** — the bot leaves. Whatever it captured up to that point is still processed and delivered as usual. This case applies to single-event deletes and to series deletes for recent occurrences; see \"Series deletes\" below.\n\n    **Cancellation Targets:**\n    - `event_id`: Cancel bot for a specific event instance\n    - `series_id`: Cancel bots for all occurrences of a series\n    - `all_occurrences`: Cancel all future occurrences (for recurring events)\n\n    **Series deletes:** When `all_occurrences` is true, occurrences whose scheduled time is already well in the past are silently skipped — their bots would have long since finished. Recent and future occurrences are cancelled normally. For single-event deletes (`event_id`, no `all_occurrences`), no time filter is applied — whatever state the bot is in, the stop request is delivered.\n\n    **Partial Cancellation:** If cancelling multiple bots (e.g., all occurrences of a series), some bots may fail to cancel. The response includes which bots were cancelled and which failed.\n\n    **Irreversible Operation:** Once a calendar bot is cancelled, it cannot be recovered.\n\n    **Token Impact:** Tokens are not reserved for calendar bots, so cancelling before a bot joins a meeting has no impact on your token balance. If a bot had already started recording, tokens are consumed only for the recorded portion — you won't be charged for time after the cancellation.\n\n    Returns 200 with cancellation results. Returns 404 if the event or calendar bot schedule is not found.\n * @summary Cancel calendar bot\n */\nexport const deleteCalendarBot = (\n  calendarId: string,\n  deleteCalendarBotBody: BodyType<DeleteCalendarBotBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<DeleteCalendarBotResponse>(\n    {\n      url: `/v2/calendars/${calendarId}/bots`,\n      method: \"DELETE\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: deleteCalendarBotBody\n    },\n    options\n  )\n}\nexport type ListRawCalendarsResult = NonNullable<Awaited<ReturnType<typeof listRawCalendars>>>\nexport type CreateCalendarConnectionResult = NonNullable<\n  Awaited<ReturnType<typeof createCalendarConnection>>\n>\nexport type ListCalendarsResult = NonNullable<Awaited<ReturnType<typeof listCalendars>>>\nexport type GetCalendarDetailsResult = NonNullable<Awaited<ReturnType<typeof getCalendarDetails>>>\nexport type DeleteCalendarConnectionResult = NonNullable<\n  Awaited<ReturnType<typeof deleteCalendarConnection>>\n>\nexport type UpdateCalendarConnectionResult = NonNullable<\n  Awaited<ReturnType<typeof updateCalendarConnection>>\n>\nexport type SyncCalendarResult = NonNullable<Awaited<ReturnType<typeof syncCalendar>>>\nexport type ResubscribeCalendarResult = NonNullable<Awaited<ReturnType<typeof resubscribeCalendar>>>\nexport type ListEventsResult = NonNullable<Awaited<ReturnType<typeof listEvents>>>\nexport type ListEventSeriesResult = NonNullable<Awaited<ReturnType<typeof listEventSeries>>>\nexport type GetEventDetailsResult = NonNullable<Awaited<ReturnType<typeof getEventDetails>>>\nexport type CreateCalendarBotResult = NonNullable<Awaited<ReturnType<typeof createCalendarBot>>>\nexport type UpdateCalendarBotResult = NonNullable<Awaited<ReturnType<typeof updateCalendarBot>>>\nexport type DeleteCalendarBotResult = NonNullable<Awaited<ReturnType<typeof deleteCalendarBot>>>\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\nimport type { BodyType } from \"../../../../custom-axios\"\n\nimport { customInstance } from \"../../../../custom-axios\"\nimport type {\n  CreateZoomCredential201,\n  CreateZoomCredentialBody,\n  DeleteZoomCredential200,\n  GetZoomCredential200,\n  ListZoomCredentials200,\n  ListZoomCredentialsParams,\n  UpdateZoomCredential200,\n  UpdateZoomCredentialBody\n} from \"../../schema\"\n\ntype SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]\n\n/**\n * Create a new Zoom credential for your team.\n\n    Zoom credentials store your Zoom OAuth App credentials (client_id and client_secret) securely encrypted. You can create two types of credentials:\n\n    **App-only credentials:** Provide only `name`, `client_id`, and `client_secret`. These credentials can be used for SDK authentication when bots join meetings.\n\n    **User-authorized credentials:** Additionally provide `authorization_code` and `redirect_uri`. The API will exchange the authorization code for OAuth tokens, enabling OBF (On-Behalf-Of) token support. OBF tokens allow bots to join meetings on behalf of a specific Zoom user. The authorising user's `zoom_email` and `zoom_display_name` are captured from Zoom's `/users/me` API at exchange time (requires the `user:read:user` scope) and returned in the response so you can show end users which Zoom account is connected.\n\n    **Custom Metadata:** Pass an optional `extra` JSON object to tag the credential with your own key-value pairs (for example an internal user ID, environment, or tenant). The data is stored as-is, returned by all credential endpoints, and is filterable on the list endpoint via the `extra` query parameter.\n\n    **Security:** All credentials are encrypted at rest using AES-256-GCM. Client secrets and OAuth tokens are never returned in API responses.\n\n    **OAuth Flow:** To obtain an authorization code, redirect users to Zoom's OAuth authorization endpoint and capture the code from the callback. Ensure your redirect URI exactly matches the one registered in your Zoom OAuth App.\n\n    **Error Scenarios:**\n    - `400 Bad Request`: Invalid input or missing redirect_uri when authorization_code is provided\n    - `400 Bad Request`: Failed to exchange authorization code (invalid code or redirect_uri mismatch)\n * @summary Create a Zoom credential\n */\nexport const createZoomCredential = (\n  createZoomCredentialBody: BodyType<CreateZoomCredentialBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<CreateZoomCredential201>(\n    {\n      url: \"/v2/zoom-credentials\",\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: createZoomCredentialBody\n    },\n    options\n  )\n}\n/**\n * List all Zoom credentials for your team.\n\n    Returns all non-deleted credentials with their metadata. Sensitive fields (client_secret, OAuth tokens) are never included in responses.\n\n    **Response Fields:**\n    - `credential_id`: UUID to reference this credential in bot requests\n    - `name`: User-friendly name for identification\n    - `credential_type`: \"app\" (SDK only) or \"user\" (with OAuth tokens)\n    - `zoom_user_id`: The Zoom user ID (only for \"user\" type)\n    - `zoom_email` / `zoom_display_name`: The authorising Zoom user's email and display name, captured from Zoom's `/users/me` API at OAuth time (only for \"user\" type, requires the `user:read:user` scope)\n    - `state`: \"active\" or \"invalid\"\n    - `last_error_message`: Last OBF token fetch error (if any)\n    - `extra`: The optional user-supplied JSON metadata attached to the credential\n\n    **Filtering:** Narrow the result set with optional query parameters (combined with AND):\n    - `name`, `zoom_email`, `zoom_display_name`: case-insensitive partial match\n    - `zoom_user_id`: exact match\n    - `credential_type`, `state`: comma-separated enum lists (e.g. `credential_type=user`, `state=active,invalid`)\n    - `extra`: `key:value` pairs against the `extra` JSON payload, comma-separated for multiple conditions (e.g. `extra=internal_user_id:u_42,environment:production`). Values are matched exactly (case-sensitive); credentials missing the key are excluded.\n\n    **Error Tracking:** If bots fail to fetch OBF tokens using a credential, the error is recorded in `last_error_message` and `last_error_at`. These fields are cleared on successful OBF token fetch.\n * @summary List Zoom credentials\n */\nexport const listZoomCredentials = (\n  params?: ListZoomCredentialsParams,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<ListZoomCredentials200>(\n    { url: \"/v2/zoom-credentials\", method: \"GET\", params },\n    options\n  )\n}\n/**\n * Get detailed information about a specific Zoom credential.\n\n    Returns the credential's metadata including its current state and any recent errors. Sensitive fields (client_secret, OAuth tokens) are never included.\n\n    For \"user\" type credentials, the response also includes `zoom_email` and `zoom_display_name` (captured from Zoom's `/users/me` API at OAuth time) and any `extra` JSON metadata you attached at creation or via `PATCH`.\n\n    **Error Tracking:** The `last_error_message` and `last_error_at` fields show the most recent OBF token fetch failure. Check these fields if bots using this credential are failing to join meetings.\n\n    Returns 404 if the credential is not found or does not belong to your team.\n * @summary Get a Zoom credential\n */\nexport const getZoomCredential = (id: string, options?: SecondParameter<typeof customInstance>) => {\n  return customInstance<GetZoomCredential200>(\n    { url: `/v2/zoom-credentials/${id}`, method: \"GET\" },\n    options\n  )\n}\n/**\n * Update an existing Zoom credential.\n\n    You can update the credential name, SDK credentials (client_id/client_secret), the user-supplied `extra` metadata, or re-authorize with new OAuth tokens.\n\n    **Updating Name:** Provide only `name` to rename the credential.\n\n    **Updating SDK Credentials:** Provide both `client_id` and `client_secret` together to update the SDK credentials.\n\n    **Updating Custom Metadata:** Provide `extra` to replace the credential's metadata payload, or send `\"extra\": null` to clear it.\n\n    **Re-authorizing:** Provide `authorization_code`, `redirect_uri`, `client_id`, and `client_secret` to exchange a new authorization code for fresh OAuth tokens. This also refreshes `zoom_email` and `zoom_display_name` from Zoom's `/users/me` API, resets the credential state to \"active\", and clears any error messages.\n\n    **Error Scenarios:**\n    - `400 Bad Request`: Missing redirect_uri when authorization_code is provided\n    - `400 Bad Request`: Failed to exchange authorization code\n    - `404 Not Found`: Credential not found or does not belong to your team\n * @summary Update a Zoom credential\n */\nexport const updateZoomCredential = (\n  id: string,\n  updateZoomCredentialBody: BodyType<UpdateZoomCredentialBody>,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<UpdateZoomCredential200>(\n    {\n      url: `/v2/zoom-credentials/${id}`,\n      method: \"PATCH\",\n      headers: { \"Content-Type\": \"application/json\" },\n      data: updateZoomCredentialBody\n    },\n    options\n  )\n}\n/**\n * Delete a Zoom credential (soft delete).\n\n    The credential is marked as deleted and will no longer appear in list responses. Bots currently using this credential will fail to fetch OBF tokens.\n\n    **Impact on Bots:** If bots are configured to use this credential (via `zoom_config.credential_id`), they will fail with an error when trying to fetch OBF tokens. Make sure to update any bot configurations before deleting a credential.\n\n    **Soft Delete:** The credential is soft-deleted and can potentially be restored by support if needed. All associated encrypted data remains in the database.\n\n    Returns 404 if the credential is not found or does not belong to your team.\n * @summary Delete a Zoom credential\n */\nexport const deleteZoomCredential = (\n  id: string,\n  options?: SecondParameter<typeof customInstance>\n) => {\n  return customInstance<DeleteZoomCredential200>(\n    { url: `/v2/zoom-credentials/${id}`, method: \"DELETE\" },\n    options\n  )\n}\nexport type CreateZoomCredentialResult = NonNullable<\n  Awaited<ReturnType<typeof createZoomCredential>>\n>\nexport type ListZoomCredentialsResult = NonNullable<Awaited<ReturnType<typeof listZoomCredentials>>>\nexport type GetZoomCredentialResult = NonNullable<Awaited<ReturnType<typeof getZoomCredential>>>\nexport type UpdateZoomCredentialResult = NonNullable<\n  Awaited<ReturnType<typeof updateZoomCredential>>\n>\nexport type DeleteZoomCredentialResult = NonNullable<\n  Awaited<ReturnType<typeof deleteZoomCredential>>\n>\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Create a new Zoom credential for your team.\n\n    Zoom credentials store your Zoom OAuth App credentials (client_id and client_secret) securely encrypted. You can create two types of credentials:\n\n    **App-only credentials:** Provide only `name`, `client_id`, and `client_secret`. These credentials can be used for SDK authentication when bots join meetings.\n\n    **User-authorized credentials:** Additionally provide `authorization_code` and `redirect_uri`. The API will exchange the authorization code for OAuth tokens, enabling OBF (On-Behalf-Of) token support. OBF tokens allow bots to join meetings on behalf of a specific Zoom user. The authorising user's `zoom_email` and `zoom_display_name` are captured from Zoom's `/users/me` API at exchange time (requires the `user:read:user` scope) and returned in the response so you can show end users which Zoom account is connected.\n\n    **Custom Metadata:** Pass an optional `extra` JSON object to tag the credential with your own key-value pairs (for example an internal user ID, environment, or tenant). The data is stored as-is, returned by all credential endpoints, and is filterable on the list endpoint via the `extra` query parameter.\n\n    **Security:** All credentials are encrypted at rest using AES-256-GCM. Client secrets and OAuth tokens are never returned in API responses.\n\n    **OAuth Flow:** To obtain an authorization code, redirect users to Zoom's OAuth authorization endpoint and capture the code from the callback. Ensure your redirect URI exactly matches the one registered in your Zoom OAuth App.\n\n    **Error Scenarios:**\n    - `400 Bad Request`: Invalid input or missing redirect_uri when authorization_code is provided\n    - `400 Bad Request`: Failed to exchange authorization code (invalid code or redirect_uri mismatch)\n * @summary Create a Zoom credential\n */\nexport const createZoomCredentialBodyNameMax = 100\nexport const createZoomCredentialBodyClientIdMax = 256\nexport const createZoomCredentialBodyClientSecretMax = 256\nexport const createZoomCredentialBodyAuthorizationCodeMax = 2000\n\nexport const createZoomCredentialBody = zod.object({\n  name: zod\n    .string()\n    .min(1)\n    .max(createZoomCredentialBodyNameMax)\n    .describe(\n      \"A user-friendly name for the credential.\\n\\nThis name is for your reference and can be anything that helps you identify this credential. Names do not need to be unique.\"\n    ),\n  client_id: zod\n    .string()\n    .min(1)\n    .max(createZoomCredentialBodyClientIdMax)\n    .describe(\n      \"The Client ID from your Zoom OAuth App.\\n\\nFound in your Zoom Marketplace app under 'App Credentials'. This is used for SDK authentication when joining meetings.\"\n    ),\n  client_secret: zod\n    .string()\n    .min(1)\n    .max(createZoomCredentialBodyClientSecretMax)\n    .describe(\n      \"The Client Secret from your Zoom OAuth App.\\n\\nFound in your Zoom Marketplace app under 'App Credentials'. This will be encrypted at rest and never returned in API responses.\"\n    ),\n  authorization_code: zod\n    .string()\n    .max(createZoomCredentialBodyAuthorizationCodeMax)\n    .optional()\n    .describe(\n      \"OAuth authorization code obtained from Zoom OAuth flow.\\n\\nWhen provided, the API will exchange this code for access and refresh tokens, making this a 'user' type credential that supports OBF (On-Behalf-Of) tokens.\\n\\n**Important:** `redirect_uri` is required when providing an authorization code.\"\n    ),\n  redirect_uri: zod\n    .string()\n    .url()\n    .optional()\n    .describe(\n      \"The redirect URI used in the OAuth flow.\\n\\nMust exactly match the redirect URI registered in your Zoom OAuth App and used when obtaining the authorization code.\"\n    ),\n  extra: zod\n    .record(zod.string(), zod.any())\n    .describe(\n      \"An optional free-form JSON object you can attach to the credential.\\n\\nThis is stored as-is and never interpreted by the API. Useful for tagging credentials with your own identifiers (e.g. internal user ID, environment, tenant) so you can correlate them in your application or filter them via the list endpoint.\\n\\nFilterable on the list endpoint via the `extra` query parameter using the `key:value` syntax.\"\n    )\n    .or(zod.null())\n    .optional()\n})\n\n/**\n * List all Zoom credentials for your team.\n\n    Returns all non-deleted credentials with their metadata. Sensitive fields (client_secret, OAuth tokens) are never included in responses.\n\n    **Response Fields:**\n    - `credential_id`: UUID to reference this credential in bot requests\n    - `name`: User-friendly name for identification\n    - `credential_type`: \"app\" (SDK only) or \"user\" (with OAuth tokens)\n    - `zoom_user_id`: The Zoom user ID (only for \"user\" type)\n    - `zoom_email` / `zoom_display_name`: The authorising Zoom user's email and display name, captured from Zoom's `/users/me` API at OAuth time (only for \"user\" type, requires the `user:read:user` scope)\n    - `state`: \"active\" or \"invalid\"\n    - `last_error_message`: Last OBF token fetch error (if any)\n    - `extra`: The optional user-supplied JSON metadata attached to the credential\n\n    **Filtering:** Narrow the result set with optional query parameters (combined with AND):\n    - `name`, `zoom_email`, `zoom_display_name`: case-insensitive partial match\n    - `zoom_user_id`: exact match\n    - `credential_type`, `state`: comma-separated enum lists (e.g. `credential_type=user`, `state=active,invalid`)\n    - `extra`: `key:value` pairs against the `extra` JSON payload, comma-separated for multiple conditions (e.g. `extra=internal_user_id:u_42,environment:production`). Values are matched exactly (case-sensitive); credentials missing the key are excluded.\n\n    **Error Tracking:** If bots fail to fetch OBF tokens using a credential, the error is recorded in `last_error_message` and `last_error_at`. These fields are cleared on successful OBF token fetch.\n * @summary List Zoom credentials\n */\nexport const listZoomCredentialsQueryNameDefault = null\nexport const listZoomCredentialsQueryZoomEmailDefault = null\nexport const listZoomCredentialsQueryZoomDisplayNameDefault = null\nexport const listZoomCredentialsQueryZoomUserIdDefault = null\nexport const listZoomCredentialsQueryExtraDefault = null\n\nexport const listZoomCredentialsQueryParams = zod.object({\n  name: zod\n    .string()\n    .describe(\n      \"Filter credentials whose `name` contains this string (case-insensitive partial match).\"\n    )\n    .or(zod.null())\n    .optional(),\n  zoom_email: zod\n    .string()\n    .describe(\n      \"Filter credentials whose `zoom_email` contains this string (case-insensitive partial match).\\n\\nUseful when a user has connected multiple Zoom accounts and you want to find a specific one.\"\n    )\n    .or(zod.null())\n    .optional(),\n  zoom_display_name: zod\n    .string()\n    .describe(\n      \"Filter credentials whose `zoom_display_name` contains this string (case-insensitive partial match).\"\n    )\n    .or(zod.null())\n    .optional(),\n  zoom_user_id: zod\n    .string()\n    .describe(\"Filter credentials by exact `zoom_user_id`.\")\n    .or(zod.null())\n    .optional(),\n  credential_type: zod\n    .string()\n    .or(zod.null())\n    .describe(\"Filter by credential type. Comma-separated list. Valid values: `app`, `user`.\")\n    .or(zod.null())\n    .optional(),\n  state: zod\n    .string()\n    .or(zod.null())\n    .describe(\n      \"Filter by credential state. Comma-separated list. Valid values: `active`, `invalid`.\"\n    )\n    .or(zod.null())\n    .optional(),\n  extra: zod\n    .string()\n    .describe(\n      'Filter credentials by matching values in the `extra` JSON payload.\\n\\nApplies SQL-level filtering on the `extra` field and reduces the result set to credentials that match all specified conditions.\\n\\nFormat:\\n- Single condition: `\\\"field:value\\\"`\\n- Multiple conditions: `\\\"field1:value1,field2:value2\\\"`\\n\\nExamples:\\n- `internal_user_id:u_123` — only credentials with this internal user ID\\n- `environment:production,tenant:acme` — only production credentials for the acme tenant\\n\\nNotes: all conditions must match; values are matched exactly (case-sensitive); credentials without the field are excluded.'\n    )\n    .or(zod.null())\n    .optional()\n})\n\nexport const listZoomCredentialsResponseDataItemCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const listZoomCredentialsResponseDataItemNameMax = 100\nexport const listZoomCredentialsResponseDataItemLastErrorAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listZoomCredentialsResponseDataItemCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const listZoomCredentialsResponseDataItemUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const listZoomCredentialsResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.array(\n    zod.object({\n      credential_id: zod\n        .string()\n        .uuid()\n        .regex(listZoomCredentialsResponseDataItemCredentialIdRegExp)\n        .describe(\"The unique identifier (UUID) of the Zoom credential\"),\n      name: zod\n        .string()\n        .min(1)\n        .max(listZoomCredentialsResponseDataItemNameMax)\n        .describe(\n          \"A user-friendly name for the credential.\\n\\nThis name is for your reference and can be anything that helps you identify this credential. Names do not need to be unique.\"\n        ),\n      credential_type: zod\n        .enum([\"app\", \"user\"])\n        .describe(\n          \"The type of Zoom credential.\\n\\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\"\n        ),\n      zoom_user_id: zod\n        .string()\n        .describe(\n          \"The Zoom user ID associated with this credential.\\n\\nOnly present for 'user' type credentials. This is the Zoom user who authorized the OAuth app.\"\n        )\n        .or(zod.null()),\n      zoom_account_id: zod\n        .string()\n        .describe(\n          \"The Zoom account ID associated with this credential.\\n\\nOnly present for 'user' type credentials.\"\n        )\n        .or(zod.null()),\n      zoom_email: zod\n        .string()\n        .describe(\n          \"The email address of the Zoom user who authorised this credential.\\n\\nCaptured from Zoom's `/users/me` API at the time of OAuth exchange (or refresh) using the `user:read:user` scope. Use this to display which Zoom account is connected when a user has multiple accounts.\\n\\nOnly present for 'user' type credentials.\"\n        )\n        .or(zod.null()),\n      zoom_display_name: zod\n        .string()\n        .describe(\n          \"The display name of the Zoom user who authorised this credential.\\n\\nCaptured from Zoom's `/users/me` API at the time of OAuth exchange (or refresh).\\n\\nOnly present for 'user' type credentials.\"\n        )\n        .or(zod.null()),\n      scopes: zod\n        .string()\n        .describe(\n          \"The OAuth scopes granted to this credential.\\n\\nOnly present for 'user' type credentials. Comma-separated list of Zoom OAuth scopes.\"\n        )\n        .or(zod.null()),\n      state: zod\n        .enum([\"active\", \"invalid\"])\n        .describe(\n          \"The current state of the Zoom credential.\\n\\n- `active`: Credential is working and can be used\\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\"\n        ),\n      last_error_message: zod\n        .string()\n        .describe(\n          \"The last error message from OBF token fetch attempts.\\n\\nThis is set when a bot fails to fetch an OBF token using this credential. It is cleared when a successful OBF token fetch occurs.\"\n        )\n        .or(zod.null()),\n      last_error_at: zod\n        .string()\n        .datetime({})\n        .regex(listZoomCredentialsResponseDataItemLastErrorAtRegExpOne)\n        .describe(\n          \"When the last OBF token fetch error occurred (ISO 8601).\\n\\nCleared when a successful OBF token fetch occurs.\"\n        )\n        .or(zod.null()),\n      created_at: zod\n        .string()\n        .datetime({})\n        .regex(listZoomCredentialsResponseDataItemCreatedAtRegExp)\n        .describe(\"When this credential was created (ISO 8601)\"),\n      updated_at: zod\n        .string()\n        .datetime({})\n        .regex(listZoomCredentialsResponseDataItemUpdatedAtRegExp)\n        .describe(\"When this credential was last updated (ISO 8601)\"),\n      extra: zod\n        .record(zod.string(), zod.any())\n        .describe(\n          \"An optional free-form JSON object you can attach to the credential.\\n\\nThis is stored as-is and never interpreted by the API. Useful for tagging credentials with your own identifiers (e.g. internal user ID, environment, tenant) so you can correlate them in your application or filter them via the list endpoint.\\n\\nFilterable on the list endpoint via the `extra` query parameter using the `key:value` syntax.\"\n        )\n        .or(zod.null())\n    })\n  )\n})\n\n/**\n * Get detailed information about a specific Zoom credential.\n\n    Returns the credential's metadata including its current state and any recent errors. Sensitive fields (client_secret, OAuth tokens) are never included.\n\n    For \"user\" type credentials, the response also includes `zoom_email` and `zoom_display_name` (captured from Zoom's `/users/me` API at OAuth time) and any `extra` JSON metadata you attached at creation or via `PATCH`.\n\n    **Error Tracking:** The `last_error_message` and `last_error_at` fields show the most recent OBF token fetch failure. Check these fields if bots using this credential are failing to join meetings.\n\n    Returns 404 if the credential is not found or does not belong to your team.\n * @summary Get a Zoom credential\n */\nexport const getZoomCredentialPathIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const getZoomCredentialParams = zod.object({\n  id: zod\n    .string()\n    .uuid()\n    .regex(getZoomCredentialPathIdRegExp)\n    .describe(\"The unique identifier (UUID) of the Zoom credential\")\n})\n\nexport const getZoomCredentialResponseDataCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const getZoomCredentialResponseDataNameMax = 100\nexport const getZoomCredentialResponseDataLastErrorAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getZoomCredentialResponseDataCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const getZoomCredentialResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const getZoomCredentialResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    credential_id: zod\n      .string()\n      .uuid()\n      .regex(getZoomCredentialResponseDataCredentialIdRegExp)\n      .describe(\"The unique identifier (UUID) of the Zoom credential\"),\n    name: zod\n      .string()\n      .min(1)\n      .max(getZoomCredentialResponseDataNameMax)\n      .describe(\n        \"A user-friendly name for the credential.\\n\\nThis name is for your reference and can be anything that helps you identify this credential. Names do not need to be unique.\"\n      ),\n    credential_type: zod\n      .enum([\"app\", \"user\"])\n      .describe(\n        \"The type of Zoom credential.\\n\\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\"\n      ),\n    zoom_user_id: zod\n      .string()\n      .describe(\n        \"The Zoom user ID associated with this credential.\\n\\nOnly present for 'user' type credentials. This is the Zoom user who authorized the OAuth app.\"\n      )\n      .or(zod.null()),\n    zoom_account_id: zod\n      .string()\n      .describe(\n        \"The Zoom account ID associated with this credential.\\n\\nOnly present for 'user' type credentials.\"\n      )\n      .or(zod.null()),\n    zoom_email: zod\n      .string()\n      .describe(\n        \"The email address of the Zoom user who authorised this credential.\\n\\nCaptured from Zoom's `/users/me` API at the time of OAuth exchange (or refresh) using the `user:read:user` scope. Use this to display which Zoom account is connected when a user has multiple accounts.\\n\\nOnly present for 'user' type credentials.\"\n      )\n      .or(zod.null()),\n    zoom_display_name: zod\n      .string()\n      .describe(\n        \"The display name of the Zoom user who authorised this credential.\\n\\nCaptured from Zoom's `/users/me` API at the time of OAuth exchange (or refresh).\\n\\nOnly present for 'user' type credentials.\"\n      )\n      .or(zod.null()),\n    scopes: zod\n      .string()\n      .describe(\n        \"The OAuth scopes granted to this credential.\\n\\nOnly present for 'user' type credentials. Comma-separated list of Zoom OAuth scopes.\"\n      )\n      .or(zod.null()),\n    state: zod\n      .enum([\"active\", \"invalid\"])\n      .describe(\n        \"The current state of the Zoom credential.\\n\\n- `active`: Credential is working and can be used\\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\"\n      ),\n    last_error_message: zod\n      .string()\n      .describe(\n        \"The last error message from OBF token fetch attempts.\\n\\nThis is set when a bot fails to fetch an OBF token using this credential. It is cleared when a successful OBF token fetch occurs.\"\n      )\n      .or(zod.null()),\n    last_error_at: zod\n      .string()\n      .datetime({})\n      .regex(getZoomCredentialResponseDataLastErrorAtRegExpOne)\n      .describe(\n        \"When the last OBF token fetch error occurred (ISO 8601).\\n\\nCleared when a successful OBF token fetch occurs.\"\n      )\n      .or(zod.null()),\n    created_at: zod\n      .string()\n      .datetime({})\n      .regex(getZoomCredentialResponseDataCreatedAtRegExp)\n      .describe(\"When this credential was created (ISO 8601)\"),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(getZoomCredentialResponseDataUpdatedAtRegExp)\n      .describe(\"When this credential was last updated (ISO 8601)\"),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .describe(\n        \"An optional free-form JSON object you can attach to the credential.\\n\\nThis is stored as-is and never interpreted by the API. Useful for tagging credentials with your own identifiers (e.g. internal user ID, environment, tenant) so you can correlate them in your application or filter them via the list endpoint.\\n\\nFilterable on the list endpoint via the `extra` query parameter using the `key:value` syntax.\"\n      )\n      .or(zod.null())\n  })\n})\n\n/**\n * Update an existing Zoom credential.\n\n    You can update the credential name, SDK credentials (client_id/client_secret), the user-supplied `extra` metadata, or re-authorize with new OAuth tokens.\n\n    **Updating Name:** Provide only `name` to rename the credential.\n\n    **Updating SDK Credentials:** Provide both `client_id` and `client_secret` together to update the SDK credentials.\n\n    **Updating Custom Metadata:** Provide `extra` to replace the credential's metadata payload, or send `\"extra\": null` to clear it.\n\n    **Re-authorizing:** Provide `authorization_code`, `redirect_uri`, `client_id`, and `client_secret` to exchange a new authorization code for fresh OAuth tokens. This also refreshes `zoom_email` and `zoom_display_name` from Zoom's `/users/me` API, resets the credential state to \"active\", and clears any error messages.\n\n    **Error Scenarios:**\n    - `400 Bad Request`: Missing redirect_uri when authorization_code is provided\n    - `400 Bad Request`: Failed to exchange authorization code\n    - `404 Not Found`: Credential not found or does not belong to your team\n * @summary Update a Zoom credential\n */\nexport const updateZoomCredentialPathIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const updateZoomCredentialParams = zod.object({\n  id: zod\n    .string()\n    .uuid()\n    .regex(updateZoomCredentialPathIdRegExp)\n    .describe(\"The unique identifier (UUID) of the Zoom credential\")\n})\n\nexport const updateZoomCredentialBodyNameMax = 100\nexport const updateZoomCredentialBodyClientIdMax = 256\nexport const updateZoomCredentialBodyClientSecretMax = 256\nexport const updateZoomCredentialBodyAuthorizationCodeMax = 2000\n\nexport const updateZoomCredentialBody = zod.object({\n  name: zod\n    .string()\n    .min(1)\n    .max(updateZoomCredentialBodyNameMax)\n    .optional()\n    .describe(\n      \"A user-friendly name for the credential.\\n\\nThis name is for your reference and can be anything that helps you identify this credential. Names do not need to be unique.\"\n    ),\n  client_id: zod\n    .string()\n    .min(1)\n    .max(updateZoomCredentialBodyClientIdMax)\n    .optional()\n    .describe(\n      \"The Client ID from your Zoom OAuth App.\\n\\nFound in your Zoom Marketplace app under 'App Credentials'. This is used for SDK authentication when joining meetings.\"\n    ),\n  client_secret: zod\n    .string()\n    .min(1)\n    .max(updateZoomCredentialBodyClientSecretMax)\n    .optional()\n    .describe(\n      \"The Client Secret from your Zoom OAuth App.\\n\\nFound in your Zoom Marketplace app under 'App Credentials'. This will be encrypted at rest and never returned in API responses.\"\n    ),\n  authorization_code: zod\n    .string()\n    .max(updateZoomCredentialBodyAuthorizationCodeMax)\n    .optional()\n    .describe(\n      \"OAuth authorization code obtained from Zoom OAuth flow.\\n\\nWhen provided, the API will exchange this code for access and refresh tokens, making this a 'user' type credential that supports OBF (On-Behalf-Of) tokens.\\n\\n**Important:** `redirect_uri` is required when providing an authorization code.\"\n    ),\n  redirect_uri: zod\n    .string()\n    .url()\n    .optional()\n    .describe(\n      \"The redirect URI used in the OAuth flow.\\n\\nMust exactly match the redirect URI registered in your Zoom OAuth App and used when obtaining the authorization code.\"\n    ),\n  extra: zod\n    .record(zod.string(), zod.any())\n    .describe(\n      \"An optional free-form JSON object you can attach to the credential.\\n\\nThis is stored as-is and never interpreted by the API. Useful for tagging credentials with your own identifiers (e.g. internal user ID, environment, tenant) so you can correlate them in your application or filter them via the list endpoint.\\n\\nFilterable on the list endpoint via the `extra` query parameter using the `key:value` syntax.\"\n    )\n    .or(zod.null())\n    .optional()\n})\n\nexport const updateZoomCredentialResponseDataCredentialIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\nexport const updateZoomCredentialResponseDataNameMax = 100\nexport const updateZoomCredentialResponseDataLastErrorAtRegExpOne =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const updateZoomCredentialResponseDataCreatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\nexport const updateZoomCredentialResponseDataUpdatedAtRegExp =\n  /^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$/\n\nexport const updateZoomCredentialResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    credential_id: zod\n      .string()\n      .uuid()\n      .regex(updateZoomCredentialResponseDataCredentialIdRegExp)\n      .describe(\"The unique identifier (UUID) of the Zoom credential\"),\n    name: zod\n      .string()\n      .min(1)\n      .max(updateZoomCredentialResponseDataNameMax)\n      .describe(\n        \"A user-friendly name for the credential.\\n\\nThis name is for your reference and can be anything that helps you identify this credential. Names do not need to be unique.\"\n      ),\n    credential_type: zod\n      .enum([\"app\", \"user\"])\n      .describe(\n        \"The type of Zoom credential.\\n\\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\"\n      ),\n    zoom_user_id: zod\n      .string()\n      .describe(\n        \"The Zoom user ID associated with this credential.\\n\\nOnly present for 'user' type credentials. This is the Zoom user who authorized the OAuth app.\"\n      )\n      .or(zod.null()),\n    zoom_account_id: zod\n      .string()\n      .describe(\n        \"The Zoom account ID associated with this credential.\\n\\nOnly present for 'user' type credentials.\"\n      )\n      .or(zod.null()),\n    zoom_email: zod\n      .string()\n      .describe(\n        \"The email address of the Zoom user who authorised this credential.\\n\\nCaptured from Zoom's `/users/me` API at the time of OAuth exchange (or refresh) using the `user:read:user` scope. Use this to display which Zoom account is connected when a user has multiple accounts.\\n\\nOnly present for 'user' type credentials.\"\n      )\n      .or(zod.null()),\n    zoom_display_name: zod\n      .string()\n      .describe(\n        \"The display name of the Zoom user who authorised this credential.\\n\\nCaptured from Zoom's `/users/me` API at the time of OAuth exchange (or refresh).\\n\\nOnly present for 'user' type credentials.\"\n      )\n      .or(zod.null()),\n    scopes: zod\n      .string()\n      .describe(\n        \"The OAuth scopes granted to this credential.\\n\\nOnly present for 'user' type credentials. Comma-separated list of Zoom OAuth scopes.\"\n      )\n      .or(zod.null()),\n    state: zod\n      .enum([\"active\", \"invalid\"])\n      .describe(\n        \"The current state of the Zoom credential.\\n\\n- `active`: Credential is working and can be used\\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\"\n      ),\n    last_error_message: zod\n      .string()\n      .describe(\n        \"The last error message from OBF token fetch attempts.\\n\\nThis is set when a bot fails to fetch an OBF token using this credential. It is cleared when a successful OBF token fetch occurs.\"\n      )\n      .or(zod.null()),\n    last_error_at: zod\n      .string()\n      .datetime({})\n      .regex(updateZoomCredentialResponseDataLastErrorAtRegExpOne)\n      .describe(\n        \"When the last OBF token fetch error occurred (ISO 8601).\\n\\nCleared when a successful OBF token fetch occurs.\"\n      )\n      .or(zod.null()),\n    created_at: zod\n      .string()\n      .datetime({})\n      .regex(updateZoomCredentialResponseDataCreatedAtRegExp)\n      .describe(\"When this credential was created (ISO 8601)\"),\n    updated_at: zod\n      .string()\n      .datetime({})\n      .regex(updateZoomCredentialResponseDataUpdatedAtRegExp)\n      .describe(\"When this credential was last updated (ISO 8601)\"),\n    extra: zod\n      .record(zod.string(), zod.any())\n      .describe(\n        \"An optional free-form JSON object you can attach to the credential.\\n\\nThis is stored as-is and never interpreted by the API. Useful for tagging credentials with your own identifiers (e.g. internal user ID, environment, tenant) so you can correlate them in your application or filter them via the list endpoint.\\n\\nFilterable on the list endpoint via the `extra` query parameter using the `key:value` syntax.\"\n      )\n      .or(zod.null())\n  })\n})\n\n/**\n * Delete a Zoom credential (soft delete).\n\n    The credential is marked as deleted and will no longer appear in list responses. Bots currently using this credential will fail to fetch OBF tokens.\n\n    **Impact on Bots:** If bots are configured to use this credential (via `zoom_config.credential_id`), they will fail with an error when trying to fetch OBF tokens. Make sure to update any bot configurations before deleting a credential.\n\n    **Soft Delete:** The credential is soft-deleted and can potentially be restored by support if needed. All associated encrypted data remains in the database.\n\n    Returns 404 if the credential is not found or does not belong to your team.\n * @summary Delete a Zoom credential\n */\nexport const deleteZoomCredentialPathIdRegExp =\n  /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/\n\nexport const deleteZoomCredentialParams = zod.object({\n  id: zod\n    .string()\n    .uuid()\n    .regex(deleteZoomCredentialPathIdRegExp)\n    .describe(\"The unique identifier (UUID) of the Zoom credential\")\n})\n\nexport const deleteZoomCredentialResponse = zod.object({\n  success: zod.literal(true),\n  data: zod.object({\n    message: zod.string().describe(\"Success message\")\n  })\n})\n","// Main SDK Export file\n// This file exports the core SDK functionality\n\n// Re-export Zod schemas from v1 (backward compatibility)\n// Usage: import { joinBody } from \"@meeting-baas/sdk\"\nexport * from \"./generated/v1/api/calendars/calendars.zod\"\nexport * from \"./generated/v1/api/default/default.zod\"\nexport * from \"./generated/v1/api/webhooks/webhooks.zod\"\n// Re-export all types from v1 generated code for advanced usage (backward compatibility)\n// These are the default exports - existing code will continue to work\nexport * from \"./generated/v1/schema\"\n// Re-export v2 Zod schemas in namespaces to avoid naming conflicts\n// Usage: import { V2Zod } from \"@meeting-baas/sdk\"; const schema = V2Zod.createBotBody\nexport * as V2Zod from \"./generated/v2/api/bots/bots.zod\"\nexport * as V2ZodCalendars from \"./generated/v2/api/calendars/calendars.zod\"\n// Re-export v2 types in a namespace to avoid naming conflicts\n// Usage: import { V2 } from \"@meeting-baas/sdk\"; const params: V2.ListEventsParams = ...\nexport * as V2 from \"./generated/v2/schema\"\n\n// Re-export BaaS functionality from our wrapper client\nexport { type BaasClient, createBaasClient } from \"./node/client\"\nexport * from \"./node/types.d\"\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\nimport { z as zod } from \"zod\"\n\n/**\n * Meeting BaaS sends webhook events to your configured webhook URL when specific events occur.\n\n## Webhook Event Types\n\n### 1. `complete`\nSent when a bot successfully completes recording a meeting. Contains full transcription data and a link to the recording.\n```json\n{\n  \\\"event\\\": \\\"complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"transcript\\\": [\n      {\n        \\\"speaker\\\": \\\"John Doe\\\",\n        \\\"offset\\\": 1.5,\n        \\\"start_time\\\": 1.5,\n        \\\"end_time\\\": 2.4,\n        \\\"words\\\": [\n          {\n            \\\"start\\\": 1.5,\n            \\\"end\\\": 1.9,\n            \\\"word\\\": \\\"Hello\\\"\n          },\n          {\n            \\\"start\\\": 2.0,\n            \\\"end\\\": 2.4,\n            \\\"word\\\": \\\"everyone\\\"\n          }\n        ]\n      }\n    ],\n    \\\"speakers\\\": [\n      \\\"John Doe\\\",\n      \\\"Jane Smith\\\"\n    ],\n    \\\"mp4\\\": \\\"https://storage.example.com/recordings/video123.mp4?token=abc\\\",\n    \\\"audio\\\": \\\"https://storage.example.com/recordings/audio123.wav?token=abc\\\",\n    \\\"event\\\": \\\"complete\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\nThe `complete` event includes:\n- **bot_id**: Unique identifier for the bot that completed recording\n- **event_uuid**: UUID of the calendar event (if this bot was created from an event)\n- **speakers**: A set of speaker names identified in the meeting\n- **transcript**: Full transcript data with speaker identification and word timing\n- **mp4**: URL to the recording file (valid for 24 hours by default)\n- **event**: Event type identifier (\"complete\")\n\n### 2. `failed`\nSent when a bot fails to join or record a meeting. Contains error details.\n```json\n{\n  \\\"event\\\": \\\"failed\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"error\\\": \\\"meeting_not_found\\\",\n    \\\"message\\\": \\\"Could not join meeting: The meeting ID was not found or has expired\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\nThe `failed` event includes:\n- **bot_id**: Unique identifier for the bot that failed\n- **event_uuid**: UUID of the calendar event (if this bot was created from an event)\n- **error**: Error code identifying the type of failure\n- **message**: Detailed human-readable error message\n\nCommon error types include:\n- `meeting_not_found`: The meeting ID or link was invalid or expired\n- `access_denied`: The bot was denied access to the meeting\n- `authentication_error`: Failed to authenticate with the meeting platform\n- `network_error`: Network connectivity issues during recording\n- `internal_error`: Internal server error\n\n### 3. `calendar.sync_events`\nSent when calendar events are synced. Contains information about which events were updated.\n```json\n{\n  \\\"event\\\": \\\"calendar.sync_events\\\",\n  \\\"data\\\": {\n    \\\"calendar_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"last_updated_ts\\\": \\\"2023-05-01T12:00:00Z\\\",\n    \\\"affected_event_uuids\\\": [\n      \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n      \\\"123e4567-e89b-12d3-a456-426614174002\\\"\n    ]\n  }\n}\n```\n\nThe `calendar.sync_events` event includes:\n- **calendar_id**: UUID of the calendar that was synced\n- **last_updated_ts**: ISO-8601 timestamp of when the sync occurred\n- **affected_event_uuids**: Array of UUIDs for calendar events that were added, updated, or deleted\n\nThis event is triggered when:\n- Calendar data is synced with the external provider (Google, Microsoft)\n- Multiple events may be created, updated, or deleted in a single sync operation\n- Use this event to update your local cache of calendar events\n\n### 4. `transcription_complete`\nSent when transcription is completed separately from recording (e.g., after retranscribing).\n```json\n{\n  \\\"event\\\": \\\"transcription_complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\"\n  }\n}\n```\n\nThe `transcription_complete` event includes:\n- **bot_id**: Unique identifier for the bot with the completed transcription\n\nThis event is sent when:\n- You request a retranscription via the `/bots/retranscribe` endpoint\n- An asynchronous transcription process completes after the recording has ended\n\n## Setting Up Webhooks\n\nYou can configure webhooks in two ways:\n1. **Account-level webhook URL**: Set a default webhook URL for all bots in your account using the `/accounts/webhook_url` endpoint\n2. **Bot-specific webhook URL**: Provide a `webhook_url` parameter when creating a bot with the `/bots` endpoint\n\nYour webhook endpoint must:\n- Accept POST requests with JSON payload\n- Return a 2xx status code to acknowledge receipt\n- Process requests within 10 seconds to avoid timeouts\n- Handle each event type appropriately based on the event type\n\nAll webhook requests include:\n- `x-meeting-baas-api-key` header with your API key for verification\n- `content-type: application/json` header\n- JSON body containing the event details\n\n## Webhook Reliability\n\nIf your endpoint fails to respond or returns an error, the system will attempt to retry the webhook delivery. For critical events, we recommend implementing:\n\n- Idempotency handling to prevent duplicate processing of the same event\n- Proper logging of webhook receipts for audit purposes\n- Asynchronous processing to quickly acknowledge receipt before handling the event data\n\nFor security, always validate the API key in the `x-meeting-baas-api-key` header matches your API key.\n * @summary Webhook Events Documentation\n */\nexport const webhookDocumentationResponse = zod.any()\n\n/**\n * Meeting BaaS sends the following webhook events related to bot recordings.\n\n## Bot Webhook Event Types\n\n### 1. `complete`\nSent when a bot successfully completes recording a meeting.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"transcript\\\": [\n      {\n        \\\"speaker\\\": \\\"John Doe\\\",\n        \\\"offset\\\": 1.5,\n        \\\"start_time\\\": 1.5,\n        \\\"end_time\\\": 2.4,\n        \\\"words\\\": [\n          {\n            \\\"start\\\": 1.5,\n            \\\"end\\\": 1.9,\n            \\\"word\\\": \\\"Hello\\\"\n          },\n          {\n            \\\"start\\\": 2.0,\n            \\\"end\\\": 2.4,\n            \\\"word\\\": \\\"everyone\\\"\n          }\n        ]\n      }\n    ],\n    \\\"speakers\\\": [\n      \\\"Jane Smith\\\",\n      \\\"John Doe\\\"\n    ],\n    \\\"mp4\\\": \\\"https://storage.example.com/recordings/video123.mp4?token=abc\\\",\n    \\\"audio\\\": \\\"https://storage.example.com/recordings/audio123.wav?token=abc\\\",\n    \\\"event\\\": \\\"complete\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\n**When it's triggered:**\n- After a bot successfully records and processes a meeting\n- After the recording is uploaded and made available\n- When all processing of the meeting recording is complete\n\n**What to do with it:**\n- Download the MP4 recording for storage in your system\n- Store the transcript data in your database\n- Update meeting status in your application\n- Notify users that the recording is available\n- Use `event_uuid` to correlate with calendar events (if applicable)\n\n### 2. `failed`\nSent when a bot fails to join or record a meeting.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"failed\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"event_uuid\\\": \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n    \\\"error\\\": \\\"meeting_not_found\\\",\n    \\\"message\\\": \\\"Could not join meeting: The meeting ID was not found or has expired\\\",\n    \\\"extra\\\": {\n      \\\"foo\\\": \\\"bar\\\"\n    }\n  }\n}\n```\n\n**Common error types:**\n- `meeting_not_found`: The meeting ID or link was invalid or expired\n- `access_denied`: The bot was denied access to the meeting\n- `authentication_error`: Failed to authenticate with the meeting platform\n- `network_error`: Network connectivity issues during recording\n- `internal_error`: Internal server error\n\n**What to do with it:**\n- Log the failure for troubleshooting\n- Notify administrators or users about the failed recording\n- Attempt to reschedule if appropriate\n- Update meeting status in your system\n- Use `event_uuid` to correlate with calendar events (if applicable)\n\n### 3. `transcription_complete`\nSent when transcription is completed separately from recording.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"transcription_complete\\\",\n  \\\"data\\\": {\n    \\\"bot_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\"\n  }\n}\n```\n\n**When it's triggered:**\n- After requesting retranscription via the API\n- When an asynchronous transcription job completes\n- When a higher quality or different language transcription becomes available\n\n**What to do with it:**\n- Update the transcript data in your system\n- Notify users that improved transcription is available\n- Run any post-processing on the new transcript data\n\n## Webhook Usage Tips\n\n- Each event includes the `bot_id` so you can correlate with your internal data\n- The `event_uuid` field is included when the bot was created from a calendar event (null for direct bots or scheduled bots)\n- The complete event includes speaker identification and full transcript data\n- For downloading recordings, the mp4 URL is valid for 24 hours\n- Handle the webhook asynchronously and return 200 OK quickly to prevent timeouts\n\nFor security, always validate the API key in the `x-meeting-baas-api-key` header matches your API key.\n * @summary Bot Webhook Events Documentation\n */\nexport const botWebhookDocumentationResponse = zod.any()\n\n/**\n * Meeting BaaS sends the following webhook events related to calendar integrations.\n\n## Calendar Webhook Event Types\n\n### 1. `calendar.sync_events`\nSent when calendar events are synced with external providers.\n\n**Payload Structure:**\n```json\n{\n  \\\"event\\\": \\\"calendar.sync_events\\\",\n  \\\"data\\\": {\n    \\\"calendar_id\\\": \\\"123e4567-e89b-12d3-a456-426614174000\\\",\n    \\\"last_updated_ts\\\": \\\"2023-05-01T12:00:00Z\\\",\n    \\\"affected_event_uuids\\\": [\n      \\\"123e4567-e89b-12d3-a456-426614174001\\\",\n      \\\"123e4567-e89b-12d3-a456-426614174002\\\"\n    ]\n  }\n}\n```\n\n**When it's triggered:**\n- After initial calendar connection is established\n- When external calendar providers (Google, Microsoft) send change notifications\n- After manual calendar resync operations\n- During scheduled periodic syncs\n- When events are created, updated, or deleted in the source calendar\n\n**What to do with it:**\n- Update your local copy of calendar events\n- Process any new events that match your criteria\n- Remove any deleted events from your system\n- Update schedules for any modified events\n- Refresh your UI to show the latest calendar data\n\n**Field details:**\n- `calendar_id`: The UUID of the synchronized calendar\n- `last_updated_ts`: ISO-8601 timestamp when the sync occurred\n- `affected_event_uuids**: Array of UUIDs for events that were changed\n\n## Integration with Meeting BaaS Calendar API\n\nAfter receiving a calendar webhook event, you can:\n1. Use the `/calendar_events` endpoint to retrieve detailed information about specific events\n2. Use the `/calendars/:uuid` endpoint to get calendar metadata\n3. Schedule recording bots for any new meetings with the `/calendar_events/:uuid/bot` endpoint\n\n## Webhook Usage Tips\n\n- Each event includes affected event UUIDs for efficient processing\n- You don't need to retrieve all calendar events - just process the changed ones\n- The timestamp helps determine the sequence of updates\n- For high-frequency calendars, consider batch processing of multiple events\n\nFor security, always validate the API key in the `x-meeting-baas-api-key` header matches your API key.\n * @summary Calendar Webhook Events Documentation\n */\nexport const calendarWebhookDocumentationResponse = zod.any()\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\nexport type AudioFrequency = (typeof AudioFrequency)[keyof typeof AudioFrequency]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const AudioFrequency = {\n  \"16khz\": \"16khz\",\n  \"24khz\": \"24khz\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const DeleteStatus = {\n  deleted: \"deleted\",\n  partiallyDeleted: \"partiallyDeleted\",\n  alreadyDeleted: \"alreadyDeleted\",\n  noDataFound: \"noDataFound\"\n} as const\nexport type DeleteStatus = (typeof DeleteStatus)[keyof typeof DeleteStatus]\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\n/**\n * Fields with value `\"simple\"` parse as `Kind::Simple`. Fields with value `\"fancy\"` parse as `Kind::SoFancy`.\n */\nexport type Provider = (typeof Provider)[keyof typeof Provider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const Provider = {\n  Google: \"Google\",\n  Microsoft: \"Microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\n/**\n * Recording mode for the bot\n */\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RecordingMode = {\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\",\n  audio_only: \"audio_only\"\n} as const\nexport type RecordingMode = (typeof RecordingMode)[keyof typeof RecordingMode]\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\nexport type SpeechToTextProvider = (typeof SpeechToTextProvider)[keyof typeof SpeechToTextProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const SpeechToTextProvider = {\n  Gladia: \"Gladia\",\n  Runpod: \"Runpod\",\n  Default: \"Default\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * Meeting BaaS API\n * OpenAPI spec version: 1.1\n */\n\n/**\n * Example usage for frontend developers\n\n```ignore // How to use in your API handler: let status = calculate_bot_status(bot.errors, bot.ended_at, bot.duration, bot.created_at); let status_response = status_to_response(status);\n\n// How to sort by priority: bots.sort_by_key(|bot| bot.status.sort_priority);\n\n// How to filter by type: let errors = bots.filter(|bot| bot.status.r#type == \"error\");\n\n// How to filter by category: let connection_errors = bots.filter(|bot| bot.status.category == \"connection_error\"); ```\n */\nexport type UserReportedErrorStatus =\n  (typeof UserReportedErrorStatus)[keyof typeof UserReportedErrorStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UserReportedErrorStatus = {\n  open: \"open\",\n  in_progress: \"in_progress\",\n  closed: \"closed\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\nexport * from \"./batchCreateBotResponse\"\nexport * from \"./batchCreateBotResponseDataItem\"\nexport * from \"./batchCreateBotResponseDataItemExtra\"\nexport * from \"./batchCreateBotResponseDataItemExtraAnyOf\"\nexport * from \"./batchCreateBotResponseErrorsItem\"\nexport * from \"./batchCreateBotResponseErrorsItemDetails\"\nexport * from \"./batchCreateBotResponseErrorsItemExtra\"\nexport * from \"./batchCreateBotResponseErrorsItemExtraAnyOf\"\nexport * from \"./batchCreateBotResponseInput\"\nexport * from \"./batchCreateBotResponseInputDataItem\"\nexport * from \"./batchCreateBotResponseInputDataItemExtra\"\nexport * from \"./batchCreateBotResponseInputDataItemExtraAnyOf\"\nexport * from \"./batchCreateBotResponseInputErrorsItem\"\nexport * from \"./batchCreateBotResponseInputErrorsItemDetails\"\nexport * from \"./batchCreateBotResponseInputErrorsItemExtra\"\nexport * from \"./batchCreateBotResponseInputErrorsItemExtraAnyOf\"\nexport * from \"./batchCreateBots429\"\nexport * from \"./batchCreateBots429Details\"\nexport * from \"./batchCreateBots429Message\"\nexport * from \"./batchCreateBotsRequestBody\"\nexport * from \"./batchCreateBotsRequestBodyInput\"\nexport * from \"./batchCreateScheduledBotResponse\"\nexport * from \"./batchCreateScheduledBotResponseDataItem\"\nexport * from \"./batchCreateScheduledBotResponseDataItemExtra\"\nexport * from \"./batchCreateScheduledBotResponseDataItemExtraAnyOf\"\nexport * from \"./batchCreateScheduledBotResponseErrorsItem\"\nexport * from \"./batchCreateScheduledBotResponseErrorsItemDetails\"\nexport * from \"./batchCreateScheduledBotResponseErrorsItemExtra\"\nexport * from \"./batchCreateScheduledBotResponseErrorsItemExtraAnyOf\"\nexport * from \"./batchCreateScheduledBotResponseInput\"\nexport * from \"./batchCreateScheduledBotResponseInputDataItem\"\nexport * from \"./batchCreateScheduledBotResponseInputDataItemExtra\"\nexport * from \"./batchCreateScheduledBotResponseInputDataItemExtraAnyOf\"\nexport * from \"./batchCreateScheduledBotResponseInputErrorsItem\"\nexport * from \"./batchCreateScheduledBotResponseInputErrorsItemDetails\"\nexport * from \"./batchCreateScheduledBotResponseInputErrorsItemExtra\"\nexport * from \"./batchCreateScheduledBotResponseInputErrorsItemExtraAnyOf\"\nexport * from \"./batchCreateScheduledBots429\"\nexport * from \"./batchCreateScheduledBots429Details\"\nexport * from \"./batchCreateScheduledBots429Message\"\nexport * from \"./batchCreateScheduledBotsRequestBody\"\nexport * from \"./batchCreateScheduledBotsRequestBodyInput\"\nexport * from \"./botWebhookChatMessage\"\nexport * from \"./botWebhookChatMessageData\"\nexport * from \"./botWebhookChatMessageDataEventId\"\nexport * from \"./botWebhookChatMessageDataSenderId\"\nexport * from \"./botWebhookChatMessageExtra\"\nexport * from \"./botWebhookChatMessageExtraAnyOf\"\nexport * from \"./botWebhookChatMessageInput\"\nexport * from \"./botWebhookChatMessageInputData\"\nexport * from \"./botWebhookChatMessageInputDataEventId\"\nexport * from \"./botWebhookChatMessageInputDataSenderId\"\nexport * from \"./botWebhookChatMessageInputExtra\"\nexport * from \"./botWebhookChatMessageInputExtraAnyOf\"\nexport * from \"./botWebhookCompleted\"\nexport * from \"./botWebhookCompletedData\"\nexport * from \"./botWebhookCompletedDataAudio\"\nexport * from \"./botWebhookCompletedDataDiarization\"\nexport * from \"./botWebhookCompletedDataDurationSeconds\"\nexport * from \"./botWebhookCompletedDataEventId\"\nexport * from \"./botWebhookCompletedDataExitedAt\"\nexport * from \"./botWebhookCompletedDataJoinedAt\"\nexport * from \"./botWebhookCompletedDataParticipantsItem\"\nexport * from \"./botWebhookCompletedDataParticipantsItemId\"\nexport * from \"./botWebhookCompletedDataRawTranscription\"\nexport * from \"./botWebhookCompletedDataSpeakersItem\"\nexport * from \"./botWebhookCompletedDataSpeakersItemId\"\nexport * from \"./botWebhookCompletedDataTranscription\"\nexport * from \"./botWebhookCompletedDataTranscriptionIds\"\nexport * from \"./botWebhookCompletedDataTranscriptionProvider\"\nexport * from \"./botWebhookCompletedDataVideo\"\nexport * from \"./botWebhookCompletedExtra\"\nexport * from \"./botWebhookCompletedExtraAnyOf\"\nexport * from \"./botWebhookCompletedInput\"\nexport * from \"./botWebhookCompletedInputData\"\nexport * from \"./botWebhookCompletedInputDataAudio\"\nexport * from \"./botWebhookCompletedInputDataDiarization\"\nexport * from \"./botWebhookCompletedInputDataDurationSeconds\"\nexport * from \"./botWebhookCompletedInputDataEventId\"\nexport * from \"./botWebhookCompletedInputDataExitedAt\"\nexport * from \"./botWebhookCompletedInputDataJoinedAt\"\nexport * from \"./botWebhookCompletedInputDataParticipantsItem\"\nexport * from \"./botWebhookCompletedInputDataParticipantsItemId\"\nexport * from \"./botWebhookCompletedInputDataRawTranscription\"\nexport * from \"./botWebhookCompletedInputDataSpeakersItem\"\nexport * from \"./botWebhookCompletedInputDataSpeakersItemId\"\nexport * from \"./botWebhookCompletedInputDataTranscription\"\nexport * from \"./botWebhookCompletedInputDataTranscriptionIds\"\nexport * from \"./botWebhookCompletedInputDataTranscriptionProvider\"\nexport * from \"./botWebhookCompletedInputDataVideo\"\nexport * from \"./botWebhookCompletedInputExtra\"\nexport * from \"./botWebhookCompletedInputExtraAnyOf\"\nexport * from \"./botWebhookFailed\"\nexport * from \"./botWebhookFailedData\"\nexport * from \"./botWebhookFailedDataEventId\"\nexport * from \"./botWebhookFailedExtra\"\nexport * from \"./botWebhookFailedExtraAnyOf\"\nexport * from \"./botWebhookFailedInput\"\nexport * from \"./botWebhookFailedInputData\"\nexport * from \"./botWebhookFailedInputDataEventId\"\nexport * from \"./botWebhookFailedInputExtra\"\nexport * from \"./botWebhookFailedInputExtraAnyOf\"\nexport * from \"./botWebhookStatusChange\"\nexport * from \"./botWebhookStatusChangeData\"\nexport * from \"./botWebhookStatusChangeDataEventId\"\nexport * from \"./botWebhookStatusChangeDataStatus\"\nexport * from \"./botWebhookStatusChangeExtra\"\nexport * from \"./botWebhookStatusChangeExtraAnyOf\"\nexport * from \"./botWebhookStatusChangeInput\"\nexport * from \"./botWebhookStatusChangeInputData\"\nexport * from \"./botWebhookStatusChangeInputDataEventId\"\nexport * from \"./botWebhookStatusChangeInputDataStatus\"\nexport * from \"./botWebhookStatusChangeInputExtra\"\nexport * from \"./botWebhookStatusChangeInputExtraAnyOf\"\nexport * from \"./calendarWebhookConnectionCreated\"\nexport * from \"./calendarWebhookConnectionCreatedData\"\nexport * from \"./calendarWebhookConnectionCreatedDataCalendarPlatform\"\nexport * from \"./calendarWebhookConnectionCreatedDataStatus\"\nexport * from \"./calendarWebhookConnectionCreatedInput\"\nexport * from \"./calendarWebhookConnectionCreatedInputData\"\nexport * from \"./calendarWebhookConnectionCreatedInputDataCalendarPlatform\"\nexport * from \"./calendarWebhookConnectionCreatedInputDataStatus\"\nexport * from \"./calendarWebhookConnectionDeleted\"\nexport * from \"./calendarWebhookConnectionDeletedData\"\nexport * from \"./calendarWebhookConnectionDeletedDataCalendarPlatform\"\nexport * from \"./calendarWebhookConnectionDeletedInput\"\nexport * from \"./calendarWebhookConnectionDeletedInputData\"\nexport * from \"./calendarWebhookConnectionDeletedInputDataCalendarPlatform\"\nexport * from \"./calendarWebhookConnectionUpdated\"\nexport * from \"./calendarWebhookConnectionUpdatedData\"\nexport * from \"./calendarWebhookConnectionUpdatedDataCalendarPlatform\"\nexport * from \"./calendarWebhookConnectionUpdatedDataStatus\"\nexport * from \"./calendarWebhookConnectionUpdatedInput\"\nexport * from \"./calendarWebhookConnectionUpdatedInputData\"\nexport * from \"./calendarWebhookConnectionUpdatedInputDataCalendarPlatform\"\nexport * from \"./calendarWebhookConnectionUpdatedInputDataStatus\"\nexport * from \"./calendarWebhookEventCancelled\"\nexport * from \"./calendarWebhookEventCancelledData\"\nexport * from \"./calendarWebhookEventCancelledDataCancelledInstancesItem\"\nexport * from \"./calendarWebhookEventCancelledDataCancelledInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventCancelledDataCancelledInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventCancelledDataCancelledInstancesItemStatus\"\nexport * from \"./calendarWebhookEventCancelledDataEventType\"\nexport * from \"./calendarWebhookEventCancelledDataSeriesId\"\nexport * from \"./calendarWebhookEventCancelledInput\"\nexport * from \"./calendarWebhookEventCancelledInputData\"\nexport * from \"./calendarWebhookEventCancelledInputDataCancelledInstancesItem\"\nexport * from \"./calendarWebhookEventCancelledInputDataCancelledInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventCancelledInputDataCancelledInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventCancelledInputDataCancelledInstancesItemStatus\"\nexport * from \"./calendarWebhookEventCancelledInputDataEventType\"\nexport * from \"./calendarWebhookEventCancelledInputDataSeriesId\"\nexport * from \"./calendarWebhookEventCreated\"\nexport * from \"./calendarWebhookEventCreatedData\"\nexport * from \"./calendarWebhookEventCreatedDataEventType\"\nexport * from \"./calendarWebhookEventCreatedDataInstancesItem\"\nexport * from \"./calendarWebhookEventCreatedDataInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventCreatedDataInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventCreatedDataInstancesItemStatus\"\nexport * from \"./calendarWebhookEventCreatedDataSeriesId\"\nexport * from \"./calendarWebhookEventCreatedInput\"\nexport * from \"./calendarWebhookEventCreatedInputData\"\nexport * from \"./calendarWebhookEventCreatedInputDataEventType\"\nexport * from \"./calendarWebhookEventCreatedInputDataInstancesItem\"\nexport * from \"./calendarWebhookEventCreatedInputDataInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventCreatedInputDataInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventCreatedInputDataInstancesItemStatus\"\nexport * from \"./calendarWebhookEventCreatedInputDataSeriesId\"\nexport * from \"./calendarWebhookEventsSynced\"\nexport * from \"./calendarWebhookEventsSyncedData\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItem\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItemEventType\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItemInstancesItem\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItemInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItemInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItemInstancesItemStatus\"\nexport * from \"./calendarWebhookEventsSyncedDataEventsItemSeriesId\"\nexport * from \"./calendarWebhookEventsSyncedInput\"\nexport * from \"./calendarWebhookEventsSyncedInputData\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItem\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItemEventType\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItemInstancesItem\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItemInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItemInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItemInstancesItemStatus\"\nexport * from \"./calendarWebhookEventsSyncedInputDataEventsItemSeriesId\"\nexport * from \"./calendarWebhookEventUpdated\"\nexport * from \"./calendarWebhookEventUpdatedData\"\nexport * from \"./calendarWebhookEventUpdatedDataAffectedInstancesItem\"\nexport * from \"./calendarWebhookEventUpdatedDataAffectedInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventUpdatedDataAffectedInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventUpdatedDataAffectedInstancesItemStatus\"\nexport * from \"./calendarWebhookEventUpdatedDataEventType\"\nexport * from \"./calendarWebhookEventUpdatedDataSeriesId\"\nexport * from \"./calendarWebhookEventUpdatedInput\"\nexport * from \"./calendarWebhookEventUpdatedInputData\"\nexport * from \"./calendarWebhookEventUpdatedInputDataAffectedInstancesItem\"\nexport * from \"./calendarWebhookEventUpdatedInputDataAffectedInstancesItemMeetingPlatform\"\nexport * from \"./calendarWebhookEventUpdatedInputDataAffectedInstancesItemMeetingUrl\"\nexport * from \"./calendarWebhookEventUpdatedInputDataAffectedInstancesItemStatus\"\nexport * from \"./calendarWebhookEventUpdatedInputDataEventType\"\nexport * from \"./calendarWebhookEventUpdatedInputDataSeriesId\"\nexport * from \"./callbackCompleted\"\nexport * from \"./callbackCompletedData\"\nexport * from \"./callbackCompletedDataAudio\"\nexport * from \"./callbackCompletedDataDiarization\"\nexport * from \"./callbackCompletedDataDurationSeconds\"\nexport * from \"./callbackCompletedDataEventId\"\nexport * from \"./callbackCompletedDataExitedAt\"\nexport * from \"./callbackCompletedDataJoinedAt\"\nexport * from \"./callbackCompletedDataParticipantsItem\"\nexport * from \"./callbackCompletedDataParticipantsItemId\"\nexport * from \"./callbackCompletedDataRawTranscription\"\nexport * from \"./callbackCompletedDataSpeakersItem\"\nexport * from \"./callbackCompletedDataSpeakersItemId\"\nexport * from \"./callbackCompletedDataTranscription\"\nexport * from \"./callbackCompletedDataTranscriptionIds\"\nexport * from \"./callbackCompletedDataTranscriptionProvider\"\nexport * from \"./callbackCompletedDataVideo\"\nexport * from \"./callbackCompletedExtra\"\nexport * from \"./callbackCompletedExtraAnyOf\"\nexport * from \"./callbackCompletedInput\"\nexport * from \"./callbackCompletedInputData\"\nexport * from \"./callbackCompletedInputDataAudio\"\nexport * from \"./callbackCompletedInputDataDiarization\"\nexport * from \"./callbackCompletedInputDataDurationSeconds\"\nexport * from \"./callbackCompletedInputDataEventId\"\nexport * from \"./callbackCompletedInputDataExitedAt\"\nexport * from \"./callbackCompletedInputDataJoinedAt\"\nexport * from \"./callbackCompletedInputDataParticipantsItem\"\nexport * from \"./callbackCompletedInputDataParticipantsItemId\"\nexport * from \"./callbackCompletedInputDataRawTranscription\"\nexport * from \"./callbackCompletedInputDataSpeakersItem\"\nexport * from \"./callbackCompletedInputDataSpeakersItemId\"\nexport * from \"./callbackCompletedInputDataTranscription\"\nexport * from \"./callbackCompletedInputDataTranscriptionIds\"\nexport * from \"./callbackCompletedInputDataTranscriptionProvider\"\nexport * from \"./callbackCompletedInputDataVideo\"\nexport * from \"./callbackCompletedInputExtra\"\nexport * from \"./callbackCompletedInputExtraAnyOf\"\nexport * from \"./callbackFailed\"\nexport * from \"./callbackFailedData\"\nexport * from \"./callbackFailedDataEventId\"\nexport * from \"./callbackFailedExtra\"\nexport * from \"./callbackFailedExtraAnyOf\"\nexport * from \"./callbackFailedInput\"\nexport * from \"./callbackFailedInputData\"\nexport * from \"./callbackFailedInputDataEventId\"\nexport * from \"./callbackFailedInputExtra\"\nexport * from \"./callbackFailedInputExtraAnyOf\"\nexport * from \"./createBot429\"\nexport * from \"./createBot429Details\"\nexport * from \"./createBot429Message\"\nexport * from \"./createBotRequestBody\"\nexport * from \"./createBotRequestBodyInput\"\nexport * from \"./createBotRequestBodyInputBotImage\"\nexport * from \"./createBotRequestBodyInputBotImageAnyOf\"\nexport * from \"./createBotRequestBodyInputBotImageConfig\"\nexport * from \"./createBotRequestBodyInputBotImageConfigAnyOf\"\nexport * from \"./createBotRequestBodyInputBotImageConfigAnyOfLoopMode\"\nexport * from \"./createBotRequestBodyInputCallbackConfig\"\nexport * from \"./createBotRequestBodyInputCallbackConfigAnyOf\"\nexport * from \"./createBotRequestBodyInputCallbackConfigAnyOfMethod\"\nexport * from \"./createBotRequestBodyInputCallbackConfigAnyOfSecret\"\nexport * from \"./createBotRequestBodyInputEntryMessage\"\nexport * from \"./createBotRequestBodyInputExtra\"\nexport * from \"./createBotRequestBodyInputExtraAnyOf\"\nexport * from \"./createBotRequestBodyInputRecordingMode\"\nexport * from \"./createBotRequestBodyInputStreamingConfig\"\nexport * from \"./createBotRequestBodyInputStreamingConfigAnyOf\"\nexport * from \"./createBotRequestBodyInputStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./createBotRequestBodyInputStreamingConfigAnyOfAudioFrequencyAnyOf\"\nexport * from \"./createBotRequestBodyInputStreamingConfigAnyOfInputUrl\"\nexport * from \"./createBotRequestBodyInputStreamingConfigAnyOfOutputUrl\"\nexport * from \"./createBotRequestBodyInputTimeoutConfig\"\nexport * from \"./createBotRequestBodyInputTranscriptionConfig\"\nexport * from \"./createBotRequestBodyInputTranscriptionConfigAnyOf\"\nexport * from \"./createBotRequestBodyInputTranscriptionConfigAnyOfApiKey\"\nexport * from \"./createBotRequestBodyInputTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./createBotRequestBodyInputTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./createBotRequestBodyInputTranscriptionConfigAnyOfProvider\"\nexport * from \"./createBotRequestBodyInputZoomConfig\"\nexport * from \"./createBotRequestBodyInputZoomConfigAnyOf\"\nexport * from \"./createBotResponse\"\nexport * from \"./createBotResponseData\"\nexport * from \"./createBotResponseInput\"\nexport * from \"./createBotResponseInputData\"\nexport * from \"./createCalendarBot429\"\nexport * from \"./createCalendarBot429Details\"\nexport * from \"./createCalendarBot429Message\"\nexport * from \"./createCalendarBotRequestBody\"\nexport * from \"./createCalendarBotRequestBodyAllOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfBotImage\"\nexport * from \"./createCalendarBotRequestBodyAllOfBotImageAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfBotImageConfig\"\nexport * from \"./createCalendarBotRequestBodyAllOfBotImageConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfBotImageConfigAnyOfLoopMode\"\nexport * from \"./createCalendarBotRequestBodyAllOfCallbackConfig\"\nexport * from \"./createCalendarBotRequestBodyAllOfCallbackConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfCallbackConfigAnyOfMethod\"\nexport * from \"./createCalendarBotRequestBodyAllOfCallbackConfigAnyOfSecret\"\nexport * from \"./createCalendarBotRequestBodyAllOfEntryMessage\"\nexport * from \"./createCalendarBotRequestBodyAllOfExtra\"\nexport * from \"./createCalendarBotRequestBodyAllOfExtraAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfRecordingMode\"\nexport * from \"./createCalendarBotRequestBodyAllOfStreamingConfig\"\nexport * from \"./createCalendarBotRequestBodyAllOfStreamingConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./createCalendarBotRequestBodyAllOfStreamingConfigAnyOfAudioFrequencyAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfStreamingConfigAnyOfInputUrl\"\nexport * from \"./createCalendarBotRequestBodyAllOfStreamingConfigAnyOfOutputUrl\"\nexport * from \"./createCalendarBotRequestBodyAllOfThreezero\"\nexport * from \"./createCalendarBotRequestBodyAllOfTimeoutConfig\"\nexport * from \"./createCalendarBotRequestBodyAllOfTranscriptionConfig\"\nexport * from \"./createCalendarBotRequestBodyAllOfTranscriptionConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfApiKey\"\nexport * from \"./createCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./createCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./createCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfProvider\"\nexport * from \"./createCalendarBotRequestBodyAllOfZoomConfig\"\nexport * from \"./createCalendarBotRequestBodyAllOfZoomConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInput\"\nexport * from \"./createCalendarBotRequestBodyInputAllOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfBotImage\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfBotImageAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfBotImageConfig\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfBotImageConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfBotImageConfigAnyOfLoopMode\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfCallbackConfig\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfCallbackConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfMethod\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfSecret\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfEntryMessage\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfExtra\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfExtraAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfRecordingMode\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfStreamingConfig\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfStreamingConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfStreamingConfigAnyOfAudioFrequencyAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfStreamingConfigAnyOfInputUrl\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfStreamingConfigAnyOfOutputUrl\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfThreezero\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTimeoutConfig\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTranscriptionConfig\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfApiKey\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfProvider\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfZoomConfig\"\nexport * from \"./createCalendarBotRequestBodyInputAllOfZoomConfigAnyOf\"\nexport * from \"./createCalendarBotResponse\"\nexport * from \"./createCalendarBotResponseDataItem\"\nexport * from \"./createCalendarBotResponseErrorsItem\"\nexport * from \"./createCalendarBotResponseErrorsItemDetails\"\nexport * from \"./createCalendarBotResponseInput\"\nexport * from \"./createCalendarBotResponseInputDataItem\"\nexport * from \"./createCalendarBotResponseInputErrorsItem\"\nexport * from \"./createCalendarBotResponseInputErrorsItemDetails\"\nexport * from \"./createCalendarConnection429\"\nexport * from \"./createCalendarConnection429Details\"\nexport * from \"./createCalendarConnection429Message\"\nexport * from \"./createCalendarConnectionRequestBody\"\nexport * from \"./createCalendarConnectionRequestBodyCalendarPlatform\"\nexport * from \"./createCalendarConnectionRequestBodyInput\"\nexport * from \"./createCalendarConnectionRequestBodyInputCalendarPlatform\"\nexport * from \"./createCalendarConnectionResponse\"\nexport * from \"./createCalendarConnectionResponseData\"\nexport * from \"./createCalendarConnectionResponseDataCalendarPlatform\"\nexport * from \"./createCalendarConnectionResponseDataStatus\"\nexport * from \"./createCalendarConnectionResponseInput\"\nexport * from \"./createCalendarConnectionResponseInputData\"\nexport * from \"./createCalendarConnectionResponseInputDataCalendarPlatform\"\nexport * from \"./createCalendarConnectionResponseInputDataStatus\"\nexport * from \"./createScheduledBot429\"\nexport * from \"./createScheduledBot429Details\"\nexport * from \"./createScheduledBot429Message\"\nexport * from \"./createScheduledBotRequestBody\"\nexport * from \"./createScheduledBotRequestBodyAllOf\"\nexport * from \"./createScheduledBotRequestBodyInput\"\nexport * from \"./createScheduledBotRequestBodyInputAllOf\"\nexport * from \"./createScheduledBotResponse\"\nexport * from \"./createScheduledBotResponseData\"\nexport * from \"./createScheduledBotResponseInput\"\nexport * from \"./createScheduledBotResponseInputData\"\nexport * from \"./createZoomCredential201\"\nexport * from \"./createZoomCredential201Data\"\nexport * from \"./createZoomCredential201DataCredentialType\"\nexport * from \"./createZoomCredential201DataExtra\"\nexport * from \"./createZoomCredential201DataExtraAnyOf\"\nexport * from \"./createZoomCredential201DataLastErrorAt\"\nexport * from \"./createZoomCredential201DataLastErrorMessage\"\nexport * from \"./createZoomCredential201DataScopes\"\nexport * from \"./createZoomCredential201DataState\"\nexport * from \"./createZoomCredential201DataZoomAccountId\"\nexport * from \"./createZoomCredential201DataZoomDisplayName\"\nexport * from \"./createZoomCredential201DataZoomEmail\"\nexport * from \"./createZoomCredential201DataZoomUserId\"\nexport * from \"./createZoomCredential429\"\nexport * from \"./createZoomCredential429Details\"\nexport * from \"./createZoomCredential429Message\"\nexport * from \"./createZoomCredentialBody\"\nexport * from \"./createZoomCredentialBodyExtra\"\nexport * from \"./createZoomCredentialBodyExtraAnyOf\"\nexport * from \"./deleteBotData429\"\nexport * from \"./deleteBotData429Details\"\nexport * from \"./deleteBotData429Message\"\nexport * from \"./deleteBotDataParams\"\nexport * from \"./deleteBotDataResponse\"\nexport * from \"./deleteBotDataResponseData\"\nexport * from \"./deleteBotDataResponseInput\"\nexport * from \"./deleteBotDataResponseInputData\"\nexport * from \"./deleteCalendarBot429\"\nexport * from \"./deleteCalendarBot429Details\"\nexport * from \"./deleteCalendarBot429Message\"\nexport * from \"./deleteCalendarBotBody\"\nexport * from \"./deleteCalendarBotResponse\"\nexport * from \"./deleteCalendarBotResponseDataItem\"\nexport * from \"./deleteCalendarBotResponseErrorsItem\"\nexport * from \"./deleteCalendarBotResponseErrorsItemDetails\"\nexport * from \"./deleteCalendarBotResponseInput\"\nexport * from \"./deleteCalendarBotResponseInputDataItem\"\nexport * from \"./deleteCalendarBotResponseInputErrorsItem\"\nexport * from \"./deleteCalendarBotResponseInputErrorsItemDetails\"\nexport * from \"./deleteCalendarConnection429\"\nexport * from \"./deleteCalendarConnection429Details\"\nexport * from \"./deleteCalendarConnection429Message\"\nexport * from \"./deleteCalendarConnectionResponse\"\nexport * from \"./deleteCalendarConnectionResponseData\"\nexport * from \"./deleteCalendarConnectionResponseInput\"\nexport * from \"./deleteCalendarConnectionResponseInputData\"\nexport * from \"./deleteScheduledBot429\"\nexport * from \"./deleteScheduledBot429Details\"\nexport * from \"./deleteScheduledBot429Message\"\nexport * from \"./deleteScheduledBotResponse\"\nexport * from \"./deleteScheduledBotResponseData\"\nexport * from \"./deleteScheduledBotResponseInput\"\nexport * from \"./deleteScheduledBotResponseInputData\"\nexport * from \"./deleteZoomCredential200\"\nexport * from \"./deleteZoomCredential200Data\"\nexport * from \"./deleteZoomCredential429\"\nexport * from \"./deleteZoomCredential429Details\"\nexport * from \"./deleteZoomCredential429Message\"\nexport * from \"./diarizationSegment\"\nexport * from \"./diarizationSegmentInput\"\nexport * from \"./errorResponse\"\nexport * from \"./errorResponseDetails\"\nexport * from \"./errorResponseInput\"\nexport * from \"./errorResponseInputDetails\"\nexport * from \"./errorResponseInputMessage\"\nexport * from \"./errorResponseMessage\"\nexport * from \"./getBotDetails429\"\nexport * from \"./getBotDetails429Details\"\nexport * from \"./getBotDetails429Message\"\nexport * from \"./getBotDetailsResponse\"\nexport * from \"./getBotDetailsResponseData\"\nexport * from \"./getBotDetailsResponseDataAudio\"\nexport * from \"./getBotDetailsResponseDataChatMessages\"\nexport * from \"./getBotDetailsResponseDataDiarization\"\nexport * from \"./getBotDetailsResponseDataDurationSeconds\"\nexport * from \"./getBotDetailsResponseDataErrorCode\"\nexport * from \"./getBotDetailsResponseDataErrorMessage\"\nexport * from \"./getBotDetailsResponseDataExitedAt\"\nexport * from \"./getBotDetailsResponseDataExtra\"\nexport * from \"./getBotDetailsResponseDataExtraAnyOf\"\nexport * from \"./getBotDetailsResponseDataJoinedAt\"\nexport * from \"./getBotDetailsResponseDataMeetingPlatform\"\nexport * from \"./getBotDetailsResponseDataParticipantsItem\"\nexport * from \"./getBotDetailsResponseDataParticipantsItemId\"\nexport * from \"./getBotDetailsResponseDataRawTranscription\"\nexport * from \"./getBotDetailsResponseDataRecordingMode\"\nexport * from \"./getBotDetailsResponseDataSpeakersItem\"\nexport * from \"./getBotDetailsResponseDataSpeakersItemId\"\nexport * from \"./getBotDetailsResponseDataStatus\"\nexport * from \"./getBotDetailsResponseDataTokens\"\nexport * from \"./getBotDetailsResponseDataTokensAnyOf\"\nexport * from \"./getBotDetailsResponseDataTranscription\"\nexport * from \"./getBotDetailsResponseDataTranscriptionIds\"\nexport * from \"./getBotDetailsResponseDataTranscriptionProvider\"\nexport * from \"./getBotDetailsResponseDataVideo\"\nexport * from \"./getBotDetailsResponseDataZoomConfig\"\nexport * from \"./getBotDetailsResponseDataZoomConfigAnyOf\"\nexport * from \"./getBotDetailsResponseDataZoomConfigAnyOfCredentialId\"\nexport * from \"./getBotDetailsResponseDataZoomConfigAnyOfCredentialUserId\"\nexport * from \"./getBotDetailsResponseDataZoomConfigAnyOfObfTokenUrl\"\nexport * from \"./getBotDetailsResponseDataZoomConfigAnyOfZakTokenUrl\"\nexport * from \"./getBotDetailsResponseInput\"\nexport * from \"./getBotDetailsResponseInputData\"\nexport * from \"./getBotDetailsResponseInputDataAudio\"\nexport * from \"./getBotDetailsResponseInputDataChatMessages\"\nexport * from \"./getBotDetailsResponseInputDataDiarization\"\nexport * from \"./getBotDetailsResponseInputDataDurationSeconds\"\nexport * from \"./getBotDetailsResponseInputDataErrorCode\"\nexport * from \"./getBotDetailsResponseInputDataErrorMessage\"\nexport * from \"./getBotDetailsResponseInputDataExitedAt\"\nexport * from \"./getBotDetailsResponseInputDataExtra\"\nexport * from \"./getBotDetailsResponseInputDataExtraAnyOf\"\nexport * from \"./getBotDetailsResponseInputDataJoinedAt\"\nexport * from \"./getBotDetailsResponseInputDataMeetingPlatform\"\nexport * from \"./getBotDetailsResponseInputDataParticipantsItem\"\nexport * from \"./getBotDetailsResponseInputDataParticipantsItemId\"\nexport * from \"./getBotDetailsResponseInputDataRawTranscription\"\nexport * from \"./getBotDetailsResponseInputDataRecordingMode\"\nexport * from \"./getBotDetailsResponseInputDataSpeakersItem\"\nexport * from \"./getBotDetailsResponseInputDataSpeakersItemId\"\nexport * from \"./getBotDetailsResponseInputDataStatus\"\nexport * from \"./getBotDetailsResponseInputDataTokens\"\nexport * from \"./getBotDetailsResponseInputDataTokensAnyOf\"\nexport * from \"./getBotDetailsResponseInputDataTranscription\"\nexport * from \"./getBotDetailsResponseInputDataTranscriptionIds\"\nexport * from \"./getBotDetailsResponseInputDataTranscriptionProvider\"\nexport * from \"./getBotDetailsResponseInputDataVideo\"\nexport * from \"./getBotDetailsResponseInputDataZoomConfig\"\nexport * from \"./getBotDetailsResponseInputDataZoomConfigAnyOf\"\nexport * from \"./getBotDetailsResponseInputDataZoomConfigAnyOfCredentialId\"\nexport * from \"./getBotDetailsResponseInputDataZoomConfigAnyOfCredentialUserId\"\nexport * from \"./getBotDetailsResponseInputDataZoomConfigAnyOfObfTokenUrl\"\nexport * from \"./getBotDetailsResponseInputDataZoomConfigAnyOfZakTokenUrl\"\nexport * from \"./getBotScreenshots429\"\nexport * from \"./getBotScreenshots429Details\"\nexport * from \"./getBotScreenshots429Message\"\nexport * from \"./getBotScreenshotsParams\"\nexport * from \"./getBotScreenshotsResponse\"\nexport * from \"./getBotScreenshotsResponseCursor\"\nexport * from \"./getBotScreenshotsResponseDataItem\"\nexport * from \"./getBotScreenshotsResponseInput\"\nexport * from \"./getBotScreenshotsResponseInputCursor\"\nexport * from \"./getBotScreenshotsResponseInputDataItem\"\nexport * from \"./getBotScreenshotsResponseInputPrevCursor\"\nexport * from \"./getBotScreenshotsResponsePrevCursor\"\nexport * from \"./getBotStatus429\"\nexport * from \"./getBotStatus429Details\"\nexport * from \"./getBotStatus429Message\"\nexport * from \"./getBotStatusResponse\"\nexport * from \"./getBotStatusResponseData\"\nexport * from \"./getBotStatusResponseDataStatus\"\nexport * from \"./getBotStatusResponseDataTranscriptionStatus\"\nexport * from \"./getBotStatusResponseInput\"\nexport * from \"./getBotStatusResponseInputData\"\nexport * from \"./getBotStatusResponseInputDataStatus\"\nexport * from \"./getBotStatusResponseInputDataTranscriptionStatus\"\nexport * from \"./getCalendarDetails429\"\nexport * from \"./getCalendarDetails429Details\"\nexport * from \"./getCalendarDetails429Message\"\nexport * from \"./getCalendarDetailsResponse\"\nexport * from \"./getCalendarDetailsResponseData\"\nexport * from \"./getCalendarDetailsResponseDataCalendarPlatform\"\nexport * from \"./getCalendarDetailsResponseDataProviderMetadata\"\nexport * from \"./getCalendarDetailsResponseDataProviderMetadataAnyOf\"\nexport * from \"./getCalendarDetailsResponseDataStatus\"\nexport * from \"./getCalendarDetailsResponseDataStatusMessage\"\nexport * from \"./getCalendarDetailsResponseDataSubscriptionExpiresAt\"\nexport * from \"./getCalendarDetailsResponseDataSubscriptionId\"\nexport * from \"./getCalendarDetailsResponseDataSyncError\"\nexport * from \"./getCalendarDetailsResponseDataSyncedAt\"\nexport * from \"./getCalendarDetailsResponseDataSyncStatus\"\nexport * from \"./getCalendarDetailsResponseInput\"\nexport * from \"./getCalendarDetailsResponseInputData\"\nexport * from \"./getCalendarDetailsResponseInputDataCalendarPlatform\"\nexport * from \"./getCalendarDetailsResponseInputDataProviderMetadata\"\nexport * from \"./getCalendarDetailsResponseInputDataProviderMetadataAnyOf\"\nexport * from \"./getCalendarDetailsResponseInputDataStatus\"\nexport * from \"./getCalendarDetailsResponseInputDataStatusMessage\"\nexport * from \"./getCalendarDetailsResponseInputDataSubscriptionExpiresAt\"\nexport * from \"./getCalendarDetailsResponseInputDataSubscriptionId\"\nexport * from \"./getCalendarDetailsResponseInputDataSyncError\"\nexport * from \"./getCalendarDetailsResponseInputDataSyncedAt\"\nexport * from \"./getCalendarDetailsResponseInputDataSyncStatus\"\nexport * from \"./getEventDetails429\"\nexport * from \"./getEventDetails429Details\"\nexport * from \"./getEventDetails429Message\"\nexport * from \"./getEventDetailsResponse\"\nexport * from \"./getEventDetailsResponseData\"\nexport * from \"./getEventDetailsResponseDataAttendees\"\nexport * from \"./getEventDetailsResponseDataAttendeesAnyOfItem\"\nexport * from \"./getEventDetailsResponseDataAttendeesAnyOfItemName\"\nexport * from \"./getEventDetailsResponseDataAttendeesAnyOfItemResponseStatus\"\nexport * from \"./getEventDetailsResponseDataCalendarPlatform\"\nexport * from \"./getEventDetailsResponseDataDescription\"\nexport * from \"./getEventDetailsResponseDataEventType\"\nexport * from \"./getEventDetailsResponseDataLocation\"\nexport * from \"./getEventDetailsResponseDataMeetingPlatform\"\nexport * from \"./getEventDetailsResponseDataMeetingUrl\"\nexport * from \"./getEventDetailsResponseDataOrganizerEmail\"\nexport * from \"./getEventDetailsResponseDataOrganizerName\"\nexport * from \"./getEventDetailsResponseDataRawPayload\"\nexport * from \"./getEventDetailsResponseDataRawPayloadAnyOf\"\nexport * from \"./getEventDetailsResponseDataStatus\"\nexport * from \"./getEventDetailsResponseDataTimezone\"\nexport * from \"./getEventDetailsResponseInput\"\nexport * from \"./getEventDetailsResponseInputData\"\nexport * from \"./getEventDetailsResponseInputDataAttendees\"\nexport * from \"./getEventDetailsResponseInputDataAttendeesAnyOfItem\"\nexport * from \"./getEventDetailsResponseInputDataAttendeesAnyOfItemName\"\nexport * from \"./getEventDetailsResponseInputDataAttendeesAnyOfItemResponseStatus\"\nexport * from \"./getEventDetailsResponseInputDataCalendarPlatform\"\nexport * from \"./getEventDetailsResponseInputDataDescription\"\nexport * from \"./getEventDetailsResponseInputDataEventType\"\nexport * from \"./getEventDetailsResponseInputDataLocation\"\nexport * from \"./getEventDetailsResponseInputDataMeetingPlatform\"\nexport * from \"./getEventDetailsResponseInputDataMeetingUrl\"\nexport * from \"./getEventDetailsResponseInputDataOrganizerEmail\"\nexport * from \"./getEventDetailsResponseInputDataOrganizerName\"\nexport * from \"./getEventDetailsResponseInputDataRawPayload\"\nexport * from \"./getEventDetailsResponseInputDataRawPayloadAnyOf\"\nexport * from \"./getEventDetailsResponseInputDataStatus\"\nexport * from \"./getEventDetailsResponseInputDataTimezone\"\nexport * from \"./getScheduledBotDetails429\"\nexport * from \"./getScheduledBotDetails429Details\"\nexport * from \"./getScheduledBotDetails429Message\"\nexport * from \"./getScheduledBotResponse\"\nexport * from \"./getScheduledBotResponseData\"\nexport * from \"./getScheduledBotResponseDataBotImage\"\nexport * from \"./getScheduledBotResponseDataCallbackConfig\"\nexport * from \"./getScheduledBotResponseDataCallbackConfigAnyOf\"\nexport * from \"./getScheduledBotResponseDataCallbackConfigAnyOfMethod\"\nexport * from \"./getScheduledBotResponseDataCallbackConfigAnyOfSecret\"\nexport * from \"./getScheduledBotResponseDataCancelledAt\"\nexport * from \"./getScheduledBotResponseDataEntryMessage\"\nexport * from \"./getScheduledBotResponseDataExtra\"\nexport * from \"./getScheduledBotResponseDataExtraAnyOf\"\nexport * from \"./getScheduledBotResponseDataMeetingPlatform\"\nexport * from \"./getScheduledBotResponseDataRecordingMode\"\nexport * from \"./getScheduledBotResponseDataStatus\"\nexport * from \"./getScheduledBotResponseDataStreamingConfig\"\nexport * from \"./getScheduledBotResponseDataStreamingConfigAnyOf\"\nexport * from \"./getScheduledBotResponseDataStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./getScheduledBotResponseDataStreamingConfigAnyOfInputUrl\"\nexport * from \"./getScheduledBotResponseDataStreamingConfigAnyOfOutputUrl\"\nexport * from \"./getScheduledBotResponseDataTimeoutConfig\"\nexport * from \"./getScheduledBotResponseDataTimeoutConfigNoOneJoinedTimeout\"\nexport * from \"./getScheduledBotResponseDataTimeoutConfigWaitingRoomTimeout\"\nexport * from \"./getScheduledBotResponseDataTranscriptionConfig\"\nexport * from \"./getScheduledBotResponseDataTranscriptionConfigAnyOf\"\nexport * from \"./getScheduledBotResponseDataTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./getScheduledBotResponseDataTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./getScheduledBotResponseDataTranscriptionConfigAnyOfProvider\"\nexport * from \"./getScheduledBotResponseDataZoomConfig\"\nexport * from \"./getScheduledBotResponseDataZoomConfigAnyOf\"\nexport * from \"./getScheduledBotResponseDataZoomConfigAnyOfCredentialId\"\nexport * from \"./getScheduledBotResponseDataZoomConfigAnyOfCredentialUserId\"\nexport * from \"./getScheduledBotResponseDataZoomConfigAnyOfObfTokenUrl\"\nexport * from \"./getScheduledBotResponseDataZoomConfigAnyOfZakTokenUrl\"\nexport * from \"./getScheduledBotResponseInput\"\nexport * from \"./getScheduledBotResponseInputData\"\nexport * from \"./getScheduledBotResponseInputDataBotImage\"\nexport * from \"./getScheduledBotResponseInputDataCallbackConfig\"\nexport * from \"./getScheduledBotResponseInputDataCallbackConfigAnyOf\"\nexport * from \"./getScheduledBotResponseInputDataCallbackConfigAnyOfMethod\"\nexport * from \"./getScheduledBotResponseInputDataCallbackConfigAnyOfSecret\"\nexport * from \"./getScheduledBotResponseInputDataCancelledAt\"\nexport * from \"./getScheduledBotResponseInputDataEntryMessage\"\nexport * from \"./getScheduledBotResponseInputDataExtra\"\nexport * from \"./getScheduledBotResponseInputDataExtraAnyOf\"\nexport * from \"./getScheduledBotResponseInputDataMeetingPlatform\"\nexport * from \"./getScheduledBotResponseInputDataRecordingMode\"\nexport * from \"./getScheduledBotResponseInputDataStatus\"\nexport * from \"./getScheduledBotResponseInputDataStreamingConfig\"\nexport * from \"./getScheduledBotResponseInputDataStreamingConfigAnyOf\"\nexport * from \"./getScheduledBotResponseInputDataStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./getScheduledBotResponseInputDataStreamingConfigAnyOfInputUrl\"\nexport * from \"./getScheduledBotResponseInputDataStreamingConfigAnyOfOutputUrl\"\nexport * from \"./getScheduledBotResponseInputDataTimeoutConfig\"\nexport * from \"./getScheduledBotResponseInputDataTimeoutConfigNoOneJoinedTimeout\"\nexport * from \"./getScheduledBotResponseInputDataTimeoutConfigWaitingRoomTimeout\"\nexport * from \"./getScheduledBotResponseInputDataTranscriptionConfig\"\nexport * from \"./getScheduledBotResponseInputDataTranscriptionConfigAnyOf\"\nexport * from \"./getScheduledBotResponseInputDataTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./getScheduledBotResponseInputDataTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./getScheduledBotResponseInputDataTranscriptionConfigAnyOfProvider\"\nexport * from \"./getScheduledBotResponseInputDataZoomConfig\"\nexport * from \"./getScheduledBotResponseInputDataZoomConfigAnyOf\"\nexport * from \"./getScheduledBotResponseInputDataZoomConfigAnyOfCredentialId\"\nexport * from \"./getScheduledBotResponseInputDataZoomConfigAnyOfCredentialUserId\"\nexport * from \"./getScheduledBotResponseInputDataZoomConfigAnyOfObfTokenUrl\"\nexport * from \"./getScheduledBotResponseInputDataZoomConfigAnyOfZakTokenUrl\"\nexport * from \"./getZoomCredential200\"\nexport * from \"./getZoomCredential200Data\"\nexport * from \"./getZoomCredential200DataCredentialType\"\nexport * from \"./getZoomCredential200DataExtra\"\nexport * from \"./getZoomCredential200DataExtraAnyOf\"\nexport * from \"./getZoomCredential200DataLastErrorAt\"\nexport * from \"./getZoomCredential200DataLastErrorMessage\"\nexport * from \"./getZoomCredential200DataScopes\"\nexport * from \"./getZoomCredential200DataState\"\nexport * from \"./getZoomCredential200DataZoomAccountId\"\nexport * from \"./getZoomCredential200DataZoomDisplayName\"\nexport * from \"./getZoomCredential200DataZoomEmail\"\nexport * from \"./getZoomCredential200DataZoomUserId\"\nexport * from \"./getZoomCredential429\"\nexport * from \"./getZoomCredential429Details\"\nexport * from \"./getZoomCredential429Message\"\nexport * from \"./leaveBot429\"\nexport * from \"./leaveBot429Details\"\nexport * from \"./leaveBot429Message\"\nexport * from \"./leaveBotResponse\"\nexport * from \"./leaveBotResponseData\"\nexport * from \"./leaveBotResponseInput\"\nexport * from \"./leaveBotResponseInputData\"\nexport * from \"./listBots429\"\nexport * from \"./listBots429Details\"\nexport * from \"./listBots429Message\"\nexport * from \"./listBotsMeetingPlatformAnyOf\"\nexport * from \"./listBotsParams\"\nexport * from \"./listBotsResponse\"\nexport * from \"./listBotsResponseCursor\"\nexport * from \"./listBotsResponseDataItem\"\nexport * from \"./listBotsResponseDataItemDuration\"\nexport * from \"./listBotsResponseDataItemEndedAt\"\nexport * from \"./listBotsResponseDataItemErrorCode\"\nexport * from \"./listBotsResponseDataItemErrorMessage\"\nexport * from \"./listBotsResponseDataItemExitedAt\"\nexport * from \"./listBotsResponseDataItemExtra\"\nexport * from \"./listBotsResponseDataItemExtraAnyOf\"\nexport * from \"./listBotsResponseDataItemJoinedAt\"\nexport * from \"./listBotsResponseDataItemMeetingPlatform\"\nexport * from \"./listBotsResponseDataItemStatus\"\nexport * from \"./listBotsResponseDataItemTokens\"\nexport * from \"./listBotsResponseDataItemTokensAnyOf\"\nexport * from \"./listBotsResponseInput\"\nexport * from \"./listBotsResponseInputCursor\"\nexport * from \"./listBotsResponseInputDataItem\"\nexport * from \"./listBotsResponseInputDataItemDuration\"\nexport * from \"./listBotsResponseInputDataItemEndedAt\"\nexport * from \"./listBotsResponseInputDataItemErrorCode\"\nexport * from \"./listBotsResponseInputDataItemErrorMessage\"\nexport * from \"./listBotsResponseInputDataItemExitedAt\"\nexport * from \"./listBotsResponseInputDataItemExtra\"\nexport * from \"./listBotsResponseInputDataItemExtraAnyOf\"\nexport * from \"./listBotsResponseInputDataItemJoinedAt\"\nexport * from \"./listBotsResponseInputDataItemMeetingPlatform\"\nexport * from \"./listBotsResponseInputDataItemStatus\"\nexport * from \"./listBotsResponseInputDataItemTokens\"\nexport * from \"./listBotsResponseInputDataItemTokensAnyOf\"\nexport * from \"./listBotsResponseInputPrevCursor\"\nexport * from \"./listBotsResponsePrevCursor\"\nexport * from \"./listBotsStatusAnyOf\"\nexport * from \"./listCalendars429\"\nexport * from \"./listCalendars429Details\"\nexport * from \"./listCalendars429Message\"\nexport * from \"./listCalendarsCalendarPlatformAnyOf\"\nexport * from \"./listCalendarsParams\"\nexport * from \"./listCalendarsResponse\"\nexport * from \"./listCalendarsResponseCursor\"\nexport * from \"./listCalendarsResponseDataItem\"\nexport * from \"./listCalendarsResponseDataItemCalendarPlatform\"\nexport * from \"./listCalendarsResponseDataItemStatus\"\nexport * from \"./listCalendarsResponseDataItemSyncedAt\"\nexport * from \"./listCalendarsResponseInput\"\nexport * from \"./listCalendarsResponseInputCursor\"\nexport * from \"./listCalendarsResponseInputDataItem\"\nexport * from \"./listCalendarsResponseInputDataItemCalendarPlatform\"\nexport * from \"./listCalendarsResponseInputDataItemStatus\"\nexport * from \"./listCalendarsResponseInputDataItemSyncedAt\"\nexport * from \"./listCalendarsResponseInputPrevCursor\"\nexport * from \"./listCalendarsResponsePrevCursor\"\nexport * from \"./listCalendarsStatusAnyOf\"\nexport * from \"./listEventSeries429\"\nexport * from \"./listEventSeries429Details\"\nexport * from \"./listEventSeries429Message\"\nexport * from \"./listEventSeriesEventTypeAnyOf\"\nexport * from \"./listEventSeriesParams\"\nexport * from \"./listEventSeriesResponse\"\nexport * from \"./listEventSeriesResponseCursor\"\nexport * from \"./listEventSeriesResponseDataItem\"\nexport * from \"./listEventSeriesResponseDataItemEventsItem\"\nexport * from \"./listEventSeriesResponseDataItemEventsItemMeetingPlatform\"\nexport * from \"./listEventSeriesResponseDataItemEventsItemMeetingUrl\"\nexport * from \"./listEventSeriesResponseDataItemEventsItemStatus\"\nexport * from \"./listEventSeriesResponseDataItemEventType\"\nexport * from \"./listEventSeriesResponseInput\"\nexport * from \"./listEventSeriesResponseInputCursor\"\nexport * from \"./listEventSeriesResponseInputDataItem\"\nexport * from \"./listEventSeriesResponseInputDataItemEventsItem\"\nexport * from \"./listEventSeriesResponseInputDataItemEventsItemMeetingPlatform\"\nexport * from \"./listEventSeriesResponseInputDataItemEventsItemMeetingUrl\"\nexport * from \"./listEventSeriesResponseInputDataItemEventsItemStatus\"\nexport * from \"./listEventSeriesResponseInputDataItemEventType\"\nexport * from \"./listEventSeriesResponseInputPrevCursor\"\nexport * from \"./listEventSeriesResponsePrevCursor\"\nexport * from \"./listEvents429\"\nexport * from \"./listEvents429Details\"\nexport * from \"./listEvents429Message\"\nexport * from \"./listEventsParams\"\nexport * from \"./listEventsResponse\"\nexport * from \"./listEventsResponseCursor\"\nexport * from \"./listEventsResponseDataItem\"\nexport * from \"./listEventsResponseDataItemEventType\"\nexport * from \"./listEventsResponseDataItemMeetingPlatform\"\nexport * from \"./listEventsResponseDataItemMeetingUrl\"\nexport * from \"./listEventsResponseDataItemStatus\"\nexport * from \"./listEventsResponseInput\"\nexport * from \"./listEventsResponseInputCursor\"\nexport * from \"./listEventsResponseInputDataItem\"\nexport * from \"./listEventsResponseInputDataItemEventType\"\nexport * from \"./listEventsResponseInputDataItemMeetingPlatform\"\nexport * from \"./listEventsResponseInputDataItemMeetingUrl\"\nexport * from \"./listEventsResponseInputDataItemStatus\"\nexport * from \"./listEventsResponseInputPrevCursor\"\nexport * from \"./listEventsResponsePrevCursor\"\nexport * from \"./listEventsStatusAnyOf\"\nexport * from \"./listRawCalendars429\"\nexport * from \"./listRawCalendars429Details\"\nexport * from \"./listRawCalendars429Message\"\nexport * from \"./listRawCalendarsRequestBody\"\nexport * from \"./listRawCalendarsRequestBodyCalendarPlatform\"\nexport * from \"./listRawCalendarsRequestBodyInput\"\nexport * from \"./listRawCalendarsRequestBodyInputCalendarPlatform\"\nexport * from \"./listRawCalendarsResponse\"\nexport * from \"./listRawCalendarsResponseDataItem\"\nexport * from \"./listRawCalendarsResponseInput\"\nexport * from \"./listRawCalendarsResponseInputDataItem\"\nexport * from \"./listScheduledBots429\"\nexport * from \"./listScheduledBots429Details\"\nexport * from \"./listScheduledBots429Message\"\nexport * from \"./listScheduledBotsMeetingPlatformAnyOf\"\nexport * from \"./listScheduledBotsParams\"\nexport * from \"./listScheduledBotsResponse\"\nexport * from \"./listScheduledBotsResponseCursor\"\nexport * from \"./listScheduledBotsResponseDataItem\"\nexport * from \"./listScheduledBotsResponseDataItemExtra\"\nexport * from \"./listScheduledBotsResponseDataItemExtraAnyOf\"\nexport * from \"./listScheduledBotsResponseDataItemMeetingPlatform\"\nexport * from \"./listScheduledBotsResponseDataItemStatus\"\nexport * from \"./listScheduledBotsResponseInput\"\nexport * from \"./listScheduledBotsResponseInputCursor\"\nexport * from \"./listScheduledBotsResponseInputDataItem\"\nexport * from \"./listScheduledBotsResponseInputDataItemExtra\"\nexport * from \"./listScheduledBotsResponseInputDataItemExtraAnyOf\"\nexport * from \"./listScheduledBotsResponseInputDataItemMeetingPlatform\"\nexport * from \"./listScheduledBotsResponseInputDataItemStatus\"\nexport * from \"./listScheduledBotsResponseInputPrevCursor\"\nexport * from \"./listScheduledBotsResponsePrevCursor\"\nexport * from \"./listScheduledBotsStatusAnyOf\"\nexport * from \"./listZoomCredentials200\"\nexport * from \"./listZoomCredentials200DataItem\"\nexport * from \"./listZoomCredentials200DataItemCredentialType\"\nexport * from \"./listZoomCredentials200DataItemExtra\"\nexport * from \"./listZoomCredentials200DataItemExtraAnyOf\"\nexport * from \"./listZoomCredentials200DataItemLastErrorAt\"\nexport * from \"./listZoomCredentials200DataItemLastErrorMessage\"\nexport * from \"./listZoomCredentials200DataItemScopes\"\nexport * from \"./listZoomCredentials200DataItemState\"\nexport * from \"./listZoomCredentials200DataItemZoomAccountId\"\nexport * from \"./listZoomCredentials200DataItemZoomDisplayName\"\nexport * from \"./listZoomCredentials200DataItemZoomEmail\"\nexport * from \"./listZoomCredentials200DataItemZoomUserId\"\nexport * from \"./listZoomCredentials429\"\nexport * from \"./listZoomCredentials429Details\"\nexport * from \"./listZoomCredentials429Message\"\nexport * from \"./listZoomCredentialsCredentialTypeAnyOf\"\nexport * from \"./listZoomCredentialsParams\"\nexport * from \"./listZoomCredentialsStateAnyOf\"\nexport * from \"./meetTeamsDiarizationSegment\"\nexport * from \"./meetTeamsDiarizationSegmentInput\"\nexport * from \"./outputTranscription\"\nexport * from \"./outputTranscriptionInput\"\nexport * from \"./outputTranscriptionInputResult\"\nexport * from \"./outputTranscriptionInputResultUtterancesItem\"\nexport * from \"./outputTranscriptionInputResultUtterancesItemWordsItem\"\nexport * from \"./outputTranscriptionResult\"\nexport * from \"./outputTranscriptionResultUtterancesItem\"\nexport * from \"./outputTranscriptionResultUtterancesItemWordsItem\"\nexport * from \"./pauseBotRecording200\"\nexport * from \"./pauseBotRecording200Data\"\nexport * from \"./pauseBotRecording429\"\nexport * from \"./pauseBotRecording429Details\"\nexport * from \"./pauseBotRecording429Message\"\nexport * from \"./pauseBotRecordingBody\"\nexport * from \"./pauseBotRecordingBodyChatMessage\"\nexport * from \"./rawTranscription\"\nexport * from \"./rawTranscriptionInput\"\nexport * from \"./rawTranscriptionInputTranscriptionsItem\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemAudioToLlm\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemChapterization\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemMetadata\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemModeration\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemNamedEntityRecognition\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemSentimentAnalysis\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemSummarization\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemTranscription\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemTranscriptionUtterancesItem\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemTranscriptionUtterancesItemWordsItem\"\nexport * from \"./rawTranscriptionInputTranscriptionsItemTranslation\"\nexport * from \"./rawTranscriptionTranscriptionsItem\"\nexport * from \"./rawTranscriptionTranscriptionsItemAudioToLlm\"\nexport * from \"./rawTranscriptionTranscriptionsItemChapterization\"\nexport * from \"./rawTranscriptionTranscriptionsItemMetadata\"\nexport * from \"./rawTranscriptionTranscriptionsItemModeration\"\nexport * from \"./rawTranscriptionTranscriptionsItemNamedEntityRecognition\"\nexport * from \"./rawTranscriptionTranscriptionsItemSentimentAnalysis\"\nexport * from \"./rawTranscriptionTranscriptionsItemSummarization\"\nexport * from \"./rawTranscriptionTranscriptionsItemTranscription\"\nexport * from \"./rawTranscriptionTranscriptionsItemTranscriptionUtterancesItem\"\nexport * from \"./rawTranscriptionTranscriptionsItemTranscriptionUtterancesItemWordsItem\"\nexport * from \"./rawTranscriptionTranscriptionsItemTranslation\"\nexport * from \"./resendFinalWebhook429\"\nexport * from \"./resendFinalWebhook429Details\"\nexport * from \"./resendFinalWebhook429Message\"\nexport * from \"./resendFinalWebhookResponse\"\nexport * from \"./resendFinalWebhookResponseData\"\nexport * from \"./resendFinalWebhookResponseInput\"\nexport * from \"./resendFinalWebhookResponseInputData\"\nexport * from \"./resubscribeCalendar429\"\nexport * from \"./resubscribeCalendar429Details\"\nexport * from \"./resubscribeCalendar429Message\"\nexport * from \"./resubscribeCalendarResponse\"\nexport * from \"./resubscribeCalendarResponseData\"\nexport * from \"./resubscribeCalendarResponseInput\"\nexport * from \"./resubscribeCalendarResponseInputData\"\nexport * from \"./resumeBotRecording200\"\nexport * from \"./resumeBotRecording200Data\"\nexport * from \"./resumeBotRecording429\"\nexport * from \"./resumeBotRecording429Details\"\nexport * from \"./resumeBotRecording429Message\"\nexport * from \"./resumeBotRecordingBody\"\nexport * from \"./resumeBotRecordingBodyChatMessage\"\nexport * from \"./retryCallback429\"\nexport * from \"./retryCallback429Details\"\nexport * from \"./retryCallback429Message\"\nexport * from \"./retryCallbackRequestBody\"\nexport * from \"./retryCallbackRequestBodyAnyOf\"\nexport * from \"./retryCallbackRequestBodyAnyOfMethod\"\nexport * from \"./retryCallbackRequestBodyAnyOfSecret\"\nexport * from \"./retryCallbackRequestBodyInput\"\nexport * from \"./retryCallbackRequestBodyInputAnyOf\"\nexport * from \"./retryCallbackRequestBodyInputAnyOfMethod\"\nexport * from \"./retryCallbackRequestBodyInputAnyOfSecret\"\nexport * from \"./retryCallbackResponse\"\nexport * from \"./retryCallbackResponseData\"\nexport * from \"./retryCallbackResponseInput\"\nexport * from \"./retryCallbackResponseInputData\"\nexport * from \"./sendChatMessage200\"\nexport * from \"./sendChatMessage200Data\"\nexport * from \"./sendChatMessage429\"\nexport * from \"./sendChatMessage429Details\"\nexport * from \"./sendChatMessage429Message\"\nexport * from \"./sendChatMessageBody\"\nexport * from \"./syncCalendar429\"\nexport * from \"./syncCalendar429Details\"\nexport * from \"./syncCalendar429Message\"\nexport * from \"./syncCalendarResponse\"\nexport * from \"./syncCalendarResponseData\"\nexport * from \"./syncCalendarResponseInput\"\nexport * from \"./syncCalendarResponseInputData\"\nexport * from \"./updateBotConfig200\"\nexport * from \"./updateBotConfig200Data\"\nexport * from \"./updateBotConfig429\"\nexport * from \"./updateBotConfig429Details\"\nexport * from \"./updateBotConfig429Message\"\nexport * from \"./updateBotConfigBody\"\nexport * from \"./updateBotConfigBodyExtra\"\nexport * from \"./updateBotConfigBodyExtraAnyOf\"\nexport * from \"./updateCalendarBot429\"\nexport * from \"./updateCalendarBot429Details\"\nexport * from \"./updateCalendarBot429Message\"\nexport * from \"./updateCalendarBotRequestBody\"\nexport * from \"./updateCalendarBotRequestBodyAllOf\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwo\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoBotImage\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoBotImageAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoBotImageConfig\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOfLoopMode\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoCallbackConfig\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoCallbackConfigMethod\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoCallbackConfigSecret\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoEntryMessage\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoExtra\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoExtraAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoRecordingMode\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoStreamingConfig\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoStreamingConfigAudioFrequency\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoStreamingConfigAudioFrequencyAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoStreamingConfigInputUrl\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoStreamingConfigOutputUrl\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoTimeoutConfig\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoTranscriptionConfig\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoTranscriptionConfigApiKey\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoTranscriptionConfigCustomParams\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoTranscriptionConfigCustomParamsAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoTranscriptionConfigProvider\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoZoomConfig\"\nexport * from \"./updateCalendarBotRequestBodyAllOfTwoZoomConfigAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyInput\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOf\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwo\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoBotImage\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoBotImageAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoBotImageConfig\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOfLoopMode\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoCallbackConfig\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoCallbackConfigMethod\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoCallbackConfigSecret\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoEntryMessage\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoExtra\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoExtraAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoRecordingMode\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoStreamingConfig\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoStreamingConfigAudioFrequency\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoStreamingConfigAudioFrequencyAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoStreamingConfigInputUrl\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoStreamingConfigOutputUrl\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoTimeoutConfig\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfig\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigApiKey\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigCustomParams\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigCustomParamsAnyOf\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigProvider\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoZoomConfig\"\nexport * from \"./updateCalendarBotRequestBodyInputAllOfTwoZoomConfigAnyOf\"\nexport * from \"./updateCalendarBotResponse\"\nexport * from \"./updateCalendarBotResponseDataItem\"\nexport * from \"./updateCalendarBotResponseErrorsItem\"\nexport * from \"./updateCalendarBotResponseErrorsItemDetails\"\nexport * from \"./updateCalendarBotResponseInput\"\nexport * from \"./updateCalendarBotResponseInputDataItem\"\nexport * from \"./updateCalendarBotResponseInputErrorsItem\"\nexport * from \"./updateCalendarBotResponseInputErrorsItemDetails\"\nexport * from \"./updateCalendarConnection429\"\nexport * from \"./updateCalendarConnection429Details\"\nexport * from \"./updateCalendarConnection429Message\"\nexport * from \"./updateCalendarConnectionRequestBody\"\nexport * from \"./updateCalendarConnectionRequestBodyInput\"\nexport * from \"./updateCalendarConnectionResponse\"\nexport * from \"./updateCalendarConnectionResponseData\"\nexport * from \"./updateCalendarConnectionResponseDataCalendarPlatform\"\nexport * from \"./updateCalendarConnectionResponseDataStatus\"\nexport * from \"./updateCalendarConnectionResponseInput\"\nexport * from \"./updateCalendarConnectionResponseInputData\"\nexport * from \"./updateCalendarConnectionResponseInputDataCalendarPlatform\"\nexport * from \"./updateCalendarConnectionResponseInputDataStatus\"\nexport * from \"./updateScheduledBot429\"\nexport * from \"./updateScheduledBot429Details\"\nexport * from \"./updateScheduledBot429Message\"\nexport * from \"./updateScheduledBotRequestBody\"\nexport * from \"./updateScheduledBotRequestBodyBotImage\"\nexport * from \"./updateScheduledBotRequestBodyBotImageAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyBotImageConfig\"\nexport * from \"./updateScheduledBotRequestBodyBotImageConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyBotImageConfigAnyOfLoopMode\"\nexport * from \"./updateScheduledBotRequestBodyCallbackConfig\"\nexport * from \"./updateScheduledBotRequestBodyCallbackConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyCallbackConfigAnyOfMethod\"\nexport * from \"./updateScheduledBotRequestBodyCallbackConfigAnyOfSecret\"\nexport * from \"./updateScheduledBotRequestBodyEntryMessage\"\nexport * from \"./updateScheduledBotRequestBodyExtra\"\nexport * from \"./updateScheduledBotRequestBodyExtraAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInput\"\nexport * from \"./updateScheduledBotRequestBodyInputBotImage\"\nexport * from \"./updateScheduledBotRequestBodyInputBotImageAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputBotImageConfig\"\nexport * from \"./updateScheduledBotRequestBodyInputBotImageConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputBotImageConfigAnyOfLoopMode\"\nexport * from \"./updateScheduledBotRequestBodyInputCallbackConfig\"\nexport * from \"./updateScheduledBotRequestBodyInputCallbackConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputCallbackConfigAnyOfMethod\"\nexport * from \"./updateScheduledBotRequestBodyInputCallbackConfigAnyOfSecret\"\nexport * from \"./updateScheduledBotRequestBodyInputEntryMessage\"\nexport * from \"./updateScheduledBotRequestBodyInputExtra\"\nexport * from \"./updateScheduledBotRequestBodyInputExtraAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputRecordingMode\"\nexport * from \"./updateScheduledBotRequestBodyInputStreamingConfig\"\nexport * from \"./updateScheduledBotRequestBodyInputStreamingConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./updateScheduledBotRequestBodyInputStreamingConfigAnyOfAudioFrequencyAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputStreamingConfigAnyOfInputUrl\"\nexport * from \"./updateScheduledBotRequestBodyInputStreamingConfigAnyOfOutputUrl\"\nexport * from \"./updateScheduledBotRequestBodyInputTimeoutConfig\"\nexport * from \"./updateScheduledBotRequestBodyInputTranscriptionConfig\"\nexport * from \"./updateScheduledBotRequestBodyInputTranscriptionConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputTranscriptionConfigAnyOfApiKey\"\nexport * from \"./updateScheduledBotRequestBodyInputTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./updateScheduledBotRequestBodyInputTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyInputTranscriptionConfigAnyOfProvider\"\nexport * from \"./updateScheduledBotRequestBodyInputZoomConfig\"\nexport * from \"./updateScheduledBotRequestBodyInputZoomConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyRecordingMode\"\nexport * from \"./updateScheduledBotRequestBodyStreamingConfig\"\nexport * from \"./updateScheduledBotRequestBodyStreamingConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyStreamingConfigAnyOfAudioFrequency\"\nexport * from \"./updateScheduledBotRequestBodyStreamingConfigAnyOfAudioFrequencyAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyStreamingConfigAnyOfInputUrl\"\nexport * from \"./updateScheduledBotRequestBodyStreamingConfigAnyOfOutputUrl\"\nexport * from \"./updateScheduledBotRequestBodyTimeoutConfig\"\nexport * from \"./updateScheduledBotRequestBodyTranscriptionConfig\"\nexport * from \"./updateScheduledBotRequestBodyTranscriptionConfigAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyTranscriptionConfigAnyOfApiKey\"\nexport * from \"./updateScheduledBotRequestBodyTranscriptionConfigAnyOfCustomParams\"\nexport * from \"./updateScheduledBotRequestBodyTranscriptionConfigAnyOfCustomParamsAnyOf\"\nexport * from \"./updateScheduledBotRequestBodyTranscriptionConfigAnyOfProvider\"\nexport * from \"./updateScheduledBotRequestBodyZoomConfig\"\nexport * from \"./updateScheduledBotRequestBodyZoomConfigAnyOf\"\nexport * from \"./updateScheduledBotResponse\"\nexport * from \"./updateScheduledBotResponseData\"\nexport * from \"./updateScheduledBotResponseInput\"\nexport * from \"./updateScheduledBotResponseInputData\"\nexport * from \"./updateZoomCredential200\"\nexport * from \"./updateZoomCredential200Data\"\nexport * from \"./updateZoomCredential200DataCredentialType\"\nexport * from \"./updateZoomCredential200DataExtra\"\nexport * from \"./updateZoomCredential200DataExtraAnyOf\"\nexport * from \"./updateZoomCredential200DataLastErrorAt\"\nexport * from \"./updateZoomCredential200DataLastErrorMessage\"\nexport * from \"./updateZoomCredential200DataScopes\"\nexport * from \"./updateZoomCredential200DataState\"\nexport * from \"./updateZoomCredential200DataZoomAccountId\"\nexport * from \"./updateZoomCredential200DataZoomDisplayName\"\nexport * from \"./updateZoomCredential200DataZoomEmail\"\nexport * from \"./updateZoomCredential200DataZoomUserId\"\nexport * from \"./updateZoomCredential429\"\nexport * from \"./updateZoomCredential429Details\"\nexport * from \"./updateZoomCredential429Message\"\nexport * from \"./updateZoomCredentialBody\"\nexport * from \"./updateZoomCredentialBodyExtra\"\nexport * from \"./updateZoomCredentialBodyExtraAnyOf\"\nexport * from \"./validationErrorResponse\"\nexport * from \"./validationErrorResponseInput\"\nexport * from \"./validationErrorResponseInputMessage\"\nexport * from \"./validationErrorResponseMessage\"\nexport * from \"./zoomDiarizationSegment\"\nexport * from \"./zoomDiarizationSegmentInput\"\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CalendarWebhookConnectionCreatedDataCalendarPlatform =\n  (typeof CalendarWebhookConnectionCreatedDataCalendarPlatform)[keyof typeof CalendarWebhookConnectionCreatedDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionCreatedDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type CalendarWebhookConnectionCreatedDataStatus =\n  (typeof CalendarWebhookConnectionCreatedDataStatus)[keyof typeof CalendarWebhookConnectionCreatedDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionCreatedDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CalendarWebhookConnectionCreatedInputDataCalendarPlatform =\n  (typeof CalendarWebhookConnectionCreatedInputDataCalendarPlatform)[keyof typeof CalendarWebhookConnectionCreatedInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionCreatedInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type CalendarWebhookConnectionCreatedInputDataStatus =\n  (typeof CalendarWebhookConnectionCreatedInputDataStatus)[keyof typeof CalendarWebhookConnectionCreatedInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionCreatedInputDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CalendarWebhookConnectionDeletedDataCalendarPlatform =\n  (typeof CalendarWebhookConnectionDeletedDataCalendarPlatform)[keyof typeof CalendarWebhookConnectionDeletedDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionDeletedDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CalendarWebhookConnectionDeletedInputDataCalendarPlatform =\n  (typeof CalendarWebhookConnectionDeletedInputDataCalendarPlatform)[keyof typeof CalendarWebhookConnectionDeletedInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionDeletedInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CalendarWebhookConnectionUpdatedDataCalendarPlatform =\n  (typeof CalendarWebhookConnectionUpdatedDataCalendarPlatform)[keyof typeof CalendarWebhookConnectionUpdatedDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionUpdatedDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection after the update. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type CalendarWebhookConnectionUpdatedDataStatus =\n  (typeof CalendarWebhookConnectionUpdatedDataStatus)[keyof typeof CalendarWebhookConnectionUpdatedDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionUpdatedDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CalendarWebhookConnectionUpdatedInputDataCalendarPlatform =\n  (typeof CalendarWebhookConnectionUpdatedInputDataCalendarPlatform)[keyof typeof CalendarWebhookConnectionUpdatedInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionUpdatedInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection after the update. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type CalendarWebhookConnectionUpdatedInputDataStatus =\n  (typeof CalendarWebhookConnectionUpdatedInputDataStatus)[keyof typeof CalendarWebhookConnectionUpdatedInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookConnectionUpdatedInputDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventCancelledDataCancelledInstancesItemStatus =\n  (typeof CalendarWebhookEventCancelledDataCancelledInstancesItemStatus)[keyof typeof CalendarWebhookEventCancelledDataCancelledInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCancelledDataCancelledInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventCancelledDataEventType =\n  (typeof CalendarWebhookEventCancelledDataEventType)[keyof typeof CalendarWebhookEventCancelledDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCancelledDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventCancelledInputDataCancelledInstancesItemStatus =\n  (typeof CalendarWebhookEventCancelledInputDataCancelledInstancesItemStatus)[keyof typeof CalendarWebhookEventCancelledInputDataCancelledInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCancelledInputDataCancelledInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventCancelledInputDataEventType =\n  (typeof CalendarWebhookEventCancelledInputDataEventType)[keyof typeof CalendarWebhookEventCancelledInputDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCancelledInputDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventCreatedDataEventType =\n  (typeof CalendarWebhookEventCreatedDataEventType)[keyof typeof CalendarWebhookEventCreatedDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCreatedDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventCreatedDataInstancesItemStatus =\n  (typeof CalendarWebhookEventCreatedDataInstancesItemStatus)[keyof typeof CalendarWebhookEventCreatedDataInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCreatedDataInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventCreatedInputDataEventType =\n  (typeof CalendarWebhookEventCreatedInputDataEventType)[keyof typeof CalendarWebhookEventCreatedInputDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCreatedInputDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventCreatedInputDataInstancesItemStatus =\n  (typeof CalendarWebhookEventCreatedInputDataInstancesItemStatus)[keyof typeof CalendarWebhookEventCreatedInputDataInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventCreatedInputDataInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventsSyncedDataEventsItemEventType =\n  (typeof CalendarWebhookEventsSyncedDataEventsItemEventType)[keyof typeof CalendarWebhookEventsSyncedDataEventsItemEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventsSyncedDataEventsItemEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventsSyncedDataEventsItemInstancesItemStatus =\n  (typeof CalendarWebhookEventsSyncedDataEventsItemInstancesItemStatus)[keyof typeof CalendarWebhookEventsSyncedDataEventsItemInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventsSyncedDataEventsItemInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventsSyncedInputDataEventsItemEventType =\n  (typeof CalendarWebhookEventsSyncedInputDataEventsItemEventType)[keyof typeof CalendarWebhookEventsSyncedInputDataEventsItemEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventsSyncedInputDataEventsItemEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventsSyncedInputDataEventsItemInstancesItemStatus =\n  (typeof CalendarWebhookEventsSyncedInputDataEventsItemInstancesItemStatus)[keyof typeof CalendarWebhookEventsSyncedInputDataEventsItemInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventsSyncedInputDataEventsItemInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventUpdatedDataAffectedInstancesItemStatus =\n  (typeof CalendarWebhookEventUpdatedDataAffectedInstancesItemStatus)[keyof typeof CalendarWebhookEventUpdatedDataAffectedInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventUpdatedDataAffectedInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventUpdatedDataEventType =\n  (typeof CalendarWebhookEventUpdatedDataEventType)[keyof typeof CalendarWebhookEventUpdatedDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventUpdatedDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type CalendarWebhookEventUpdatedInputDataAffectedInstancesItemStatus =\n  (typeof CalendarWebhookEventUpdatedInputDataAffectedInstancesItemStatus)[keyof typeof CalendarWebhookEventUpdatedInputDataAffectedInstancesItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventUpdatedInputDataAffectedInstancesItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events, 'recurring' for events that are part of a recurring series\n */\nexport type CalendarWebhookEventUpdatedInputDataEventType =\n  (typeof CalendarWebhookEventUpdatedInputDataEventType)[keyof typeof CalendarWebhookEventUpdatedInputDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CalendarWebhookEventUpdatedInputDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type CreateBotRequestBodyInputBotImageConfigAnyOfLoopMode =\n  (typeof CreateBotRequestBodyInputBotImageConfigAnyOfLoopMode)[keyof typeof CreateBotRequestBodyInputBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateBotRequestBodyInputBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type CreateBotRequestBodyInputCallbackConfigAnyOfMethod =\n  (typeof CreateBotRequestBodyInputCallbackConfigAnyOfMethod)[keyof typeof CreateBotRequestBodyInputCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateBotRequestBodyInputCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type CreateBotRequestBodyInputRecordingMode =\n  (typeof CreateBotRequestBodyInputRecordingMode)[keyof typeof CreateBotRequestBodyInputRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateBotRequestBodyInputRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type CreateBotRequestBodyInputTranscriptionConfigAnyOfProvider =\n  (typeof CreateBotRequestBodyInputTranscriptionConfigAnyOfProvider)[keyof typeof CreateBotRequestBodyInputTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateBotRequestBodyInputTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type CreateCalendarBotRequestBodyAllOfBotImageConfigAnyOfLoopMode =\n  (typeof CreateCalendarBotRequestBodyAllOfBotImageConfigAnyOfLoopMode)[keyof typeof CreateCalendarBotRequestBodyAllOfBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyAllOfBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type CreateCalendarBotRequestBodyAllOfCallbackConfigAnyOfMethod =\n  (typeof CreateCalendarBotRequestBodyAllOfCallbackConfigAnyOfMethod)[keyof typeof CreateCalendarBotRequestBodyAllOfCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyAllOfCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type CreateCalendarBotRequestBodyAllOfRecordingMode =\n  (typeof CreateCalendarBotRequestBodyAllOfRecordingMode)[keyof typeof CreateCalendarBotRequestBodyAllOfRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyAllOfRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type CreateCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfProvider =\n  (typeof CreateCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfProvider)[keyof typeof CreateCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyAllOfTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type CreateCalendarBotRequestBodyInputAllOfBotImageConfigAnyOfLoopMode =\n  (typeof CreateCalendarBotRequestBodyInputAllOfBotImageConfigAnyOfLoopMode)[keyof typeof CreateCalendarBotRequestBodyInputAllOfBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyInputAllOfBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type CreateCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfMethod =\n  (typeof CreateCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfMethod)[keyof typeof CreateCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyInputAllOfCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type CreateCalendarBotRequestBodyInputAllOfRecordingMode =\n  (typeof CreateCalendarBotRequestBodyInputAllOfRecordingMode)[keyof typeof CreateCalendarBotRequestBodyInputAllOfRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyInputAllOfRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type CreateCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfProvider =\n  (typeof CreateCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfProvider)[keyof typeof CreateCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarBotRequestBodyInputAllOfTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform to connect to. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365.\n */\nexport type CreateCalendarConnectionRequestBodyCalendarPlatform =\n  (typeof CreateCalendarConnectionRequestBodyCalendarPlatform)[keyof typeof CreateCalendarConnectionRequestBodyCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarConnectionRequestBodyCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform to connect to. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365.\n */\nexport type CreateCalendarConnectionRequestBodyInputCalendarPlatform =\n  (typeof CreateCalendarConnectionRequestBodyInputCalendarPlatform)[keyof typeof CreateCalendarConnectionRequestBodyInputCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarConnectionRequestBodyInputCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform where this connection was established. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CreateCalendarConnectionResponseDataCalendarPlatform =\n  (typeof CreateCalendarConnectionResponseDataCalendarPlatform)[keyof typeof CreateCalendarConnectionResponseDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarConnectionResponseDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type CreateCalendarConnectionResponseDataStatus =\n  (typeof CreateCalendarConnectionResponseDataStatus)[keyof typeof CreateCalendarConnectionResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarConnectionResponseDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform where this connection was established. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type CreateCalendarConnectionResponseInputDataCalendarPlatform =\n  (typeof CreateCalendarConnectionResponseInputDataCalendarPlatform)[keyof typeof CreateCalendarConnectionResponseInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarConnectionResponseInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type CreateCalendarConnectionResponseInputDataStatus =\n  (typeof CreateCalendarConnectionResponseInputDataStatus)[keyof typeof CreateCalendarConnectionResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateCalendarConnectionResponseInputDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of Zoom credential.\n\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\n */\nexport type CreateZoomCredential201DataCredentialType =\n  (typeof CreateZoomCredential201DataCredentialType)[keyof typeof CreateZoomCredential201DataCredentialType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateZoomCredential201DataCredentialType = {\n  app: \"app\",\n  user: \"user\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current state of the Zoom credential.\n\n- `active`: Credential is working and can be used\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\n */\nexport type CreateZoomCredential201DataState =\n  (typeof CreateZoomCredential201DataState)[keyof typeof CreateZoomCredential201DataState]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const CreateZoomCredential201DataState = {\n  active: \"active\",\n  invalid: \"invalid\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting\n */\nexport type GetBotDetailsResponseDataMeetingPlatform =\n  (typeof GetBotDetailsResponseDataMeetingPlatform)[keyof typeof GetBotDetailsResponseDataMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotDetailsResponseDataMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode used by the bot\n */\nexport type GetBotDetailsResponseDataRecordingMode =\n  (typeof GetBotDetailsResponseDataRecordingMode)[keyof typeof GetBotDetailsResponseDataRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotDetailsResponseDataRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the bot\n */\nexport type GetBotDetailsResponseDataStatus =\n  (typeof GetBotDetailsResponseDataStatus)[keyof typeof GetBotDetailsResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotDetailsResponseDataStatus = {\n  queued: \"queued\",\n  pickup_delayed: \"pickup_delayed\",\n  transcribing: \"transcribing\",\n  completed: \"completed\",\n  failed: \"failed\",\n  joining_call: \"joining_call\",\n  in_waiting_room: \"in_waiting_room\",\n  in_waiting_for_host: \"in_waiting_for_host\",\n  in_call_not_recording: \"in_call_not_recording\",\n  in_call_recording: \"in_call_recording\",\n  recording_paused: \"recording_paused\",\n  recording_resumed: \"recording_resumed\",\n  call_ended: \"call_ended\",\n  recording_succeeded: \"recording_succeeded\",\n  recording_failed: \"recording_failed\",\n  api_request_stop: \"api_request_stop\",\n  bot_rejected: \"bot_rejected\",\n  bot_removed: \"bot_removed\",\n  bot_removed_too_early: \"bot_removed_too_early\",\n  waiting_room_timeout: \"waiting_room_timeout\",\n  invalid_meeting_url: \"invalid_meeting_url\",\n  meeting_error: \"meeting_error\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting\n */\nexport type GetBotDetailsResponseInputDataMeetingPlatform =\n  (typeof GetBotDetailsResponseInputDataMeetingPlatform)[keyof typeof GetBotDetailsResponseInputDataMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotDetailsResponseInputDataMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode used by the bot\n */\nexport type GetBotDetailsResponseInputDataRecordingMode =\n  (typeof GetBotDetailsResponseInputDataRecordingMode)[keyof typeof GetBotDetailsResponseInputDataRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotDetailsResponseInputDataRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the bot\n */\nexport type GetBotDetailsResponseInputDataStatus =\n  (typeof GetBotDetailsResponseInputDataStatus)[keyof typeof GetBotDetailsResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotDetailsResponseInputDataStatus = {\n  queued: \"queued\",\n  pickup_delayed: \"pickup_delayed\",\n  transcribing: \"transcribing\",\n  completed: \"completed\",\n  failed: \"failed\",\n  joining_call: \"joining_call\",\n  in_waiting_room: \"in_waiting_room\",\n  in_waiting_for_host: \"in_waiting_for_host\",\n  in_call_not_recording: \"in_call_not_recording\",\n  in_call_recording: \"in_call_recording\",\n  recording_paused: \"recording_paused\",\n  recording_resumed: \"recording_resumed\",\n  call_ended: \"call_ended\",\n  recording_succeeded: \"recording_succeeded\",\n  recording_failed: \"recording_failed\",\n  api_request_stop: \"api_request_stop\",\n  bot_rejected: \"bot_rejected\",\n  bot_removed: \"bot_removed\",\n  bot_removed_too_early: \"bot_removed_too_early\",\n  waiting_room_timeout: \"waiting_room_timeout\",\n  invalid_meeting_url: \"invalid_meeting_url\",\n  meeting_error: \"meeting_error\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the bot\n */\nexport type GetBotStatusResponseDataStatus =\n  (typeof GetBotStatusResponseDataStatus)[keyof typeof GetBotStatusResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotStatusResponseDataStatus = {\n  queued: \"queued\",\n  pickup_delayed: \"pickup_delayed\",\n  transcribing: \"transcribing\",\n  completed: \"completed\",\n  failed: \"failed\",\n  joining_call: \"joining_call\",\n  in_waiting_room: \"in_waiting_room\",\n  in_waiting_for_host: \"in_waiting_for_host\",\n  in_call_not_recording: \"in_call_not_recording\",\n  in_call_recording: \"in_call_recording\",\n  recording_paused: \"recording_paused\",\n  recording_resumed: \"recording_resumed\",\n  call_ended: \"call_ended\",\n  recording_succeeded: \"recording_succeeded\",\n  recording_failed: \"recording_failed\",\n  api_request_stop: \"api_request_stop\",\n  bot_rejected: \"bot_rejected\",\n  bot_removed: \"bot_removed\",\n  bot_removed_too_early: \"bot_removed_too_early\",\n  waiting_room_timeout: \"waiting_room_timeout\",\n  invalid_meeting_url: \"invalid_meeting_url\",\n  meeting_error: \"meeting_error\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current transcription status\n */\nexport type GetBotStatusResponseDataTranscriptionStatus =\n  (typeof GetBotStatusResponseDataTranscriptionStatus)[keyof typeof GetBotStatusResponseDataTranscriptionStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotStatusResponseDataTranscriptionStatus = {\n  queued: \"queued\",\n  processing: \"processing\",\n  done: \"done\",\n  error: \"error\",\n  \"not-applicable\": \"not-applicable\",\n  \"not-started\": \"not-started\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the bot\n */\nexport type GetBotStatusResponseInputDataStatus =\n  (typeof GetBotStatusResponseInputDataStatus)[keyof typeof GetBotStatusResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotStatusResponseInputDataStatus = {\n  queued: \"queued\",\n  pickup_delayed: \"pickup_delayed\",\n  transcribing: \"transcribing\",\n  completed: \"completed\",\n  failed: \"failed\",\n  joining_call: \"joining_call\",\n  in_waiting_room: \"in_waiting_room\",\n  in_waiting_for_host: \"in_waiting_for_host\",\n  in_call_not_recording: \"in_call_not_recording\",\n  in_call_recording: \"in_call_recording\",\n  recording_paused: \"recording_paused\",\n  recording_resumed: \"recording_resumed\",\n  call_ended: \"call_ended\",\n  recording_succeeded: \"recording_succeeded\",\n  recording_failed: \"recording_failed\",\n  api_request_stop: \"api_request_stop\",\n  bot_rejected: \"bot_rejected\",\n  bot_removed: \"bot_removed\",\n  bot_removed_too_early: \"bot_removed_too_early\",\n  waiting_room_timeout: \"waiting_room_timeout\",\n  invalid_meeting_url: \"invalid_meeting_url\",\n  meeting_error: \"meeting_error\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current transcription status\n */\nexport type GetBotStatusResponseInputDataTranscriptionStatus =\n  (typeof GetBotStatusResponseInputDataTranscriptionStatus)[keyof typeof GetBotStatusResponseInputDataTranscriptionStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetBotStatusResponseInputDataTranscriptionStatus = {\n  queued: \"queued\",\n  processing: \"processing\",\n  done: \"done\",\n  error: \"error\",\n  \"not-applicable\": \"not-applicable\",\n  \"not-started\": \"not-started\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type GetCalendarDetailsResponseDataCalendarPlatform =\n  (typeof GetCalendarDetailsResponseDataCalendarPlatform)[keyof typeof GetCalendarDetailsResponseDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetCalendarDetailsResponseDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type GetCalendarDetailsResponseDataStatus =\n  (typeof GetCalendarDetailsResponseDataStatus)[keyof typeof GetCalendarDetailsResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetCalendarDetailsResponseDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type GetCalendarDetailsResponseInputDataCalendarPlatform =\n  (typeof GetCalendarDetailsResponseInputDataCalendarPlatform)[keyof typeof GetCalendarDetailsResponseInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetCalendarDetailsResponseInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type GetCalendarDetailsResponseInputDataStatus =\n  (typeof GetCalendarDetailsResponseInputDataStatus)[keyof typeof GetCalendarDetailsResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetCalendarDetailsResponseInputDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The attendee's response status to the event invitation. Defaults to 'needsAction' if the calendar platform did not provide response status information. Possible values: 'accepted' (attendee accepted the invitation), 'declined' (attendee declined the invitation), 'tentative' (attendee responded as tentative), 'needsAction' (attendee has not responded yet)\n */\nexport type GetEventDetailsResponseDataAttendeesAnyOfItemResponseStatus =\n  (typeof GetEventDetailsResponseDataAttendeesAnyOfItemResponseStatus)[keyof typeof GetEventDetailsResponseDataAttendeesAnyOfItemResponseStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseDataAttendeesAnyOfItemResponseStatus = {\n  accepted: \"accepted\",\n  declined: \"declined\",\n  tentative: \"tentative\",\n  needsAction: \"needsAction\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform where this event originates. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type GetEventDetailsResponseDataCalendarPlatform =\n  (typeof GetEventDetailsResponseDataCalendarPlatform)[keyof typeof GetEventDetailsResponseDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\n */\nexport type GetEventDetailsResponseDataEventType =\n  (typeof GetEventDetailsResponseDataEventType)[keyof typeof GetEventDetailsResponseDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type GetEventDetailsResponseDataStatus =\n  (typeof GetEventDetailsResponseDataStatus)[keyof typeof GetEventDetailsResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseDataStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The attendee's response status to the event invitation. Defaults to 'needsAction' if the calendar platform did not provide response status information. Possible values: 'accepted' (attendee accepted the invitation), 'declined' (attendee declined the invitation), 'tentative' (attendee responded as tentative), 'needsAction' (attendee has not responded yet)\n */\nexport type GetEventDetailsResponseInputDataAttendeesAnyOfItemResponseStatus =\n  (typeof GetEventDetailsResponseInputDataAttendeesAnyOfItemResponseStatus)[keyof typeof GetEventDetailsResponseInputDataAttendeesAnyOfItemResponseStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseInputDataAttendeesAnyOfItemResponseStatus = {\n  accepted: \"accepted\",\n  declined: \"declined\",\n  tentative: \"tentative\",\n  needsAction: \"needsAction\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform where this event originates. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type GetEventDetailsResponseInputDataCalendarPlatform =\n  (typeof GetEventDetailsResponseInputDataCalendarPlatform)[keyof typeof GetEventDetailsResponseInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\n */\nexport type GetEventDetailsResponseInputDataEventType =\n  (typeof GetEventDetailsResponseInputDataEventType)[keyof typeof GetEventDetailsResponseInputDataEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseInputDataEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type GetEventDetailsResponseInputDataStatus =\n  (typeof GetEventDetailsResponseInputDataStatus)[keyof typeof GetEventDetailsResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetEventDetailsResponseInputDataStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * HTTP method for callback\n */\nexport type GetScheduledBotResponseDataCallbackConfigAnyOfMethod =\n  (typeof GetScheduledBotResponseDataCallbackConfigAnyOfMethod)[keyof typeof GetScheduledBotResponseDataCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseDataCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting\n */\nexport type GetScheduledBotResponseDataMeetingPlatform =\n  (typeof GetScheduledBotResponseDataMeetingPlatform)[keyof typeof GetScheduledBotResponseDataMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseDataMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode for the bot\n */\nexport type GetScheduledBotResponseDataRecordingMode =\n  (typeof GetScheduledBotResponseDataRecordingMode)[keyof typeof GetScheduledBotResponseDataRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseDataRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the scheduled bot\n */\nexport type GetScheduledBotResponseDataStatus =\n  (typeof GetScheduledBotResponseDataStatus)[keyof typeof GetScheduledBotResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseDataStatus = {\n  scheduled: \"scheduled\",\n  cancelled: \"cancelled\",\n  completed: \"completed\",\n  failed: \"failed\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\nexport type GetScheduledBotResponseDataTranscriptionConfigAnyOfProvider =\n  (typeof GetScheduledBotResponseDataTranscriptionConfigAnyOfProvider)[keyof typeof GetScheduledBotResponseDataTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseDataTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * HTTP method for callback\n */\nexport type GetScheduledBotResponseInputDataCallbackConfigAnyOfMethod =\n  (typeof GetScheduledBotResponseInputDataCallbackConfigAnyOfMethod)[keyof typeof GetScheduledBotResponseInputDataCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseInputDataCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting\n */\nexport type GetScheduledBotResponseInputDataMeetingPlatform =\n  (typeof GetScheduledBotResponseInputDataMeetingPlatform)[keyof typeof GetScheduledBotResponseInputDataMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseInputDataMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode for the bot\n */\nexport type GetScheduledBotResponseInputDataRecordingMode =\n  (typeof GetScheduledBotResponseInputDataRecordingMode)[keyof typeof GetScheduledBotResponseInputDataRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseInputDataRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the scheduled bot\n */\nexport type GetScheduledBotResponseInputDataStatus =\n  (typeof GetScheduledBotResponseInputDataStatus)[keyof typeof GetScheduledBotResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseInputDataStatus = {\n  scheduled: \"scheduled\",\n  cancelled: \"cancelled\",\n  completed: \"completed\",\n  failed: \"failed\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\nexport type GetScheduledBotResponseInputDataTranscriptionConfigAnyOfProvider =\n  (typeof GetScheduledBotResponseInputDataTranscriptionConfigAnyOfProvider)[keyof typeof GetScheduledBotResponseInputDataTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetScheduledBotResponseInputDataTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of Zoom credential.\n\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\n */\nexport type GetZoomCredential200DataCredentialType =\n  (typeof GetZoomCredential200DataCredentialType)[keyof typeof GetZoomCredential200DataCredentialType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetZoomCredential200DataCredentialType = {\n  app: \"app\",\n  user: \"user\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current state of the Zoom credential.\n\n- `active`: Credential is working and can be used\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\n */\nexport type GetZoomCredential200DataState =\n  (typeof GetZoomCredential200DataState)[keyof typeof GetZoomCredential200DataState]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetZoomCredential200DataState = {\n  active: \"active\",\n  invalid: \"invalid\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting (zoom, meet, or teams)\n */\nexport type ListBotsResponseDataItemMeetingPlatform =\n  (typeof ListBotsResponseDataItemMeetingPlatform)[keyof typeof ListBotsResponseDataItemMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListBotsResponseDataItemMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the bot\n */\nexport type ListBotsResponseDataItemStatus =\n  (typeof ListBotsResponseDataItemStatus)[keyof typeof ListBotsResponseDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListBotsResponseDataItemStatus = {\n  queued: \"queued\",\n  pickup_delayed: \"pickup_delayed\",\n  transcribing: \"transcribing\",\n  completed: \"completed\",\n  failed: \"failed\",\n  joining_call: \"joining_call\",\n  in_waiting_room: \"in_waiting_room\",\n  in_waiting_for_host: \"in_waiting_for_host\",\n  in_call_not_recording: \"in_call_not_recording\",\n  in_call_recording: \"in_call_recording\",\n  recording_paused: \"recording_paused\",\n  recording_resumed: \"recording_resumed\",\n  call_ended: \"call_ended\",\n  recording_succeeded: \"recording_succeeded\",\n  recording_failed: \"recording_failed\",\n  api_request_stop: \"api_request_stop\",\n  bot_rejected: \"bot_rejected\",\n  bot_removed: \"bot_removed\",\n  bot_removed_too_early: \"bot_removed_too_early\",\n  waiting_room_timeout: \"waiting_room_timeout\",\n  invalid_meeting_url: \"invalid_meeting_url\",\n  meeting_error: \"meeting_error\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting (zoom, meet, or teams)\n */\nexport type ListBotsResponseInputDataItemMeetingPlatform =\n  (typeof ListBotsResponseInputDataItemMeetingPlatform)[keyof typeof ListBotsResponseInputDataItemMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListBotsResponseInputDataItemMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the bot\n */\nexport type ListBotsResponseInputDataItemStatus =\n  (typeof ListBotsResponseInputDataItemStatus)[keyof typeof ListBotsResponseInputDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListBotsResponseInputDataItemStatus = {\n  queued: \"queued\",\n  pickup_delayed: \"pickup_delayed\",\n  transcribing: \"transcribing\",\n  completed: \"completed\",\n  failed: \"failed\",\n  joining_call: \"joining_call\",\n  in_waiting_room: \"in_waiting_room\",\n  in_waiting_for_host: \"in_waiting_for_host\",\n  in_call_not_recording: \"in_call_not_recording\",\n  in_call_recording: \"in_call_recording\",\n  recording_paused: \"recording_paused\",\n  recording_resumed: \"recording_resumed\",\n  call_ended: \"call_ended\",\n  recording_succeeded: \"recording_succeeded\",\n  recording_failed: \"recording_failed\",\n  api_request_stop: \"api_request_stop\",\n  bot_rejected: \"bot_rejected\",\n  bot_removed: \"bot_removed\",\n  bot_removed_too_early: \"bot_removed_too_early\",\n  waiting_room_timeout: \"waiting_room_timeout\",\n  invalid_meeting_url: \"invalid_meeting_url\",\n  meeting_error: \"meeting_error\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type ListCalendarsResponseDataItemCalendarPlatform =\n  (typeof ListCalendarsResponseDataItemCalendarPlatform)[keyof typeof ListCalendarsResponseDataItemCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListCalendarsResponseDataItemCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type ListCalendarsResponseDataItemStatus =\n  (typeof ListCalendarsResponseDataItemStatus)[keyof typeof ListCalendarsResponseDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListCalendarsResponseDataItemStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type ListCalendarsResponseInputDataItemCalendarPlatform =\n  (typeof ListCalendarsResponseInputDataItemCalendarPlatform)[keyof typeof ListCalendarsResponseInputDataItemCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListCalendarsResponseInputDataItemCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type ListCalendarsResponseInputDataItemStatus =\n  (typeof ListCalendarsResponseInputDataItemStatus)[keyof typeof ListCalendarsResponseInputDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListCalendarsResponseInputDataItemStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type ListEventSeriesResponseDataItemEventsItemStatus =\n  (typeof ListEventSeriesResponseDataItemEventsItemStatus)[keyof typeof ListEventSeriesResponseDataItemEventsItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventSeriesResponseDataItemEventsItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\n */\nexport type ListEventSeriesResponseDataItemEventType =\n  (typeof ListEventSeriesResponseDataItemEventType)[keyof typeof ListEventSeriesResponseDataItemEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventSeriesResponseDataItemEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type ListEventSeriesResponseInputDataItemEventsItemStatus =\n  (typeof ListEventSeriesResponseInputDataItemEventsItemStatus)[keyof typeof ListEventSeriesResponseInputDataItemEventsItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventSeriesResponseInputDataItemEventsItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\n */\nexport type ListEventSeriesResponseInputDataItemEventType =\n  (typeof ListEventSeriesResponseInputDataItemEventType)[keyof typeof ListEventSeriesResponseInputDataItemEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventSeriesResponseInputDataItemEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\n */\nexport type ListEventsResponseDataItemEventType =\n  (typeof ListEventsResponseDataItemEventType)[keyof typeof ListEventsResponseDataItemEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventsResponseDataItemEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type ListEventsResponseDataItemStatus =\n  (typeof ListEventsResponseDataItemStatus)[keyof typeof ListEventsResponseDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventsResponseDataItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of event. 'one_off' for single events that occur once, 'recurring' for events that are part of a recurring series with multiple occurrences\n */\nexport type ListEventsResponseInputDataItemEventType =\n  (typeof ListEventsResponseInputDataItemEventType)[keyof typeof ListEventsResponseInputDataItemEventType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventsResponseInputDataItemEventType = {\n  one_off: \"one_off\",\n  recurring: \"recurring\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The status of the event. Possible values: 'confirmed' (event is confirmed), 'cancelled' (event has been cancelled), 'tentative' (event is tentative)\n */\nexport type ListEventsResponseInputDataItemStatus =\n  (typeof ListEventsResponseInputDataItemStatus)[keyof typeof ListEventsResponseInputDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListEventsResponseInputDataItemStatus = {\n  confirmed: \"confirmed\",\n  cancelled: \"cancelled\",\n  tentative: \"tentative\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform to connect to. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365.\n */\nexport type ListRawCalendarsRequestBodyCalendarPlatform =\n  (typeof ListRawCalendarsRequestBodyCalendarPlatform)[keyof typeof ListRawCalendarsRequestBodyCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListRawCalendarsRequestBodyCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform to connect to. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365.\n */\nexport type ListRawCalendarsRequestBodyInputCalendarPlatform =\n  (typeof ListRawCalendarsRequestBodyInputCalendarPlatform)[keyof typeof ListRawCalendarsRequestBodyInputCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListRawCalendarsRequestBodyInputCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting\n */\nexport type ListScheduledBotsResponseDataItemMeetingPlatform =\n  (typeof ListScheduledBotsResponseDataItemMeetingPlatform)[keyof typeof ListScheduledBotsResponseDataItemMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListScheduledBotsResponseDataItemMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the scheduled bot\n */\nexport type ListScheduledBotsResponseDataItemStatus =\n  (typeof ListScheduledBotsResponseDataItemStatus)[keyof typeof ListScheduledBotsResponseDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListScheduledBotsResponseDataItemStatus = {\n  scheduled: \"scheduled\",\n  cancelled: \"cancelled\",\n  completed: \"completed\",\n  failed: \"failed\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The platform of the meeting\n */\nexport type ListScheduledBotsResponseInputDataItemMeetingPlatform =\n  (typeof ListScheduledBotsResponseInputDataItemMeetingPlatform)[keyof typeof ListScheduledBotsResponseInputDataItemMeetingPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListScheduledBotsResponseInputDataItemMeetingPlatform = {\n  zoom: \"zoom\",\n  meet: \"meet\",\n  teams: \"teams\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the scheduled bot\n */\nexport type ListScheduledBotsResponseInputDataItemStatus =\n  (typeof ListScheduledBotsResponseInputDataItemStatus)[keyof typeof ListScheduledBotsResponseInputDataItemStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListScheduledBotsResponseInputDataItemStatus = {\n  scheduled: \"scheduled\",\n  cancelled: \"cancelled\",\n  completed: \"completed\",\n  failed: \"failed\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of Zoom credential.\n\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\n */\nexport type ListZoomCredentials200DataItemCredentialType =\n  (typeof ListZoomCredentials200DataItemCredentialType)[keyof typeof ListZoomCredentials200DataItemCredentialType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListZoomCredentials200DataItemCredentialType = {\n  app: \"app\",\n  user: \"user\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current state of the Zoom credential.\n\n- `active`: Credential is working and can be used\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\n */\nexport type ListZoomCredentials200DataItemState =\n  (typeof ListZoomCredentials200DataItemState)[keyof typeof ListZoomCredentials200DataItemState]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const ListZoomCredentials200DataItemState = {\n  active: \"active\",\n  invalid: \"invalid\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type RetryCallbackRequestBodyAnyOfMethod =\n  (typeof RetryCallbackRequestBodyAnyOfMethod)[keyof typeof RetryCallbackRequestBodyAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RetryCallbackRequestBodyAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type RetryCallbackRequestBodyInputAnyOfMethod =\n  (typeof RetryCallbackRequestBodyInputAnyOfMethod)[keyof typeof RetryCallbackRequestBodyInputAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const RetryCallbackRequestBodyInputAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type UpdateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOfLoopMode =\n  (typeof UpdateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOfLoopMode)[keyof typeof UpdateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyAllOfTwoBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type UpdateCalendarBotRequestBodyAllOfTwoCallbackConfigMethod =\n  (typeof UpdateCalendarBotRequestBodyAllOfTwoCallbackConfigMethod)[keyof typeof UpdateCalendarBotRequestBodyAllOfTwoCallbackConfigMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyAllOfTwoCallbackConfigMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type UpdateCalendarBotRequestBodyAllOfTwoRecordingMode =\n  (typeof UpdateCalendarBotRequestBodyAllOfTwoRecordingMode)[keyof typeof UpdateCalendarBotRequestBodyAllOfTwoRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyAllOfTwoRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type UpdateCalendarBotRequestBodyAllOfTwoTranscriptionConfigProvider =\n  (typeof UpdateCalendarBotRequestBodyAllOfTwoTranscriptionConfigProvider)[keyof typeof UpdateCalendarBotRequestBodyAllOfTwoTranscriptionConfigProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyAllOfTwoTranscriptionConfigProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type UpdateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOfLoopMode =\n  (typeof UpdateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOfLoopMode)[keyof typeof UpdateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyInputAllOfTwoBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type UpdateCalendarBotRequestBodyInputAllOfTwoCallbackConfigMethod =\n  (typeof UpdateCalendarBotRequestBodyInputAllOfTwoCallbackConfigMethod)[keyof typeof UpdateCalendarBotRequestBodyInputAllOfTwoCallbackConfigMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyInputAllOfTwoCallbackConfigMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type UpdateCalendarBotRequestBodyInputAllOfTwoRecordingMode =\n  (typeof UpdateCalendarBotRequestBodyInputAllOfTwoRecordingMode)[keyof typeof UpdateCalendarBotRequestBodyInputAllOfTwoRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyInputAllOfTwoRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type UpdateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigProvider =\n  (typeof UpdateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigProvider)[keyof typeof UpdateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarBotRequestBodyInputAllOfTwoTranscriptionConfigProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type UpdateCalendarConnectionResponseDataCalendarPlatform =\n  (typeof UpdateCalendarConnectionResponseDataCalendarPlatform)[keyof typeof UpdateCalendarConnectionResponseDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarConnectionResponseDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection after the update. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type UpdateCalendarConnectionResponseDataStatus =\n  (typeof UpdateCalendarConnectionResponseDataStatus)[keyof typeof UpdateCalendarConnectionResponseDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarConnectionResponseDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The calendar platform. Either 'google' for Google Calendar or 'microsoft' for Microsoft Outlook/365\n */\nexport type UpdateCalendarConnectionResponseInputDataCalendarPlatform =\n  (typeof UpdateCalendarConnectionResponseInputDataCalendarPlatform)[keyof typeof UpdateCalendarConnectionResponseInputDataCalendarPlatform]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarConnectionResponseInputDataCalendarPlatform = {\n  google: \"google\",\n  microsoft: \"microsoft\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current status of the calendar connection after the update. Possible values: 'active' (connection is working), 'error' (connection has errors), 'revoked' (OAuth access was revoked), 'permission_denied' (insufficient permissions)\n */\nexport type UpdateCalendarConnectionResponseInputDataStatus =\n  (typeof UpdateCalendarConnectionResponseInputDataStatus)[keyof typeof UpdateCalendarConnectionResponseInputDataStatus]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateCalendarConnectionResponseInputDataStatus = {\n  active: \"active\",\n  error: \"error\",\n  revoked: \"revoked\",\n  permission_denied: \"permission_denied\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type UpdateScheduledBotRequestBodyBotImageConfigAnyOfLoopMode =\n  (typeof UpdateScheduledBotRequestBodyBotImageConfigAnyOfLoopMode)[keyof typeof UpdateScheduledBotRequestBodyBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type UpdateScheduledBotRequestBodyCallbackConfigAnyOfMethod =\n  (typeof UpdateScheduledBotRequestBodyCallbackConfigAnyOfMethod)[keyof typeof UpdateScheduledBotRequestBodyCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * Controls how multiple bot images are cycled.\n\n- `auto`: Cycles through images at the interval specified by image_duration.\n- `bot_status`: Uses the first image when the bot joins, the second image when recording starts, and the third image when recording is paused. If no third image is provided, the bot stays on the recording image during pause. Only the first three images are used in this mode; additional images are ignored.\n */\nexport type UpdateScheduledBotRequestBodyInputBotImageConfigAnyOfLoopMode =\n  (typeof UpdateScheduledBotRequestBodyInputBotImageConfigAnyOfLoopMode)[keyof typeof UpdateScheduledBotRequestBodyInputBotImageConfigAnyOfLoopMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyInputBotImageConfigAnyOfLoopMode = {\n  auto: \"auto\",\n  bot_status: \"bot_status\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The HTTP method to use for the callback. Allowed values are 'POST' or 'PUT'.\n */\nexport type UpdateScheduledBotRequestBodyInputCallbackConfigAnyOfMethod =\n  (typeof UpdateScheduledBotRequestBodyInputCallbackConfigAnyOfMethod)[keyof typeof UpdateScheduledBotRequestBodyInputCallbackConfigAnyOfMethod]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyInputCallbackConfigAnyOfMethod = {\n  POST: \"POST\",\n  PUT: \"PUT\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type UpdateScheduledBotRequestBodyInputRecordingMode =\n  (typeof UpdateScheduledBotRequestBodyInputRecordingMode)[keyof typeof UpdateScheduledBotRequestBodyInputRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyInputRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type UpdateScheduledBotRequestBodyInputTranscriptionConfigAnyOfProvider =\n  (typeof UpdateScheduledBotRequestBodyInputTranscriptionConfigAnyOfProvider)[keyof typeof UpdateScheduledBotRequestBodyInputTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyInputTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The recording mode of the bot.\n\nDetermines what the bot records during the meeting:\n\n- `speaker_view`: Records the speaker's view (default). Shows the active speaker or presenter.\n- `audio_only`: Records only the audio without video.\n- `gallery_view`: Records the entire gallery view (coming soon).\n\nDefault: `speaker_view`\n */\nexport type UpdateScheduledBotRequestBodyRecordingMode =\n  (typeof UpdateScheduledBotRequestBodyRecordingMode)[keyof typeof UpdateScheduledBotRequestBodyRecordingMode]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyRecordingMode = {\n  audio_only: \"audio_only\",\n  speaker_view: \"speaker_view\",\n  gallery_view: \"gallery_view\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The speech to text provider to use for the bot. The default and only supported provider is 'gladia'. More providers will be supported in the future.\n */\nexport type UpdateScheduledBotRequestBodyTranscriptionConfigAnyOfProvider =\n  (typeof UpdateScheduledBotRequestBodyTranscriptionConfigAnyOfProvider)[keyof typeof UpdateScheduledBotRequestBodyTranscriptionConfigAnyOfProvider]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateScheduledBotRequestBodyTranscriptionConfigAnyOfProvider = {\n  gladia: \"gladia\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The type of Zoom credential.\n\n- `app`: SDK-only credentials (client_id and client_secret) for joining meetings\n- `user`: User-authorized credentials with OAuth tokens for OBF token support\n */\nexport type UpdateZoomCredential200DataCredentialType =\n  (typeof UpdateZoomCredential200DataCredentialType)[keyof typeof UpdateZoomCredential200DataCredentialType]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateZoomCredential200DataCredentialType = {\n  app: \"app\",\n  user: \"user\"\n} as const\n","/**\n * Generated by orval v7.9.0 🍺\n * Do not edit manually.\n * Meeting BaaS API\n * API for managing meeting bots, calendar integrations, and webhooks\n * OpenAPI spec version: 2.0.0\n */\n\n/**\n * The current state of the Zoom credential.\n\n- `active`: Credential is working and can be used\n- `invalid`: Credential has failed (tokens revoked, expired, etc.)\n */\nexport type UpdateZoomCredential200DataState =\n  (typeof UpdateZoomCredential200DataState)[keyof typeof UpdateZoomCredential200DataState]\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const UpdateZoomCredential200DataState = {\n  active: \"active\",\n  invalid: \"invalid\"\n} as const\n","import type { AxiosRequestConfig } from \"axios\"\nimport type { BaasClientConfig } from \"./types\"\n\n/**\n * Internal client state and utilities\n */\nexport class ClientState {\n  private apiKey: string\n  private baseUrl: string\n  private timeout: number\n  private apiVersion: \"v1\" | \"v2\"\n\n  constructor(config: BaasClientConfig) {\n    this.apiKey = config?.api_key ?? \"\" // The fallback is an empty string, which will be checked in the apiWrapper\n    this.apiVersion = config?.api_version ?? \"v1\"\n    // Don't add /v2 prefix here - the generated v2 API functions already include it in their paths\n    this.baseUrl = config?.base_url ?? \"https://api.meetingbaas.com\"\n    this.timeout = config?.timeout ?? 30000\n  }\n\n  getApiKey(): string {\n    return this.apiKey\n  }\n\n  getBaseUrl(): string {\n    return this.baseUrl\n  }\n\n  getApiVersion(): \"v1\" | \"v2\" {\n    return this.apiVersion\n  }\n\n  getOptions(): AxiosRequestConfig {\n    return {\n      baseURL: this.baseUrl,\n      headers: {\n        \"x-meeting-baas-api-key\": this.apiKey\n      },\n      timeout: this.timeout\n    }\n  }\n}\n","import type { AxiosRequestConfig } from \"axios\"\nimport z from \"zod\"\nimport type {\n  BotParam2,\n  BotParam3,\n  BotsWithMetadataParams,\n  Calendar,\n  CreateCalendarParams,\n  CreateCalendarResponse,\n  CreateConnectionRequest,\n  DeleteResponse,\n  Event,\n  GetMeetingDataParams,\n  JoinRequest,\n  JoinResponse,\n  LeaveResponse,\n  ListEventResponse,\n  ListEventsParams,\n  ListRawCalendarsParams,\n  ListRawCalendarsResponse,\n  ListRecentBotsResponse,\n  Metadata,\n  PatchBotParams,\n  ResyncAllCalendarsParams,\n  ResyncAllCalendarsResponse,\n  RetranscribeBody,\n  ScheduleRecordEventParams,\n  ScreenshotsList,\n  UnscheduleRecordEventParams,\n  UpdateCalendarParams,\n  ZoomOAuthConnectionResponse\n} from \"../generated/v1/schema\"\nimport { type ApiResponse, apiWrapper, apiWrapperNoParams } from \"./api\"\nimport type { ClientState } from \"./client-state\"\nimport type { BaasClientV1Methods } from \"./types\"\n\n/**\n * Create v1 client methods\n */\nexport function createV1Methods(state: ClientState): BaasClientV1Methods {\n  return {\n    /**\n     * Have a bot join a meeting, now or in the future\n     * @param params - The parameters for the join meeting request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/join)\n     * @returns The response from the join meeting request\n     */\n    async joinMeeting(params: JoinRequest): Promise<ApiResponse<JoinResponse>> {\n      const { join } = await import(\"../generated/v1/api/default/default.js\")\n      const { joinBody } = await import(\"../generated/v1/api/default/default.zod.js\")\n\n      return apiWrapper(join, joinBody, params, state.getOptions())\n    },\n\n    /**\n     * Have a bot leave a meeting\n     * @param params - The parameters for the leave meeting request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/leave)\n     * @returns The response from the leave meeting request\n     */\n    async leaveMeeting(params: { uuid: string }): Promise<ApiResponse<LeaveResponse>> {\n      const { leave } = await import(\"../generated/v1/api/default/default.js\")\n      const { leaveParams } = await import(\"../generated/v1/api/default/default.zod.js\")\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) => leave(params.uuid, options),\n        leaveParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Get meeting recording and metadata\n     * @param params - The parameters for the get meeting data request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/get_meeting_data)\n     * @returns The response from the get meeting data request\n     */\n    async getMeetingData(params: GetMeetingDataParams): Promise<ApiResponse<Metadata>> {\n      const { getMeetingData: getMeetingDataApi } = await import(\n        \"../generated/v1/api/default/default.js\"\n      )\n      const { getMeetingDataQueryParams } = await import(\n        \"../generated/v1/api/default/default.zod.js\"\n      )\n\n      return apiWrapper(getMeetingDataApi, getMeetingDataQueryParams, params, state.getOptions())\n    },\n\n    /**\n     * Delete bot data\n     * @param params - The parameters for the delete bot data request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/delete_data)\n     * @returns The response from the delete bot data request\n     */\n    async deleteBotData(params: { uuid: string }): Promise<ApiResponse<DeleteResponse>> {\n      const { deleteData } = await import(\"../generated/v1/api/default/default.js\")\n      const { deleteDataParams } = await import(\"../generated/v1/api/default/default.zod.js\")\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) => deleteData(params.uuid, options),\n        deleteDataParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Retrieves a paginated list of the user's bots with essential metadata, including IDs, names, and meeting details. Supports filtering, sorting, and advanced querying options.\n     * @param params - The parameters for the list bots with metadata request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/bots_with_metadata)\n     * @returns The response from the list bots with metadata request\n     */\n    async listBots(params?: BotsWithMetadataParams): Promise<ApiResponse<ListRecentBotsResponse>> {\n      const { botsWithMetadata } = await import(\"../generated/v1/api/default/default.js\")\n      const { botsWithMetadataQueryParams } = await import(\n        \"../generated/v1/api/default/default.zod.js\"\n      )\n\n      return apiWrapper(\n        botsWithMetadata,\n        botsWithMetadataQueryParams,\n        params ?? {},\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Transcribe or retranscribe a bot's audio using the Default or your provided Speech to Text Provider\n     * @param params - The parameters for the retranscribe bot request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/retranscribe_bot)\n     * @returns The response from the retranscribe bot request\n     */\n    async retranscribeBot(params: RetranscribeBody): Promise<ApiResponse<void>> {\n      const { retranscribeBot: retranscribeBotApi } = await import(\n        \"../generated/v1/api/default/default.js\"\n      )\n      const { retranscribeBotBody } = await import(\"../generated/v1/api/default/default.zod.js\")\n\n      return apiWrapper(retranscribeBotApi, retranscribeBotBody, params, state.getOptions())\n    },\n\n    /**\n     * Retrieves screenshots captured during the bot's session before it joins a meeting\n     * @param params - The parameters for the get screenshots request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/get_screenshots)\n     * @returns The response from the get screenshots request\n     */\n    async getScreenshots(params: { uuid: string }): Promise<ApiResponse<ScreenshotsList>> {\n      const { getScreenshots: getScreenshotsApi } = await import(\n        \"../generated/v1/api/default/default.js\"\n      )\n      const { getScreenshotsParams } = await import(\"../generated/v1/api/default/default.zod.js\")\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) =>\n          getScreenshotsApi(params.uuid, options),\n        getScreenshotsParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Integrates a new calendar with the system using OAuth credentials. This endpoint establishes a connection with the calendar provider (Google, Microsoft), sets up webhook notifications for real-time updates, and performs an initial sync of all calendar events. It requires OAuth credentials (client ID, client secret, and refresh token) and the platform type. Once created, the calendar is assigned a unique UUID that should be used for all subsequent operations. Returns the newly created calendar object with all integration details.\n     * @param params - The parameters for the create calendar request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/create_calendar)\n     * @returns The response from the create calendar request\n     */\n    async createCalendar(\n      params: CreateCalendarParams\n    ): Promise<ApiResponse<CreateCalendarResponse>> {\n      const { createCalendar: createCalendarApi } = await import(\n        \"../generated/v1/api/calendars/calendars.js\"\n      )\n      const { createCalendarBody } = await import(\"../generated/v1/api/calendars/calendars.zod.js\")\n\n      return apiWrapper(createCalendarApi, createCalendarBody, params, state.getOptions())\n    },\n\n    /**\n     * Retrieves all calendars that have been integrated with the system for the authenticated user. Returns a list of calendars with their names, email addresses, provider information, and sync status. This endpoint shows only calendars that have been formally connected through the create_calendar endpoint, not all available calendars from the provider.\n     * @returns The response from the list calendars request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/list_calendars)\n     */\n    async listCalendars(): Promise<ApiResponse<Calendar[]>> {\n      const { listCalendars: listCalendarsApi } = await import(\n        \"../generated/v1/api/calendars/calendars.js\"\n      )\n\n      return apiWrapperNoParams(listCalendarsApi, state.getOptions())\n    },\n\n    /**\n     * Retrieves detailed information about a specific calendar integration by its UUID. Returns comprehensive calendar data including the calendar name, email address, provider details (Google, Microsoft), sync status, and other metadata. This endpoint is useful for displaying calendar information to users or verifying the status of a calendar integration before performing operations on its events.\n     * @param params - The parameters for the get calendar request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/get_calendar)\n     * @returns The response from the get calendar request\n     */\n    async getCalendar(params: { uuid: string }): Promise<ApiResponse<Calendar>> {\n      const { getCalendar: getCalendarApi } = await import(\n        \"../generated/v1/api/calendars/calendars.js\"\n      )\n      const { getCalendarParams } = await import(\"../generated/v1/api/calendars/calendars.zod.js\")\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) =>\n          getCalendarApi(params.uuid, options),\n        getCalendarParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Updates a calendar integration with new credentials or platform while maintaining the same UUID. This operation is performed as an atomic transaction to ensure data integrity. The system automatically unschedules existing bots to prevent duplicates, updates the calendar credentials, and triggers a full resync of all events. Useful when OAuth tokens need to be refreshed or when migrating a calendar between providers. Returns the updated calendar object with its new configuration.\n     * @param params - The parameters for the update calendar request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/update_calendar)\n     * @returns The response from the update calendar request\n     */\n    async updateCalendar(params: {\n      uuid: string\n      body: UpdateCalendarParams\n    }): Promise<ApiResponse<CreateCalendarResponse>> {\n      const { updateCalendar: updateCalendarApi } = await import(\n        \"../generated/v1/api/calendars/calendars.js\"\n      )\n      const { updateCalendarParams, updateCalendarBody } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(\n        (params: { uuid: string; body: UpdateCalendarParams }, options) =>\n          updateCalendarApi(params.uuid, params.body, options),\n        z.object({\n          uuid: updateCalendarParams.shape.uuid,\n          body: updateCalendarBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Permanently removes a calendar integration by its UUID, including all associated events and bot configurations. This operation cancels any active subscriptions with the calendar provider, stops all webhook notifications, and unschedules any pending recordings. All related resources are cleaned up in the database. This action cannot be undone, and subsequent requests to this calendar's UUID will return 404 Not Found errors.\n     * @param params - The parameters for the delete calendar request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/delete_calendar)\n     * @returns The response from the delete calendar request\n     */\n    async deleteCalendar(params: { uuid: string }): Promise<ApiResponse<void>> {\n      const { deleteCalendar: deleteCalendarApi } = await import(\n        \"../generated/v1/api/calendars/calendars.js\"\n      )\n      const { deleteCalendarParams } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) =>\n          deleteCalendarApi(params.uuid, options),\n        deleteCalendarParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Retrieves comprehensive details about a specific calendar event by its UUID. Returns complete event information including title, meeting link, start and end times, organizer status, recurrence information, and the full list of attendees with their names and email addresses. Also includes any associated bot parameters if recording is scheduled for this event. The raw calendar data from the provider is also included for advanced use cases.\n     * @param params - The parameters for the get calendar event request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/get_event)\n     * @returns The response from the get calendar event request\n     */\n    async getCalendarEvent(params: { uuid: string }): Promise<ApiResponse<Event>> {\n      const { getEvent } = await import(\"../generated/v1/api/calendars/calendars.js\")\n      const { getEventParams } = await import(\"../generated/v1/api/calendars/calendars.zod.js\")\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) => getEvent(params.uuid, options),\n        getEventParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Configures a bot to automatically join and record a specific calendar event at its scheduled time. The request body contains detailed bot configuration, including recording options, streaming settings, and webhook notification URLs. For recurring events, the 'all_occurrences' parameter can be set to true to schedule recording for all instances of the recurring series, or false (default) to schedule only the specific instance. Returns the updated event(s) with the bot parameters attached.\n     * @param params - The parameters for the schedule calendar record event request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/schedule_record_event)\n     * @returns The response from the schedule calendar record event request\n     */\n    async scheduleCalendarRecordEvent(params: {\n      uuid: string\n      body: BotParam2\n      query?: ScheduleRecordEventParams\n    }): Promise<ApiResponse<Event[]>> {\n      const { scheduleRecordEvent } = await import(\"../generated/v1/api/calendars/calendars.js\")\n      const { scheduleRecordEventBody, scheduleRecordEventQueryParams, scheduleRecordEventParams } =\n        await import(\"../generated/v1/api/calendars/calendars.zod.js\")\n\n      return apiWrapper(\n        (params: { uuid: string; body: BotParam2; query?: ScheduleRecordEventParams }, options) =>\n          scheduleRecordEvent(params.uuid, params.body, params.query, options),\n        z.object({\n          uuid: scheduleRecordEventParams.shape.uuid,\n          query: scheduleRecordEventQueryParams.optional(),\n          body: scheduleRecordEventBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Cancels a previously scheduled recording for a calendar event and releases associated bot resources. For recurring events, the 'all_occurrences' parameter controls whether to unschedule from all instances of the recurring series or just the specific occurrence. This operation is idempotent and will not error if no bot was scheduled. Returns the updated event(s) with the bot parameters removed.\n     * @param params - The parameters for the unschedule calendar record event request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/unschedule_record_event)\n     * @returns The response from the unschedule calendar record event request\n     */\n    async unscheduleCalendarRecordEvent(params: {\n      uuid: string\n      query?: UnscheduleRecordEventParams\n    }): Promise<ApiResponse<Event[]>> {\n      const { unscheduleRecordEvent } = await import(\"../generated/v1/api/calendars/calendars.js\")\n      const { unscheduleRecordEventQueryParams, unscheduleRecordEventParams } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(\n        (params: { uuid: string; query?: UnscheduleRecordEventParams }, options) =>\n          unscheduleRecordEvent(params.uuid, params.query, options),\n        z.object({\n          uuid: unscheduleRecordEventParams.shape.uuid,\n          query: unscheduleRecordEventQueryParams.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Updates the configuration of a bot already scheduled to record an event. Allows modification of recording settings, webhook URLs, and other bot parameters without canceling and recreating the scheduled recording. For recurring events, the 'all_occurrences' parameter determines whether changes apply to all instances or just the specific occurrence. Returns the updated event(s) with the modified bot parameters.\n     * @param params - The parameters for the patch bot request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/patch_bot)\n     * @returns The response from the patch bot request\n     */\n    async patchBot(params: {\n      uuid: string\n      body: BotParam3\n      query?: PatchBotParams\n    }): Promise<ApiResponse<Event[]>> {\n      const { patchBot: patchBotApi } = await import(\"../generated/v1/api/calendars/calendars.js\")\n      const { patchBotBody, patchBotQueryParams, patchBotParams } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(\n        (params: { uuid: string; body: BotParam3; query?: PatchBotParams }, options) =>\n          patchBotApi(params.uuid, params.body, params.query, options),\n        z.object({\n          uuid: patchBotParams.shape.uuid,\n          query: patchBotQueryParams.optional(),\n          body: patchBotBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Retrieves a paginated list of calendar events with comprehensive filtering options. Supports filtering by organizer email, attendee email, date ranges (start_date_gte, start_date_lte), and event status. Results can be limited to upcoming events (default), past events, or all events. Each event includes full details such as meeting links, participants, and recording status. The response includes a 'next' pagination cursor for retrieving additional results.\n     * @param params - The parameters for the list calendar events request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/list_events)\n     * @returns The response from the list calendar events request\n     */\n    async listCalendarEvents(query: ListEventsParams): Promise<ApiResponse<ListEventResponse>> {\n      const { listEvents } = await import(\"../generated/v1/api/calendars/calendars.js\")\n      const { listEventsQueryParams } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(listEvents, listEventsQueryParams, query, state.getOptions())\n    },\n\n    /**\n     * Retrieves the full documentation for the webhook events that Meeting BaaS sends to your webhook URL. This includes all event types, their payload structures, and any additional metadata. Useful for developers to understand and integrate webhook functionality into their applications.\n     * @returns The response from the get webhook documentation request\n     */\n    async getWebhookDocumentation(): Promise<ApiResponse<unknown>> {\n      const { webhookDocumentation } = await import(\"../generated/v1/api/webhooks/webhooks.js\")\n\n      return apiWrapperNoParams(webhookDocumentation, state.getOptions())\n    },\n\n    /**\n     * Retrieves the full documentation for the webhook events that Meeting BaaS sends to your webhook URL for a specific bot. This includes all event types, their payload structures, and any additional metadata. Useful for developers to understand and integrate webhook functionality into their applications.\n     * @returns The response from the get bot webhook documentation request\n     */\n    async getBotWebhookDocumentation(): Promise<ApiResponse<unknown>> {\n      const { botWebhookDocumentation } = await import(\"../generated/v1/api/webhooks/webhooks.js\")\n\n      return apiWrapperNoParams(botWebhookDocumentation, state.getOptions())\n    },\n\n    /**\n     * Retrieves the full documentation for the webhook events that Meeting BaaS sends to your webhook URL for a specific calendar. This includes all event types, their payload structures, and any additional metadata. Useful for developers to understand and integrate webhook functionality into their applications.\n     * @returns The response from the get calendar webhook documentation request\n     */\n    async getCalendarWebhookDocumentation(): Promise<ApiResponse<unknown>> {\n      const { calendarWebhookDocumentation } = await import(\n        \"../generated/v1/api/webhooks/webhooks.js\"\n      )\n\n      return apiWrapperNoParams(calendarWebhookDocumentation, state.getOptions())\n    },\n\n    /**\n     * Triggers a full resync of all calendar events for all integrated calendars. This operation is useful when you need to ensure that all calendar data is up-to-date in the system. It will re-fetch all events from the calendar providers and update the system's internal state. Returns a response indicating the status of the resync operation.\n     * @returns The response from the resync all calendars request\n     */\n    async resyncAllCalendars(\n      query?: ResyncAllCalendarsParams\n    ): Promise<ApiResponse<ResyncAllCalendarsResponse>> {\n      const { resyncAllCalendars } = await import(\"../generated/v1/api/calendars/calendars.js\")\n\n      const { resyncAllCalendarsQueryParams } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(\n        resyncAllCalendars,\n        resyncAllCalendarsQueryParams,\n        query ?? {},\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Retrieves unprocessed calendar data directly from the provider (Google, Microsoft) using provided OAuth credentials. This endpoint is typically used during the initial setup process to allow users to select which calendars to integrate. Returns a list of available calendars with their unique IDs, email addresses, and primary status. This data is not persisted until a calendar is formally created using the create_calendar endpoint.\n     * @param params - The parameters for the list raw calendars request. Learn more about the request body [here](https://docs.meetingbaas.com/api/reference/calendars/list_raw_calendars)\n     * @returns The response from the list raw calendars request\n     */\n    async listRawCalendars(\n      params: ListRawCalendarsParams\n    ): Promise<ApiResponse<ListRawCalendarsResponse>> {\n      const { listRawCalendars: listRawCalendarsApi } = await import(\n        \"../generated/v1/api/calendars/calendars.js\"\n      )\n      const { listRawCalendarsBody } = await import(\n        \"../generated/v1/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapper(listRawCalendarsApi, listRawCalendarsBody, params, state.getOptions())\n    },\n\n    /**\n     * Retrieves all Zoom OAuth connections associated with the authenticated account. Each connection represents a Zoom user who has authorized your app via OAuth. Use this to display connected users or to find the `zoom_user_id` needed for the `zoom_obf_token_user_id` bot parameter.\n     * @returns The response from the list Zoom OAuth connections request\n     */\n    async listZoomOauthConnections(): Promise<ApiResponse<ZoomOAuthConnectionResponse[]>> {\n      const { listZoomOauthConnections: listZoomOauthConnectionsApi } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.js\"\n      )\n\n      return apiWrapperNoParams(listZoomOauthConnectionsApi, state.getOptions())\n    },\n\n    /**\n     * Exchanges a Zoom OAuth authorization code for access and refresh tokens, retrieves the Zoom user's profile, and stores the connection for managed OBF token generation. Once stored, you can reference this connection's `zoom_user_id` as the `zoom_obf_token_user_id` parameter when creating a bot.\n     * @param params - The parameters for the create Zoom OAuth connection request\n     * @returns The response from the create Zoom OAuth connection request\n     */\n    async createZoomOauthConnection(\n      params: CreateConnectionRequest\n    ): Promise<ApiResponse<undefined | ZoomOAuthConnectionResponse>> {\n      const { createZoomOauthConnection: createZoomOauthConnectionApi } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.js\"\n      )\n      const { createZoomOauthConnectionBody } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.zod.js\"\n      )\n\n      return apiWrapper(\n        createZoomOauthConnectionApi,\n        createZoomOauthConnectionBody,\n        params,\n        state.getOptions()\n      ) as Promise<ApiResponse<undefined | ZoomOAuthConnectionResponse>>\n    },\n\n    /**\n     * Retrieves a specific Zoom OAuth connection by its UUID. Returns the connection details including the Zoom user ID, account ID, connection state, and granted scopes.\n     * @param params - The parameters for the get Zoom OAuth connection request\n     * @returns The response from the get Zoom OAuth connection request\n     */\n    async getZoomOauthConnection(params: {\n      uuid: string\n    }): Promise<ApiResponse<ZoomOAuthConnectionResponse>> {\n      const { getZoomOauthConnection: getZoomOauthConnectionApi } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.js\"\n      )\n      const { getZoomOauthConnectionParams } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.zod.js\"\n      )\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) =>\n          getZoomOauthConnectionApi(params.uuid, options),\n        getZoomOauthConnectionParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    /**\n     * Permanently deletes a Zoom OAuth connection by its UUID, removing all stored tokens. After deletion, bots using this connection's `zoom_user_id` as `zoom_obf_token_user_id` will no longer be able to automatically fetch OBF tokens.\n     * @param params - The parameters for the delete Zoom OAuth connection request\n     * @returns The response from the delete Zoom OAuth connection request\n     */\n    async deleteZoomOauthConnection(params: { uuid: string }): Promise<ApiResponse<void>> {\n      const { deleteZoomOauthConnection: deleteZoomOauthConnectionApi } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.js\"\n      )\n      const { deleteZoomOauthConnectionParams } = await import(\n        \"../generated/v1/api/zoom-oauth/zoom-oauth.zod.js\"\n      )\n\n      return apiWrapper(\n        (params: { uuid: string }, options: AxiosRequestConfig) =>\n          deleteZoomOauthConnectionApi(params.uuid, options),\n        deleteZoomOauthConnectionParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    getApiKey(): string {\n      return state.getApiKey()\n    },\n\n    getBaseUrl(): string {\n      return state.getBaseUrl()\n    }\n  }\n}\n","import type { AxiosRequestConfig } from \"axios\"\nimport type { ZodError, ZodSchema } from \"zod\"\n\n/**\n * Discriminated union type for API responses\n * Ensures type safety: when error is present, data is undefined, and vice versa\n */\nexport type ApiResponse<T> =\n  | { success: true; data: T; error?: never }\n  | { success: false; error: ZodError | Error; data?: never }\n\n/**\n * Generic wrapper function for API calls with validation and error handling\n * This is the main wrapper you can use for all your API functions\n */\nexport async function apiWrapper<TData, TParams = void>(\n  operation: (params: TParams, options: AxiosRequestConfig) => Promise<TData>,\n  schema: ZodSchema<TParams> | null,\n  params: TParams,\n  options: AxiosRequestConfig\n): Promise<ApiResponse<TData>> {\n  try {\n    if (!options.headers || !options.headers[\"x-meeting-baas-api-key\"]) {\n      return {\n        success: false,\n        error: new Error(\"Please configure the api key when creating the client\")\n      }\n    }\n\n    // Validate parameters if schema is provided\n    let validatedParams = params\n    if (schema) {\n      const validationResult = schema.safeParse(params)\n      if (!validationResult.success) {\n        return {\n          success: false,\n          error: validationResult.error\n        }\n      }\n      validatedParams = validationResult.data\n    }\n\n    // Make the API call\n    const data = await operation(validatedParams, options)\n\n    return {\n      success: true,\n      data\n    }\n  } catch (error) {\n    return {\n      success: false,\n      error: error instanceof Error ? error : new Error(String(error))\n    }\n  }\n}\n\n/**\n * Generic wrapper for functions that take no parameters\n */\nexport async function apiWrapperNoParams<TData>(\n  operation: (options: AxiosRequestConfig) => Promise<TData>,\n  options: AxiosRequestConfig\n): Promise<ApiResponse<TData>> {\n  try {\n    if (!options.headers || !options.headers[\"x-meeting-baas-api-key\"]) {\n      return {\n        success: false,\n        error: new Error(\"Please configure the api key when creating the client\")\n      }\n    }\n    // Make the API call\n    const data = await operation(options)\n\n    return {\n      success: true,\n      data\n    }\n  } catch (error) {\n    return {\n      success: false,\n      error: error instanceof Error ? error : new Error(String(error))\n    }\n  }\n}\n\n/**\n * v2 API response type - API already returns success/error format\n */\nexport type ApiResponseV2<T> =\n  | { success: true; data: T }\n  | {\n      success: false\n      error: string\n      code: string\n      statusCode: number\n      message: string\n      retryAfter?: number | null\n      details: string | null\n    }\n\n/**\n * v2 Batch API response type - Batch routes return success with data and errors arrays\n */\nexport type BatchApiResponseV2<TData, TError = { item: unknown; error: string }> =\n  | { success: true; data: TData[]; errors: TError[] }\n  | {\n      success: false\n      error: string\n      code: string\n      statusCode: number\n      message: string\n      retryAfter?: number | null\n      details: string | null\n    }\n\n/**\n * List API response type with flattened cursor fields\n * Used for paginated list endpoints where cursor and prev_cursor are at the top level\n */\nexport type ListApiResponseV2<TData> =\n  | {\n      success: true\n      data: TData[]\n      cursor: string | null\n      prev_cursor: string | null\n      error?: never\n      code?: never\n      statusCode?: never\n      details?: never\n    }\n  | {\n      success: false\n      error: string\n      code: string\n      statusCode: number\n      details: string | null\n      message: string\n      retryAfter?: number | null\n      data?: never\n      cursor?: never\n      prev_cursor?: never\n    }\n\n/**\n * Generic wrapper function for v2 API calls\n * v2 API already returns { success, data } or { success: false, error, code, statusCode, details }\n * So we only validate parameters and pass through the response\n * The generated API functions return AxiosResponse<T>, so we extract .data from the response\n */\nexport async function apiWrapperV2<TData, TParams = void>(\n  operation: (\n    params: TParams,\n    options: AxiosRequestConfig\n  ) => Promise<{ success: boolean; data: TData } | ApiResponseV2<TData>>,\n  schema: ZodSchema<TParams> | null,\n  params: TParams,\n  options: AxiosRequestConfig\n): Promise<ApiResponseV2<TData>> {\n  try {\n    if (!options.headers || !options.headers[\"x-meeting-baas-api-key\"]) {\n      return {\n        success: false,\n        error: \"Unauthorized\",\n        message: \"Please configure the api key when creating the client\",\n        code: \"MISSING_API_KEY\",\n        statusCode: 401,\n        details: null\n      }\n    }\n\n    // Validate parameters if schema is provided\n    let validatedParams = params\n    if (schema) {\n      const validationResult = schema.safeParse(params)\n      if (!validationResult.success) {\n        return {\n          success: false,\n          error: \"Bad Request\",\n          code: \"VALIDATION_ERROR\",\n          statusCode: 400,\n          message: \"Validation failed\",\n          details: validationResult.error.message\n        }\n      }\n      validatedParams = validationResult.data\n    }\n\n    // Make the API call - custom instance returns data directly (not AxiosResponse)\n    return (await operation(validatedParams, options)) as ApiResponseV2<TData>\n  } catch (error) {\n    // Handle network/axios errors\n    if (error instanceof Error && \"response\" in error) {\n      const axiosError = error as { response?: { status: number; data?: unknown } }\n      const responseData = axiosError.response?.data\n\n      // If the response data is already in ApiResponseV2 error format, return it directly\n      if (\n        responseData &&\n        typeof responseData === \"object\" &&\n        \"success\" in responseData &&\n        responseData.success === false &&\n        \"error\" in responseData &&\n        \"code\" in responseData &&\n        \"statusCode\" in responseData &&\n        \"message\" in responseData\n      ) {\n        return responseData as ApiResponseV2<TData>\n      }\n\n      // Otherwise, wrap it in a generic error format\n      return {\n        success: false,\n        error: \"Internal Server Error\",\n        code: \"HTTP_ERROR\",\n        statusCode: axiosError.response?.status ?? 500,\n        message: error.message,\n        details: responseData ? JSON.stringify(responseData) : null\n      }\n    }\n    return {\n      success: false,\n      error: \"Internal Server Error\",\n      code: \"UNKNOWN_ERROR\",\n      statusCode: 500,\n      message: error instanceof Error ? error.message : String(error),\n      details: null\n    }\n  }\n}\n\n/**\n * Generic wrapper for v2 functions that take no parameters\n */\nexport async function apiWrapperV2NoParams<TData>(\n  operation: (\n    options: AxiosRequestConfig\n  ) => Promise<{ success: boolean; data: TData } | ApiResponseV2<TData>>,\n  options: AxiosRequestConfig\n): Promise<ApiResponseV2<TData>> {\n  try {\n    if (!options.headers || !options.headers[\"x-meeting-baas-api-key\"]) {\n      return {\n        success: false,\n        error: \"Unauthorized\",\n        message: \"Please configure the api key when creating the client\",\n        code: \"MISSING_API_KEY\",\n        statusCode: 401,\n        details: null\n      }\n    }\n    // Make the API call\n    return (await operation(options)) as ApiResponseV2<TData>\n  } catch (error) {\n    // Handle network/axios errors\n    if (error instanceof Error && \"response\" in error) {\n      const axiosError = error as { response?: { status: number; data?: unknown } }\n      const responseData = axiosError.response?.data\n\n      // If the response data is already in ApiResponseV2 error format, return it directly\n      if (\n        responseData &&\n        typeof responseData === \"object\" &&\n        \"success\" in responseData &&\n        responseData.success === false &&\n        \"error\" in responseData &&\n        \"code\" in responseData &&\n        \"statusCode\" in responseData &&\n        \"message\" in responseData\n      ) {\n        return responseData as ApiResponseV2<TData>\n      }\n\n      // Otherwise, wrap it in a generic error format\n      return {\n        success: false,\n        error: \"Internal Server Error\",\n        code: \"HTTP_ERROR\",\n        statusCode: axiosError.response?.status ?? 500,\n        message: error.message,\n        details: responseData ? JSON.stringify(responseData) : null\n      }\n    }\n    return {\n      success: false,\n      error: \"Internal Server Error\",\n      code: \"UNKNOWN_ERROR\",\n      statusCode: 500,\n      message: error instanceof Error ? error.message : String(error),\n      details: null\n    }\n  }\n}\n\n/**\n * Wrapper function for v2 list API calls that flattens cursor fields\n * Transforms API response from { success: true, data: [...], cursor: ..., prev_cursor: ... }\n * to { success: true, data: [...], cursor: ..., prev_cursor: ... } with cursor/prev_cursor at top level\n */\nexport async function apiWrapperV2List<TData, TParams = void>(\n  operation: (\n    params: TParams,\n    options: AxiosRequestConfig\n  ) => Promise<\n    | { success: true; data: TData[]; cursor: string | null; prev_cursor: string | null }\n    | { success: false; error: string; code: string; statusCode: number; details: unknown }\n  >,\n  schema: ZodSchema<TParams> | null,\n  params: TParams,\n  options: AxiosRequestConfig\n): Promise<ListApiResponseV2<TData>> {\n  try {\n    if (!options.headers || !options.headers[\"x-meeting-baas-api-key\"]) {\n      return {\n        success: false,\n        error: \"Unauthorized\",\n        code: \"MISSING_API_KEY\",\n        statusCode: 401,\n        message: \"Please configure the api key when creating the client\",\n        details: null\n      }\n    }\n\n    // Validate parameters if schema is provided\n    let validatedParams = params\n    if (schema) {\n      const validationResult = schema.safeParse(params)\n      if (!validationResult.success) {\n        return {\n          success: false,\n          error: \"Bad Request\",\n          message: \"Validation failed\",\n          code: \"VALIDATION_ERROR\",\n          statusCode: 400,\n          details: validationResult.error.message\n        }\n      }\n      validatedParams = validationResult.data\n    }\n\n    // Make the API call - custom instance returns data directly (not AxiosResponse)\n    const apiResponse = await operation(validatedParams, options)\n\n    // If error response, return as-is\n    if (!apiResponse.success) {\n      return apiResponse as ListApiResponseV2<TData>\n    }\n\n    // Flatten the response: extract data array and cursor fields to top level\n    return {\n      success: true,\n      data: apiResponse.data,\n      cursor: apiResponse.cursor,\n      prev_cursor: apiResponse.prev_cursor\n    }\n  } catch (error) {\n    // Handle network/axios errors\n    if (error instanceof Error && \"response\" in error) {\n      const axiosError = error as { response?: { status: number; data?: unknown } }\n      const responseData = axiosError.response?.data\n\n      // If the response data is already in ApiResponseV2 error format, return it directly\n      if (\n        responseData &&\n        typeof responseData === \"object\" &&\n        \"success\" in responseData &&\n        responseData.success === false &&\n        \"error\" in responseData &&\n        \"code\" in responseData &&\n        \"statusCode\" in responseData\n      ) {\n        return responseData as ListApiResponseV2<TData>\n      }\n\n      // Otherwise, wrap it in a generic error format\n      return {\n        success: false,\n        error: \"Internal Server Error\",\n        code: \"HTTP_ERROR\",\n        statusCode: axiosError.response?.status ?? 500,\n        message: error.message,\n        details: responseData ? JSON.stringify(responseData) : null\n      }\n    }\n    return {\n      success: false,\n      error: \"Internal Server Error\",\n      code: \"UNKNOWN_ERROR\",\n      statusCode: 500,\n      message: error instanceof Error ? error.message : String(error),\n      details: null\n    }\n  }\n}\n","import type { AxiosRequestConfig } from \"axios\"\nimport z from \"zod\"\nimport type {\n  BatchCreateBotResponseDataItem,\n  BatchCreateBotResponseErrorsItem,\n  BatchCreateBotsRequestBodyInput,\n  BatchCreateScheduledBotResponseDataItem,\n  BatchCreateScheduledBotResponseErrorsItem,\n  BatchCreateScheduledBotsRequestBodyInput,\n  CreateBotRequestBodyInput,\n  CreateBotResponseData,\n  CreateCalendarBotRequestBodyInput,\n  CreateCalendarBotResponseDataItem,\n  CreateCalendarBotResponseErrorsItem,\n  CreateCalendarConnectionRequestBodyInput,\n  CreateCalendarConnectionResponseData,\n  CreateScheduledBotRequestBodyInput,\n  CreateScheduledBotResponseData,\n  CreateZoomCredential201Data,\n  CreateZoomCredentialBody,\n  DeleteBotDataResponseData,\n  DeleteCalendarBotBody,\n  DeleteCalendarBotResponseDataItem,\n  DeleteCalendarBotResponseErrorsItem,\n  DeleteCalendarConnectionResponseData,\n  DeleteScheduledBotResponseData,\n  DeleteZoomCredential200Data,\n  GetBotDetailsResponseData,\n  GetBotScreenshotsResponseDataItem,\n  GetBotStatusResponseData,\n  GetCalendarDetailsResponseData,\n  GetEventDetailsResponseData,\n  GetScheduledBotResponseData,\n  GetZoomCredential200Data,\n  LeaveBotResponseData,\n  ListBotsParams,\n  ListBotsResponseDataItem,\n  ListCalendarsParams,\n  ListCalendarsResponseDataItem,\n  ListEventSeriesParams,\n  ListEventSeriesResponseDataItem,\n  ListEventsParams as ListEventsParamsV2,\n  ListEventsResponseDataItem,\n  ListRawCalendarsRequestBodyInput,\n  ListRawCalendarsResponseDataItem,\n  ListScheduledBotsParams,\n  ListScheduledBotsResponseDataItem,\n  ListZoomCredentials200DataItem,\n  ListZoomCredentialsParams,\n  PauseBotRecording200Data,\n  PauseBotRecordingBody,\n  ResendFinalWebhookResponseData,\n  ResubscribeCalendarResponseData,\n  ResumeBotRecording200Data,\n  ResumeBotRecordingBody,\n  RetryCallbackRequestBodyInput,\n  RetryCallbackResponseData,\n  SendChatMessage200Data,\n  SendChatMessageBody,\n  SyncCalendarResponseData,\n  UpdateBotConfig200Data,\n  UpdateBotConfigBody,\n  UpdateCalendarBotRequestBodyInput,\n  UpdateCalendarBotResponseDataItem,\n  UpdateCalendarBotResponseErrorsItem,\n  UpdateCalendarConnectionRequestBodyInput,\n  UpdateCalendarConnectionResponseData,\n  UpdateScheduledBotRequestBodyInput,\n  UpdateScheduledBotResponseData,\n  UpdateZoomCredential200Data,\n  UpdateZoomCredentialBody\n} from \"../generated/v2/schema\"\nimport {\n  type ApiResponseV2,\n  apiWrapperV2,\n  apiWrapperV2List,\n  apiWrapperV2NoParams,\n  type BatchApiResponseV2,\n  type ListApiResponseV2\n} from \"./api\"\nimport type { ClientState } from \"./client-state\"\nimport type { BaasClientV2Methods } from \"./types\"\n\n/**\n * Create v2 client methods\n * Methods use pass-through responses (ApiResponseV2<T>)\n */\nexport function createV2Methods(state: ClientState): BaasClientV2Methods {\n  return {\n    // Bot methods\n    async createBot(\n      params: CreateBotRequestBodyInput\n    ): Promise<ApiResponseV2<CreateBotResponseData>> {\n      const { createBot: createBotApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { createBotBody } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<CreateBotResponseData, CreateBotRequestBodyInput>(\n        createBotApi,\n        createBotBody as z.ZodType<CreateBotRequestBodyInput>,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async batchCreateBots(\n      params: BatchCreateBotsRequestBodyInput\n    ): Promise<\n      BatchApiResponseV2<BatchCreateBotResponseDataItem, BatchCreateBotResponseErrorsItem>\n    > {\n      const { batchCreateBots: batchCreateBotsApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { batchCreateBotsBody } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      // Note: batchCreateBots returns BatchApiResponseV2, but apiWrapperV2 returns ApiResponseV2\n      // We need to handle this specially or update apiWrapperV2 to support batch responses\n      return apiWrapperV2<BatchCreateBotResponseDataItem[], BatchCreateBotsRequestBodyInput>(\n        batchCreateBotsApi,\n        batchCreateBotsBody as z.ZodType<BatchCreateBotsRequestBodyInput>,\n        params,\n        state.getOptions()\n      ) as Promise<\n        BatchApiResponseV2<BatchCreateBotResponseDataItem, BatchCreateBotResponseErrorsItem>\n      >\n    },\n\n    async listBots(params?: ListBotsParams): Promise<ListApiResponseV2<ListBotsResponseDataItem>> {\n      const { listBots: listBotsApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { listBotsQueryParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      // Provide default limit if params is undefined or limit is not provided\n      const paramsWithDefaults: ListBotsParams = params ? { limit: 50, ...params } : { limit: 50 }\n\n      return apiWrapperV2List<ListBotsResponseDataItem, ListBotsParams>(\n        listBotsApi,\n        listBotsQueryParams,\n        paramsWithDefaults,\n        state.getOptions()\n      )\n    },\n\n    async getBotDetails(params: {\n      bot_id: string\n    }): Promise<ApiResponseV2<GetBotDetailsResponseData>> {\n      const { getBotDetails: getBotDetailsApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { getBotDetailsParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<GetBotDetailsResponseData, { bot_id: string }>(\n        (params: { bot_id: string }, options: AxiosRequestConfig) =>\n          getBotDetailsApi(params.bot_id, options),\n        getBotDetailsParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async getBotStatus(params: {\n      bot_id: string\n    }): Promise<ApiResponseV2<GetBotStatusResponseData>> {\n      const { getBotStatus: getBotStatusApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { getBotStatusParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<GetBotStatusResponseData, { bot_id: string }>(\n        (params: { bot_id: string }, options: AxiosRequestConfig) =>\n          getBotStatusApi(params.bot_id, options),\n        getBotStatusParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async getBotScreenshots(params: {\n      bot_id: string\n      limit?: number\n      cursor?: string | null\n    }): Promise<ListApiResponseV2<GetBotScreenshotsResponseDataItem>> {\n      const { getBotScreenshots: getBotScreenshotsApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { getBotScreenshotsParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2List<\n        GetBotScreenshotsResponseDataItem,\n        { bot_id: string; limit?: number; cursor?: string | null }\n      >(\n        (params: { bot_id: string; limit?: number; cursor?: string | null }, options) =>\n          getBotScreenshotsApi(\n            params.bot_id,\n            { limit: params.limit, cursor: params.cursor },\n            options\n          ),\n        z.object({\n          bot_id: getBotScreenshotsParams.shape.bot_id,\n          limit: z.number().optional(),\n          cursor: z.string().nullable().optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async leaveBot(params: { bot_id: string }): Promise<ApiResponseV2<LeaveBotResponseData>> {\n      const { leaveBot: leaveBotApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { leaveBotParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<LeaveBotResponseData, { bot_id: string }>(\n        (params: { bot_id: string }, options: AxiosRequestConfig) =>\n          leaveBotApi(params.bot_id, options),\n        leaveBotParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async deleteBotData(params: {\n      bot_id: string\n      delete_from_provider?: boolean\n    }): Promise<ApiResponseV2<DeleteBotDataResponseData>> {\n      const { deleteBotData: deleteBotDataApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { deleteBotDataParams, deleteBotDataQueryParams } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<\n        DeleteBotDataResponseData,\n        { bot_id: string; delete_from_provider?: boolean }\n      >(\n        (params: { bot_id: string; delete_from_provider?: boolean }, options) =>\n          deleteBotDataApi(\n            params.bot_id,\n            { delete_from_provider: params.delete_from_provider },\n            options\n          ),\n        z.object({\n          bot_id: deleteBotDataParams.shape.bot_id,\n          delete_from_provider: deleteBotDataQueryParams.shape.delete_from_provider.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async resendFinalWebhook(params: {\n      bot_id: string\n    }): Promise<ApiResponseV2<ResendFinalWebhookResponseData>> {\n      const { resendFinalWebhook: resendFinalWebhookApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { resendFinalWebhookParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<ResendFinalWebhookResponseData, { bot_id: string }>(\n        (params: { bot_id: string }, options: AxiosRequestConfig) =>\n          resendFinalWebhookApi(params.bot_id, options),\n        resendFinalWebhookParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async retryCallback(params: {\n      bot_id: string\n      callbackConfig?: RetryCallbackRequestBodyInput\n    }): Promise<ApiResponseV2<RetryCallbackResponseData>> {\n      const { retryCallback: retryCallbackApi } = await import(\"../generated/v2/api/bots/bots.js\")\n      const { retryCallbackParams, retryCallbackBody } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<\n        RetryCallbackResponseData,\n        { bot_id: string; callbackConfig?: RetryCallbackRequestBodyInput }\n      >(\n        (params: { bot_id: string; callbackConfig?: RetryCallbackRequestBodyInput }, options) =>\n          retryCallbackApi(params.bot_id, params.callbackConfig ?? null, options),\n        z.object({\n          bot_id: retryCallbackParams.shape.bot_id,\n          callbackConfig: retryCallbackBody.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async updateBotConfig(params: {\n      bot_id: string\n      body: UpdateBotConfigBody\n    }): Promise<ApiResponseV2<UpdateBotConfig200Data>> {\n      const { updateBotConfig: updateBotConfigApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { updateBotConfigParams, updateBotConfigBody } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<UpdateBotConfig200Data, { bot_id: string; body: UpdateBotConfigBody }>(\n        (params: { bot_id: string; body: UpdateBotConfigBody }, options) =>\n          updateBotConfigApi(params.bot_id, params.body, options),\n        z.object({\n          bot_id: updateBotConfigParams.shape.bot_id,\n          body: updateBotConfigBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async sendChatMessage(params: {\n      bot_id: string\n      body: SendChatMessageBody\n    }): Promise<ApiResponseV2<SendChatMessage200Data>> {\n      const { sendChatMessage: sendChatMessageApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { sendChatMessageParams, sendChatMessageBody } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<SendChatMessage200Data, { bot_id: string; body: SendChatMessageBody }>(\n        (params: { bot_id: string; body: SendChatMessageBody }, options) =>\n          sendChatMessageApi(params.bot_id, params.body, options),\n        z.object({\n          bot_id: sendChatMessageParams.shape.bot_id,\n          body: sendChatMessageBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async pauseBotRecording(params: {\n      bot_id: string\n      body?: PauseBotRecordingBody\n    }): Promise<ApiResponseV2<PauseBotRecording200Data>> {\n      const { pauseBotRecording: pauseBotRecordingApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { pauseBotRecordingParams, pauseBotRecordingBody } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<\n        PauseBotRecording200Data,\n        { bot_id: string; body?: PauseBotRecordingBody }\n      >(\n        (params: { bot_id: string; body?: PauseBotRecordingBody }, options) =>\n          pauseBotRecordingApi(params.bot_id, params.body ?? {}, options),\n        z.object({\n          bot_id: pauseBotRecordingParams.shape.bot_id,\n          body: pauseBotRecordingBody.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async resumeBotRecording(params: {\n      bot_id: string\n      body?: ResumeBotRecordingBody\n    }): Promise<ApiResponseV2<ResumeBotRecording200Data>> {\n      const { resumeBotRecording: resumeBotRecordingApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { resumeBotRecordingParams, resumeBotRecordingBody } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<\n        ResumeBotRecording200Data,\n        { bot_id: string; body?: ResumeBotRecordingBody }\n      >(\n        (params: { bot_id: string; body?: ResumeBotRecordingBody }, options) =>\n          resumeBotRecordingApi(params.bot_id, params.body ?? {}, options),\n        z.object({\n          bot_id: resumeBotRecordingParams.shape.bot_id,\n          body: resumeBotRecordingBody.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    // Scheduled bot methods\n    async createScheduledBot(\n      params: CreateScheduledBotRequestBodyInput\n    ): Promise<ApiResponseV2<CreateScheduledBotResponseData>> {\n      const { createScheduledBot: createScheduledBotApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { createScheduledBotBody } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<CreateScheduledBotResponseData, CreateScheduledBotRequestBodyInput>(\n        createScheduledBotApi,\n        createScheduledBotBody as z.ZodType<CreateScheduledBotRequestBodyInput>,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async batchCreateScheduledBots(\n      params: BatchCreateScheduledBotsRequestBodyInput\n    ): Promise<\n      BatchApiResponseV2<\n        BatchCreateScheduledBotResponseDataItem,\n        BatchCreateScheduledBotResponseErrorsItem\n      >\n    > {\n      const { batchCreateScheduledBots: batchCreateScheduledBotsApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { batchCreateScheduledBotsBody } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<\n        BatchCreateScheduledBotResponseDataItem[],\n        BatchCreateScheduledBotsRequestBodyInput\n      >(\n        batchCreateScheduledBotsApi,\n        batchCreateScheduledBotsBody as z.ZodType<BatchCreateScheduledBotsRequestBodyInput>,\n        params,\n        state.getOptions()\n      ) as Promise<\n        BatchApiResponseV2<\n          BatchCreateScheduledBotResponseDataItem,\n          BatchCreateScheduledBotResponseErrorsItem\n        >\n      >\n    },\n\n    async listScheduledBots(\n      params?: ListScheduledBotsParams\n    ): Promise<ListApiResponseV2<ListScheduledBotsResponseDataItem>> {\n      const { listScheduledBots: listScheduledBotsApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { listScheduledBotsQueryParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2List<ListScheduledBotsResponseDataItem, ListScheduledBotsParams>(\n        listScheduledBotsApi,\n        listScheduledBotsQueryParams,\n        params ?? { limit: 50 },\n        state.getOptions()\n      )\n    },\n\n    async getScheduledBot(params: {\n      bot_id: string\n    }): Promise<ApiResponseV2<GetScheduledBotResponseData>> {\n      const { getScheduledBotDetails: getScheduledBotApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { getScheduledBotDetailsParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<GetScheduledBotResponseData, { bot_id: string }>(\n        (params: { bot_id: string }, options: AxiosRequestConfig) =>\n          getScheduledBotApi(params.bot_id, options),\n        getScheduledBotDetailsParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async updateScheduledBot(params: {\n      bot_id: string\n      body: UpdateScheduledBotRequestBodyInput\n    }): Promise<ApiResponseV2<UpdateScheduledBotResponseData>> {\n      const { updateScheduledBot: updateScheduledBotApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { updateScheduledBotParams, updateScheduledBotBody } = await import(\n        \"../generated/v2/api/bots/bots.zod.js\"\n      )\n\n      return apiWrapperV2<\n        UpdateScheduledBotResponseData,\n        { bot_id: string; body: UpdateScheduledBotRequestBodyInput }\n      >(\n        (params: { bot_id: string; body: UpdateScheduledBotRequestBodyInput }, options) =>\n          updateScheduledBotApi(params.bot_id, params.body, options),\n        z.object({\n          bot_id: updateScheduledBotParams.shape.bot_id,\n          body: updateScheduledBotBody\n        }) as z.ZodType<{ bot_id: string; body: UpdateScheduledBotRequestBodyInput }>,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async deleteScheduledBot(params: {\n      bot_id: string\n    }): Promise<ApiResponseV2<DeleteScheduledBotResponseData>> {\n      const { deleteScheduledBot: deleteScheduledBotApi } = await import(\n        \"../generated/v2/api/bots/bots.js\"\n      )\n      const { deleteScheduledBotParams } = await import(\"../generated/v2/api/bots/bots.zod.js\")\n\n      return apiWrapperV2<DeleteScheduledBotResponseData, { bot_id: string }>(\n        (params: { bot_id: string }, options: AxiosRequestConfig) =>\n          deleteScheduledBotApi(params.bot_id, options),\n        deleteScheduledBotParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    // Calendar methods\n    async listRawCalendars(\n      params: ListRawCalendarsRequestBodyInput\n    ): Promise<ApiResponseV2<ListRawCalendarsResponseDataItem[]>> {\n      const { listRawCalendars: listRawCalendarsApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { listRawCalendarsBody } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<ListRawCalendarsResponseDataItem[], ListRawCalendarsRequestBodyInput>(\n        listRawCalendarsApi,\n        listRawCalendarsBody,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async createCalendarConnection(\n      params: CreateCalendarConnectionRequestBodyInput\n    ): Promise<ApiResponseV2<CreateCalendarConnectionResponseData>> {\n      const { createCalendarConnection: createCalendarConnectionApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { createCalendarConnectionBody } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<\n        CreateCalendarConnectionResponseData,\n        CreateCalendarConnectionRequestBodyInput\n      >(createCalendarConnectionApi, createCalendarConnectionBody, params, state.getOptions())\n    },\n\n    async listCalendars(\n      params?: ListCalendarsParams\n    ): Promise<ListApiResponseV2<ListCalendarsResponseDataItem>> {\n      const { listCalendars: listCalendarsApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { listCalendarsQueryParams } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      // Provide default limit if params is undefined or limit is not provided\n      const paramsWithDefaults: ListCalendarsParams = params\n        ? { limit: 50, ...params }\n        : { limit: 50 }\n\n      return apiWrapperV2List<ListCalendarsResponseDataItem, ListCalendarsParams>(\n        listCalendarsApi,\n        listCalendarsQueryParams,\n        paramsWithDefaults,\n        state.getOptions()\n      )\n    },\n\n    async getCalendarDetails(params: {\n      calendar_id: string\n    }): Promise<ApiResponseV2<GetCalendarDetailsResponseData>> {\n      const { getCalendarDetails: getCalendarDetailsApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { getCalendarDetailsParams } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<GetCalendarDetailsResponseData, { calendar_id: string }>(\n        (params: { calendar_id: string }, options: AxiosRequestConfig) =>\n          getCalendarDetailsApi(params.calendar_id, options),\n        getCalendarDetailsParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async updateCalendarConnection(params: {\n      calendar_id: string\n      body: UpdateCalendarConnectionRequestBodyInput\n    }): Promise<ApiResponseV2<UpdateCalendarConnectionResponseData>> {\n      const { updateCalendarConnection: updateCalendarConnectionApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { updateCalendarConnectionParams, updateCalendarConnectionBody } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<\n        UpdateCalendarConnectionResponseData,\n        { calendar_id: string; body: UpdateCalendarConnectionRequestBodyInput }\n      >(\n        (\n          params: { calendar_id: string; body: UpdateCalendarConnectionRequestBodyInput },\n          options\n        ) => updateCalendarConnectionApi(params.calendar_id, params.body, options),\n        z.object({\n          calendar_id: updateCalendarConnectionParams.shape.calendar_id,\n          body: updateCalendarConnectionBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async deleteCalendarConnection(params: {\n      calendar_id: string\n    }): Promise<ApiResponseV2<DeleteCalendarConnectionResponseData>> {\n      const { deleteCalendarConnection: deleteCalendarConnectionApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { deleteCalendarConnectionParams } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<DeleteCalendarConnectionResponseData, { calendar_id: string }>(\n        (params: { calendar_id: string }, options: AxiosRequestConfig) =>\n          deleteCalendarConnectionApi(params.calendar_id, options),\n        deleteCalendarConnectionParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async syncCalendar(params: {\n      calendar_id: string\n    }): Promise<ApiResponseV2<SyncCalendarResponseData>> {\n      const { syncCalendar: syncCalendarApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { syncCalendarParams } = await import(\"../generated/v2/api/calendars/calendars.zod.js\")\n\n      return apiWrapperV2<SyncCalendarResponseData, { calendar_id: string }>(\n        (params: { calendar_id: string }, options: AxiosRequestConfig) =>\n          syncCalendarApi(params.calendar_id, options),\n        syncCalendarParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async resubscribeCalendar(params: {\n      calendar_id: string\n    }): Promise<ApiResponseV2<ResubscribeCalendarResponseData>> {\n      const { resubscribeCalendar: resubscribeCalendarApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { resubscribeCalendarParams } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<ResubscribeCalendarResponseData, { calendar_id: string }>(\n        (params: { calendar_id: string }, options: AxiosRequestConfig) =>\n          resubscribeCalendarApi(params.calendar_id, options),\n        resubscribeCalendarParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async listEvents(params: {\n      calendar_id: string\n      query?: ListEventsParamsV2\n    }): Promise<ListApiResponseV2<ListEventsResponseDataItem>> {\n      const { listEvents: listEventsApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { listEventsParams: listEventsParamsSchema, listEventsQueryParams } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2List<\n        ListEventsResponseDataItem,\n        { calendar_id: string; query?: ListEventsParamsV2 }\n      >(\n        (params: { calendar_id: string; query?: ListEventsParamsV2 }, options) =>\n          listEventsApi(\n            params.calendar_id,\n            params.query ?? { limit: 50, show_cancelled: true },\n            options\n          ),\n        z.object({\n          calendar_id: listEventsParamsSchema.shape.calendar_id,\n          query: listEventsQueryParams.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async listEventSeries(params: {\n      calendar_id: string\n      query?: ListEventSeriesParams\n    }): Promise<ListApiResponseV2<ListEventSeriesResponseDataItem>> {\n      const { listEventSeries: listEventSeriesApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { listEventSeriesParams: listEventSeriesParamsSchema, listEventSeriesQueryParams } =\n        await import(\"../generated/v2/api/calendars/calendars.zod.js\")\n\n      return apiWrapperV2List<\n        ListEventSeriesResponseDataItem,\n        { calendar_id: string; query?: ListEventSeriesParams }\n      >(\n        (params: { calendar_id: string; query?: ListEventSeriesParams }, options) =>\n          listEventSeriesApi(\n            params.calendar_id,\n            params.query ?? { limit: 50, show_cancelled: true },\n            options\n          ),\n        z.object({\n          calendar_id: listEventSeriesParamsSchema.shape.calendar_id,\n          query: listEventSeriesQueryParams.optional()\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async getEventDetails(params: {\n      calendar_id: string\n      event_id: string\n    }): Promise<ApiResponseV2<GetEventDetailsResponseData>> {\n      const { getEventDetails: getEventDetailsApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { getEventDetailsParams } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<GetEventDetailsResponseData, { calendar_id: string; event_id: string }>(\n        (params: { calendar_id: string; event_id: string }, options) =>\n          getEventDetailsApi(params.calendar_id, params.event_id, options),\n        getEventDetailsParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async createCalendarBot(params: {\n      calendar_id: string\n      body: CreateCalendarBotRequestBodyInput\n    }): Promise<\n      BatchApiResponseV2<CreateCalendarBotResponseDataItem, CreateCalendarBotResponseErrorsItem>\n    > {\n      const { createCalendarBot: createCalendarBotApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { createCalendarBotParams, createCalendarBotBody } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      return apiWrapperV2<\n        CreateCalendarBotResponseDataItem[],\n        { calendar_id: string; body: CreateCalendarBotRequestBodyInput }\n      >(\n        (params: { calendar_id: string; body: CreateCalendarBotRequestBodyInput }, options) =>\n          createCalendarBotApi(params.calendar_id, params.body, options),\n        z.object({\n          calendar_id: createCalendarBotParams.shape.calendar_id,\n          body: createCalendarBotBody\n        }) as z.ZodType<{ calendar_id: string; body: CreateCalendarBotRequestBodyInput }>,\n        params,\n        state.getOptions()\n      ) as Promise<\n        BatchApiResponseV2<CreateCalendarBotResponseDataItem, CreateCalendarBotResponseErrorsItem>\n      >\n    },\n\n    async updateCalendarBot(params: {\n      calendar_id: string\n      event_id: string\n      body: UpdateCalendarBotRequestBodyInput\n    }): Promise<\n      BatchApiResponseV2<UpdateCalendarBotResponseDataItem, UpdateCalendarBotResponseErrorsItem>\n    > {\n      const { updateCalendarBot: updateCalendarBotApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { updateCalendarBotParams, updateCalendarBotBody } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      // event_id is in the body, not the path\n      const bodyWithEventId = {\n        ...params.body,\n        event_id: params.event_id\n      } as UpdateCalendarBotRequestBodyInput\n\n      return apiWrapperV2<\n        UpdateCalendarBotResponseDataItem[],\n        { calendar_id: string; body: UpdateCalendarBotRequestBodyInput }\n      >(\n        (params: { calendar_id: string; body: UpdateCalendarBotRequestBodyInput }, options) =>\n          updateCalendarBotApi(params.calendar_id, params.body, options),\n        z.object({\n          calendar_id: updateCalendarBotParams.shape.calendar_id,\n          body: updateCalendarBotBody\n        }) as z.ZodType<{ calendar_id: string; body: UpdateCalendarBotRequestBodyInput }>,\n        { calendar_id: params.calendar_id, body: bodyWithEventId },\n        state.getOptions()\n      ) as Promise<\n        BatchApiResponseV2<UpdateCalendarBotResponseDataItem, UpdateCalendarBotResponseErrorsItem>\n      >\n    },\n\n    async deleteCalendarBot(params: {\n      calendar_id: string\n      event_id: string\n    }): Promise<\n      BatchApiResponseV2<DeleteCalendarBotResponseDataItem, DeleteCalendarBotResponseErrorsItem>\n    > {\n      const { deleteCalendarBot: deleteCalendarBotApi } = await import(\n        \"../generated/v2/api/calendars/calendars.js\"\n      )\n      const { deleteCalendarBotParams, deleteCalendarBotBody } = await import(\n        \"../generated/v2/api/calendars/calendars.zod.js\"\n      )\n\n      // event_id is in the body, not the path. The body requires series_id, so we'll use a placeholder\n      // and include event_id. This is a workaround for the interface mismatch.\n      // The interface says event_id is a path param, but the API expects it in the body.\n      // We construct a valid body with event_id and required fields.\n      const body: DeleteCalendarBotBody = {\n        event_id: params.event_id,\n        all_occurrences: false,\n        series_id: \"00000000-0000-0000-0000-000000000000\" // Placeholder UUID since series_id is required\n      }\n\n      return apiWrapperV2<\n        DeleteCalendarBotResponseDataItem[],\n        { calendar_id: string; body: DeleteCalendarBotBody }\n      >(\n        (params: { calendar_id: string; body: DeleteCalendarBotBody }, options) =>\n          deleteCalendarBotApi(params.calendar_id, params.body, options),\n        z.object({\n          calendar_id: deleteCalendarBotParams.shape.calendar_id,\n          body: deleteCalendarBotBody\n        }),\n        { calendar_id: params.calendar_id, body },\n        state.getOptions()\n      ) as Promise<\n        BatchApiResponseV2<DeleteCalendarBotResponseDataItem, DeleteCalendarBotResponseErrorsItem>\n      >\n    },\n\n    // Zoom credentials methods\n    async createZoomCredential(\n      params: CreateZoomCredentialBody\n    ): Promise<ApiResponseV2<CreateZoomCredential201Data>> {\n      const { createZoomCredential: createZoomCredentialApi } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.js\"\n      )\n      const { createZoomCredentialBody } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.zod.js\"\n      )\n\n      return apiWrapperV2<CreateZoomCredential201Data, CreateZoomCredentialBody>(\n        createZoomCredentialApi,\n        createZoomCredentialBody as z.ZodType<CreateZoomCredentialBody>,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async listZoomCredentials(\n      params?: ListZoomCredentialsParams\n    ): Promise<ApiResponseV2<ListZoomCredentials200DataItem[]>> {\n      const { listZoomCredentials: listZoomCredentialsApi } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.js\"\n      )\n\n      return apiWrapperV2NoParams(\n        (options: AxiosRequestConfig) => listZoomCredentialsApi(params, options),\n        state.getOptions()\n      )\n    },\n\n    async getZoomCredential(params: {\n      id: string\n    }): Promise<ApiResponseV2<GetZoomCredential200Data>> {\n      const { getZoomCredential: getZoomCredentialApi } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.js\"\n      )\n      const { getZoomCredentialParams } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.zod.js\"\n      )\n\n      return apiWrapperV2<GetZoomCredential200Data, { id: string }>(\n        (params: { id: string }, options: AxiosRequestConfig) =>\n          getZoomCredentialApi(params.id, options),\n        getZoomCredentialParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    async updateZoomCredential(params: {\n      id: string\n      body: UpdateZoomCredentialBody\n    }): Promise<ApiResponseV2<UpdateZoomCredential200Data>> {\n      const { updateZoomCredential: updateZoomCredentialApi } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.js\"\n      )\n      const { updateZoomCredentialParams, updateZoomCredentialBody } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.zod.js\"\n      )\n\n      return apiWrapperV2<\n        UpdateZoomCredential200Data,\n        { id: string; body: UpdateZoomCredentialBody }\n      >(\n        (params: { id: string; body: UpdateZoomCredentialBody }, options) =>\n          updateZoomCredentialApi(params.id, params.body, options),\n        z.object({\n          id: updateZoomCredentialParams.shape.id,\n          body: updateZoomCredentialBody\n        }),\n        params,\n        state.getOptions()\n      )\n    },\n\n    async deleteZoomCredential(params: {\n      id: string\n    }): Promise<ApiResponseV2<DeleteZoomCredential200Data>> {\n      const { deleteZoomCredential: deleteZoomCredentialApi } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.js\"\n      )\n      const { deleteZoomCredentialParams } = await import(\n        \"../generated/v2/api/zoom-credentials/zoom-credentials.zod.js\"\n      )\n\n      return apiWrapperV2<DeleteZoomCredential200Data, { id: string }>(\n        (params: { id: string }, options: AxiosRequestConfig) =>\n          deleteZoomCredentialApi(params.id, options),\n        deleteZoomCredentialParams,\n        params,\n        state.getOptions()\n      )\n    },\n\n    getApiKey(): string {\n      return state.getApiKey()\n    },\n\n    getBaseUrl(): string {\n      return state.getBaseUrl()\n    }\n  }\n}\n","import { ClientState } from \"./client-state\"\nimport type { BaasClientConfig, BaasClientConfigV1, BaasClientConfigV2 } from \"./types\"\nimport { createV1Methods } from \"./v1-methods\"\nimport { createV2Methods } from \"./v2-methods\"\n\n/**\n * Conditional client type based on API version\n */\nexport type BaasClient<V extends \"v1\" | \"v2\"> = V extends \"v1\"\n  ? import(\"./types\").BaasClientV1Methods\n  : import(\"./types\").BaasClientV2Methods\n\n/**\n * Tree-shakeable client factory with type inference\n * Creates a client object with only the methods you import\n * TypeScript will infer available methods based on api_version\n */\nexport function createBaasClient(config: BaasClientConfigV1): BaasClient<\"v1\">\nexport function createBaasClient(config: BaasClientConfigV2): BaasClient<\"v2\">\nexport function createBaasClient(config: BaasClientConfig): BaasClient<\"v1\" | \"v2\">\nexport function createBaasClient(config: BaasClientConfig): BaasClient<\"v1\" | \"v2\"> {\n  const state = new ClientState(config)\n  const apiVersion = config.api_version ?? \"v1\"\n\n  if (apiVersion === \"v2\") {\n    return createV2Methods(state) as BaasClient<\"v1\" | \"v2\">\n  }\n\n  return createV1Methods(state) as BaasClient<\"v1\" | \"v2\">\n}\n"],"mappings":"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DACA,uDAEA,uDACA,uDACA,mDAEA,mDACA,oDACA,gDAEA,gDACA,yCAMA,iDAEA,sCACA,iCACA,4CACA,mDACA,oDACA,yDACA,2CACA,gDACA,uDACA,qDACA,2DACA,+CACA,2CACA,gDACA,gDACA,0CAEA,yBAyPA,qBAkBA,8BAGA,qBAQA,sCAEA,0CAEA,4CAEA,4CAEA,mDACA,mDACA,+CACA,+CACA,0DAGA,uBAkOA,6BAGA,oBAQA,qCAEA,yCAGA,sBA+DA,kCAGA,yBAQA,oCACA,gCACA,qCAEA,8BAcA,kDAEA,2BA+BA,yBAGA,gBAQA,kBAuBA,gCAGA,uBAQA,+BAEA,qBAQA,yBAqBA,kCAGA,yBAQA,wCACA,yCAEA,uBASA,2BAqBA,mCAGA,0BAQA,yCACA,0CAEA,wBASA,4BA2BA,8BAGA,qBAQA,6CAEA,0BAQA,uBA2BA,mCAGA,0BAUA,4BA6BA,8BAGA,qBAUA,0BACA,gCACA,gCAEA,mBAuBA,uBAoCA,gCAGA,uBAQA,qBAOA,yBAyBA,kCACA,wCACA,uCACA,qDACA,0DACA,sDAEA,sDACA,6CACA,gDACA,4CACA,0CACA,2CACA,8DACA,0DAEA,0DACA,8DACA,0DAEA,0DACA,0DACA,sDAEA,sDACA,uDACA,mDAEA,mDACA,4CAMA,oDAEA,yCACA,oCACA,+CACA,sDACA,uDACA,4DACA,8CACA,mDACA,0DACA,wDACA,8DACA,kDACA,8CACA,mDACA,mDACA,6CACA,oCAGA,wBA+RA,oCACA,gCACA,qCACA,oCACA,gDAEA,8CACA,+CAEA,6CACA,sCACA,yCACA,oCAEA,8BA8EA,8CAEA,+CAEA,kDAEA,kDAGA,2BAiEA,wCACA,8CACA,6CACA,2DACA,gEACA,4DAEA,4DACA,mDACA,sDACA,kDACA,gDACA,iDACA,oEACA,gEAEA,gEACA,oEACA,gEAEA,gEACA,gEACA,4DAEA,4DACA,6DACA,yDAEA,yDACA,kDAMA,0DAEA,+CACA,0CACA,qDACA,4DACA,6DACA,kEACA,oDACA,yDACA,gEACA,8DACA,oEACA,wDACA,oDACA,yDACA,yDACA,mDACA,0CAGA,kC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","names":["zod","zod","calendars_zod_exports","listCalendarsResponse","listEventsQueryParams","listEventsResponse","listRawCalendarsBody","listRawCalendarsResponse","zod","init_calendars_zod","updateCalendarParams","zod","sendChatMessageBody","pauseBotRecordingBody","resumeBotRecordingBody","updateBotConfigBody","calendars_exports","listCalendars","listEvents","listRawCalendars","init_calendars","deleteCalendarBotBody","createZoomCredentialBody","updateZoomCredentialBody","zod","zod","init_calendars_zod","join","joinBody","leave","leaveParams","params","getMeetingDataQueryParams","deleteData","deleteDataParams","botsWithMetadata","botsWithMetadataQueryParams","retranscribeBotBody","getScreenshotsParams","createCalendarBody","getCalendarParams","updateCalendarParams","updateCalendarBody","deleteCalendarParams","getEvent","getEventParams","scheduleRecordEvent","scheduleRecordEventBody","scheduleRecordEventQueryParams","scheduleRecordEventParams","unscheduleRecordEvent","unscheduleRecordEventQueryParams","unscheduleRecordEventParams","patchBotBody","patchBotQueryParams","patchBotParams","listEvents","listEventsQueryParams","webhookDocumentation","botWebhookDocumentation","calendarWebhookDocumentation","resyncAllCalendars","resyncAllCalendarsQueryParams","listRawCalendarsBody","createZoomOauthConnectionBody","getZoomOauthConnectionParams","deleteZoomOauthConnectionParams","z","createBotBody","batchCreateBotsBody","listBotsQueryParams","getBotDetailsParams","params","getBotStatusParams","getBotScreenshotsParams","z","leaveBotParams","deleteBotDataParams","deleteBotDataQueryParams","resendFinalWebhookParams","retryCallbackParams","retryCallbackBody","updateBotConfigParams","updateBotConfigBody","sendChatMessageParams","sendChatMessageBody","pauseBotRecordingParams","pauseBotRecordingBody","resumeBotRecordingParams","resumeBotRecordingBody","createScheduledBotBody","batchCreateScheduledBotsBody","listScheduledBotsQueryParams","getScheduledBotDetailsParams","updateScheduledBotParams","updateScheduledBotBody","deleteScheduledBotParams","listRawCalendarsBody","createCalendarConnectionBody","listCalendarsQueryParams","getCalendarDetailsParams","updateCalendarConnectionParams","updateCalendarConnectionBody","deleteCalendarConnectionParams","syncCalendarParams","resubscribeCalendarParams","listEventsQueryParams","listEventSeriesQueryParams","getEventDetailsParams","createCalendarBotParams","createCalendarBotBody","updateCalendarBotParams","updateCalendarBotBody","deleteCalendarBotParams","deleteCalendarBotBody","createZoomCredentialBody","getZoomCredentialParams","updateZoomCredentialParams","updateZoomCredentialBody","deleteZoomCredentialParams"]}