Skip to content
Start here

Update a meeting

client.RealtimeKit.Meetings.UpdateMeetingByID(ctx, appID, meetingID, params) (*MeetingUpdateMeetingByIDResponse, error)
PATCH/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}

Updates a meeting in an App for the given meeting ID.

Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
Accepted Permissions (at least one required)
Realtime AdminRealtime
ParametersExpand Collapse
appID string

The app identifier tag.

maxLength32
meetingID string
formatuuid
params MeetingUpdateMeetingByIDParams
AccountID param.Field[string]

Path param: The account identifier tag.

maxLength32
AIConfig param.Field[MeetingUpdateMeetingByIDParamsAIConfig]optional

Body param: The AI Config allows you to customize the behavior of meeting transcriptions and summaries

Summarization MeetingUpdateMeetingByIDParamsAIConfigSummarizationoptional

Summary Config

SummaryType MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeoptional

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeGeneral MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "general"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeTeamMeeting MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "team_meeting"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeSalesCall MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "sales_call"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeClientCheckIn MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "client_check_in"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeInterview MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "interview"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeDailyStandup MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "daily_standup"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "one_on_one_meeting"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeLecture MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "lecture"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryTypeCodeReview MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType = "code_review"
TextFormat MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormatoptional

Determines the text format of the summary, such as plain text or markdown.

One of the following:
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormatPlainText MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormat = "plain_text"
const MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormatMarkdown MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormat = "markdown"
WordLimit int64optional

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
Transcription MeetingUpdateMeetingByIDParamsAIConfigTranscriptionoptional

Transcription Configurations

Keywords []stringoptional

Adds specific terms to improve accurate detection during transcription.

Language MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageoptional

Specifies the language code for transcription to ensure accurate results.

One of the following:
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageEnUs MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "en-US"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageEnIn MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "en-IN"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageDe MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "de"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageHi MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "hi"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageSv MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "sv"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageRu MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "ru"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguagePl MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "pl"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageEl MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "el"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageFr MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "fr"
const MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguageNl MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage = "nl"
ProfanityFilter booloptional

Control the inclusion of offensive language in transcriptions.

LiveStreamOnStart param.Field[bool]optional

Body param: Specifies if the meeting should start getting livestreamed on start.

PersistChat param.Field[bool]optional

Body param: If a meeting is updated to persist_chat, meeting chat would remain for a week within the meeting space.

RecordOnStart param.Field[bool]optional

Body param: Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

SessionKeepAliveTimeInSecs param.Field[float64]optional

Body param: Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
Status param.Field[MeetingUpdateMeetingByIDParamsStatus]optional

Body param: Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

const MeetingUpdateMeetingByIDParamsStatusActive MeetingUpdateMeetingByIDParamsStatus = "ACTIVE"
const MeetingUpdateMeetingByIDParamsStatusInactive MeetingUpdateMeetingByIDParamsStatus = "INACTIVE"
SummarizeOnEnd param.Field[bool]optional

Body param: Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

Title param.Field[string]optional

Body param: Title of the meeting

ReturnsExpand Collapse
type MeetingUpdateMeetingByIDResponse struct{…}
Success bool

Success status of the operation

Data MeetingUpdateMeetingByIDResponseDataoptional

Data returned by the operation

ID string

ID of the meeting.

formatuuid
CreatedAt Time

Timestamp the object was created at. The time is returned in ISO format.

formatdate-time
UpdatedAt Time

Timestamp the object was updated at. The time is returned in ISO format.

formatdate-time
AIConfig MeetingUpdateMeetingByIDResponseDataAIConfigoptional

The AI Config allows you to customize the behavior of meeting transcriptions and summaries

Summarization MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationoptional

Summary Config

SummaryType MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeoptional

Defines the style of the summary, such as general, team meeting, or sales call.

One of the following:
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeGeneral MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "general"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeTeamMeeting MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "team_meeting"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeSalesCall MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "sales_call"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeClientCheckIn MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "client_check_in"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeInterview MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "interview"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeDailyStandup MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "daily_standup"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "one_on_one_meeting"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeLecture MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "lecture"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryTypeCodeReview MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType = "code_review"
TextFormat MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormatoptional

