## 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 } ```