{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Updates a meeting in an App for the given meeting ID.","properties":{"path":{"type":"object","properties":{"account_id":{"$ref":"#/definitions/realtimekit_account_identifier"},"app_id":{"$ref":"#/definitions/realtimekit_app_id"},"meeting_id":{"type":"string","format":"uuid","description":"ID of the meeting. Fetch the meeting ID using the create a meeting API."}},"required":["account_id","app_id","meeting_id"],"additionalProperties":false},"body":{"type":"object","properties":{"ai_config":{"$ref":"#/definitions/realtimekit_AIConfig"},"live_stream_on_start":{"description":"Specifies if the meeting should start getting livestreamed on start.","type":"boolean"},"persist_chat":{"description":"If a meeting is updated to persist_chat, meeting chat would remain for a week within the meeting space.","type":"boolean"},"record_on_start":{"description":"Specifies if the meeting should start getting recorded as soon as someone joins the meeting.","type":"boolean"},"recording_config":{"$ref":"#/definitions/realtimekit_RecordingConfig"},"session_keep_alive_time_in_secs":{"description":"Time in seconds, for which a session remains active, after the last participant has left the meeting.","type":"number","maximum":600,"minimum":60},"status":{"description":"Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting.","type":"string","enum":["ACTIVE","INACTIVE"],"examples":["INACTIVE"]},"summarize_on_end":{"description":"Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.","type":"boolean"},"title":{"description":"Title of the meeting","type":"string"},"transcribe_on_end":{"description":"Automatically generate transcripts when the meeting ends.","type":"boolean"}}}},"required":["path","body"],"additionalProperties":false,"definitions":{"realtimekit_account_identifier":{"description":"The account identifier tag.","type":"string","maxLength":32,"examples":["023e105f4ecef8ad9ca31a8372d0c353"]},"realtimekit_app_id":{"description":"The app identifier tag.","type":"string","examples":["14a396e7-ca44-4937-bf1f-050a69118543"]},"realtimekit_AIConfig":{"description":"The AI Config allows you to customize the behavior of meeting transcriptions and summaries","type":"object","properties":{"summarization":{"$ref":"#/definitions/realtimekit_SummarizationConfig"},"transcription":{"$ref":"#/definitions/realtimekit_TranscriptionConfig"}},"title":"AIConfig"},"realtimekit_RecordingConfig":{"description":"Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.\n","type":"object","properties":{"audio_config":{"$ref":"#/definitions/realtimekit_AudioConfig"},"file_name_prefix":{"description":"Adds a prefix to the beginning of the file name of the recording.","type":"string"},"live_streaming_config":{"$ref":"#/definitions/realtimekit_LivestreamingConfig"},"max_seconds":{"description":"Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.","type":"number","maximum":86400,"minimum":60},"realtimekit_bucket_config":{"$ref":"#/definitions/realtimekit_realtimekitBucketConfig"},"storage_config":{"$ref":"#/definitions/realtimekit_StorageConfig"},"video_config":{"$ref":"#/definitions/realtimekit_VideoConfig"}},"title":"RecordingConfig"},"realtimekit_SummarizationConfig":{"description":"Summary Config","type":"object","properties":{"summary_type":{"description":"Defines the style of the summary, such as general, team meeting, or sales call.","type":"string","default":"general","enum":["general","team_meeting","sales_call","client_check_in","interview","daily_standup","one_on_one_meeting","lecture","code_review"]},"text_format":{"description":"Determines the text format of the summary, such as plain text or markdown.","type":"string","default":"markdown","enum":["plain_text","markdown"]},"word_limit":{"description":"Sets the maximum number of words in the meeting summary.","type":"integer","default":500,"maximum":1000,"minimum":150}},"title":"SummarizationConfig"},"realtimekit_TranscriptionConfig":{"description":"Transcription Configurations","type":"object","properties":{"keywords":{"description":"Adds specific terms to improve accurate detection during transcription.","type":"array","items":{"type":"string"}},"language":{"description":"Specifies the language code for transcription to ensure accurate results. If omitted, the language is auto-detected for post-meeting (Whisper) transcription.","type":"string","enum":["en-US","en-IN","de","hi","sv","ru","pl","el","fr","nl"]},"profanity_filter":{"description":"Control the inclusion of offensive language in transcriptions.","type":"boolean","default":false}},"title":"TranscriptionConfig"},"realtimekit_AudioConfig":{"description":"Object containing configuration regarding the audio that is being recorded.","type":"object","properties":{"channel":{"description":"Audio signal pathway within an audio file that carries a specific sound source.","type":"string","default":"stereo","enum":["mono","stereo"]},"codec":{"description":"Codec using which the recording will be encoded. If VP8/VP9 is selected for videoConfig, changing audioConfig is not allowed. In this case, the codec in the audioConfig is automatically set to vorbis.","type":"string","default":"AAC","enum":["MP3","AAC"]},"export_file":{"description":"Controls whether to export audio file seperately","type":"boolean","default":true}},"title":"AudioConfig"},"realtimekit_LivestreamingConfig":{"type":"object","properties":{"rtmp_url":{"description":"RTMP URL to stream to","type":"string","format":"uri","examples":["rtmp://a.rtmp.youtube.com/live2"]}},"title":"LivestreamingConfig"},"realtimekit_realtimekitBucketConfig":{"type":"object","properties":{"enabled":{"description":"Controls whether recordings are uploaded to RealtimeKit's bucket. If set to false, `download_url`, `audio_download_url`, `download_url_expiry` won't be generated for a recording.","type":"boolean"}},"required":["enabled"],"title":"realtimekitBucketConfig"},"realtimekit_StorageConfig":{"type":["object","null"],"properties":{"access_key":{"description":"Access key of the storage medium. Access key is not required for the `gcs` storage media type.\n\nNote that this field is not readable by clients, only writeable.","type":"string"},"auth_method":{"description":"Authentication method used for \"sftp\" type storage medium\n","type":"string","enum":["KEY","PASSWORD"]},"bucket":{"description":"Name of the storage medium's bucket.","type":"string"},"host":{"description":"SSH destination server host for SFTP type storage medium","type":"string"},"password":{"description":"SSH destination server password for SFTP type storage medium when auth_method is \"PASSWORD\". If auth_method is \"KEY\", this specifies the password for the ssh private key.","type":"string"},"path":{"description":"Path relative to the bucket root at which the recording will be placed.","type":"string"},"port":{"description":"SSH destination server port for SFTP type storage medium","type":"number"},"private_key":{"description":"Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is \"KEY\"","type":"string"},"region":{"description":"Region of the storage medium.","type":"string","examples":["us-east-1"]},"secret":{"description":"Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable.","type":"string"},"type":{"description":"Type of storage media.","type":"string","enum":["aws","azure","digitalocean","gcs","sftp"]},"username":{"description":"SSH destination server username for SFTP type storage medium","type":"string"}},"oneOf":[{"properties":{"type":{"enum":["gcs"]}}},{"properties":{"access_key":{"minLength":1},"region":{"minLength":1},"type":{"enum":["aws","azure","digitalocean"]}},"required":["access_key","region"]},{"oneOf":[{"properties":{"auth_method":{"enum":["KEY"]}},"required":["private_key"]},{"properties":{"auth_method":{"enum":["PASSWORD"]}},"required":["password"]}],"properties":{"access_key":{"minLength":1},"region":{"minLength":1},"type":{"enum":["sftp"]}},"required":["access_key","region","auth_method","username","host","port"]}],"required":["type","bucket"],"title":"StorageConfig"},"realtimekit_VideoConfig":{"type":"object","properties":{"codec":{"description":"Codec using which the recording will be encoded.","type":"string","default":"H264","enum":["H264","VP8","VP9"]},"export_file":{"description":"Controls whether to export video file seperately","type":"boolean","default":true},"height":{"description":"Height of the recording video in pixels","type":"integer","default":720,"maximum":1920,"minimum":1,"examples":[720]},"watermark":{"description":"Watermark to be added to the recording","type":"object","properties":{"position":{"description":"Position of the watermark","type":"string","default":"left top","enum":["left top","right top","left bottom","right bottom"]},"size":{"description":"Size of the watermark","type":"object","properties":{"height":{"description":"Height of the watermark in px","type":"integer","minimum":1},"width":{"description":"Width of the watermark in px","type":"integer","minimum":1}}},"url":{"description":"URL of the watermark image","type":"string","format":"uri"}}},"width":{"description":"Width of the recording video in pixels","type":"integer","default":1280,"maximum":1920,"minimum":1,"examples":[1280]}},"title":"VideoConfig"}}},"name":"Update a meeting","id":"cloudflare.update_meeting","example":{"path":{"account_id":"023e105f4ecef8ad9ca31a8372d0c353","app_id":"14a396e7-ca44-4937-bf1f-050a69118543","meeting_id":"00000000-0000-4000-8000-000000000000"},"body":{}},"maxRequests":1,"summary":false}}