Determines the text format of the summary, such as plain text or markdown.

One of the following:
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormatPlainText MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormat = "plain_text"
const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormatMarkdown MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormat = "markdown"
WordLimit int64optional

Sets the maximum number of words in the meeting summary.

maximum1000
minimum150
Transcription MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionoptional

Transcription Configurations

Keywords []stringoptional

Adds specific terms to improve accurate detection during transcription.

Language MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageoptional

Specifies the language code for transcription to ensure accurate results.

One of the following:
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageEnUs MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "en-US"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageEnIn MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "en-IN"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageDe MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "de"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageHi MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "hi"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageSv MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "sv"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageRu MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "ru"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguagePl MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "pl"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageEl MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "el"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageFr MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "fr"
const MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguageNl MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage = "nl"
ProfanityFilter booloptional

Control the inclusion of offensive language in transcriptions.

LiveStreamOnStart booloptional

Specifies if the meeting should start getting livestreamed on start.

PersistChat booloptional

Specifies if Chat within a meeting should persist for a week.

RecordOnStart booloptional

Specifies if the meeting should start getting recorded as soon as someone joins the meeting.

RecordingConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigoptional

Recording Configurations to be used for this meeting. This level of configs takes higher preference over App level configs on the RealtimeKit developer portal.

AudioConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigoptional

Object containing configuration regarding the audio that is being recorded.

Channel MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChanneloptional

Audio signal pathway within an audio file that carries a specific sound source.

One of the following:
const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannelMono MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "mono"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannelStereo MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "stereo"
Codec MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodecoptional

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.

One of the following:
const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodecMP3 MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "MP3"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodecAac MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "AAC"
ExportFile booloptional

Controls whether to export audio file seperately

FileNamePrefix stringoptional

Adds a prefix to the beginning of the file name of the recording.

LiveStreamingConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigLiveStreamingConfigoptional
RtmpURL stringoptional

RTMP URL to stream to

formaturi
MaxSeconds float64optional

Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours.

maximum86400
minimum60
RealtimekitBucketConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigRealtimekitBucketConfigoptional
Enabled bool

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.

StorageConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigoptional
Type MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType

Type of storage media.

One of the following:
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeAws MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "aws"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeAzure MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "azure"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeDigitalocean MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "digitalocean"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeGcs MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "gcs"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeSftp MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "sftp"
AccessKey stringoptional

Access key of the storage medium. Access key is not required for the gcs storage media type.

Note that this field is not readable by clients, only writeable.

AuthMethod MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodoptional

Authentication method used for "sftp" type storage medium

One of the following:
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodKey MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "KEY"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodPassword MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "PASSWORD"
Bucket stringoptional

Name of the storage medium's bucket.

Host stringoptional

SSH destination server host for SFTP type storage medium

Password stringoptional

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.

Path stringoptional

Path relative to the bucket root at which the recording will be placed.

Port float64optional

SSH destination server port for SFTP type storage medium

PrivateKey stringoptional

Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY"

Region stringoptional

Region of the storage medium.

Secret stringoptional

Secret key of the storage medium. Similar to access_key, it is only writeable by clients, not readable.

Username stringoptional

SSH destination server username for SFTP type storage medium

VideoConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigoptional
Codec MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodecoptional

Codec using which the recording will be encoded.

One of the following:
const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodecH264 MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "H264"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodecVp8 MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "VP8"
ExportFile booloptional

Controls whether to export video file seperately

Height int64optional

Height of the recording video in pixels

maximum1920
minimum1
Watermark MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkoptional

Watermark to be added to the recording

Position MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionoptional

Position of the watermark

One of the following:
const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left top"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightTop MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right top"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left bottom"
const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right bottom"
Size MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkSizeoptional

Size of the watermark

Height int64optional

Height of the watermark in px

minimum1
Width int64optional

Width of the watermark in px

minimum1
URL stringoptional

