# Presets ## Fetch all presets `client.RealtimeKit.Presets.Get(ctx, appID, params) (*PresetGetResponse, error)` **get** `/accounts/{account_id}/realtime/kit/{app_id}/presets` Fetches all the presets belonging to an App. ### Parameters - `appID string` The app identifier tag. - `params PresetGetParams` - `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 PresetGetResponse struct{…}` - `Data []PresetGetResponseData` - `ID string` ID of the preset - `CreatedAt Time` Timestamp this preset was created at - `Name string` Name of the preset - `UpdatedAt Time` Timestamp this preset was last updated - `Paging PresetGetResponsePaging` - `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"), ) preset, err := client.RealtimeKit.Presets.Get( context.TODO(), "app_id", realtime_kit.PresetGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", preset.Data) } ``` #### Response ```json { "data": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "created_at": "2019-12-27T18:11:19.117Z", "name": "name", "updated_at": "2019-12-27T18:11:19.117Z" } ], "paging": { "end_offset": 30, "start_offset": 1, "total_count": 30 }, "success": true } ``` ## Create a preset `client.RealtimeKit.Presets.New(ctx, appID, params) (*PresetNewResponse, error)` **post** `/accounts/{account_id}/realtime/kit/{app_id}/presets` Creates a preset belonging to the current App ### Parameters - `appID string` The app identifier tag. - `params PresetNewParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `Config param.Field[PresetNewParamsConfig]` Body param - `MaxScreenshareCount int64` Maximum number of screen shares that can be active at a given time - `MaxVideoStreams PresetNewParamsConfigMaxVideoStreams` Maximum number of streams that are visible on a device - `Desktop int64` Maximum number of video streams visible on desktop devices - `Mobile int64` Maximum number of streams visible on mobile devices - `Media PresetNewParamsConfigMedia` Media configuration options. eg: Video quality - `Screenshare PresetNewParamsConfigMediaScreenshare` Configuration options for participant screen shares - `FrameRate int64` Frame rate of screen share - `Quality PresetNewParamsConfigMediaScreenshareQuality` Quality of screen share - `const PresetNewParamsConfigMediaScreenshareQualityHD PresetNewParamsConfigMediaScreenshareQuality = "hd"` - `const PresetNewParamsConfigMediaScreenshareQualityVga PresetNewParamsConfigMediaScreenshareQuality = "vga"` - `const PresetNewParamsConfigMediaScreenshareQualityQvga PresetNewParamsConfigMediaScreenshareQuality = "qvga"` - `Video PresetNewParamsConfigMediaVideo` Configuration options for participant videos - `FrameRate int64` Frame rate of participants' video - `Quality PresetNewParamsConfigMediaVideoQuality` Video quality of participants - `const PresetNewParamsConfigMediaVideoQualityHD PresetNewParamsConfigMediaVideoQuality = "hd"` - `const PresetNewParamsConfigMediaVideoQualityVga PresetNewParamsConfigMediaVideoQuality = "vga"` - `const PresetNewParamsConfigMediaVideoQualityQvga PresetNewParamsConfigMediaVideoQuality = "qvga"` - `Audio PresetNewParamsConfigMediaAudio` Control options for Audio quality. - `EnableHighBitrate bool` Enable High Quality Audio for your meetings - `EnableStereo bool` Enable Stereo for your meetings - `ViewType PresetNewParamsConfigViewType` Type of the meeting - `const PresetNewParamsConfigViewTypeGroupCall PresetNewParamsConfigViewType = "GROUP_CALL"` - `const PresetNewParamsConfigViewTypeWebinar PresetNewParamsConfigViewType = "WEBINAR"` - `const PresetNewParamsConfigViewTypeAudioRoom PresetNewParamsConfigViewType = "AUDIO_ROOM"` - `Name param.Field[string]` Body param: Name of the preset - `UI param.Field[PresetNewParamsUI]` Body param - `DesignTokens PresetNewParamsUIDesignTokens` - `BorderRadius PresetNewParamsUIDesignTokensBorderRadius` - `const PresetNewParamsUIDesignTokensBorderRadiusRounded PresetNewParamsUIDesignTokensBorderRadius = "rounded"` - `BorderWidth PresetNewParamsUIDesignTokensBorderWidth` - `const PresetNewParamsUIDesignTokensBorderWidthThin PresetNewParamsUIDesignTokensBorderWidth = "thin"` - `Colors PresetNewParamsUIDesignTokensColors` - `Background PresetNewParamsUIDesignTokensColorsBackground` - `Number1000 string` - `Number600 string` - `Number700 string` - `Number800 string` - `Number900 string` - `Brand PresetNewParamsUIDesignTokensColorsBrand` - `Number300 string` - `Number400 string` - `Number500 string` - `Number600 string` - `Number700 string` - `Danger string` - `Success string` - `Text string` - `TextOnBrand string` - `VideoBg string` - `Warning string` - `Logo string` - `SpacingBase float64` - `Theme PresetNewParamsUIDesignTokensTheme` - `const PresetNewParamsUIDesignTokensThemeDark PresetNewParamsUIDesignTokensTheme = "dark"` - `ConfigDiff unknown` - `Permissions param.Field[PresetNewParamsPermissions]` Body param - `AcceptWaitingRequests bool` Whether this participant can accept waiting requests - `CanAcceptProductionRequests bool` - `CanChangeParticipantPermissions bool` - `CanEditDisplayName bool` - `CanLivestream bool` - `CanRecord bool` - `CanSpotlight bool` - `Chat PresetNewParamsPermissionsChat` Chat permissions - `Private PresetNewParamsPermissionsChatPrivate` - `CanReceive bool` - `CanSend bool` - `Files bool` - `Text bool` - `Public PresetNewParamsPermissionsChatPublic` - `CanSend bool` Can send messages in general - `Files bool` Can send file messages - `Text bool` Can send text messages - `ConnectedMeetings PresetNewParamsPermissionsConnectedMeetings` - `CanAlterConnectedMeetings bool` - `CanSwitchConnectedMeetings bool` - `CanSwitchToParentMeeting bool` - `DisableParticipantAudio bool` - `DisableParticipantScreensharing bool` - `DisableParticipantVideo bool` - `HiddenParticipant bool` Whether this participant is visible to others or not - `KickParticipant bool` - `Media PresetNewParamsPermissionsMedia` Media permissions - `Audio PresetNewParamsPermissionsMediaAudio` Audio permissions - `CanProduce PresetNewParamsPermissionsMediaAudioCanProduce` Can produce audio - `const PresetNewParamsPermissionsMediaAudioCanProduceAllowed PresetNewParamsPermissionsMediaAudioCanProduce = "ALLOWED"` - `const PresetNewParamsPermissionsMediaAudioCanProduceNotAllowed PresetNewParamsPermissionsMediaAudioCanProduce = "NOT_ALLOWED"` - `const PresetNewParamsPermissionsMediaAudioCanProduceCanRequest PresetNewParamsPermissionsMediaAudioCanProduce = "CAN_REQUEST"` - `Screenshare PresetNewParamsPermissionsMediaScreenshare` Screenshare permissions - `CanProduce PresetNewParamsPermissionsMediaScreenshareCanProduce` Can produce screen share video - `const PresetNewParamsPermissionsMediaScreenshareCanProduceAllowed PresetNewParamsPermissionsMediaScreenshareCanProduce = "ALLOWED"` - `const PresetNewParamsPermissionsMediaScreenshareCanProduceNotAllowed PresetNewParamsPermissionsMediaScreenshareCanProduce = "NOT_ALLOWED"` - `const PresetNewParamsPermissionsMediaScreenshareCanProduceCanRequest PresetNewParamsPermissionsMediaScreenshareCanProduce = "CAN_REQUEST"` - `Video PresetNewParamsPermissionsMediaVideo` Video permissions - `CanProduce PresetNewParamsPermissionsMediaVideoCanProduce` Can produce video - `const PresetNewParamsPermissionsMediaVideoCanProduceAllowed PresetNewParamsPermissionsMediaVideoCanProduce = "ALLOWED"` - `const PresetNewParamsPermissionsMediaVideoCanProduceNotAllowed PresetNewParamsPermissionsMediaVideoCanProduce = "NOT_ALLOWED"` - `const PresetNewParamsPermissionsMediaVideoCanProduceCanRequest PresetNewParamsPermissionsMediaVideoCanProduce = "CAN_REQUEST"` - `PinParticipant bool` - `Plugins PresetNewParamsPermissionsPlugins` Plugin permissions - `CanClose bool` Can close plugins that are already open - `CanEditConfig bool` Can edit plugin config - `CanStart bool` Can start plugins - `Config PresetNewParamsPermissionsPluginsConfigUnion` - `UnionString` - `type PresetNewParamsPermissionsPluginsConfigObject struct{…}` - `AccessControl PresetNewParamsPermissionsPluginsConfigObjectAccessControl` - `const PresetNewParamsPermissionsPluginsConfigObjectAccessControlFullAccess PresetNewParamsPermissionsPluginsConfigObjectAccessControl = "FULL_ACCESS"` - `const PresetNewParamsPermissionsPluginsConfigObjectAccessControlViewOnly PresetNewParamsPermissionsPluginsConfigObjectAccessControl = "VIEW_ONLY"` - `HandlesViewOnly bool` - `Polls PresetNewParamsPermissionsPolls` Poll permissions - `CanCreate bool` Can create polls - `CanView bool` Can view polls - `CanVote bool` Can vote on polls - `RecorderType PresetNewParamsPermissionsRecorderType` Type of the recording peer - `const PresetNewParamsPermissionsRecorderTypeRecorder PresetNewParamsPermissionsRecorderType = "RECORDER"` - `const PresetNewParamsPermissionsRecorderTypeLivestreamer PresetNewParamsPermissionsRecorderType = "LIVESTREAMER"` - `const PresetNewParamsPermissionsRecorderTypeNone PresetNewParamsPermissionsRecorderType = "NONE"` - `ShowParticipantList bool` - `WaitingRoomType PresetNewParamsPermissionsWaitingRoomType` Waiting room type - `const PresetNewParamsPermissionsWaitingRoomTypeSkip PresetNewParamsPermissionsWaitingRoomType = "SKIP"` - `const PresetNewParamsPermissionsWaitingRoomTypeOnPrivilegedUserEntry PresetNewParamsPermissionsWaitingRoomType = "ON_PRIVILEGED_USER_ENTRY"` - `const PresetNewParamsPermissionsWaitingRoomTypeSkipOnAccept PresetNewParamsPermissionsWaitingRoomType = "SKIP_ON_ACCEPT"` - `IsRecorder bool` ### Returns - `type PresetNewResponse struct{…}` - `Data PresetNewResponseData` Data returned by the operation - `ID string` ID of the preset - `Config PresetNewResponseDataConfig` - `MaxScreenshareCount int64` Maximum number of screen shares that can be active at a given time - `MaxVideoStreams PresetNewResponseDataConfigMaxVideoStreams` Maximum number of streams that are visible on a device - `Desktop int64` Maximum number of video streams visible on desktop devices - `Mobile int64` Maximum number of streams visible on mobile devices - `Media PresetNewResponseDataConfigMedia` Media configuration options. eg: Video quality - `Screenshare PresetNewResponseDataConfigMediaScreenshare` Configuration options for participant screen shares - `FrameRate int64` Frame rate of screen share - `Quality PresetNewResponseDataConfigMediaScreenshareQuality` Quality of screen share - `const PresetNewResponseDataConfigMediaScreenshareQualityHD PresetNewResponseDataConfigMediaScreenshareQuality = "hd"` - `const PresetNewResponseDataConfigMediaScreenshareQualityVga PresetNewResponseDataConfigMediaScreenshareQuality = "vga"` - `const PresetNewResponseDataConfigMediaScreenshareQualityQvga PresetNewResponseDataConfigMediaScreenshareQuality = "qvga"` - `Video PresetNewResponseDataConfigMediaVideo` Configuration options for participant videos - `FrameRate int64` Frame rate of participants' video - `Quality PresetNewResponseDataConfigMediaVideoQuality` Video quality of participants - `const PresetNewResponseDataConfigMediaVideoQualityHD PresetNewResponseDataConfigMediaVideoQuality = "hd"` - `const PresetNewResponseDataConfigMediaVideoQualityVga PresetNewResponseDataConfigMediaVideoQuality = "vga"` - `const PresetNewResponseDataConfigMediaVideoQualityQvga PresetNewResponseDataConfigMediaVideoQuality = "qvga"` - `Audio PresetNewResponseDataConfigMediaAudio` Control options for Audio quality. - `EnableHighBitrate bool` Enable High Quality Audio for your meetings - `EnableStereo bool` Enable Stereo for your meetings - `ViewType PresetNewResponseDataConfigViewType` Type of the meeting - `const PresetNewResponseDataConfigViewTypeGroupCall PresetNewResponseDataConfigViewType = "GROUP_CALL"` - `const PresetNewResponseDataConfigViewTypeWebinar PresetNewResponseDataConfigViewType = "WEBINAR"` - `const PresetNewResponseDataConfigViewTypeAudioRoom PresetNewResponseDataConfigViewType = "AUDIO_ROOM"` - `Name string` Name of the preset - `UI PresetNewResponseDataUI` - `DesignTokens PresetNewResponseDataUIDesignTokens` - `BorderRadius PresetNewResponseDataUIDesignTokensBorderRadius` - `const PresetNewResponseDataUIDesignTokensBorderRadiusRounded PresetNewResponseDataUIDesignTokensBorderRadius = "rounded"` - `BorderWidth PresetNewResponseDataUIDesignTokensBorderWidth` - `const PresetNewResponseDataUIDesignTokensBorderWidthThin PresetNewResponseDataUIDesignTokensBorderWidth = "thin"` - `Colors PresetNewResponseDataUIDesignTokensColors` - `Background PresetNewResponseDataUIDesignTokensColorsBackground` - `Number1000 string` - `Number600 string` - `Number700 string` - `Number800 string` - `Number900 string` - `Brand PresetNewResponseDataUIDesignTokensColorsBrand` - `Number300 string` - `Number400 string` - `Number500 string` - `Number600 string` - `Number700 string` - `Danger string` - `Success string` - `Text string` - `TextOnBrand string` - `VideoBg string` - `Warning string` - `Logo string` - `SpacingBase float64` - `Theme PresetNewResponseDataUIDesignTokensTheme` - `const PresetNewResponseDataUIDesignTokensThemeDark PresetNewResponseDataUIDesignTokensTheme = "dark"` - `ConfigDiff unknown` - `Permissions PresetNewResponseDataPermissions` - `AcceptWaitingRequests bool` Whether this participant can accept waiting requests - `CanAcceptProductionRequests bool` - `CanChangeParticipantPermissions bool` - `CanEditDisplayName bool` - `CanLivestream bool` - `CanRecord bool` - `CanSpotlight bool` - `Chat PresetNewResponseDataPermissionsChat` Chat permissions - `Private PresetNewResponseDataPermissionsChatPrivate` - `CanReceive bool` - `CanSend bool` - `Files bool` - `Text bool` - `Public PresetNewResponseDataPermissionsChatPublic` - `CanSend bool` Can send messages in general - `Files bool` Can send file messages - `Text bool` Can send text messages - `ConnectedMeetings PresetNewResponseDataPermissionsConnectedMeetings` - `CanAlterConnectedMeetings bool` - `CanSwitchConnectedMeetings bool` - `CanSwitchToParentMeeting bool` - `DisableParticipantAudio bool` - `DisableParticipantScreensharing bool` - `DisableParticipantVideo bool` - `HiddenParticipant bool` Whether this participant is visible to others or not - `KickParticipant bool` - `Media PresetNewResponseDataPermissionsMedia` Media permissions - `Audio PresetNewResponseDataPermissionsMediaAudio` Audio permissions - `CanProduce PresetNewResponseDataPermissionsMediaAudioCanProduce` Can produce audio - `const PresetNewResponseDataPermissionsMediaAudioCanProduceAllowed PresetNewResponseDataPermissionsMediaAudioCanProduce = "ALLOWED"` - `const PresetNewResponseDataPermissionsMediaAudioCanProduceNotAllowed PresetNewResponseDataPermissionsMediaAudioCanProduce = "NOT_ALLOWED"` - `const PresetNewResponseDataPermissionsMediaAudioCanProduceCanRequest PresetNewResponseDataPermissionsMediaAudioCanProduce = "CAN_REQUEST"` - `Screenshare PresetNewResponseDataPermissionsMediaScreenshare` Screenshare permissions - `CanProduce PresetNewResponseDataPermissionsMediaScreenshareCanProduce` Can produce screen share video - `const PresetNewResponseDataPermissionsMediaScreenshareCanProduceAllowed PresetNewResponseDataPermissionsMediaScreenshareCanProduce = "ALLOWED"` - `const PresetNewResponseDataPermissionsMediaScreenshareCanProduceNotAllowed PresetNewResponseDataPermissionsMediaScreenshareCanProduce = "NOT_ALLOWED"` - `const PresetNewResponseDataPermissionsMediaScreenshareCanProduceCanRequest PresetNewResponseDataPermissionsMediaScreenshareCanProduce = "CAN_REQUEST"` - `Video PresetNewResponseDataPermissionsMediaVideo` Video permissions - `CanProduce PresetNewResponseDataPermissionsMediaVideoCanProduce` Can produce video - `const PresetNewResponseDataPermissionsMediaVideoCanProduceAllowed PresetNewResponseDataPermissionsMediaVideoCanProduce = "ALLOWED"` - `const PresetNewResponseDataPermissionsMediaVideoCanProduceNotAllowed PresetNewResponseDataPermissionsMediaVideoCanProduce = "NOT_ALLOWED"` - `const PresetNewResponseDataPermissionsMediaVideoCanProduceCanRequest PresetNewResponseDataPermissionsMediaVideoCanProduce = "CAN_REQUEST"` - `PinParticipant bool` - `Plugins PresetNewResponseDataPermissionsPlugins` Plugin permissions - `CanClose bool` Can close plugins that are already open - `CanEditConfig bool` Can edit plugin config - `CanStart bool` Can start plugins - `Config PresetNewResponseDataPermissionsPluginsConfigUnion` - `UnionString` - `type PresetNewResponseDataPermissionsPluginsConfigObject struct{…}` - `AccessControl PresetNewResponseDataPermissionsPluginsConfigObjectAccessControl` - `const PresetNewResponseDataPermissionsPluginsConfigObjectAccessControlFullAccess PresetNewResponseDataPermissionsPluginsConfigObjectAccessControl = "FULL_ACCESS"` - `const PresetNewResponseDataPermissionsPluginsConfigObjectAccessControlViewOnly PresetNewResponseDataPermissionsPluginsConfigObjectAccessControl = "VIEW_ONLY"` - `HandlesViewOnly bool` - `Polls PresetNewResponseDataPermissionsPolls` Poll permissions - `CanCreate bool` Can create polls - `CanView bool` Can view polls - `CanVote bool` Can vote on polls - `RecorderType PresetNewResponseDataPermissionsRecorderType` Type of the recording peer - `const PresetNewResponseDataPermissionsRecorderTypeRecorder PresetNewResponseDataPermissionsRecorderType = "RECORDER"` - `const PresetNewResponseDataPermissionsRecorderTypeLivestreamer PresetNewResponseDataPermissionsRecorderType = "LIVESTREAMER"` - `const PresetNewResponseDataPermissionsRecorderTypeNone PresetNewResponseDataPermissionsRecorderType = "NONE"` - `ShowParticipantList bool` - `WaitingRoomType PresetNewResponseDataPermissionsWaitingRoomType` Waiting room type - `const PresetNewResponseDataPermissionsWaitingRoomTypeSkip PresetNewResponseDataPermissionsWaitingRoomType = "SKIP"` - `const PresetNewResponseDataPermissionsWaitingRoomTypeOnPrivilegedUserEntry PresetNewResponseDataPermissionsWaitingRoomType = "ON_PRIVILEGED_USER_ENTRY"` - `const PresetNewResponseDataPermissionsWaitingRoomTypeSkipOnAccept PresetNewResponseDataPermissionsWaitingRoomType = "SKIP_ON_ACCEPT"` - `IsRecorder bool` - `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"), ) preset, err := client.RealtimeKit.Presets.New( context.TODO(), "app_id", realtime_kit.PresetNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Config: cloudflare.F(realtime_kit.PresetNewParamsConfig{ MaxScreenshareCount: cloudflare.F(int64(0)), MaxVideoStreams: cloudflare.F(realtime_kit.PresetNewParamsConfigMaxVideoStreams{ Desktop: cloudflare.F(int64(0)), Mobile: cloudflare.F(int64(0)), }), Media: cloudflare.F(realtime_kit.PresetNewParamsConfigMedia{ Screenshare: cloudflare.F(realtime_kit.PresetNewParamsConfigMediaScreenshare{ FrameRate: cloudflare.F(int64(0)), Quality: cloudflare.F(realtime_kit.PresetNewParamsConfigMediaScreenshareQualityHD), }), Video: cloudflare.F(realtime_kit.PresetNewParamsConfigMediaVideo{ FrameRate: cloudflare.F(int64(30)), Quality: cloudflare.F(realtime_kit.PresetNewParamsConfigMediaVideoQualityHD), }), }), ViewType: cloudflare.F(realtime_kit.PresetNewParamsConfigViewTypeGroupCall), }), Name: cloudflare.F("name"), UI: cloudflare.F(realtime_kit.PresetNewParamsUI{ DesignTokens: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokens{ BorderRadius: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokensBorderRadiusRounded), BorderWidth: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokensBorderWidthThin), Colors: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokensColors{ Background: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokensColorsBackground{ Number600: cloudflare.F("600"), Number700: cloudflare.F("700"), Number800: cloudflare.F("800"), Number900: cloudflare.F("900"), Number1000: cloudflare.F("1000"), }), Brand: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokensColorsBrand{ Number300: cloudflare.F("300"), Number400: cloudflare.F("400"), Number500: cloudflare.F("500"), Number600: cloudflare.F("600"), Number700: cloudflare.F("700"), }), Danger: cloudflare.F("danger"), Success: cloudflare.F("success"), Text: cloudflare.F("text"), TextOnBrand: cloudflare.F("text_on_brand"), VideoBg: cloudflare.F("video_bg"), Warning: cloudflare.F("warning"), }), Logo: cloudflare.F("logo"), SpacingBase: cloudflare.F(0.000000), Theme: cloudflare.F(realtime_kit.PresetNewParamsUIDesignTokensThemeDark), }), }), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", preset.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "max_screenshare_count": 0, "max_video_streams": { "desktop": 0, "mobile": 0 }, "media": { "screenshare": { "frame_rate": 0, "quality": "hd" }, "video": { "frame_rate": 30, "quality": "hd" }, "audio": { "enable_high_bitrate": true, "enable_stereo": true } }, "view_type": "GROUP_CALL" }, "name": "name", "ui": { "design_tokens": { "border_radius": "rounded", "border_width": "thin", "colors": { "background": { "600": "600", "700": "700", "800": "800", "900": "900", "1000": "1000" }, "brand": { "300": "300", "400": "400", "500": "500", "600": "600", "700": "700" }, "danger": "danger", "success": "success", "text": "text", "text_on_brand": "text_on_brand", "video_bg": "video_bg", "warning": "warning" }, "logo": "logo", "spacing_base": 0, "theme": "dark" }, "config_diff": {} }, "permissions": { "accept_waiting_requests": true, "can_accept_production_requests": true, "can_change_participant_permissions": true, "can_edit_display_name": true, "can_livestream": true, "can_record": true, "can_spotlight": true, "chat": { "private": { "can_receive": true, "can_send": true, "files": true, "text": true }, "public": { "can_send": true, "files": true, "text": true } }, "connected_meetings": { "can_alter_connected_meetings": true, "can_switch_connected_meetings": true, "can_switch_to_parent_meeting": true }, "disable_participant_audio": true, "disable_participant_screensharing": true, "disable_participant_video": true, "hidden_participant": true, "kick_participant": true, "media": { "audio": { "can_produce": "ALLOWED" }, "screenshare": { "can_produce": "ALLOWED" }, "video": { "can_produce": "ALLOWED" } }, "pin_participant": true, "plugins": { "can_close": true, "can_edit_config": true, "can_start": true, "config": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "polls": { "can_create": true, "can_view": true, "can_vote": true }, "recorder_type": "RECORDER", "show_participant_list": true, "waiting_room_type": "SKIP", "is_recorder": true } }, "success": true } ``` ## Fetch details of a preset `client.RealtimeKit.Presets.GetPresetByID(ctx, appID, presetID, query) (*PresetGetPresetByIDResponse, error)` **get** `/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}` Fetches details of a preset using the provided preset ID ### Parameters - `appID string` The app identifier tag. - `presetID string` - `query PresetGetPresetByIDParams` - `AccountID param.Field[string]` The account identifier tag. ### Returns - `type PresetGetPresetByIDResponse struct{…}` - `Data PresetGetPresetByIDResponseData` Data returned by the operation - `ID string` ID of the preset - `Config PresetGetPresetByIDResponseDataConfig` - `MaxScreenshareCount int64` Maximum number of screen shares that can be active at a given time - `MaxVideoStreams PresetGetPresetByIDResponseDataConfigMaxVideoStreams` Maximum number of streams that are visible on a device - `Desktop int64` Maximum number of video streams visible on desktop devices - `Mobile int64` Maximum number of streams visible on mobile devices - `Media PresetGetPresetByIDResponseDataConfigMedia` Media configuration options. eg: Video quality - `Screenshare PresetGetPresetByIDResponseDataConfigMediaScreenshare` Configuration options for participant screen shares - `FrameRate int64` Frame rate of screen share - `Quality PresetGetPresetByIDResponseDataConfigMediaScreenshareQuality` Quality of screen share - `const PresetGetPresetByIDResponseDataConfigMediaScreenshareQualityHD PresetGetPresetByIDResponseDataConfigMediaScreenshareQuality = "hd"` - `const PresetGetPresetByIDResponseDataConfigMediaScreenshareQualityVga PresetGetPresetByIDResponseDataConfigMediaScreenshareQuality = "vga"` - `const PresetGetPresetByIDResponseDataConfigMediaScreenshareQualityQvga PresetGetPresetByIDResponseDataConfigMediaScreenshareQuality = "qvga"` - `Video PresetGetPresetByIDResponseDataConfigMediaVideo` Configuration options for participant videos - `FrameRate int64` Frame rate of participants' video - `Quality PresetGetPresetByIDResponseDataConfigMediaVideoQuality` Video quality of participants - `const PresetGetPresetByIDResponseDataConfigMediaVideoQualityHD PresetGetPresetByIDResponseDataConfigMediaVideoQuality = "hd"` - `const PresetGetPresetByIDResponseDataConfigMediaVideoQualityVga PresetGetPresetByIDResponseDataConfigMediaVideoQuality = "vga"` - `const PresetGetPresetByIDResponseDataConfigMediaVideoQualityQvga PresetGetPresetByIDResponseDataConfigMediaVideoQuality = "qvga"` - `Audio PresetGetPresetByIDResponseDataConfigMediaAudio` Control options for Audio quality. - `EnableHighBitrate bool` Enable High Quality Audio for your meetings - `EnableStereo bool` Enable Stereo for your meetings - `ViewType PresetGetPresetByIDResponseDataConfigViewType` Type of the meeting - `const PresetGetPresetByIDResponseDataConfigViewTypeGroupCall PresetGetPresetByIDResponseDataConfigViewType = "GROUP_CALL"` - `const PresetGetPresetByIDResponseDataConfigViewTypeWebinar PresetGetPresetByIDResponseDataConfigViewType = "WEBINAR"` - `const PresetGetPresetByIDResponseDataConfigViewTypeAudioRoom PresetGetPresetByIDResponseDataConfigViewType = "AUDIO_ROOM"` - `Name string` Name of the preset - `UI PresetGetPresetByIDResponseDataUI` - `DesignTokens PresetGetPresetByIDResponseDataUIDesignTokens` - `BorderRadius PresetGetPresetByIDResponseDataUIDesignTokensBorderRadius` - `const PresetGetPresetByIDResponseDataUIDesignTokensBorderRadiusRounded PresetGetPresetByIDResponseDataUIDesignTokensBorderRadius = "rounded"` - `BorderWidth PresetGetPresetByIDResponseDataUIDesignTokensBorderWidth` - `const PresetGetPresetByIDResponseDataUIDesignTokensBorderWidthThin PresetGetPresetByIDResponseDataUIDesignTokensBorderWidth = "thin"` - `Colors PresetGetPresetByIDResponseDataUIDesignTokensColors` - `Background PresetGetPresetByIDResponseDataUIDesignTokensColorsBackground` - `Number1000 string` - `Number600 string` - `Number700 string` - `Number800 string` - `Number900 string` - `Brand PresetGetPresetByIDResponseDataUIDesignTokensColorsBrand` - `Number300 string` - `Number400 string` - `Number500 string` - `Number600 string` - `Number700 string` - `Danger string` - `Success string` - `Text string` - `TextOnBrand string` - `VideoBg string` - `Warning string` - `Logo string` - `SpacingBase float64` - `Theme PresetGetPresetByIDResponseDataUIDesignTokensTheme` - `const PresetGetPresetByIDResponseDataUIDesignTokensThemeDark PresetGetPresetByIDResponseDataUIDesignTokensTheme = "dark"` - `ConfigDiff unknown` - `Permissions PresetGetPresetByIDResponseDataPermissions` - `AcceptWaitingRequests bool` Whether this participant can accept waiting requests - `CanAcceptProductionRequests bool` - `CanChangeParticipantPermissions bool` - `CanEditDisplayName bool` - `CanLivestream bool` - `CanRecord bool` - `CanSpotlight bool` - `Chat PresetGetPresetByIDResponseDataPermissionsChat` Chat permissions - `Private PresetGetPresetByIDResponseDataPermissionsChatPrivate` - `CanReceive bool` - `CanSend bool` - `Files bool` - `Text bool` - `Public PresetGetPresetByIDResponseDataPermissionsChatPublic` - `CanSend bool` Can send messages in general - `Files bool` Can send file messages - `Text bool` Can send text messages - `ConnectedMeetings PresetGetPresetByIDResponseDataPermissionsConnectedMeetings` - `CanAlterConnectedMeetings bool` - `CanSwitchConnectedMeetings bool` - `CanSwitchToParentMeeting bool` - `DisableParticipantAudio bool` - `DisableParticipantScreensharing bool` - `DisableParticipantVideo bool` - `HiddenParticipant bool` Whether this participant is visible to others or not - `KickParticipant bool` - `Media PresetGetPresetByIDResponseDataPermissionsMedia` Media permissions - `Audio PresetGetPresetByIDResponseDataPermissionsMediaAudio` Audio permissions - `CanProduce PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduce` Can produce audio - `const PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduceAllowed PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduce = "ALLOWED"` - `const PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduceNotAllowed PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduce = "NOT_ALLOWED"` - `const PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduceCanRequest PresetGetPresetByIDResponseDataPermissionsMediaAudioCanProduce = "CAN_REQUEST"` - `Screenshare PresetGetPresetByIDResponseDataPermissionsMediaScreenshare` Screenshare permissions - `CanProduce PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduce` Can produce screen share video - `const PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduceAllowed PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduce = "ALLOWED"` - `const PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduceNotAllowed PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduce = "NOT_ALLOWED"` - `const PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduceCanRequest PresetGetPresetByIDResponseDataPermissionsMediaScreenshareCanProduce = "CAN_REQUEST"` - `Video PresetGetPresetByIDResponseDataPermissionsMediaVideo` Video permissions - `CanProduce PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduce` Can produce video - `const PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduceAllowed PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduce = "ALLOWED"` - `const PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduceNotAllowed PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduce = "NOT_ALLOWED"` - `const PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduceCanRequest PresetGetPresetByIDResponseDataPermissionsMediaVideoCanProduce = "CAN_REQUEST"` - `PinParticipant bool` - `Plugins PresetGetPresetByIDResponseDataPermissionsPlugins` Plugin permissions - `CanClose bool` Can close plugins that are already open - `CanEditConfig bool` Can edit plugin config - `CanStart bool` Can start plugins - `Config PresetGetPresetByIDResponseDataPermissionsPluginsConfigUnion` - `UnionString` - `type PresetGetPresetByIDResponseDataPermissionsPluginsConfigObject struct{…}` - `AccessControl PresetGetPresetByIDResponseDataPermissionsPluginsConfigObjectAccessControl` - `const PresetGetPresetByIDResponseDataPermissionsPluginsConfigObjectAccessControlFullAccess PresetGetPresetByIDResponseDataPermissionsPluginsConfigObjectAccessControl = "FULL_ACCESS"` - `const PresetGetPresetByIDResponseDataPermissionsPluginsConfigObjectAccessControlViewOnly PresetGetPresetByIDResponseDataPermissionsPluginsConfigObjectAccessControl = "VIEW_ONLY"` - `HandlesViewOnly bool` - `Polls PresetGetPresetByIDResponseDataPermissionsPolls` Poll permissions - `CanCreate bool` Can create polls - `CanView bool` Can view polls - `CanVote bool` Can vote on polls - `RecorderType PresetGetPresetByIDResponseDataPermissionsRecorderType` Type of the recording peer - `const PresetGetPresetByIDResponseDataPermissionsRecorderTypeRecorder PresetGetPresetByIDResponseDataPermissionsRecorderType = "RECORDER"` - `const PresetGetPresetByIDResponseDataPermissionsRecorderTypeLivestreamer PresetGetPresetByIDResponseDataPermissionsRecorderType = "LIVESTREAMER"` - `const PresetGetPresetByIDResponseDataPermissionsRecorderTypeNone PresetGetPresetByIDResponseDataPermissionsRecorderType = "NONE"` - `ShowParticipantList bool` - `WaitingRoomType PresetGetPresetByIDResponseDataPermissionsWaitingRoomType` Waiting room type - `const PresetGetPresetByIDResponseDataPermissionsWaitingRoomTypeSkip PresetGetPresetByIDResponseDataPermissionsWaitingRoomType = "SKIP"` - `const PresetGetPresetByIDResponseDataPermissionsWaitingRoomTypeOnPrivilegedUserEntry PresetGetPresetByIDResponseDataPermissionsWaitingRoomType = "ON_PRIVILEGED_USER_ENTRY"` - `const PresetGetPresetByIDResponseDataPermissionsWaitingRoomTypeSkipOnAccept PresetGetPresetByIDResponseDataPermissionsWaitingRoomType = "SKIP_ON_ACCEPT"` - `IsRecorder bool` - `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.Presets.GetPresetByID( context.TODO(), "app_id", "preset_id", realtime_kit.PresetGetPresetByIDParams{ 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", "config": { "max_screenshare_count": 0, "max_video_streams": { "desktop": 0, "mobile": 0 }, "media": { "screenshare": { "frame_rate": 0, "quality": "hd" }, "video": { "frame_rate": 30, "quality": "hd" }, "audio": { "enable_high_bitrate": true, "enable_stereo": true } }, "view_type": "GROUP_CALL" }, "name": "name", "ui": { "design_tokens": { "border_radius": "rounded", "border_width": "thin", "colors": { "background": { "600": "600", "700": "700", "800": "800", "900": "900", "1000": "1000" }, "brand": { "300": "300", "400": "400", "500": "500", "600": "600", "700": "700" }, "danger": "danger", "success": "success", "text": "text", "text_on_brand": "text_on_brand", "video_bg": "video_bg", "warning": "warning" }, "logo": "logo", "spacing_base": 0, "theme": "dark" }, "config_diff": {} }, "permissions": { "accept_waiting_requests": true, "can_accept_production_requests": true, "can_change_participant_permissions": true, "can_edit_display_name": true, "can_livestream": true, "can_record": true, "can_spotlight": true, "chat": { "private": { "can_receive": true, "can_send": true, "files": true, "text": true }, "public": { "can_send": true, "files": true, "text": true } }, "connected_meetings": { "can_alter_connected_meetings": true, "can_switch_connected_meetings": true, "can_switch_to_parent_meeting": true }, "disable_participant_audio": true, "disable_participant_screensharing": true, "disable_participant_video": true, "hidden_participant": true, "kick_participant": true, "media": { "audio": { "can_produce": "ALLOWED" }, "screenshare": { "can_produce": "ALLOWED" }, "video": { "can_produce": "ALLOWED" } }, "pin_participant": true, "plugins": { "can_close": true, "can_edit_config": true, "can_start": true, "config": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "polls": { "can_create": true, "can_view": true, "can_vote": true }, "recorder_type": "RECORDER", "show_participant_list": true, "waiting_room_type": "SKIP", "is_recorder": true } }, "success": true } ``` ## Delete a preset `client.RealtimeKit.Presets.Delete(ctx, appID, presetID, body) (*PresetDeleteResponse, error)` **delete** `/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}` Deletes a preset using the provided preset ID ### Parameters - `appID string` The app identifier tag. - `presetID string` - `body PresetDeleteParams` - `AccountID param.Field[string]` The account identifier tag. ### Returns - `type PresetDeleteResponse struct{…}` - `Data PresetDeleteResponseData` Data returned by the operation - `ID string` ID of the preset - `Config PresetDeleteResponseDataConfig` - `MaxScreenshareCount int64` Maximum number of screen shares that can be active at a given time - `MaxVideoStreams PresetDeleteResponseDataConfigMaxVideoStreams` Maximum number of streams that are visible on a device - `Desktop int64` Maximum number of video streams visible on desktop devices - `Mobile int64` Maximum number of streams visible on mobile devices - `Media PresetDeleteResponseDataConfigMedia` Media configuration options. eg: Video quality - `Screenshare PresetDeleteResponseDataConfigMediaScreenshare` Configuration options for participant screen shares - `FrameRate int64` Frame rate of screen share - `Quality PresetDeleteResponseDataConfigMediaScreenshareQuality` Quality of screen share - `const PresetDeleteResponseDataConfigMediaScreenshareQualityHD PresetDeleteResponseDataConfigMediaScreenshareQuality = "hd"` - `const PresetDeleteResponseDataConfigMediaScreenshareQualityVga PresetDeleteResponseDataConfigMediaScreenshareQuality = "vga"` - `const PresetDeleteResponseDataConfigMediaScreenshareQualityQvga PresetDeleteResponseDataConfigMediaScreenshareQuality = "qvga"` - `Video PresetDeleteResponseDataConfigMediaVideo` Configuration options for participant videos - `FrameRate int64` Frame rate of participants' video - `Quality PresetDeleteResponseDataConfigMediaVideoQuality` Video quality of participants - `const PresetDeleteResponseDataConfigMediaVideoQualityHD PresetDeleteResponseDataConfigMediaVideoQuality = "hd"` - `const PresetDeleteResponseDataConfigMediaVideoQualityVga PresetDeleteResponseDataConfigMediaVideoQuality = "vga"` - `const PresetDeleteResponseDataConfigMediaVideoQualityQvga PresetDeleteResponseDataConfigMediaVideoQuality = "qvga"` - `Audio PresetDeleteResponseDataConfigMediaAudio` Control options for Audio quality. - `EnableHighBitrate bool` Enable High Quality Audio for your meetings - `EnableStereo bool` Enable Stereo for your meetings - `ViewType PresetDeleteResponseDataConfigViewType` Type of the meeting - `const PresetDeleteResponseDataConfigViewTypeGroupCall PresetDeleteResponseDataConfigViewType = "GROUP_CALL"` - `const PresetDeleteResponseDataConfigViewTypeWebinar PresetDeleteResponseDataConfigViewType = "WEBINAR"` - `const PresetDeleteResponseDataConfigViewTypeAudioRoom PresetDeleteResponseDataConfigViewType = "AUDIO_ROOM"` - `Name string` Name of the preset - `UI PresetDeleteResponseDataUI` - `DesignTokens PresetDeleteResponseDataUIDesignTokens` - `BorderRadius PresetDeleteResponseDataUIDesignTokensBorderRadius` - `const PresetDeleteResponseDataUIDesignTokensBorderRadiusRounded PresetDeleteResponseDataUIDesignTokensBorderRadius = "rounded"` - `BorderWidth PresetDeleteResponseDataUIDesignTokensBorderWidth` - `const PresetDeleteResponseDataUIDesignTokensBorderWidthThin PresetDeleteResponseDataUIDesignTokensBorderWidth = "thin"` - `Colors PresetDeleteResponseDataUIDesignTokensColors` - `Background PresetDeleteResponseDataUIDesignTokensColorsBackground` - `Number1000 string` - `Number600 string` - `Number700 string` - `Number800 string` - `Number900 string` - `Brand PresetDeleteResponseDataUIDesignTokensColorsBrand` - `Number300 string` - `Number400 string` - `Number500 string` - `Number600 string` - `Number700 string` - `Danger string` - `Success string` - `Text string` - `TextOnBrand string` - `VideoBg string` - `Warning string` - `Logo string` - `SpacingBase float64` - `Theme PresetDeleteResponseDataUIDesignTokensTheme` - `const PresetDeleteResponseDataUIDesignTokensThemeDark PresetDeleteResponseDataUIDesignTokensTheme = "dark"` - `ConfigDiff unknown` - `Permissions PresetDeleteResponseDataPermissions` - `AcceptWaitingRequests bool` Whether this participant can accept waiting requests - `CanAcceptProductionRequests bool` - `CanChangeParticipantPermissions bool` - `CanEditDisplayName bool` - `CanLivestream bool` - `CanRecord bool` - `CanSpotlight bool` - `Chat PresetDeleteResponseDataPermissionsChat` Chat permissions - `Private PresetDeleteResponseDataPermissionsChatPrivate` - `CanReceive bool` - `CanSend bool` - `Files bool` - `Text bool` - `Public PresetDeleteResponseDataPermissionsChatPublic` - `CanSend bool` Can send messages in general - `Files bool` Can send file messages - `Text bool` Can send text messages - `ConnectedMeetings PresetDeleteResponseDataPermissionsConnectedMeetings` - `CanAlterConnectedMeetings bool` - `CanSwitchConnectedMeetings bool` - `CanSwitchToParentMeeting bool` - `DisableParticipantAudio bool` - `DisableParticipantScreensharing bool` - `DisableParticipantVideo bool` - `HiddenParticipant bool` Whether this participant is visible to others or not - `KickParticipant bool` - `Media PresetDeleteResponseDataPermissionsMedia` Media permissions - `Audio PresetDeleteResponseDataPermissionsMediaAudio` Audio permissions - `CanProduce PresetDeleteResponseDataPermissionsMediaAudioCanProduce` Can produce audio - `const PresetDeleteResponseDataPermissionsMediaAudioCanProduceAllowed PresetDeleteResponseDataPermissionsMediaAudioCanProduce = "ALLOWED"` - `const PresetDeleteResponseDataPermissionsMediaAudioCanProduceNotAllowed PresetDeleteResponseDataPermissionsMediaAudioCanProduce = "NOT_ALLOWED"` - `const PresetDeleteResponseDataPermissionsMediaAudioCanProduceCanRequest PresetDeleteResponseDataPermissionsMediaAudioCanProduce = "CAN_REQUEST"` - `Screenshare PresetDeleteResponseDataPermissionsMediaScreenshare` Screenshare permissions - `CanProduce PresetDeleteResponseDataPermissionsMediaScreenshareCanProduce` Can produce screen share video - `const PresetDeleteResponseDataPermissionsMediaScreenshareCanProduceAllowed PresetDeleteResponseDataPermissionsMediaScreenshareCanProduce = "ALLOWED"` - `const PresetDeleteResponseDataPermissionsMediaScreenshareCanProduceNotAllowed PresetDeleteResponseDataPermissionsMediaScreenshareCanProduce = "NOT_ALLOWED"` - `const PresetDeleteResponseDataPermissionsMediaScreenshareCanProduceCanRequest PresetDeleteResponseDataPermissionsMediaScreenshareCanProduce = "CAN_REQUEST"` - `Video PresetDeleteResponseDataPermissionsMediaVideo` Video permissions - `CanProduce PresetDeleteResponseDataPermissionsMediaVideoCanProduce` Can produce video - `const PresetDeleteResponseDataPermissionsMediaVideoCanProduceAllowed PresetDeleteResponseDataPermissionsMediaVideoCanProduce = "ALLOWED"` - `const PresetDeleteResponseDataPermissionsMediaVideoCanProduceNotAllowed PresetDeleteResponseDataPermissionsMediaVideoCanProduce = "NOT_ALLOWED"` - `const PresetDeleteResponseDataPermissionsMediaVideoCanProduceCanRequest PresetDeleteResponseDataPermissionsMediaVideoCanProduce = "CAN_REQUEST"` - `PinParticipant bool` - `Plugins PresetDeleteResponseDataPermissionsPlugins` Plugin permissions - `CanClose bool` Can close plugins that are already open - `CanEditConfig bool` Can edit plugin config - `CanStart bool` Can start plugins - `Config PresetDeleteResponseDataPermissionsPluginsConfigUnion` - `UnionString` - `type PresetDeleteResponseDataPermissionsPluginsConfigObject struct{…}` - `AccessControl PresetDeleteResponseDataPermissionsPluginsConfigObjectAccessControl` - `const PresetDeleteResponseDataPermissionsPluginsConfigObjectAccessControlFullAccess PresetDeleteResponseDataPermissionsPluginsConfigObjectAccessControl = "FULL_ACCESS"` - `const PresetDeleteResponseDataPermissionsPluginsConfigObjectAccessControlViewOnly PresetDeleteResponseDataPermissionsPluginsConfigObjectAccessControl = "VIEW_ONLY"` - `HandlesViewOnly bool` - `Polls PresetDeleteResponseDataPermissionsPolls` Poll permissions - `CanCreate bool` Can create polls - `CanView bool` Can view polls - `CanVote bool` Can vote on polls - `RecorderType PresetDeleteResponseDataPermissionsRecorderType` Type of the recording peer - `const PresetDeleteResponseDataPermissionsRecorderTypeRecorder PresetDeleteResponseDataPermissionsRecorderType = "RECORDER"` - `const PresetDeleteResponseDataPermissionsRecorderTypeLivestreamer PresetDeleteResponseDataPermissionsRecorderType = "LIVESTREAMER"` - `const PresetDeleteResponseDataPermissionsRecorderTypeNone PresetDeleteResponseDataPermissionsRecorderType = "NONE"` - `ShowParticipantList bool` - `WaitingRoomType PresetDeleteResponseDataPermissionsWaitingRoomType` Waiting room type - `const PresetDeleteResponseDataPermissionsWaitingRoomTypeSkip PresetDeleteResponseDataPermissionsWaitingRoomType = "SKIP"` - `const PresetDeleteResponseDataPermissionsWaitingRoomTypeOnPrivilegedUserEntry PresetDeleteResponseDataPermissionsWaitingRoomType = "ON_PRIVILEGED_USER_ENTRY"` - `const PresetDeleteResponseDataPermissionsWaitingRoomTypeSkipOnAccept PresetDeleteResponseDataPermissionsWaitingRoomType = "SKIP_ON_ACCEPT"` - `IsRecorder bool` - `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"), ) preset, err := client.RealtimeKit.Presets.Delete( context.TODO(), "app_id", "preset_id", realtime_kit.PresetDeleteParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", preset.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "max_screenshare_count": 0, "max_video_streams": { "desktop": 0, "mobile": 0 }, "media": { "screenshare": { "frame_rate": 0, "quality": "hd" }, "video": { "frame_rate": 30, "quality": "hd" }, "audio": { "enable_high_bitrate": true, "enable_stereo": true } }, "view_type": "GROUP_CALL" }, "name": "name", "ui": { "design_tokens": { "border_radius": "rounded", "border_width": "thin", "colors": { "background": { "600": "600", "700": "700", "800": "800", "900": "900", "1000": "1000" }, "brand": { "300": "300", "400": "400", "500": "500", "600": "600", "700": "700" }, "danger": "danger", "success": "success", "text": "text", "text_on_brand": "text_on_brand", "video_bg": "video_bg", "warning": "warning" }, "logo": "logo", "spacing_base": 0, "theme": "dark" }, "config_diff": {} }, "permissions": { "accept_waiting_requests": true, "can_accept_production_requests": true, "can_change_participant_permissions": true, "can_edit_display_name": true, "can_livestream": true, "can_record": true, "can_spotlight": true, "chat": { "private": { "can_receive": true, "can_send": true, "files": true, "text": true }, "public": { "can_send": true, "files": true, "text": true } }, "connected_meetings": { "can_alter_connected_meetings": true, "can_switch_connected_meetings": true, "can_switch_to_parent_meeting": true }, "disable_participant_audio": true, "disable_participant_screensharing": true, "disable_participant_video": true, "hidden_participant": true, "kick_participant": true, "media": { "audio": { "can_produce": "ALLOWED" }, "screenshare": { "can_produce": "ALLOWED" }, "video": { "can_produce": "ALLOWED" } }, "pin_participant": true, "plugins": { "can_close": true, "can_edit_config": true, "can_start": true, "config": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "polls": { "can_create": true, "can_view": true, "can_vote": true }, "recorder_type": "RECORDER", "show_participant_list": true, "waiting_room_type": "SKIP", "is_recorder": true } }, "success": true } ``` ## Update a preset `client.RealtimeKit.Presets.Update(ctx, appID, presetID, params) (*PresetUpdateResponse, error)` **patch** `/accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}` Update a preset by the provided preset ID ### Parameters - `appID string` The app identifier tag. - `presetID string` - `params PresetUpdateParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `Config param.Field[PresetUpdateParamsConfig]` Body param - `MaxScreenshareCount int64` Maximum number of screen shares that can be active at a given time - `MaxVideoStreams PresetUpdateParamsConfigMaxVideoStreams` Maximum number of streams that are visible on a device - `Desktop int64` Maximum number of video streams visible on desktop devices - `Mobile int64` Maximum number of streams visible on mobile devices - `Media PresetUpdateParamsConfigMedia` Media configuration options. eg: Video quality - `Screenshare PresetUpdateParamsConfigMediaScreenshare` Configuration options for participant screen shares - `FrameRate int64` Frame rate of screen share - `Quality PresetUpdateParamsConfigMediaScreenshareQuality` Quality of screen share - `const PresetUpdateParamsConfigMediaScreenshareQualityHD PresetUpdateParamsConfigMediaScreenshareQuality = "hd"` - `const PresetUpdateParamsConfigMediaScreenshareQualityVga PresetUpdateParamsConfigMediaScreenshareQuality = "vga"` - `const PresetUpdateParamsConfigMediaScreenshareQualityQvga PresetUpdateParamsConfigMediaScreenshareQuality = "qvga"` - `Video PresetUpdateParamsConfigMediaVideo` Configuration options for participant videos - `FrameRate int64` Frame rate of participants' video - `Quality PresetUpdateParamsConfigMediaVideoQuality` Video quality of participants - `const PresetUpdateParamsConfigMediaVideoQualityHD PresetUpdateParamsConfigMediaVideoQuality = "hd"` - `const PresetUpdateParamsConfigMediaVideoQualityVga PresetUpdateParamsConfigMediaVideoQuality = "vga"` - `const PresetUpdateParamsConfigMediaVideoQualityQvga PresetUpdateParamsConfigMediaVideoQuality = "qvga"` - `ViewType PresetUpdateParamsConfigViewType` Type of the meeting - `const PresetUpdateParamsConfigViewTypeGroupCall PresetUpdateParamsConfigViewType = "GROUP_CALL"` - `const PresetUpdateParamsConfigViewTypeWebinar PresetUpdateParamsConfigViewType = "WEBINAR"` - `const PresetUpdateParamsConfigViewTypeAudioRoom PresetUpdateParamsConfigViewType = "AUDIO_ROOM"` - `Name param.Field[string]` Body param: Name of the preset - `Permissions param.Field[PresetUpdateParamsPermissions]` Body param - `AcceptWaitingRequests bool` Whether this participant can accept waiting requests - `CanAcceptProductionRequests bool` - `CanChangeParticipantPermissions bool` - `CanEditDisplayName bool` - `CanLivestream bool` - `CanRecord bool` - `CanSpotlight bool` - `Chat PresetUpdateParamsPermissionsChat` Chat permissions - `Private PresetUpdateParamsPermissionsChatPrivate` - `CanReceive bool` - `CanSend bool` - `Files bool` - `Text bool` - `Public PresetUpdateParamsPermissionsChatPublic` - `CanSend bool` Can send messages in general - `Files bool` Can send file messages - `Text bool` Can send text messages - `ConnectedMeetings PresetUpdateParamsPermissionsConnectedMeetings` - `CanAlterConnectedMeetings bool` - `CanSwitchConnectedMeetings bool` - `CanSwitchToParentMeeting bool` - `DisableParticipantAudio bool` - `DisableParticipantScreensharing bool` - `DisableParticipantVideo bool` - `HiddenParticipant bool` Whether this participant is visible to others or not - `IsRecorder bool` - `KickParticipant bool` - `Media PresetUpdateParamsPermissionsMedia` Media permissions - `Audio PresetUpdateParamsPermissionsMediaAudio` Audio permissions - `CanProduce PresetUpdateParamsPermissionsMediaAudioCanProduce` Can produce audio - `const PresetUpdateParamsPermissionsMediaAudioCanProduceAllowed PresetUpdateParamsPermissionsMediaAudioCanProduce = "ALLOWED"` - `const PresetUpdateParamsPermissionsMediaAudioCanProduceNotAllowed PresetUpdateParamsPermissionsMediaAudioCanProduce = "NOT_ALLOWED"` - `const PresetUpdateParamsPermissionsMediaAudioCanProduceCanRequest PresetUpdateParamsPermissionsMediaAudioCanProduce = "CAN_REQUEST"` - `Screenshare PresetUpdateParamsPermissionsMediaScreenshare` Screenshare permissions - `CanProduce PresetUpdateParamsPermissionsMediaScreenshareCanProduce` Can produce screen share video - `const PresetUpdateParamsPermissionsMediaScreenshareCanProduceAllowed PresetUpdateParamsPermissionsMediaScreenshareCanProduce = "ALLOWED"` - `const PresetUpdateParamsPermissionsMediaScreenshareCanProduceNotAllowed PresetUpdateParamsPermissionsMediaScreenshareCanProduce = "NOT_ALLOWED"` - `const PresetUpdateParamsPermissionsMediaScreenshareCanProduceCanRequest PresetUpdateParamsPermissionsMediaScreenshareCanProduce = "CAN_REQUEST"` - `Video PresetUpdateParamsPermissionsMediaVideo` Video permissions - `CanProduce PresetUpdateParamsPermissionsMediaVideoCanProduce` Can produce video - `const PresetUpdateParamsPermissionsMediaVideoCanProduceAllowed PresetUpdateParamsPermissionsMediaVideoCanProduce = "ALLOWED"` - `const PresetUpdateParamsPermissionsMediaVideoCanProduceNotAllowed PresetUpdateParamsPermissionsMediaVideoCanProduce = "NOT_ALLOWED"` - `const PresetUpdateParamsPermissionsMediaVideoCanProduceCanRequest PresetUpdateParamsPermissionsMediaVideoCanProduce = "CAN_REQUEST"` - `PinParticipant bool` - `Plugins PresetUpdateParamsPermissionsPlugins` Plugin permissions - `CanClose bool` Can close plugins that are already open - `CanEditConfig bool` Can edit plugin config - `CanStart bool` Can start plugins - `Config PresetUpdateParamsPermissionsPluginsConfigUnion` - `UnionString` - `type PresetUpdateParamsPermissionsPluginsConfigObject struct{…}` - `AccessControl PresetUpdateParamsPermissionsPluginsConfigObjectAccessControl` - `const PresetUpdateParamsPermissionsPluginsConfigObjectAccessControlFullAccess PresetUpdateParamsPermissionsPluginsConfigObjectAccessControl = "FULL_ACCESS"` - `const PresetUpdateParamsPermissionsPluginsConfigObjectAccessControlViewOnly PresetUpdateParamsPermissionsPluginsConfigObjectAccessControl = "VIEW_ONLY"` - `HandlesViewOnly bool` - `Polls PresetUpdateParamsPermissionsPolls` Poll permissions - `CanCreate bool` Can create polls - `CanView bool` Can view polls - `CanVote bool` Can vote on polls - `RecorderType PresetUpdateParamsPermissionsRecorderType` Type of the recording peer - `const PresetUpdateParamsPermissionsRecorderTypeRecorder PresetUpdateParamsPermissionsRecorderType = "RECORDER"` - `const PresetUpdateParamsPermissionsRecorderTypeLivestreamer PresetUpdateParamsPermissionsRecorderType = "LIVESTREAMER"` - `const PresetUpdateParamsPermissionsRecorderTypeNone PresetUpdateParamsPermissionsRecorderType = "NONE"` - `ShowParticipantList bool` - `WaitingRoomType PresetUpdateParamsPermissionsWaitingRoomType` Waiting room type - `const PresetUpdateParamsPermissionsWaitingRoomTypeSkip PresetUpdateParamsPermissionsWaitingRoomType = "SKIP"` - `const PresetUpdateParamsPermissionsWaitingRoomTypeOnPrivilegedUserEntry PresetUpdateParamsPermissionsWaitingRoomType = "ON_PRIVILEGED_USER_ENTRY"` - `const PresetUpdateParamsPermissionsWaitingRoomTypeSkipOnAccept PresetUpdateParamsPermissionsWaitingRoomType = "SKIP_ON_ACCEPT"` - `UI param.Field[PresetUpdateParamsUI]` Body param - `ConfigDiff unknown` - `DesignTokens PresetUpdateParamsUIDesignTokens` - `BorderRadius PresetUpdateParamsUIDesignTokensBorderRadius` - `const PresetUpdateParamsUIDesignTokensBorderRadiusRounded PresetUpdateParamsUIDesignTokensBorderRadius = "rounded"` - `BorderWidth PresetUpdateParamsUIDesignTokensBorderWidth` - `const PresetUpdateParamsUIDesignTokensBorderWidthThin PresetUpdateParamsUIDesignTokensBorderWidth = "thin"` - `Colors PresetUpdateParamsUIDesignTokensColors` - `Background PresetUpdateParamsUIDesignTokensColorsBackground` - `Number1000 string` - `Number600 string` - `Number700 string` - `Number800 string` - `Number900 string` - `Brand PresetUpdateParamsUIDesignTokensColorsBrand` - `Number300 string` - `Number400 string` - `Number500 string` - `Number600 string` - `Number700 string` - `Danger string` - `Success string` - `Text string` - `TextOnBrand string` - `VideoBg string` - `Warning string` - `Logo string` - `SpacingBase float64` - `Theme PresetUpdateParamsUIDesignTokensTheme` - `const PresetUpdateParamsUIDesignTokensThemeDark PresetUpdateParamsUIDesignTokensTheme = "dark"` ### Returns - `type PresetUpdateResponse struct{…}` - `Data PresetUpdateResponseData` Data returned by the operation - `ID string` ID of the preset - `Config PresetUpdateResponseDataConfig` - `MaxScreenshareCount int64` Maximum number of screen shares that can be active at a given time - `MaxVideoStreams PresetUpdateResponseDataConfigMaxVideoStreams` Maximum number of streams that are visible on a device - `Desktop int64` Maximum number of video streams visible on desktop devices - `Mobile int64` Maximum number of streams visible on mobile devices - `Media PresetUpdateResponseDataConfigMedia` Media configuration options. eg: Video quality - `Screenshare PresetUpdateResponseDataConfigMediaScreenshare` Configuration options for participant screen shares - `FrameRate int64` Frame rate of screen share - `Quality PresetUpdateResponseDataConfigMediaScreenshareQuality` Quality of screen share - `const PresetUpdateResponseDataConfigMediaScreenshareQualityHD PresetUpdateResponseDataConfigMediaScreenshareQuality = "hd"` - `const PresetUpdateResponseDataConfigMediaScreenshareQualityVga PresetUpdateResponseDataConfigMediaScreenshareQuality = "vga"` - `const PresetUpdateResponseDataConfigMediaScreenshareQualityQvga PresetUpdateResponseDataConfigMediaScreenshareQuality = "qvga"` - `Video PresetUpdateResponseDataConfigMediaVideo` Configuration options for participant videos - `FrameRate int64` Frame rate of participants' video - `Quality PresetUpdateResponseDataConfigMediaVideoQuality` Video quality of participants - `const PresetUpdateResponseDataConfigMediaVideoQualityHD PresetUpdateResponseDataConfigMediaVideoQuality = "hd"` - `const PresetUpdateResponseDataConfigMediaVideoQualityVga PresetUpdateResponseDataConfigMediaVideoQuality = "vga"` - `const PresetUpdateResponseDataConfigMediaVideoQualityQvga PresetUpdateResponseDataConfigMediaVideoQuality = "qvga"` - `Audio PresetUpdateResponseDataConfigMediaAudio` Control options for Audio quality. - `EnableHighBitrate bool` Enable High Quality Audio for your meetings - `EnableStereo bool` Enable Stereo for your meetings - `ViewType PresetUpdateResponseDataConfigViewType` Type of the meeting - `const PresetUpdateResponseDataConfigViewTypeGroupCall PresetUpdateResponseDataConfigViewType = "GROUP_CALL"` - `const PresetUpdateResponseDataConfigViewTypeWebinar PresetUpdateResponseDataConfigViewType = "WEBINAR"` - `const PresetUpdateResponseDataConfigViewTypeAudioRoom PresetUpdateResponseDataConfigViewType = "AUDIO_ROOM"` - `Name string` Name of the preset - `UI PresetUpdateResponseDataUI` - `DesignTokens PresetUpdateResponseDataUIDesignTokens` - `BorderRadius PresetUpdateResponseDataUIDesignTokensBorderRadius` - `const PresetUpdateResponseDataUIDesignTokensBorderRadiusRounded PresetUpdateResponseDataUIDesignTokensBorderRadius = "rounded"` - `BorderWidth PresetUpdateResponseDataUIDesignTokensBorderWidth` - `const PresetUpdateResponseDataUIDesignTokensBorderWidthThin PresetUpdateResponseDataUIDesignTokensBorderWidth = "thin"` - `Colors PresetUpdateResponseDataUIDesignTokensColors` - `Background PresetUpdateResponseDataUIDesignTokensColorsBackground` - `Number1000 string` - `Number600 string` - `Number700 string` - `Number800 string` - `Number900 string` - `Brand PresetUpdateResponseDataUIDesignTokensColorsBrand` - `Number300 string` - `Number400 string` - `Number500 string` - `Number600 string` - `Number700 string` - `Danger string` - `Success string` - `Text string` - `TextOnBrand string` - `VideoBg string` - `Warning string` - `Logo string` - `SpacingBase float64` - `Theme PresetUpdateResponseDataUIDesignTokensTheme` - `const PresetUpdateResponseDataUIDesignTokensThemeDark PresetUpdateResponseDataUIDesignTokensTheme = "dark"` - `ConfigDiff unknown` - `Permissions PresetUpdateResponseDataPermissions` - `AcceptWaitingRequests bool` Whether this participant can accept waiting requests - `CanAcceptProductionRequests bool` - `CanChangeParticipantPermissions bool` - `CanEditDisplayName bool` - `CanLivestream bool` - `CanRecord bool` - `CanSpotlight bool` - `Chat PresetUpdateResponseDataPermissionsChat` Chat permissions - `Private PresetUpdateResponseDataPermissionsChatPrivate` - `CanReceive bool` - `CanSend bool` - `Files bool` - `Text bool` - `Public PresetUpdateResponseDataPermissionsChatPublic` - `CanSend bool` Can send messages in general - `Files bool` Can send file messages - `Text bool` Can send text messages - `ConnectedMeetings PresetUpdateResponseDataPermissionsConnectedMeetings` - `CanAlterConnectedMeetings bool` - `CanSwitchConnectedMeetings bool` - `CanSwitchToParentMeeting bool` - `DisableParticipantAudio bool` - `DisableParticipantScreensharing bool` - `DisableParticipantVideo bool` - `HiddenParticipant bool` Whether this participant is visible to others or not - `KickParticipant bool` - `Media PresetUpdateResponseDataPermissionsMedia` Media permissions - `Audio PresetUpdateResponseDataPermissionsMediaAudio` Audio permissions - `CanProduce PresetUpdateResponseDataPermissionsMediaAudioCanProduce` Can produce audio - `const PresetUpdateResponseDataPermissionsMediaAudioCanProduceAllowed PresetUpdateResponseDataPermissionsMediaAudioCanProduce = "ALLOWED"` - `const PresetUpdateResponseDataPermissionsMediaAudioCanProduceNotAllowed PresetUpdateResponseDataPermissionsMediaAudioCanProduce = "NOT_ALLOWED"` - `const PresetUpdateResponseDataPermissionsMediaAudioCanProduceCanRequest PresetUpdateResponseDataPermissionsMediaAudioCanProduce = "CAN_REQUEST"` - `Screenshare PresetUpdateResponseDataPermissionsMediaScreenshare` Screenshare permissions - `CanProduce PresetUpdateResponseDataPermissionsMediaScreenshareCanProduce` Can produce screen share video - `const PresetUpdateResponseDataPermissionsMediaScreenshareCanProduceAllowed PresetUpdateResponseDataPermissionsMediaScreenshareCanProduce = "ALLOWED"` - `const PresetUpdateResponseDataPermissionsMediaScreenshareCanProduceNotAllowed PresetUpdateResponseDataPermissionsMediaScreenshareCanProduce = "NOT_ALLOWED"` - `const PresetUpdateResponseDataPermissionsMediaScreenshareCanProduceCanRequest PresetUpdateResponseDataPermissionsMediaScreenshareCanProduce = "CAN_REQUEST"` - `Video PresetUpdateResponseDataPermissionsMediaVideo` Video permissions - `CanProduce PresetUpdateResponseDataPermissionsMediaVideoCanProduce` Can produce video - `const PresetUpdateResponseDataPermissionsMediaVideoCanProduceAllowed PresetUpdateResponseDataPermissionsMediaVideoCanProduce = "ALLOWED"` - `const PresetUpdateResponseDataPermissionsMediaVideoCanProduceNotAllowed PresetUpdateResponseDataPermissionsMediaVideoCanProduce = "NOT_ALLOWED"` - `const PresetUpdateResponseDataPermissionsMediaVideoCanProduceCanRequest PresetUpdateResponseDataPermissionsMediaVideoCanProduce = "CAN_REQUEST"` - `PinParticipant bool` - `Plugins PresetUpdateResponseDataPermissionsPlugins` Plugin permissions - `CanClose bool` Can close plugins that are already open - `CanEditConfig bool` Can edit plugin config - `CanStart bool` Can start plugins - `Config PresetUpdateResponseDataPermissionsPluginsConfigUnion` - `UnionString` - `type PresetUpdateResponseDataPermissionsPluginsConfigObject struct{…}` - `AccessControl PresetUpdateResponseDataPermissionsPluginsConfigObjectAccessControl` - `const PresetUpdateResponseDataPermissionsPluginsConfigObjectAccessControlFullAccess PresetUpdateResponseDataPermissionsPluginsConfigObjectAccessControl = "FULL_ACCESS"` - `const PresetUpdateResponseDataPermissionsPluginsConfigObjectAccessControlViewOnly PresetUpdateResponseDataPermissionsPluginsConfigObjectAccessControl = "VIEW_ONLY"` - `HandlesViewOnly bool` - `Polls PresetUpdateResponseDataPermissionsPolls` Poll permissions - `CanCreate bool` Can create polls - `CanView bool` Can view polls - `CanVote bool` Can vote on polls - `RecorderType PresetUpdateResponseDataPermissionsRecorderType` Type of the recording peer - `const PresetUpdateResponseDataPermissionsRecorderTypeRecorder PresetUpdateResponseDataPermissionsRecorderType = "RECORDER"` - `const PresetUpdateResponseDataPermissionsRecorderTypeLivestreamer PresetUpdateResponseDataPermissionsRecorderType = "LIVESTREAMER"` - `const PresetUpdateResponseDataPermissionsRecorderTypeNone PresetUpdateResponseDataPermissionsRecorderType = "NONE"` - `ShowParticipantList bool` - `WaitingRoomType PresetUpdateResponseDataPermissionsWaitingRoomType` Waiting room type - `const PresetUpdateResponseDataPermissionsWaitingRoomTypeSkip PresetUpdateResponseDataPermissionsWaitingRoomType = "SKIP"` - `const PresetUpdateResponseDataPermissionsWaitingRoomTypeOnPrivilegedUserEntry PresetUpdateResponseDataPermissionsWaitingRoomType = "ON_PRIVILEGED_USER_ENTRY"` - `const PresetUpdateResponseDataPermissionsWaitingRoomTypeSkipOnAccept PresetUpdateResponseDataPermissionsWaitingRoomType = "SKIP_ON_ACCEPT"` - `IsRecorder bool` - `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"), ) preset, err := client.RealtimeKit.Presets.Update( context.TODO(), "app_id", "preset_id", realtime_kit.PresetUpdateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", preset.Data) } ``` #### Response ```json { "data": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "config": { "max_screenshare_count": 0, "max_video_streams": { "desktop": 0, "mobile": 0 }, "media": { "screenshare": { "frame_rate": 0, "quality": "hd" }, "video": { "frame_rate": 30, "quality": "hd" }, "audio": { "enable_high_bitrate": true, "enable_stereo": true } }, "view_type": "GROUP_CALL" }, "name": "name", "ui": { "design_tokens": { "border_radius": "rounded", "border_width": "thin", "colors": { "background": { "600": "600", "700": "700", "800": "800", "900": "900", "1000": "1000" }, "brand": { "300": "300", "400": "400", "500": "500", "600": "600", "700": "700" }, "danger": "danger", "success": "success", "text": "text", "text_on_brand": "text_on_brand", "video_bg": "video_bg", "warning": "warning" }, "logo": "logo", "spacing_base": 0, "theme": "dark" }, "config_diff": {} }, "permissions": { "accept_waiting_requests": true, "can_accept_production_requests": true, "can_change_participant_permissions": true, "can_edit_display_name": true, "can_livestream": true, "can_record": true, "can_spotlight": true, "chat": { "private": { "can_receive": true, "can_send": true, "files": true, "text": true }, "public": { "can_send": true, "files": true, "text": true } }, "connected_meetings": { "can_alter_connected_meetings": true, "can_switch_connected_meetings": true, "can_switch_to_parent_meeting": true }, "disable_participant_audio": true, "disable_participant_screensharing": true, "disable_participant_video": true, "hidden_participant": true, "kick_participant": true, "media": { "audio": { "can_produce": "ALLOWED" }, "screenshare": { "can_produce": "ALLOWED" }, "video": { "can_produce": "ALLOWED" } }, "pin_participant": true, "plugins": { "can_close": true, "can_edit_config": true, "can_start": true, "config": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "polls": { "can_create": true, "can_view": true, "can_vote": true }, "recorder_type": "RECORDER", "show_participant_list": true, "waiting_room_type": "SKIP", "is_recorder": true } }, "success": true } ```