# Meetings ## Fetch all meetings for an App `client.RealtimeKit.Meetings.Get(ctx, appID, params) (*MeetingGetResponse, error)` **get** `/accounts/{account_id}/realtime/kit/{app_id}/meetings` Returns all meetings for the given App ID. ### Parameters - `appID string` The app identifier tag. - `params MeetingGetParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `EndTime param.Field[Time]` Query param: The end time range for which you want to retrieve the meetings. The time must be specified in ISO format. - `PageNo param.Field[float64]` Query param: The page number from which you want your page search results to be displayed. - `PerPage param.Field[float64]` Query param: Number of results per page - `Search param.Field[string]` Query param: The search query string. You can search using the meeting ID or title. - `StartTime param.Field[Time]` Query param: The start time range for which you want to retrieve the meetings. The time must be specified in ISO format. ### Returns - `type MeetingGetResponse struct{…}` - `Data []MeetingGetResponseData` - `ID string` ID of the meeting. - `CreatedAt Time` Timestamp the object was created at. The time is returned in ISO format. - `UpdatedAt Time` Timestamp the object was updated at. The time is returned in ISO format. - `LiveStreamOnStart bool` Specifies if the meeting should start getting livestreamed on start. - `PersistChat bool` Specifies if Chat within a meeting should persist for a week. - `RecordOnStart bool` Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `SessionKeepAliveTimeInSecs float64` Time in seconds, for which a session remains active, after the last participant has left the meeting. - `Status MeetingGetResponseDataStatus` Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. - `const MeetingGetResponseDataStatusActive MeetingGetResponseDataStatus = "ACTIVE"` - `const MeetingGetResponseDataStatusInactive MeetingGetResponseDataStatus = "INACTIVE"` - `SummarizeOnEnd bool` Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API. - `Title string` Title of the meeting. - `Paging MeetingGetResponsePaging` - `EndOffset float64` - `StartOffset float64` - `TotalCount float64` - `Success bool` ### Example ```go 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"), ) meeting, err := client.RealtimeKit.Meetings.Get( context.TODO(), "app_id", realtime_kit.MeetingGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", meeting.Data) } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "updated_at": "2019-12-27T18:11:19.117Z", "live_stream_on_start": true, "persist_chat": true, "record_on_start": true, "session_keep_alive_time_in_secs": 60, "status": "ACTIVE", "summarize_on_end": true, "title": "title" } ], "paging": { "end_offset": 30, "start_offset": 1, "total_count": 30 }, "success": true } ``` ## Create a meeting `client.RealtimeKit.Meetings.New(ctx, appID, params) (*MeetingNewResponse, error)` **post** `/accounts/{account_id}/realtime/kit/{app_id}/meetings` Create a meeting for the given App ID. ### Parameters - `appID string` The app identifier tag. - `params MeetingNewParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `AIConfig param.Field[MeetingNewParamsAIConfig]` Body param: The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingNewParamsAIConfigSummarization` Summary Config - `SummaryType MeetingNewParamsAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `const MeetingNewParamsAIConfigSummarizationSummaryTypeGeneral MeetingNewParamsAIConfigSummarizationSummaryType = "general"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeTeamMeeting MeetingNewParamsAIConfigSummarizationSummaryType = "team_meeting"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeSalesCall MeetingNewParamsAIConfigSummarizationSummaryType = "sales_call"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeClientCheckIn MeetingNewParamsAIConfigSummarizationSummaryType = "client_check_in"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeInterview MeetingNewParamsAIConfigSummarizationSummaryType = "interview"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeDailyStandup MeetingNewParamsAIConfigSummarizationSummaryType = "daily_standup"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingNewParamsAIConfigSummarizationSummaryType = "one_on_one_meeting"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeLecture MeetingNewParamsAIConfigSummarizationSummaryType = "lecture"` - `const MeetingNewParamsAIConfigSummarizationSummaryTypeCodeReview MeetingNewParamsAIConfigSummarizationSummaryType = "code_review"` - `TextFormat MeetingNewParamsAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingNewParamsAIConfigSummarizationTextFormatPlainText MeetingNewParamsAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingNewParamsAIConfigSummarizationTextFormatMarkdown MeetingNewParamsAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingNewParamsAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingNewParamsAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `const MeetingNewParamsAIConfigTranscriptionLanguageEnUs MeetingNewParamsAIConfigTranscriptionLanguage = "en-US"` - `const MeetingNewParamsAIConfigTranscriptionLanguageEnIn MeetingNewParamsAIConfigTranscriptionLanguage = "en-IN"` - `const MeetingNewParamsAIConfigTranscriptionLanguageDe MeetingNewParamsAIConfigTranscriptionLanguage = "de"` - `const MeetingNewParamsAIConfigTranscriptionLanguageHi MeetingNewParamsAIConfigTranscriptionLanguage = "hi"` - `const MeetingNewParamsAIConfigTranscriptionLanguageSv MeetingNewParamsAIConfigTranscriptionLanguage = "sv"` - `const MeetingNewParamsAIConfigTranscriptionLanguageRu MeetingNewParamsAIConfigTranscriptionLanguage = "ru"` - `const MeetingNewParamsAIConfigTranscriptionLanguagePl MeetingNewParamsAIConfigTranscriptionLanguage = "pl"` - `const MeetingNewParamsAIConfigTranscriptionLanguageEl MeetingNewParamsAIConfigTranscriptionLanguage = "el"` - `const MeetingNewParamsAIConfigTranscriptionLanguageFr MeetingNewParamsAIConfigTranscriptionLanguage = "fr"` - `const MeetingNewParamsAIConfigTranscriptionLanguageNl MeetingNewParamsAIConfigTranscriptionLanguage = "nl"` - `ProfanityFilter bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart param.Field[bool]` Body param: Specifies if the meeting should start getting livestreamed on start. - `PersistChat param.Field[bool]` Body param: If a meeting is set to persist_chat, meeting chat would remain for a week within the meeting space. - `RecordOnStart param.Field[bool]` Body param: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `RecordingConfig param.Field[MeetingNewParamsRecordingConfig]` Body param: 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 MeetingNewParamsRecordingConfigAudioConfig` Object containing configuration regarding the audio that is being recorded. - `Channel MeetingNewParamsRecordingConfigAudioConfigChannel` Audio signal pathway within an audio file that carries a specific sound source. - `const MeetingNewParamsRecordingConfigAudioConfigChannelMono MeetingNewParamsRecordingConfigAudioConfigChannel = "mono"` - `const MeetingNewParamsRecordingConfigAudioConfigChannelStereo MeetingNewParamsRecordingConfigAudioConfigChannel = "stereo"` - `Codec MeetingNewParamsRecordingConfigAudioConfigCodec` 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. - `const MeetingNewParamsRecordingConfigAudioConfigCodecMP3 MeetingNewParamsRecordingConfigAudioConfigCodec = "MP3"` - `const MeetingNewParamsRecordingConfigAudioConfigCodecAac MeetingNewParamsRecordingConfigAudioConfigCodec = "AAC"` - `ExportFile bool` Controls whether to export audio file seperately - `FileNamePrefix string` Adds a prefix to the beginning of the file name of the recording. - `LiveStreamingConfig MeetingNewParamsRecordingConfigLiveStreamingConfig` - `RtmpURL string` RTMP URL to stream to - `MaxSeconds float64` Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours. - `RealtimekitBucketConfig MeetingNewParamsRecordingConfigRealtimekitBucketConfig` - `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 MeetingNewParamsRecordingConfigStorageConfig` - `Type MeetingNewParamsRecordingConfigStorageConfigType` Type of storage media. - `const MeetingNewParamsRecordingConfigStorageConfigTypeAws MeetingNewParamsRecordingConfigStorageConfigType = "aws"` - `const MeetingNewParamsRecordingConfigStorageConfigTypeAzure MeetingNewParamsRecordingConfigStorageConfigType = "azure"` - `const MeetingNewParamsRecordingConfigStorageConfigTypeDigitalocean MeetingNewParamsRecordingConfigStorageConfigType = "digitalocean"` - `const MeetingNewParamsRecordingConfigStorageConfigTypeGcs MeetingNewParamsRecordingConfigStorageConfigType = "gcs"` - `const MeetingNewParamsRecordingConfigStorageConfigTypeSftp MeetingNewParamsRecordingConfigStorageConfigType = "sftp"` - `AccessKey string` 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 MeetingNewParamsRecordingConfigStorageConfigAuthMethod` Authentication method used for "sftp" type storage medium - `const MeetingNewParamsRecordingConfigStorageConfigAuthMethodKey MeetingNewParamsRecordingConfigStorageConfigAuthMethod = "KEY"` - `const MeetingNewParamsRecordingConfigStorageConfigAuthMethodPassword MeetingNewParamsRecordingConfigStorageConfigAuthMethod = "PASSWORD"` - `Bucket string` Name of the storage medium's bucket. - `Host string` SSH destination server host for SFTP type storage medium - `Password string` 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 string` Path relative to the bucket root at which the recording will be placed. - `Port float64` SSH destination server port for SFTP type storage medium - `PrivateKey string` Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY" - `Region string` Region of the storage medium. - `Secret string` Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable. - `Username string` SSH destination server username for SFTP type storage medium - `VideoConfig MeetingNewParamsRecordingConfigVideoConfig` - `Codec MeetingNewParamsRecordingConfigVideoConfigCodec` Codec using which the recording will be encoded. - `const MeetingNewParamsRecordingConfigVideoConfigCodecH264 MeetingNewParamsRecordingConfigVideoConfigCodec = "H264"` - `const MeetingNewParamsRecordingConfigVideoConfigCodecVp8 MeetingNewParamsRecordingConfigVideoConfigCodec = "VP8"` - `ExportFile bool` Controls whether to export video file seperately - `Height int64` Height of the recording video in pixels - `Watermark MeetingNewParamsRecordingConfigVideoConfigWatermark` Watermark to be added to the recording - `Position MeetingNewParamsRecordingConfigVideoConfigWatermarkPosition` Position of the watermark - `const MeetingNewParamsRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingNewParamsRecordingConfigVideoConfigWatermarkPosition = "left top"` - `const MeetingNewParamsRecordingConfigVideoConfigWatermarkPositionRightTop MeetingNewParamsRecordingConfigVideoConfigWatermarkPosition = "right top"` - `const MeetingNewParamsRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingNewParamsRecordingConfigVideoConfigWatermarkPosition = "left bottom"` - `const MeetingNewParamsRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingNewParamsRecordingConfigVideoConfigWatermarkPosition = "right bottom"` - `Size MeetingNewParamsRecordingConfigVideoConfigWatermarkSize` Size of the watermark - `Height int64` Height of the watermark in px - `Width int64` Width of the watermark in px - `URL string` URL of the watermark image - `Width int64` Width of the recording video in pixels - `SessionKeepAliveTimeInSecs param.Field[float64]` Body param: Time in seconds, for which a session remains active, after the last participant has left the meeting. - `SummarizeOnEnd param.Field[bool]` 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]` Body param: Title of the meeting ### Returns - `type MeetingNewResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingNewResponseData` Data returned by the operation - `ID string` ID of the meeting. - `CreatedAt Time` Timestamp the object was created at. The time is returned in ISO format. - `UpdatedAt Time` Timestamp the object was updated at. The time is returned in ISO format. - `AIConfig MeetingNewResponseDataAIConfig` The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingNewResponseDataAIConfigSummarization` Summary Config - `SummaryType MeetingNewResponseDataAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeGeneral MeetingNewResponseDataAIConfigSummarizationSummaryType = "general"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeTeamMeeting MeetingNewResponseDataAIConfigSummarizationSummaryType = "team_meeting"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeSalesCall MeetingNewResponseDataAIConfigSummarizationSummaryType = "sales_call"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeClientCheckIn MeetingNewResponseDataAIConfigSummarizationSummaryType = "client_check_in"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeInterview MeetingNewResponseDataAIConfigSummarizationSummaryType = "interview"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeDailyStandup MeetingNewResponseDataAIConfigSummarizationSummaryType = "daily_standup"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingNewResponseDataAIConfigSummarizationSummaryType = "one_on_one_meeting"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeLecture MeetingNewResponseDataAIConfigSummarizationSummaryType = "lecture"` - `const MeetingNewResponseDataAIConfigSummarizationSummaryTypeCodeReview MeetingNewResponseDataAIConfigSummarizationSummaryType = "code_review"` - `TextFormat MeetingNewResponseDataAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingNewResponseDataAIConfigSummarizationTextFormatPlainText MeetingNewResponseDataAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingNewResponseDataAIConfigSummarizationTextFormatMarkdown MeetingNewResponseDataAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingNewResponseDataAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingNewResponseDataAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `const MeetingNewResponseDataAIConfigTranscriptionLanguageEnUs MeetingNewResponseDataAIConfigTranscriptionLanguage = "en-US"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageEnIn MeetingNewResponseDataAIConfigTranscriptionLanguage = "en-IN"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageDe MeetingNewResponseDataAIConfigTranscriptionLanguage = "de"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageHi MeetingNewResponseDataAIConfigTranscriptionLanguage = "hi"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageSv MeetingNewResponseDataAIConfigTranscriptionLanguage = "sv"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageRu MeetingNewResponseDataAIConfigTranscriptionLanguage = "ru"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguagePl MeetingNewResponseDataAIConfigTranscriptionLanguage = "pl"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageEl MeetingNewResponseDataAIConfigTranscriptionLanguage = "el"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageFr MeetingNewResponseDataAIConfigTranscriptionLanguage = "fr"` - `const MeetingNewResponseDataAIConfigTranscriptionLanguageNl MeetingNewResponseDataAIConfigTranscriptionLanguage = "nl"` - `ProfanityFilter bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart bool` Specifies if the meeting should start getting livestreamed on start. - `PersistChat bool` Specifies if Chat within a meeting should persist for a week. - `RecordOnStart bool` Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `RecordingConfig MeetingNewResponseDataRecordingConfig` 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 MeetingNewResponseDataRecordingConfigAudioConfig` Object containing configuration regarding the audio that is being recorded. - `Channel MeetingNewResponseDataRecordingConfigAudioConfigChannel` Audio signal pathway within an audio file that carries a specific sound source. - `const MeetingNewResponseDataRecordingConfigAudioConfigChannelMono MeetingNewResponseDataRecordingConfigAudioConfigChannel = "mono"` - `const MeetingNewResponseDataRecordingConfigAudioConfigChannelStereo MeetingNewResponseDataRecordingConfigAudioConfigChannel = "stereo"` - `Codec MeetingNewResponseDataRecordingConfigAudioConfigCodec` 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. - `const MeetingNewResponseDataRecordingConfigAudioConfigCodecMP3 MeetingNewResponseDataRecordingConfigAudioConfigCodec = "MP3"` - `const MeetingNewResponseDataRecordingConfigAudioConfigCodecAac MeetingNewResponseDataRecordingConfigAudioConfigCodec = "AAC"` - `ExportFile bool` Controls whether to export audio file seperately - `FileNamePrefix string` Adds a prefix to the beginning of the file name of the recording. - `LiveStreamingConfig MeetingNewResponseDataRecordingConfigLiveStreamingConfig` - `RtmpURL string` RTMP URL to stream to - `MaxSeconds float64` Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours. - `RealtimekitBucketConfig MeetingNewResponseDataRecordingConfigRealtimekitBucketConfig` - `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 MeetingNewResponseDataRecordingConfigStorageConfig` - `Type MeetingNewResponseDataRecordingConfigStorageConfigType` Type of storage media. - `const MeetingNewResponseDataRecordingConfigStorageConfigTypeAws MeetingNewResponseDataRecordingConfigStorageConfigType = "aws"` - `const MeetingNewResponseDataRecordingConfigStorageConfigTypeAzure MeetingNewResponseDataRecordingConfigStorageConfigType = "azure"` - `const MeetingNewResponseDataRecordingConfigStorageConfigTypeDigitalocean MeetingNewResponseDataRecordingConfigStorageConfigType = "digitalocean"` - `const MeetingNewResponseDataRecordingConfigStorageConfigTypeGcs MeetingNewResponseDataRecordingConfigStorageConfigType = "gcs"` - `const MeetingNewResponseDataRecordingConfigStorageConfigTypeSftp MeetingNewResponseDataRecordingConfigStorageConfigType = "sftp"` - `AccessKey string` 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 MeetingNewResponseDataRecordingConfigStorageConfigAuthMethod` Authentication method used for "sftp" type storage medium - `const MeetingNewResponseDataRecordingConfigStorageConfigAuthMethodKey MeetingNewResponseDataRecordingConfigStorageConfigAuthMethod = "KEY"` - `const MeetingNewResponseDataRecordingConfigStorageConfigAuthMethodPassword MeetingNewResponseDataRecordingConfigStorageConfigAuthMethod = "PASSWORD"` - `Bucket string` Name of the storage medium's bucket. - `Host string` SSH destination server host for SFTP type storage medium - `Password string` 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 string` Path relative to the bucket root at which the recording will be placed. - `Port float64` SSH destination server port for SFTP type storage medium - `PrivateKey string` Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY" - `Region string` Region of the storage medium. - `Secret string` Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable. - `Username string` SSH destination server username for SFTP type storage medium - `VideoConfig MeetingNewResponseDataRecordingConfigVideoConfig` - `Codec MeetingNewResponseDataRecordingConfigVideoConfigCodec` Codec using which the recording will be encoded. - `const MeetingNewResponseDataRecordingConfigVideoConfigCodecH264 MeetingNewResponseDataRecordingConfigVideoConfigCodec = "H264"` - `const MeetingNewResponseDataRecordingConfigVideoConfigCodecVp8 MeetingNewResponseDataRecordingConfigVideoConfigCodec = "VP8"` - `ExportFile bool` Controls whether to export video file seperately - `Height int64` Height of the recording video in pixels - `Watermark MeetingNewResponseDataRecordingConfigVideoConfigWatermark` Watermark to be added to the recording - `Position MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPosition` Position of the watermark - `const MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPosition = "left top"` - `const MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPositionRightTop MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPosition = "right top"` - `const MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPosition = "left bottom"` - `const MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingNewResponseDataRecordingConfigVideoConfigWatermarkPosition = "right bottom"` - `Size MeetingNewResponseDataRecordingConfigVideoConfigWatermarkSize` Size of the watermark - `Height int64` Height of the watermark in px - `Width int64` Width of the watermark in px - `URL string` URL of the watermark image - `Width int64` Width of the recording video in pixels - `SessionKeepAliveTimeInSecs float64` Time in seconds, for which a session remains active, after the last participant has left the meeting. - `Status MeetingNewResponseDataStatus` Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. - `const MeetingNewResponseDataStatusActive MeetingNewResponseDataStatus = "ACTIVE"` - `const MeetingNewResponseDataStatusInactive MeetingNewResponseDataStatus = "INACTIVE"` - `SummarizeOnEnd bool` Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API. - `Title string` Title of the meeting. ### Example ```go 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"), ) meeting, err := client.RealtimeKit.Meetings.New( context.TODO(), "app_id", realtime_kit.MeetingNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", meeting.Success) } ``` #### Response ```json { "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" } } ``` ## Fetch a meeting for an App `client.RealtimeKit.Meetings.GetMeetingByID(ctx, appID, meetingID, params) (*MeetingGetMeetingByIDResponse, error)` **get** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}` Returns a meeting details in an App for the given meeting ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `params MeetingGetMeetingByIDParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `Name param.Field[string]` Query param ### Returns - `type MeetingGetMeetingByIDResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingGetMeetingByIDResponseData` Data returned by the operation - `ID string` ID of the meeting. - `CreatedAt Time` Timestamp the object was created at. The time is returned in ISO format. - `UpdatedAt Time` Timestamp the object was updated at. The time is returned in ISO format. - `AIConfig MeetingGetMeetingByIDResponseDataAIConfig` The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingGetMeetingByIDResponseDataAIConfigSummarization` Summary Config - `SummaryType MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeGeneral MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "general"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeTeamMeeting MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "team_meeting"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeSalesCall MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "sales_call"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeClientCheckIn MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "client_check_in"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeInterview MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "interview"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeDailyStandup MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "daily_standup"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "one_on_one_meeting"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeLecture MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "lecture"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryTypeCodeReview MeetingGetMeetingByIDResponseDataAIConfigSummarizationSummaryType = "code_review"` - `TextFormat MeetingGetMeetingByIDResponseDataAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationTextFormatPlainText MeetingGetMeetingByIDResponseDataAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingGetMeetingByIDResponseDataAIConfigSummarizationTextFormatMarkdown MeetingGetMeetingByIDResponseDataAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingGetMeetingByIDResponseDataAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageEnUs MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "en-US"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageEnIn MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "en-IN"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageDe MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "de"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageHi MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "hi"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageSv MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "sv"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageRu MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "ru"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguagePl MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "pl"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageEl MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "el"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageFr MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "fr"` - `const MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguageNl MeetingGetMeetingByIDResponseDataAIConfigTranscriptionLanguage = "nl"` - `ProfanityFilter bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart bool` Specifies if the meeting should start getting livestreamed on start. - `PersistChat bool` Specifies if Chat within a meeting should persist for a week. - `RecordOnStart bool` Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `RecordingConfig MeetingGetMeetingByIDResponseDataRecordingConfig` 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 MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfig` Object containing configuration regarding the audio that is being recorded. - `Channel MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigChannel` Audio signal pathway within an audio file that carries a specific sound source. - `const MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigChannelMono MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "mono"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigChannelStereo MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "stereo"` - `Codec MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigCodec` 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. - `const MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigCodecMP3 MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "MP3"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigCodecAac MeetingGetMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "AAC"` - `ExportFile bool` Controls whether to export audio file seperately - `FileNamePrefix string` Adds a prefix to the beginning of the file name of the recording. - `LiveStreamingConfig MeetingGetMeetingByIDResponseDataRecordingConfigLiveStreamingConfig` - `RtmpURL string` RTMP URL to stream to - `MaxSeconds float64` Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours. - `RealtimekitBucketConfig MeetingGetMeetingByIDResponseDataRecordingConfigRealtimekitBucketConfig` - `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 MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfig` - `Type MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigType` Type of storage media. - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigTypeAws MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigType = "aws"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigTypeAzure MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigType = "azure"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigTypeDigitalocean MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigType = "digitalocean"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigTypeGcs MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigType = "gcs"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigTypeSftp MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigType = "sftp"` - `AccessKey string` 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 MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod` Authentication method used for "sftp" type storage medium - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodKey MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "KEY"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodPassword MeetingGetMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "PASSWORD"` - `Bucket string` Name of the storage medium's bucket. - `Host string` SSH destination server host for SFTP type storage medium - `Password string` 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 string` Path relative to the bucket root at which the recording will be placed. - `Port float64` SSH destination server port for SFTP type storage medium - `PrivateKey string` Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY" - `Region string` Region of the storage medium. - `Secret string` Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable. - `Username string` SSH destination server username for SFTP type storage medium - `VideoConfig MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfig` - `Codec MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigCodec` Codec using which the recording will be encoded. - `const MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigCodecH264 MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "H264"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigCodecVp8 MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "VP8"` - `ExportFile bool` Controls whether to export video file seperately - `Height int64` Height of the recording video in pixels - `Watermark MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermark` Watermark to be added to the recording - `Position MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition` Position of the watermark - `const MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left top"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightTop MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right top"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left bottom"` - `const MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right bottom"` - `Size MeetingGetMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkSize` Size of the watermark - `Height int64` Height of the watermark in px - `Width int64` Width of the watermark in px - `URL string` URL of the watermark image - `Width int64` Width of the recording video in pixels - `SessionKeepAliveTimeInSecs float64` Time in seconds, for which a session remains active, after the last participant has left the meeting. - `Status MeetingGetMeetingByIDResponseDataStatus` Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. - `const MeetingGetMeetingByIDResponseDataStatusActive MeetingGetMeetingByIDResponseDataStatus = "ACTIVE"` - `const MeetingGetMeetingByIDResponseDataStatusInactive MeetingGetMeetingByIDResponseDataStatus = "INACTIVE"` - `SummarizeOnEnd bool` Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API. - `Title string` Title of the meeting. ### Example ```go 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.GetMeetingByID( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", realtime_kit.MeetingGetMeetingByIDParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Success) } ``` #### Response ```json { "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" } } ``` ## 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. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `params MeetingUpdateMeetingByIDParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `AIConfig param.Field[MeetingUpdateMeetingByIDParamsAIConfig]` Body param: The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingUpdateMeetingByIDParamsAIConfigSummarization` Summary Config - `SummaryType MeetingUpdateMeetingByIDParamsAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `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 MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormatPlainText MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormatMarkdown MeetingUpdateMeetingByIDParamsAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingUpdateMeetingByIDParamsAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingUpdateMeetingByIDParamsAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `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 bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart param.Field[bool]` Body param: Specifies if the meeting should start getting livestreamed on start. - `PersistChat param.Field[bool]` 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]` Body param: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `SessionKeepAliveTimeInSecs param.Field[float64]` Body param: Time in seconds, for which a session remains active, after the last participant has left the meeting. - `Status param.Field[MeetingUpdateMeetingByIDParamsStatus]` 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]` 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]` Body param: Title of the meeting ### Returns - `type MeetingUpdateMeetingByIDResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingUpdateMeetingByIDResponseData` Data returned by the operation - `ID string` ID of the meeting. - `CreatedAt Time` Timestamp the object was created at. The time is returned in ISO format. - `UpdatedAt Time` Timestamp the object was updated at. The time is returned in ISO format. - `AIConfig MeetingUpdateMeetingByIDResponseDataAIConfig` The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingUpdateMeetingByIDResponseDataAIConfigSummarization` Summary Config - `SummaryType MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `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 MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormatPlainText MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormatMarkdown MeetingUpdateMeetingByIDResponseDataAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingUpdateMeetingByIDResponseDataAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingUpdateMeetingByIDResponseDataAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `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 bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart bool` Specifies if the meeting should start getting livestreamed on start. - `PersistChat bool` Specifies if Chat within a meeting should persist for a week. - `RecordOnStart bool` Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `RecordingConfig MeetingUpdateMeetingByIDResponseDataRecordingConfig` 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 MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfig` Object containing configuration regarding the audio that is being recorded. - `Channel MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannel` Audio signal pathway within an audio file that carries a specific sound source. - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannelMono MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "mono"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannelStereo MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "stereo"` - `Codec MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodec` 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. - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodecMP3 MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "MP3"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodecAac MeetingUpdateMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "AAC"` - `ExportFile bool` Controls whether to export audio file seperately - `FileNamePrefix string` Adds a prefix to the beginning of the file name of the recording. - `LiveStreamingConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigLiveStreamingConfig` - `RtmpURL string` RTMP URL to stream to - `MaxSeconds float64` Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours. - `RealtimekitBucketConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigRealtimekitBucketConfig` - `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 MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfig` - `Type MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType` Type of storage media. - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeAws MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "aws"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeAzure MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "azure"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeDigitalocean MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "digitalocean"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeGcs MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "gcs"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigTypeSftp MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigType = "sftp"` - `AccessKey string` 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 MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod` Authentication method used for "sftp" type storage medium - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodKey MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "KEY"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodPassword MeetingUpdateMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "PASSWORD"` - `Bucket string` Name of the storage medium's bucket. - `Host string` SSH destination server host for SFTP type storage medium - `Password string` 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 string` Path relative to the bucket root at which the recording will be placed. - `Port float64` SSH destination server port for SFTP type storage medium - `PrivateKey string` Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY" - `Region string` Region of the storage medium. - `Secret string` Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable. - `Username string` SSH destination server username for SFTP type storage medium - `VideoConfig MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfig` - `Codec MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodec` Codec using which the recording will be encoded. - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodecH264 MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "H264"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodecVp8 MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "VP8"` - `ExportFile bool` Controls whether to export video file seperately - `Height int64` Height of the recording video in pixels - `Watermark MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermark` Watermark to be added to the recording - `Position MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition` Position of the watermark - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left top"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightTop MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right top"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left bottom"` - `const MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right bottom"` - `Size MeetingUpdateMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkSize` Size of the watermark - `Height int64` Height of the watermark in px - `Width int64` Width of the watermark in px - `URL string` URL of the watermark image - `Width int64` Width of the recording video in pixels - `SessionKeepAliveTimeInSecs float64` Time in seconds, for which a session remains active, after the last participant has left the meeting. - `Status MeetingUpdateMeetingByIDResponseDataStatus` Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. - `const MeetingUpdateMeetingByIDResponseDataStatusActive MeetingUpdateMeetingByIDResponseDataStatus = "ACTIVE"` - `const MeetingUpdateMeetingByIDResponseDataStatusInactive MeetingUpdateMeetingByIDResponseDataStatus = "INACTIVE"` - `SummarizeOnEnd bool` Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API. - `Title string` Title of the meeting. ### Example ```go 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) } ``` #### Response ```json { "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" } } ``` ## Replace a meeting `client.RealtimeKit.Meetings.ReplaceMeetingByID(ctx, appID, meetingID, params) (*MeetingReplaceMeetingByIDResponse, error)` **put** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}` Replaces all the details for the given meeting ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `params MeetingReplaceMeetingByIDParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `AIConfig param.Field[MeetingReplaceMeetingByIDParamsAIConfig]` Body param: The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingReplaceMeetingByIDParamsAIConfigSummarization` Summary Config - `SummaryType MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeGeneral MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "general"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeTeamMeeting MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "team_meeting"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeSalesCall MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "sales_call"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeClientCheckIn MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "client_check_in"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeInterview MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "interview"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeDailyStandup MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "daily_standup"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "one_on_one_meeting"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeLecture MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "lecture"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryTypeCodeReview MeetingReplaceMeetingByIDParamsAIConfigSummarizationSummaryType = "code_review"` - `TextFormat MeetingReplaceMeetingByIDParamsAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationTextFormatPlainText MeetingReplaceMeetingByIDParamsAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingReplaceMeetingByIDParamsAIConfigSummarizationTextFormatMarkdown MeetingReplaceMeetingByIDParamsAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingReplaceMeetingByIDParamsAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageEnUs MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "en-US"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageEnIn MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "en-IN"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageDe MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "de"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageHi MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "hi"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageSv MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "sv"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageRu MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "ru"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguagePl MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "pl"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageEl MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "el"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageFr MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "fr"` - `const MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguageNl MeetingReplaceMeetingByIDParamsAIConfigTranscriptionLanguage = "nl"` - `ProfanityFilter bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart param.Field[bool]` Body param: Specifies if the meeting should start getting livestreamed on start. - `PersistChat param.Field[bool]` Body param: If a meeting is set to persist_chat, meeting chat would remain for a week within the meeting space. - `RecordOnStart param.Field[bool]` Body param: Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `RecordingConfig param.Field[MeetingReplaceMeetingByIDParamsRecordingConfig]` Body param: 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 MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfig` Object containing configuration regarding the audio that is being recorded. - `Channel MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigChannel` Audio signal pathway within an audio file that carries a specific sound source. - `const MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigChannelMono MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigChannel = "mono"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigChannelStereo MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigChannel = "stereo"` - `Codec MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigCodec` 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. - `const MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigCodecMP3 MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigCodec = "MP3"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigCodecAac MeetingReplaceMeetingByIDParamsRecordingConfigAudioConfigCodec = "AAC"` - `ExportFile bool` Controls whether to export audio file seperately - `FileNamePrefix string` Adds a prefix to the beginning of the file name of the recording. - `LiveStreamingConfig MeetingReplaceMeetingByIDParamsRecordingConfigLiveStreamingConfig` - `RtmpURL string` RTMP URL to stream to - `MaxSeconds float64` Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours. - `RealtimekitBucketConfig MeetingReplaceMeetingByIDParamsRecordingConfigRealtimekitBucketConfig` - `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 MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfig` - `Type MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigType` Type of storage media. - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigTypeAws MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigType = "aws"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigTypeAzure MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigType = "azure"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigTypeDigitalocean MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigType = "digitalocean"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigTypeGcs MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigType = "gcs"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigTypeSftp MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigType = "sftp"` - `AccessKey string` 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 MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigAuthMethod` Authentication method used for "sftp" type storage medium - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigAuthMethodKey MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigAuthMethod = "KEY"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigAuthMethodPassword MeetingReplaceMeetingByIDParamsRecordingConfigStorageConfigAuthMethod = "PASSWORD"` - `Bucket string` Name of the storage medium's bucket. - `Host string` SSH destination server host for SFTP type storage medium - `Password string` 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 string` Path relative to the bucket root at which the recording will be placed. - `Port float64` SSH destination server port for SFTP type storage medium - `PrivateKey string` Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY" - `Region string` Region of the storage medium. - `Secret string` Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable. - `Username string` SSH destination server username for SFTP type storage medium - `VideoConfig MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfig` - `Codec MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigCodec` Codec using which the recording will be encoded. - `const MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigCodecH264 MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigCodec = "H264"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigCodecVp8 MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigCodec = "VP8"` - `ExportFile bool` Controls whether to export video file seperately - `Height int64` Height of the recording video in pixels - `Watermark MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermark` Watermark to be added to the recording - `Position MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPosition` Position of the watermark - `const MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPosition = "left top"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPositionRightTop MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPosition = "right top"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPosition = "left bottom"` - `const MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkPosition = "right bottom"` - `Size MeetingReplaceMeetingByIDParamsRecordingConfigVideoConfigWatermarkSize` Size of the watermark - `Height int64` Height of the watermark in px - `Width int64` Width of the watermark in px - `URL string` URL of the watermark image - `Width int64` Width of the recording video in pixels - `SessionKeepAliveTimeInSecs param.Field[float64]` Body param: Time in seconds, for which a session remains active, after the last participant has left the meeting. - `SummarizeOnEnd param.Field[bool]` 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]` Body param: Title of the meeting ### Returns - `type MeetingReplaceMeetingByIDResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingReplaceMeetingByIDResponseData` Data returned by the operation - `ID string` ID of the meeting. - `CreatedAt Time` Timestamp the object was created at. The time is returned in ISO format. - `UpdatedAt Time` Timestamp the object was updated at. The time is returned in ISO format. - `AIConfig MeetingReplaceMeetingByIDResponseDataAIConfig` The AI Config allows you to customize the behavior of meeting transcriptions and summaries - `Summarization MeetingReplaceMeetingByIDResponseDataAIConfigSummarization` Summary Config - `SummaryType MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType` Defines the style of the summary, such as general, team meeting, or sales call. - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeGeneral MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "general"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeTeamMeeting MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "team_meeting"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeSalesCall MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "sales_call"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeClientCheckIn MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "client_check_in"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeInterview MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "interview"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeDailyStandup MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "daily_standup"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeOneOnOneMeeting MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "one_on_one_meeting"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeLecture MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "lecture"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryTypeCodeReview MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationSummaryType = "code_review"` - `TextFormat MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationTextFormat` Determines the text format of the summary, such as plain text or markdown. - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationTextFormatPlainText MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationTextFormat = "plain_text"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationTextFormatMarkdown MeetingReplaceMeetingByIDResponseDataAIConfigSummarizationTextFormat = "markdown"` - `WordLimit int64` Sets the maximum number of words in the meeting summary. - `Transcription MeetingReplaceMeetingByIDResponseDataAIConfigTranscription` Transcription Configurations - `Keywords []string` Adds specific terms to improve accurate detection during transcription. - `Language MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage` Specifies the language code for transcription to ensure accurate results. - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageEnUs MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "en-US"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageEnIn MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "en-IN"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageDe MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "de"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageHi MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "hi"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageSv MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "sv"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageRu MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "ru"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguagePl MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "pl"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageEl MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "el"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageFr MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "fr"` - `const MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguageNl MeetingReplaceMeetingByIDResponseDataAIConfigTranscriptionLanguage = "nl"` - `ProfanityFilter bool` Control the inclusion of offensive language in transcriptions. - `LiveStreamOnStart bool` Specifies if the meeting should start getting livestreamed on start. - `PersistChat bool` Specifies if Chat within a meeting should persist for a week. - `RecordOnStart bool` Specifies if the meeting should start getting recorded as soon as someone joins the meeting. - `RecordingConfig MeetingReplaceMeetingByIDResponseDataRecordingConfig` 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 MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfig` Object containing configuration regarding the audio that is being recorded. - `Channel MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigChannel` Audio signal pathway within an audio file that carries a specific sound source. - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigChannelMono MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "mono"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigChannelStereo MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigChannel = "stereo"` - `Codec MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigCodec` 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. - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigCodecMP3 MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "MP3"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigCodecAac MeetingReplaceMeetingByIDResponseDataRecordingConfigAudioConfigCodec = "AAC"` - `ExportFile bool` Controls whether to export audio file seperately - `FileNamePrefix string` Adds a prefix to the beginning of the file name of the recording. - `LiveStreamingConfig MeetingReplaceMeetingByIDResponseDataRecordingConfigLiveStreamingConfig` - `RtmpURL string` RTMP URL to stream to - `MaxSeconds float64` Specifies the maximum duration for recording in seconds, ranging from a minimum of 60 seconds to a maximum of 24 hours. - `RealtimekitBucketConfig MeetingReplaceMeetingByIDResponseDataRecordingConfigRealtimekitBucketConfig` - `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 MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfig` - `Type MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigType` Type of storage media. - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigTypeAws MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigType = "aws"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigTypeAzure MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigType = "azure"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigTypeDigitalocean MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigType = "digitalocean"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigTypeGcs MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigType = "gcs"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigTypeSftp MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigType = "sftp"` - `AccessKey string` 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 MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod` Authentication method used for "sftp" type storage medium - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodKey MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "KEY"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethodPassword MeetingReplaceMeetingByIDResponseDataRecordingConfigStorageConfigAuthMethod = "PASSWORD"` - `Bucket string` Name of the storage medium's bucket. - `Host string` SSH destination server host for SFTP type storage medium - `Password string` 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 string` Path relative to the bucket root at which the recording will be placed. - `Port float64` SSH destination server port for SFTP type storage medium - `PrivateKey string` Private key used to login to destination SSH server for SFTP type storage medium, when auth_method used is "KEY" - `Region string` Region of the storage medium. - `Secret string` Secret key of the storage medium. Similar to `access_key`, it is only writeable by clients, not readable. - `Username string` SSH destination server username for SFTP type storage medium - `VideoConfig MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfig` - `Codec MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigCodec` Codec using which the recording will be encoded. - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigCodecH264 MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "H264"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigCodecVp8 MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigCodec = "VP8"` - `ExportFile bool` Controls whether to export video file seperately - `Height int64` Height of the recording video in pixels - `Watermark MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermark` Watermark to be added to the recording - `Position MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition` Position of the watermark - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftTop MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left top"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightTop MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right top"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionLeftBottom MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "left bottom"` - `const MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPositionRightBottom MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkPosition = "right bottom"` - `Size MeetingReplaceMeetingByIDResponseDataRecordingConfigVideoConfigWatermarkSize` Size of the watermark - `Height int64` Height of the watermark in px - `Width int64` Width of the watermark in px - `URL string` URL of the watermark image - `Width int64` Width of the recording video in pixels - `SessionKeepAliveTimeInSecs float64` Time in seconds, for which a session remains active, after the last participant has left the meeting. - `Status MeetingReplaceMeetingByIDResponseDataStatus` Whether the meeting is `ACTIVE` or `INACTIVE`. Users will not be able to join an `INACTIVE` meeting. - `const MeetingReplaceMeetingByIDResponseDataStatusActive MeetingReplaceMeetingByIDResponseDataStatus = "ACTIVE"` - `const MeetingReplaceMeetingByIDResponseDataStatusInactive MeetingReplaceMeetingByIDResponseDataStatus = "INACTIVE"` - `SummarizeOnEnd bool` Automatically generate summary of meetings using transcripts. Requires Transcriptions to be enabled, and can be retrieved via Webhooks or summary API. - `Title string` Title of the meeting. ### Example ```go 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.ReplaceMeetingByID( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", realtime_kit.MeetingReplaceMeetingByIDParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Success) } ``` #### Response ```json { "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" } } ``` ## Fetch all participants of a meeting `client.RealtimeKit.Meetings.GetMeetingParticipants(ctx, appID, meetingID, params) (*MeetingGetMeetingParticipantsResponse, error)` **get** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants` Returns all participants detail for the given meeting ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `params MeetingGetMeetingParticipantsParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `PageNo param.Field[float64]` Query param: The page number from which you want your page search results to be displayed. - `PerPage param.Field[float64]` Query param: Number of results per page ### Returns - `type MeetingGetMeetingParticipantsResponse struct{…}` - `Data []MeetingGetMeetingParticipantsResponseData` - `ID string` ID of the participant. - `CreatedAt Time` When this object was created. The time is returned in ISO format. - `CustomParticipantID string` A unique participant ID generated by the client. - `PresetName string` Preset applied to the participant. - `UpdatedAt Time` When this object was updated. The time is returned in ISO format. - `Name string` Name of the participant. - `Picture string` URL to a picture of the participant. - `Paging MeetingGetMeetingParticipantsResponsePaging` - `EndOffset float64` - `StartOffset float64` - `TotalCount float64` - `Success bool` ### Example ```go 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.GetMeetingParticipants( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", realtime_kit.MeetingGetMeetingParticipantsParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Data) } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "custom_participant_id": "custom_participant_id", "preset_name": "preset_name", "updated_at": "2019-12-27T18:11:19.117Z", "name": "name", "picture": "https://example.com" } ], "paging": { "end_offset": 30, "start_offset": 1, "total_count": 30 }, "success": true } ``` ## Add a participant `client.RealtimeKit.Meetings.AddParticipant(ctx, appID, meetingID, params) (*MeetingAddParticipantResponse, error)` **post** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants` Adds a participant to the given meeting ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `params MeetingAddParticipantParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `CustomParticipantID param.Field[string]` Body param: A unique participant ID. You must specify a unique ID for the participant, for example, UUID, email address, and so on. - `PresetName param.Field[string]` Body param: Name of the preset to apply to this participant. - `Name param.Field[string]` Body param: (Optional) Name of the participant. - `Picture param.Field[string]` Body param: (Optional) A URL to a picture to be used for the participant. ### Returns - `type MeetingAddParticipantResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingAddParticipantResponseData` Represents a participant. - `ID string` ID of the participant. - `Token string` The participant's auth token that can be used for joining a meeting from the client side. - `CreatedAt Time` When this object was created. The time is returned in ISO format. - `CustomParticipantID string` A unique participant ID generated by the client. - `PresetName string` Preset applied to the participant. - `UpdatedAt Time` When this object was updated. The time is returned in ISO format. - `Name string` Name of the participant. - `Picture string` URL to a picture of the participant. ### Example ```go 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.AddParticipant( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", realtime_kit.MeetingAddParticipantParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), CustomParticipantID: cloudflare.F("custom_participant_id"), PresetName: cloudflare.F("preset_name"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Success) } ``` #### Response ```json { "success": true, "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "token": "token", "created_at": "2019-12-27T18:11:19.117Z", "custom_participant_id": "custom_participant_id", "preset_name": "preset_name", "updated_at": "2019-12-27T18:11:19.117Z", "name": "name", "picture": "https://example.com" } } ``` ## Fetch a participant's detail `client.RealtimeKit.Meetings.GetMeetingParticipant(ctx, appID, meetingID, participantID, query) (*MeetingGetMeetingParticipantResponse, error)` **get** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}` Returns a participant details for the given meeting and participant ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `participantID string` - `query MeetingGetMeetingParticipantParams` - `AccountID param.Field[string]` The account identifier tag. ### Returns - `type MeetingGetMeetingParticipantResponse struct{…}` - `Data MeetingGetMeetingParticipantResponseData` Data returned by the operation - `ID string` ID of the participant. - `CreatedAt Time` When this object was created. The time is returned in ISO format. - `CustomParticipantID string` A unique participant ID generated by the client. - `PresetName string` Preset applied to the participant. - `UpdatedAt Time` When this object was updated. The time is returned in ISO format. - `Name string` Name of the participant. - `Picture string` URL to a picture of the participant. - `Success bool` Success status of the operation ### Example ```go 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.GetMeetingParticipant( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "participant_id", realtime_kit.MeetingGetMeetingParticipantParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "custom_participant_id": "custom_participant_id", "preset_name": "preset_name", "updated_at": "2019-12-27T18:11:19.117Z", "name": "name", "picture": "https://example.com" }, "success": true } ``` ## Edit a participant's detail `client.RealtimeKit.Meetings.EditParticipant(ctx, appID, meetingID, participantID, params) (*MeetingEditParticipantResponse, error)` **patch** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}` Updates a participant's details for the given meeting and participant ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `participantID string` - `params MeetingEditParticipantParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `Name param.Field[string]` Body param: (Optional) Name of the participant. - `Picture param.Field[string]` Body param: (Optional) A URL to a picture to be used for the participant. - `PresetName param.Field[string]` Body param: (Optional) Name of the preset to apply to this participant. ### Returns - `type MeetingEditParticipantResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingEditParticipantResponseData` Represents a participant. - `ID string` ID of the participant. - `Token string` The participant's auth token that can be used for joining a meeting from the client side. - `CreatedAt Time` When this object was created. The time is returned in ISO format. - `CustomParticipantID string` A unique participant ID generated by the client. - `PresetName string` Preset applied to the participant. - `UpdatedAt Time` When this object was updated. The time is returned in ISO format. - `Name string` Name of the participant. - `Picture string` URL to a picture of the participant. ### Example ```go 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.EditParticipant( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "participant_id", realtime_kit.MeetingEditParticipantParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Success) } ``` #### Response ```json { "success": true, "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "token": "token", "created_at": "2019-12-27T18:11:19.117Z", "custom_participant_id": "custom_participant_id", "preset_name": "preset_name", "updated_at": "2019-12-27T18:11:19.117Z", "name": "name", "picture": "https://example.com" } } ``` ## Delete a participant `client.RealtimeKit.Meetings.DeleteMeetingParticipant(ctx, appID, meetingID, participantID, body) (*MeetingDeleteMeetingParticipantResponse, error)` **delete** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}` Deletes a participant for the given meeting and participant ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `participantID string` - `body MeetingDeleteMeetingParticipantParams` - `AccountID param.Field[string]` The account identifier tag. ### Returns - `type MeetingDeleteMeetingParticipantResponse struct{…}` - `Success bool` Success status of the operation - `Data MeetingDeleteMeetingParticipantResponseData` Data returned by the operation - `CreatedAt Time` Timestamp this object was created at. The time is returned in ISO format. - `CustomParticipantID string` A unique participant ID generated by the client. - `PresetID string` ID of the preset applied to this participant. - `UpdatedAt Time` Timestamp this object was updated at. The time is returned in ISO format. ### Example ```go 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.DeleteMeetingParticipant( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "participant_id", realtime_kit.MeetingDeleteMeetingParticipantParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Success) } ``` #### Response ```json { "success": true, "data": { "created_at": "2019-12-27T18:11:19.117Z", "custom_participant_id": "custom_participant_id", "preset_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "updated_at": "2019-12-27T18:11:19.117Z" } } ``` ## Refresh participant's authentication token `client.RealtimeKit.Meetings.RefreshParticipantToken(ctx, appID, meetingID, participantID, body) (*MeetingRefreshParticipantTokenResponse, error)` **post** `/accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}/token` Regenerates participant's authentication token for the given meeting and participant ID. ### Parameters - `appID string` The app identifier tag. - `meetingID string` - `participantID string` - `body MeetingRefreshParticipantTokenParams` - `AccountID param.Field[string]` The account identifier tag. ### Returns - `type MeetingRefreshParticipantTokenResponse struct{…}` - `Data MeetingRefreshParticipantTokenResponseData` Data returned by the operation - `Token string` Regenerated participant's authentication token. - `Success bool` Success status of the operation ### Example ```go 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.RefreshParticipantToken( context.TODO(), "app_id", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "participant_id", realtime_kit.MeetingRefreshParticipantTokenParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Data) } ``` #### Response ```json { "data": { "token": "token" }, "success": true } ```