URL of the watermark image

formaturi
Width int64optional

Width of the recording video in pixels

maximum1920
minimum1
SessionKeepAliveTimeInSecs float64optional

Time in seconds, for which a session remains active, after the last participant has left the meeting.

maximum600
minimum60
Status MeetingUpdateMeetingByIDResponseDataStatusoptional

Whether the meeting is ACTIVE or INACTIVE. Users will not be able to join an INACTIVE meeting.

One of the following:
const MeetingUpdateMeetingByIDResponseDataStatusActive MeetingUpdateMeetingByIDResponseDataStatus = "ACTIVE"
const MeetingUpdateMeetingByIDResponseDataStatusInactive MeetingUpdateMeetingByIDResponseDataStatus = "INACTIVE"
SummarizeOnEnd booloptional

Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API.

Title stringoptional

Title of the meeting.

Update a meeting

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/realtime_kit"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.RealtimeKit.Meetings.UpdateMeetingByID(
    context.TODO(),
    "app_id",
    "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    realtime_kit.MeetingUpdateMeetingByIDParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Success)
}
{
  "success": true,
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "ai_config": {
      "summarization": {
        "summary_type": "general",
        "text_format": "plain_text",
        "word_limit": 150
      },
      "transcription": {
        "keywords": [
          "string"
        ],
        "language": "en-US",
        "profanity_filter": true
      }
    },
    "live_stream_on_start": true,
    "persist_chat": true,
    "record_on_start": true,
    "recording_config": {
      "audio_config": {
        "channel": "mono",
        "codec": "MP3",
        "export_file": true
      },
      "file_name_prefix": "file_name_prefix",
      "live_streaming_config": {
        "rtmp_url": "rtmp://a.rtmp.youtube.com/live2"
      },
      "max_seconds": 60,
      "realtimekit_bucket_config": {
        "enabled": true
      },
      "storage_config": {
        "type": "aws",
        "auth_method": "KEY",
        "bucket": "bucket",
        "host": "host",
        "password": "password",
        "path": "path",
        "port": 0,
        "private_key": "private_key",
        "region": "us-east-1",
        "secret": "secret",
        "username": "username"
      },
      "video_config": {
        "codec": "H264",
        "export_file": true,
        "height": 720,
        "watermark": {
          "position": "left top",
          "size": {
            "height": 1,
            "width": 1
          },
          "url": "https://example.com"
        },
        "width": 1280
      }
    },
    "session_keep_alive_time_in_secs": 60,
    "status": "ACTIVE",
    "summarize_on_end": true,
    "title": "title"
  }
}
Returns Examples
{
  "success": true,
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "ai_config": {
      "summarization": {
        "summary_type": "general",
        "text_format": "plain_text",
        "word_limit": 150
      },
      "transcription": {
        "keywords": [
          "string"
        ],
        "language": "en-US",
        "profanity_filter": true
      }
    },
    "live_stream_on_start": true,
    "persist_chat": true,
    "record_on_start": true,
    "recording_config": {
      "audio_config": {
        "channel": "mono",
        "codec": "MP3",
        "export_file": true
      },
      "file_name_prefix": "file_name_prefix",
      "live_streaming_config": {
        "rtmp_url": "rtmp://a.rtmp.youtube.com/live2"
      },
      "max_seconds": 60,
      "realtimekit_bucket_config": {
        "enabled": true
      },
      "storage_config": {
        "type": "aws",
        "auth_method": "KEY",
        "bucket": "bucket",
        "host": "host",
        "password": "password",
        "path": "path",
        "port": 0,
        "private_key": "private_key",
        "region": "us-east-1",
        "secret": "secret",
        "username": "username"
      },
      "video_config": {
        "codec": "H264",
        "export_file": true,
        "height": 720,
        "watermark": {
          "position": "left top",
          "size": {
            "height": 1,
            "width": 1
          },
          "url": "https://example.com"
        },
        "width": 1280
      }
    },
    "session_keep_alive_time_in_secs": 60,
    "status": "ACTIVE",
    "summarize_on_end": true,
    "title": "title"
  }
}