zulip_api/message/register/response.rs
1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::{
6 field_access, impl_default, impl_display, impl_response, message::response::BaseResponse,
7 BasicChannel, Bot, ChannelFolder, CrossRealmBot, CustomProfileField, CustomProfileFieldType,
8 DefaultChannelGroup, Draft, GiphyRatingOption, GroupSetting, MutedTopic, MutedUser,
9 NavigationView, NeverSubscribed, OnboardingStep, PresenceList, PushDevice,
10 RealmAuthenticationMethod, RealmAvailableVideoChatProvider, RealmBilling,
11 RealmCreatePrivateStreamPolicy, RealmCreatePublicStreamPolicy,
12 RealmCreateWebPublicStreamPolicy, RealmDefaultExternalAccount, RealmDomain, RealmEmbeddedBot,
13 RealmEmoji, RealmFilter, RealmIncomingWebhookBot, RealmLinkifier,
14 RealmMessageEditHistoryVisibilityPolicy, RealmOrganizationType, RealmPlanType, RealmPlayground,
15 RealmUserSettingsDefault, RealmVideoChatProvider, RealmWildcardMentionPolicy,
16 RecentPrivateConversation, SavedSnippet, ScheduledMessage, ServerSupportedPermissionSetting,
17 ServerThumbnailFormat, Subscription, TopicsPolicy, UnreadMsgs, User, UserGroup, UserSettings,
18 UserSettingsEmojisetChoice, UserStatus, UserTopic,
19};
20
21/// Represents the response to a `Register` Zulip API request.
22///
23/// Modified from `openapi-generator-cli` output:
24///
25/// ```shell,no_build,no_run
26/// $ openapi-generator-cli generate -g rust -i ./zerver/openapi/zulip.yaml -o zulip-openapi --skip-validate-spec
27/// ```
28///
29/// ```text
30/// /*
31/// * Zulip REST API
32/// *
33/// * Powerful open source group chat
34/// *
35/// * The version of the OpenAPI document: 1.0.0
36/// *
37/// * Generated by: https://openapi-generator.tech
38/// */
39/// ```
40///
41/// See [zerver/openapi/zulip.yaml](https://github.com/zulip/zulip/blob/main/zerver/openapi/zulip.yaml) for the original OpenAPI configuration.
42///
43/// Configuration slightly modified to work with the Rust generator of [`openapi-generator-cli`](https://openapi-generator.tech).
44#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
45pub struct Response {
46 #[serde(flatten)]
47 base: BaseResponse,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 ignored_parameters_unsupported: Option<Vec<String>>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 queue_id: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 last_event_id: Option<i64>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 zulip_feature_level: Option<i64>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 zulip_version: Option<String>,
58 #[serde(skip_serializing_if = "Option::is_none")]
59 zulip_merge_base: Option<String>,
60 #[serde(skip_serializing_if = "Option::is_none")]
61 alert_words: Option<Vec<String>>,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 custom_profile_fields: Option<Vec<CustomProfileField>>,
64 #[serde(skip_serializing_if = "Option::is_none")]
65 custom_profile_field_types: Option<HashMap<String, CustomProfileFieldType>>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 realm_date_created: Option<i64>,
68 #[serde(skip_serializing_if = "Option::is_none")]
69 demo_organization_scheduled_deletion_date: Option<i64>,
70 #[serde(skip_serializing_if = "Option::is_none")]
71 drafts: Option<Vec<Draft>>,
72 #[serde(skip_serializing_if = "Option::is_none")]
73 onboarding_steps: Option<Vec<OnboardingStep>>,
74 #[serde(skip_serializing_if = "Option::is_none")]
75 navigation_tour_video_url: Option<String>,
76 #[serde(skip_serializing_if = "Option::is_none")]
77 max_message_id: Option<i64>,
78 #[serde(skip_serializing_if = "Option::is_none")]
79 max_reminder_note_length: Option<i64>,
80 #[serde(skip_serializing_if = "Option::is_none")]
81 max_stream_name_length: Option<i64>,
82 #[serde(skip_serializing_if = "Option::is_none")]
83 max_stream_description_length: Option<i64>,
84 #[serde(skip_serializing_if = "Option::is_none")]
85 max_channel_folder_name_length: Option<i64>,
86 #[serde(skip_serializing_if = "Option::is_none")]
87 max_channel_folder_description_length: Option<i64>,
88 #[serde(skip_serializing_if = "Option::is_none")]
89 max_topic_length: Option<i64>,
90 #[serde(skip_serializing_if = "Option::is_none")]
91 max_message_length: Option<i64>,
92 #[serde(skip_serializing_if = "Option::is_none")]
93 server_min_deactivated_realm_deletion_days: Option<i64>,
94 #[serde(skip_serializing_if = "Option::is_none")]
95 server_max_deactivated_realm_deletion_days: Option<i64>,
96 #[serde(skip_serializing_if = "Option::is_none")]
97 server_presence_ping_interval_seconds: Option<i64>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 server_presence_offline_threshold_seconds: Option<i64>,
100 #[serde(skip_serializing_if = "Option::is_none")]
101 server_typing_started_expiry_period_milliseconds: Option<i64>,
102 #[serde(skip_serializing_if = "Option::is_none")]
103 server_typing_stopped_wait_period_milliseconds: Option<i64>,
104 #[serde(skip_serializing_if = "Option::is_none")]
105 server_typing_started_wait_period_milliseconds: Option<i64>,
106 #[serde(skip_serializing_if = "Option::is_none")]
107 scheduled_messages: Option<Vec<ScheduledMessage>>,
108 #[serde(skip_serializing_if = "Option::is_none")]
109 reminders: Option<Vec<ScheduledMessage>>,
110 #[serde(skip_serializing_if = "Option::is_none")]
111 muted_topics: Option<Vec<MutedTopic>>,
112 #[serde(skip_serializing_if = "Option::is_none")]
113 muted_users: Option<Vec<MutedUser>>,
114 #[serde(skip_serializing_if = "Option::is_none")]
115 presences: Option<PresenceList>,
116 #[serde(skip_serializing_if = "Option::is_none")]
117 presence_last_update_id: Option<i64>,
118 #[serde(skip_serializing_if = "Option::is_none")]
119 server_timestamp: Option<f64>,
120 #[serde(skip_serializing_if = "Option::is_none")]
121 realm_domains: Option<Vec<RealmDomain>>,
122 #[serde(skip_serializing_if = "Option::is_none")]
123 realm_emoji: Option<std::collections::HashMap<String, RealmEmoji>>,
124 #[serde(skip_serializing_if = "Option::is_none")]
125 realm_linkifiers: Option<Vec<RealmLinkifier>>,
126 #[serde(skip_serializing_if = "Option::is_none")]
127 realm_filters: Option<Vec<RealmFilter>>,
128 #[serde(skip_serializing_if = "Option::is_none")]
129 realm_playgrounds: Option<Vec<RealmPlayground>>,
130 #[serde(skip_serializing_if = "Option::is_none")]
131 realm_user_groups: Option<Vec<UserGroup>>,
132 #[serde(skip_serializing_if = "Option::is_none")]
133 realm_bots: Option<Vec<Bot>>,
134 #[serde(skip_serializing_if = "Option::is_none")]
135 realm_embedded_bots: Option<Vec<RealmEmbeddedBot>>,
136 #[serde(skip_serializing_if = "Option::is_none")]
137 realm_incoming_webhook_bots: Option<Vec<RealmIncomingWebhookBot>>,
138 #[serde(skip_serializing_if = "Option::is_none")]
139 recent_private_conversations: Option<Vec<RecentPrivateConversation>>,
140 #[serde(skip_serializing_if = "Option::is_none")]
141 navigation_views: Option<Vec<NavigationView>>,
142 #[serde(skip_serializing_if = "Option::is_none")]
143 saved_snippets: Option<Vec<SavedSnippet>>,
144 #[serde(skip_serializing_if = "Option::is_none")]
145 subscriptions: Option<Vec<Subscription>>,
146 #[serde(skip_serializing_if = "Option::is_none")]
147 unsubscribed: Option<Vec<Subscription>>,
148 #[serde(skip_serializing_if = "Option::is_none")]
149 never_subscribed: Option<Vec<NeverSubscribed>>,
150 #[serde(skip_serializing_if = "Option::is_none")]
151 channel_folders: Option<Vec<ChannelFolder>>,
152 #[serde(skip_serializing_if = "Option::is_none")]
153 unread_msgs: Option<UnreadMsgs>,
154 #[serde(skip_serializing_if = "Option::is_none")]
155 starred_messages: Option<Vec<i64>>,
156 #[serde(skip_serializing_if = "Option::is_none")]
157 streams: Option<Vec<BasicChannel>>,
158 #[serde(skip_serializing_if = "Option::is_none")]
159 realm_default_streams: Option<Vec<i64>>,
160 #[serde(skip_serializing_if = "Option::is_none")]
161 realm_default_stream_groups: Option<Vec<DefaultChannelGroup>>,
162 #[serde(skip_serializing_if = "Option::is_none")]
163 stop_words: Option<Vec<String>>,
164 #[serde(skip_serializing_if = "Option::is_none")]
165 user_status: Option<std::collections::HashMap<String, UserStatus>>,
166 #[serde(skip_serializing_if = "Option::is_none")]
167 user_settings: Option<UserSettings>,
168 #[serde(skip_serializing_if = "Option::is_none")]
169 user_topics: Option<Vec<UserTopic>>,
170 #[serde(skip_serializing_if = "Option::is_none")]
171 has_zoom_token: Option<bool>,
172 #[serde(skip_serializing_if = "Option::is_none")]
173 giphy_api_key: Option<String>,
174 #[serde(skip_serializing_if = "Option::is_none")]
175 push_devices: Option<std::collections::HashMap<String, PushDevice>>,
176 #[serde(skip_serializing_if = "Option::is_none")]
177 enable_desktop_notifications: Option<bool>,
178 #[serde(skip_serializing_if = "Option::is_none")]
179 enable_digest_emails: Option<bool>,
180 #[serde(skip_serializing_if = "Option::is_none")]
181 enable_login_emails: Option<bool>,
182 #[serde(skip_serializing_if = "Option::is_none")]
183 enable_marketing_emails: Option<bool>,
184 #[serde(skip_serializing_if = "Option::is_none")]
185 email_notifications_batching_period_seconds: Option<i64>,
186 #[serde(skip_serializing_if = "Option::is_none")]
187 enable_offline_email_notifications: Option<bool>,
188 #[serde(skip_serializing_if = "Option::is_none")]
189 enable_offline_push_notifications: Option<bool>,
190 #[serde(skip_serializing_if = "Option::is_none")]
191 enable_online_push_notifications: Option<bool>,
192 #[serde(skip_serializing_if = "Option::is_none")]
193 enable_sounds: Option<bool>,
194 #[serde(skip_serializing_if = "Option::is_none")]
195 enable_stream_desktop_notifications: Option<bool>,
196 #[serde(skip_serializing_if = "Option::is_none")]
197 enable_stream_email_notifications: Option<bool>,
198 #[serde(skip_serializing_if = "Option::is_none")]
199 enable_stream_push_notifications: Option<bool>,
200 #[serde(skip_serializing_if = "Option::is_none")]
201 enable_stream_audible_notifications: Option<bool>,
202 #[serde(skip_serializing_if = "Option::is_none")]
203 wildcard_mentions_notify: Option<bool>,
204 #[serde(skip_serializing_if = "Option::is_none")]
205 message_content_in_email_notifications: Option<bool>,
206 #[serde(skip_serializing_if = "Option::is_none")]
207 notification_sound: Option<String>,
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pm_content_in_desktop_notifications: Option<bool>,
210 #[serde(skip_serializing_if = "Option::is_none")]
211 desktop_icon_count_display: Option<i64>,
212 #[serde(skip_serializing_if = "Option::is_none")]
213 realm_name_in_email_notifications_policy: Option<i64>,
214 #[serde(skip_serializing_if = "Option::is_none")]
215 presence_enabled: Option<bool>,
216 #[serde(skip_serializing_if = "Option::is_none")]
217 available_notification_sounds: Option<Vec<String>>,
218 #[serde(skip_serializing_if = "Option::is_none")]
219 color_scheme: Option<i64>,
220 #[serde(skip_serializing_if = "Option::is_none")]
221 default_language: Option<String>,
222 #[serde(skip_serializing_if = "Option::is_none")]
223 demote_inactive_streams: Option<i64>,
224 #[serde(skip_serializing_if = "Option::is_none")]
225 emojiset: Option<String>,
226 #[serde(skip_serializing_if = "Option::is_none")]
227 enable_drafts_synchronization: Option<bool>,
228 #[serde(skip_serializing_if = "Option::is_none")]
229 fluid_layout_width: Option<bool>,
230 #[serde(skip_serializing_if = "Option::is_none")]
231 web_home_view: Option<String>,
232 #[serde(skip_serializing_if = "Option::is_none")]
233 high_contrast_mode: Option<bool>,
234 #[serde(skip_serializing_if = "Option::is_none")]
235 left_side_userlist: Option<bool>,
236 #[serde(skip_serializing_if = "Option::is_none")]
237 starred_message_counts: Option<bool>,
238 #[serde(skip_serializing_if = "Option::is_none")]
239 timezone: Option<String>,
240 #[serde(skip_serializing_if = "Option::is_none")]
241 translate_emoticons: Option<bool>,
242 #[serde(skip_serializing_if = "Option::is_none")]
243 twenty_four_hour_time: Option<bool>,
244 #[serde(skip_serializing_if = "Option::is_none")]
245 receives_typing_notifications: Option<bool>,
246 #[serde(skip_serializing_if = "Option::is_none")]
247 enter_sends: Option<bool>,
248 #[serde(skip_serializing_if = "Option::is_none")]
249 emojiset_choices: Option<Vec<UserSettingsEmojisetChoice>>,
250 #[serde(skip_serializing_if = "Option::is_none")]
251 realm_message_edit_history_visibility_policy: Option<RealmMessageEditHistoryVisibilityPolicy>,
252 #[serde(skip_serializing_if = "Option::is_none")]
253 realm_allow_edit_history: Option<bool>,
254 #[serde(skip_serializing_if = "Option::is_none")]
255 realm_can_add_custom_emoji_group: Option<GroupSetting>,
256 #[serde(skip_serializing_if = "Option::is_none")]
257 realm_can_add_subscribers_group: Option<GroupSetting>,
258 #[serde(skip_serializing_if = "Option::is_none")]
259 realm_can_delete_any_message_group: Option<GroupSetting>,
260 #[serde(skip_serializing_if = "Option::is_none")]
261 realm_can_delete_own_message_group: Option<GroupSetting>,
262 #[serde(skip_serializing_if = "Option::is_none")]
263 realm_can_set_delete_message_policy_group: Option<GroupSetting>,
264 #[serde(skip_serializing_if = "Option::is_none")]
265 realm_can_set_topics_policy_group: Option<GroupSetting>,
266 #[serde(skip_serializing_if = "Option::is_none")]
267 realm_can_invite_users_group: Option<GroupSetting>,
268 #[serde(skip_serializing_if = "Option::is_none")]
269 realm_can_mention_many_users_group: Option<GroupSetting>,
270 #[serde(skip_serializing_if = "Option::is_none")]
271 realm_can_move_messages_between_channels_group: Option<GroupSetting>,
272 #[serde(skip_serializing_if = "Option::is_none")]
273 realm_can_move_messages_between_topics_group: Option<GroupSetting>,
274 #[serde(skip_serializing_if = "Option::is_none")]
275 realm_can_create_groups: Option<GroupSetting>,
276 #[serde(skip_serializing_if = "Option::is_none")]
277 realm_can_create_bots_group: Option<GroupSetting>,
278 #[serde(skip_serializing_if = "Option::is_none")]
279 realm_can_create_write_only_bots_group: Option<GroupSetting>,
280 #[serde(skip_serializing_if = "Option::is_none")]
281 realm_can_manage_all_groups: Option<GroupSetting>,
282 #[serde(skip_serializing_if = "Option::is_none")]
283 realm_can_manage_billing_group: Option<GroupSetting>,
284 #[serde(skip_serializing_if = "Option::is_none")]
285 realm_can_create_public_channel_group: Option<GroupSetting>,
286 #[serde(skip_serializing_if = "Option::is_none")]
287 realm_can_create_private_channel_group: Option<GroupSetting>,
288 #[serde(skip_serializing_if = "Option::is_none")]
289 realm_can_create_web_public_channel_group: Option<GroupSetting>,
290 #[serde(skip_serializing_if = "Option::is_none")]
291 realm_can_resolve_topics_group: Option<GroupSetting>,
292 #[serde(skip_serializing_if = "Option::is_none")]
293 realm_create_public_stream_policy: Option<RealmCreatePublicStreamPolicy>,
294 #[serde(skip_serializing_if = "Option::is_none")]
295 realm_create_private_stream_policy: Option<RealmCreatePrivateStreamPolicy>,
296 #[serde(skip_serializing_if = "Option::is_none")]
297 realm_create_web_public_stream_policy: Option<RealmCreateWebPublicStreamPolicy>,
298 #[serde(skip_serializing_if = "Option::is_none")]
299 realm_wildcard_mention_policy: Option<RealmWildcardMentionPolicy>,
300 #[serde(skip_serializing_if = "Option::is_none")]
301 realm_default_language: Option<String>,
302 #[serde(skip_serializing_if = "Option::is_none")]
303 realm_welcome_message_custom_text: Option<String>,
304 #[serde(skip_serializing_if = "Option::is_none")]
305 realm_description: Option<String>,
306 #[serde(skip_serializing_if = "Option::is_none")]
307 realm_digest_emails_enabled: Option<bool>,
308 #[serde(skip_serializing_if = "Option::is_none")]
309 realm_disallow_disposable_email_addresses: Option<bool>,
310 #[serde(skip_serializing_if = "Option::is_none")]
311 realm_email_changes_disabled: Option<bool>,
312 #[serde(skip_serializing_if = "Option::is_none")]
313 realm_invite_required: Option<bool>,
314 #[serde(skip_serializing_if = "Option::is_none")]
315 realm_create_multiuse_invite_group: Option<GroupSetting>,
316 #[serde(skip_serializing_if = "Option::is_none")]
317 realm_inline_image_preview: Option<bool>,
318 #[serde(skip_serializing_if = "Option::is_none")]
319 realm_inline_url_embed_preview: Option<bool>,
320 #[serde(skip_serializing_if = "Option::is_none")]
321 realm_topics_policy: Option<TopicsPolicy>,
322 #[serde(skip_serializing_if = "Option::is_none")]
323 realm_mandatory_topics: Option<bool>,
324 #[serde(skip_serializing_if = "Option::is_none")]
325 realm_message_retention_days: Option<i64>,
326 #[serde(skip_serializing_if = "Option::is_none")]
327 realm_name: Option<String>,
328 #[serde(skip_serializing_if = "Option::is_none")]
329 realm_require_e2ee_push_notifications: Option<bool>,
330 #[serde(skip_serializing_if = "Option::is_none")]
331 realm_require_unique_names: Option<bool>,
332 #[serde(skip_serializing_if = "Option::is_none")]
333 realm_name_changes_disabled: Option<bool>,
334 #[serde(skip_serializing_if = "Option::is_none")]
335 realm_avatar_changes_disabled: Option<bool>,
336 #[serde(skip_serializing_if = "Option::is_none")]
337 realm_emails_restricted_to_domains: Option<bool>,
338 #[serde(skip_serializing_if = "Option::is_none")]
339 realm_send_welcome_emails: Option<bool>,
340 #[serde(skip_serializing_if = "Option::is_none")]
341 realm_message_content_allowed_in_email_notifications: Option<bool>,
342 #[serde(skip_serializing_if = "Option::is_none")]
343 realm_enable_spectator_access: Option<bool>,
344 #[serde(skip_serializing_if = "Option::is_none")]
345 realm_want_advertise_in_communities_directory: Option<bool>,
346 #[serde(skip_serializing_if = "Option::is_none")]
347 realm_video_chat_provider: Option<RealmVideoChatProvider>,
348 #[serde(skip_serializing_if = "Option::is_none")]
349 realm_jitsi_server_url: Option<String>,
350 #[serde(skip_serializing_if = "Option::is_none")]
351 realm_giphy_rating: Option<i64>,
352 #[serde(skip_serializing_if = "Option::is_none")]
353 realm_waiting_period_threshold: Option<i64>,
354 #[serde(skip_serializing_if = "Option::is_none")]
355 realm_digest_weekday: Option<i64>,
356 #[serde(skip_serializing_if = "Option::is_none")]
357 realm_direct_message_initiator_group: Option<GroupSetting>,
358 #[serde(skip_serializing_if = "Option::is_none")]
359 realm_direct_message_permission_group: Option<GroupSetting>,
360 #[serde(skip_serializing_if = "Option::is_none")]
361 realm_default_code_block_language: Option<String>,
362 #[serde(skip_serializing_if = "Option::is_none")]
363 realm_message_content_delete_limit_seconds: Option<i64>,
364 #[serde(skip_serializing_if = "Option::is_none")]
365 realm_authentication_methods: Option<HashMap<String, RealmAuthenticationMethod>>,
366 #[serde(skip_serializing_if = "Option::is_none")]
367 realm_allow_message_editing: Option<bool>,
368 #[serde(skip_serializing_if = "Option::is_none")]
369 realm_message_content_edit_limit_seconds: Option<i64>,
370 #[serde(skip_serializing_if = "Option::is_none")]
371 realm_move_messages_within_stream_limit_seconds: Option<i64>,
372 #[serde(skip_serializing_if = "Option::is_none")]
373 realm_move_messages_between_streams_limit_seconds: Option<i64>,
374 #[serde(skip_serializing_if = "Option::is_none")]
375 realm_enable_read_receipts: Option<bool>,
376 #[serde(skip_serializing_if = "Option::is_none")]
377 realm_icon_url: Option<String>,
378 #[serde(skip_serializing_if = "Option::is_none")]
379 realm_icon_source: Option<String>,
380 #[serde(skip_serializing_if = "Option::is_none")]
381 max_icon_file_size_mib: Option<i64>,
382 #[serde(skip_serializing_if = "Option::is_none")]
383 realm_logo_url: Option<String>,
384 #[serde(skip_serializing_if = "Option::is_none")]
385 realm_logo_source: Option<String>,
386 #[serde(skip_serializing_if = "Option::is_none")]
387 realm_night_logo_url: Option<String>,
388 #[serde(skip_serializing_if = "Option::is_none")]
389 realm_night_logo_source: Option<String>,
390 #[serde(skip_serializing_if = "Option::is_none")]
391 max_logo_file_size_mib: Option<i64>,
392 #[serde(skip_serializing_if = "Option::is_none")]
393 realm_bot_domain: Option<String>,
394 #[serde(skip_serializing_if = "Option::is_none")]
395 realm_uri: Option<String>,
396 #[serde(skip_serializing_if = "Option::is_none")]
397 realm_url: Option<String>,
398 #[serde(skip_serializing_if = "Option::is_none")]
399 realm_available_video_chat_providers: Option<HashMap<String, RealmAvailableVideoChatProvider>>,
400 #[serde(skip_serializing_if = "Option::is_none")]
401 realm_presence_disabled: Option<bool>,
402 #[serde(skip_serializing_if = "Option::is_none")]
403 settings_send_digest_emails: Option<bool>,
404 #[serde(skip_serializing_if = "Option::is_none")]
405 realm_email_auth_enabled: Option<bool>,
406 #[serde(skip_serializing_if = "Option::is_none")]
407 realm_password_auth_enabled: Option<bool>,
408 #[serde(skip_serializing_if = "Option::is_none")]
409 realm_push_notifications_enabled: Option<bool>,
410 #[serde(skip_serializing_if = "Option::is_none")]
411 realm_push_notifications_enabled_end_timestamp: Option<i64>,
412 #[serde(skip_serializing_if = "Option::is_none")]
413 realm_upload_quota_mib: Option<i64>,
414 #[serde(skip_serializing_if = "Option::is_none")]
415 realm_org_type: Option<RealmOrganizationType>,
416 #[serde(skip_serializing_if = "Option::is_none")]
417 realm_plan_type: Option<RealmPlanType>,
418 #[serde(skip_serializing_if = "Option::is_none")]
419 realm_enable_guest_user_dm_warning: Option<bool>,
420 #[serde(skip_serializing_if = "Option::is_none")]
421 realm_enable_guest_user_indicator: Option<bool>,
422 #[serde(skip_serializing_if = "Option::is_none")]
423 realm_can_access_all_users_group: Option<GroupSetting>,
424 #[serde(skip_serializing_if = "Option::is_none")]
425 realm_can_summarize_topics_group: Option<GroupSetting>,
426 #[serde(skip_serializing_if = "Option::is_none")]
427 zulip_plan_is_not_limited: Option<bool>,
428 #[serde(skip_serializing_if = "Option::is_none")]
429 upgrade_text_for_wide_organization_logo: Option<String>,
430 #[serde(skip_serializing_if = "Option::is_none")]
431 realm_default_external_accounts: Option<HashMap<String, RealmDefaultExternalAccount>>,
432 #[serde(skip_serializing_if = "Option::is_none")]
433 jitsi_server_url: Option<String>,
434 #[serde(skip_serializing_if = "Option::is_none")]
435 development_environment: Option<bool>,
436 #[serde(skip_serializing_if = "Option::is_none")]
437 server_generation: Option<i64>,
438 #[serde(skip_serializing_if = "Option::is_none")]
439 password_min_length: Option<i64>,
440 #[serde(skip_serializing_if = "Option::is_none")]
441 password_max_length: Option<i64>,
442 #[serde(skip_serializing_if = "Option::is_none")]
443 password_min_guesses: Option<i64>,
444 #[serde(skip_serializing_if = "Option::is_none")]
445 giphy_rating_options: Option<HashMap<String, GiphyRatingOption>>,
446 #[serde(skip_serializing_if = "Option::is_none")]
447 max_file_upload_size_mib: Option<i64>,
448 #[serde(skip_serializing_if = "Option::is_none")]
449 max_avatar_file_size_mib: Option<i64>,
450 #[serde(skip_serializing_if = "Option::is_none")]
451 server_inline_image_preview: Option<bool>,
452 #[serde(skip_serializing_if = "Option::is_none")]
453 server_inline_url_embed_preview: Option<bool>,
454 #[serde(skip_serializing_if = "Option::is_none")]
455 server_thumbnail_formats: Option<Vec<ServerThumbnailFormat>>,
456 #[serde(skip_serializing_if = "Option::is_none")]
457 server_avatar_changes_disabled: Option<bool>,
458 #[serde(skip_serializing_if = "Option::is_none")]
459 server_name_changes_disabled: Option<bool>,
460 #[serde(skip_serializing_if = "Option::is_none")]
461 server_needs_upgrade: Option<bool>,
462 #[serde(skip_serializing_if = "Option::is_none")]
463 server_web_public_streams_enabled: Option<bool>,
464 #[serde(skip_serializing_if = "Option::is_none")]
465 server_emoji_data_url: Option<String>,
466 #[serde(skip_serializing_if = "Option::is_none")]
467 server_jitsi_server_url: Option<String>,
468 #[serde(skip_serializing_if = "Option::is_none")]
469 server_can_summarize_topics: Option<bool>,
470 #[serde(skip_serializing_if = "Option::is_none")]
471 event_queue_longpoll_timeout_seconds: Option<i64>,
472 #[serde(skip_serializing_if = "Option::is_none")]
473 realm_billing: Option<RealmBilling>,
474 #[serde(skip_serializing_if = "Option::is_none")]
475 realm_moderation_request_channel_id: Option<i64>,
476 #[serde(skip_serializing_if = "Option::is_none")]
477 realm_new_stream_announcements_stream_id: Option<i64>,
478 #[serde(skip_serializing_if = "Option::is_none")]
479 realm_signup_announcements_stream_id: Option<i64>,
480 #[serde(skip_serializing_if = "Option::is_none")]
481 realm_zulip_update_announcements_stream_id: Option<i64>,
482 #[serde(skip_serializing_if = "Option::is_none")]
483 realm_empty_topic_display_name: Option<String>,
484 #[serde(skip_serializing_if = "Option::is_none")]
485 realm_user_settings_defaults: Option<RealmUserSettingsDefault>,
486 #[serde(skip_serializing_if = "Option::is_none")]
487 realm_users: Option<Vec<User>>,
488 #[serde(skip_serializing_if = "Option::is_none")]
489 realm_non_active_users: Option<Vec<User>>,
490 #[serde(skip_serializing_if = "Option::is_none")]
491 avatar_source: Option<String>,
492 #[serde(skip_serializing_if = "Option::is_none")]
493 avatar_url_medium: Option<String>,
494 #[serde(skip_serializing_if = "Option::is_none")]
495 avatar_url: Option<String>,
496 #[serde(skip_serializing_if = "Option::is_none")]
497 can_create_streams: Option<bool>,
498 #[serde(skip_serializing_if = "Option::is_none")]
499 can_create_public_streams: Option<bool>,
500 #[serde(skip_serializing_if = "Option::is_none")]
501 can_create_private_streams: Option<bool>,
502 #[serde(skip_serializing_if = "Option::is_none")]
503 can_create_web_public_streams: Option<bool>,
504 #[serde(skip_serializing_if = "Option::is_none")]
505 can_subscribe_other_users: Option<bool>,
506 #[serde(skip_serializing_if = "Option::is_none")]
507 can_invite_others_to_realm: Option<bool>,
508 #[serde(skip_serializing_if = "Option::is_none")]
509 is_admin: Option<bool>,
510 #[serde(skip_serializing_if = "Option::is_none")]
511 is_owner: Option<bool>,
512 #[serde(skip_serializing_if = "Option::is_none")]
513 is_moderator: Option<bool>,
514 #[serde(skip_serializing_if = "Option::is_none")]
515 is_guest: Option<bool>,
516 #[serde(skip_serializing_if = "Option::is_none")]
517 user_id: Option<i64>,
518 #[serde(skip_serializing_if = "Option::is_none")]
519 email: Option<String>,
520 #[serde(skip_serializing_if = "Option::is_none")]
521 delivery_email: Option<String>,
522 #[serde(skip_serializing_if = "Option::is_none")]
523 full_name: Option<String>,
524 #[serde(skip_serializing_if = "Option::is_none")]
525 cross_realm_bots: Option<Vec<CrossRealmBot>>,
526 #[serde(skip_serializing_if = "Option::is_none")]
527 server_supported_permission_settings: Option<ServerSupportedPermissionSetting>,
528 #[serde(skip_serializing_if = "Option::is_none")]
529 max_bulk_new_subscription_messages: Option<f64>,
530}
531
532impl Response {
533 /// Creates a new [Response].
534 pub const fn new() -> Self {
535 Self {
536 base: BaseResponse::new(),
537 ignored_parameters_unsupported: None,
538 queue_id: None,
539 last_event_id: None,
540 zulip_feature_level: None,
541 zulip_version: None,
542 zulip_merge_base: None,
543 alert_words: None,
544 custom_profile_fields: None,
545 custom_profile_field_types: None,
546 realm_date_created: None,
547 demo_organization_scheduled_deletion_date: None,
548 drafts: None,
549 onboarding_steps: None,
550 navigation_tour_video_url: None,
551 max_message_id: None,
552 max_reminder_note_length: None,
553 max_stream_name_length: None,
554 max_stream_description_length: None,
555 max_channel_folder_name_length: None,
556 max_channel_folder_description_length: None,
557 max_topic_length: None,
558 max_message_length: None,
559 server_min_deactivated_realm_deletion_days: None,
560 server_max_deactivated_realm_deletion_days: None,
561 server_presence_ping_interval_seconds: None,
562 server_presence_offline_threshold_seconds: None,
563 server_typing_started_expiry_period_milliseconds: None,
564 server_typing_stopped_wait_period_milliseconds: None,
565 server_typing_started_wait_period_milliseconds: None,
566 scheduled_messages: None,
567 reminders: None,
568 muted_topics: None,
569 muted_users: None,
570 presences: None,
571 presence_last_update_id: None,
572 server_timestamp: None,
573 realm_domains: None,
574 realm_emoji: None,
575 realm_linkifiers: None,
576 realm_filters: None,
577 realm_playgrounds: None,
578 realm_user_groups: None,
579 realm_bots: None,
580 realm_embedded_bots: None,
581 realm_incoming_webhook_bots: None,
582 recent_private_conversations: None,
583 navigation_views: None,
584 saved_snippets: None,
585 subscriptions: None,
586 unsubscribed: None,
587 never_subscribed: None,
588 channel_folders: None,
589 unread_msgs: None,
590 starred_messages: None,
591 streams: None,
592 realm_default_streams: None,
593 realm_default_stream_groups: None,
594 stop_words: None,
595 user_status: None,
596 user_settings: None,
597 user_topics: None,
598 has_zoom_token: None,
599 giphy_api_key: None,
600 push_devices: None,
601 enable_desktop_notifications: None,
602 enable_digest_emails: None,
603 enable_login_emails: None,
604 enable_marketing_emails: None,
605 email_notifications_batching_period_seconds: None,
606 enable_offline_email_notifications: None,
607 enable_offline_push_notifications: None,
608 enable_online_push_notifications: None,
609 enable_sounds: None,
610 enable_stream_desktop_notifications: None,
611 enable_stream_email_notifications: None,
612 enable_stream_push_notifications: None,
613 enable_stream_audible_notifications: None,
614 wildcard_mentions_notify: None,
615 message_content_in_email_notifications: None,
616 notification_sound: None,
617 pm_content_in_desktop_notifications: None,
618 desktop_icon_count_display: None,
619 realm_name_in_email_notifications_policy: None,
620 presence_enabled: None,
621 available_notification_sounds: None,
622 color_scheme: None,
623 default_language: None,
624 demote_inactive_streams: None,
625 emojiset: None,
626 enable_drafts_synchronization: None,
627 fluid_layout_width: None,
628 web_home_view: None,
629 high_contrast_mode: None,
630 left_side_userlist: None,
631 starred_message_counts: None,
632 timezone: None,
633 translate_emoticons: None,
634 twenty_four_hour_time: None,
635 receives_typing_notifications: None,
636 enter_sends: None,
637 emojiset_choices: None,
638 realm_message_edit_history_visibility_policy: None,
639 realm_allow_edit_history: None,
640 realm_can_add_custom_emoji_group: None,
641 realm_can_add_subscribers_group: None,
642 realm_can_delete_any_message_group: None,
643 realm_can_delete_own_message_group: None,
644 realm_can_set_delete_message_policy_group: None,
645 realm_can_set_topics_policy_group: None,
646 realm_can_invite_users_group: None,
647 realm_can_mention_many_users_group: None,
648 realm_can_move_messages_between_channels_group: None,
649 realm_can_move_messages_between_topics_group: None,
650 realm_can_create_groups: None,
651 realm_can_create_bots_group: None,
652 realm_can_create_write_only_bots_group: None,
653 realm_can_manage_all_groups: None,
654 realm_can_manage_billing_group: None,
655 realm_can_create_public_channel_group: None,
656 realm_can_create_private_channel_group: None,
657 realm_can_create_web_public_channel_group: None,
658 realm_can_resolve_topics_group: None,
659 realm_create_public_stream_policy: None,
660 realm_create_private_stream_policy: None,
661 realm_create_web_public_stream_policy: None,
662 realm_wildcard_mention_policy: None,
663 realm_default_language: None,
664 realm_welcome_message_custom_text: None,
665 realm_description: None,
666 realm_digest_emails_enabled: None,
667 realm_disallow_disposable_email_addresses: None,
668 realm_email_changes_disabled: None,
669 realm_invite_required: None,
670 realm_create_multiuse_invite_group: None,
671 realm_inline_image_preview: None,
672 realm_inline_url_embed_preview: None,
673 realm_topics_policy: None,
674 realm_mandatory_topics: None,
675 realm_message_retention_days: None,
676 realm_name: None,
677 realm_require_e2ee_push_notifications: None,
678 realm_require_unique_names: None,
679 realm_name_changes_disabled: None,
680 realm_avatar_changes_disabled: None,
681 realm_emails_restricted_to_domains: None,
682 realm_send_welcome_emails: None,
683 realm_message_content_allowed_in_email_notifications: None,
684 realm_enable_spectator_access: None,
685 realm_want_advertise_in_communities_directory: None,
686 realm_video_chat_provider: None,
687 realm_jitsi_server_url: None,
688 realm_giphy_rating: None,
689 realm_waiting_period_threshold: None,
690 realm_digest_weekday: None,
691 realm_direct_message_initiator_group: None,
692 realm_direct_message_permission_group: None,
693 realm_default_code_block_language: None,
694 realm_message_content_delete_limit_seconds: None,
695 realm_authentication_methods: None,
696 realm_allow_message_editing: None,
697 realm_message_content_edit_limit_seconds: None,
698 realm_move_messages_within_stream_limit_seconds: None,
699 realm_move_messages_between_streams_limit_seconds: None,
700 realm_enable_read_receipts: None,
701 realm_icon_url: None,
702 realm_icon_source: None,
703 max_icon_file_size_mib: None,
704 realm_logo_url: None,
705 realm_logo_source: None,
706 realm_night_logo_url: None,
707 realm_night_logo_source: None,
708 max_logo_file_size_mib: None,
709 realm_bot_domain: None,
710 realm_uri: None,
711 realm_url: None,
712 realm_available_video_chat_providers: None,
713 realm_presence_disabled: None,
714 settings_send_digest_emails: None,
715 realm_email_auth_enabled: None,
716 realm_password_auth_enabled: None,
717 realm_push_notifications_enabled: None,
718 realm_push_notifications_enabled_end_timestamp: None,
719 realm_upload_quota_mib: None,
720 realm_org_type: None,
721 realm_plan_type: None,
722 realm_enable_guest_user_dm_warning: None,
723 realm_enable_guest_user_indicator: None,
724 realm_can_access_all_users_group: None,
725 realm_can_summarize_topics_group: None,
726 zulip_plan_is_not_limited: None,
727 upgrade_text_for_wide_organization_logo: None,
728 realm_default_external_accounts: None,
729 jitsi_server_url: None,
730 development_environment: None,
731 server_generation: None,
732 password_min_length: None,
733 password_max_length: None,
734 password_min_guesses: None,
735 giphy_rating_options: None,
736 max_file_upload_size_mib: None,
737 max_avatar_file_size_mib: None,
738 server_inline_image_preview: None,
739 server_inline_url_embed_preview: None,
740 server_thumbnail_formats: None,
741 server_avatar_changes_disabled: None,
742 server_name_changes_disabled: None,
743 server_needs_upgrade: None,
744 server_web_public_streams_enabled: None,
745 server_emoji_data_url: None,
746 server_jitsi_server_url: None,
747 server_can_summarize_topics: None,
748 event_queue_longpoll_timeout_seconds: None,
749 realm_billing: None,
750 realm_moderation_request_channel_id: None,
751 realm_new_stream_announcements_stream_id: None,
752 realm_signup_announcements_stream_id: None,
753 realm_zulip_update_announcements_stream_id: None,
754 realm_empty_topic_display_name: None,
755 realm_user_settings_defaults: None,
756 realm_users: None,
757 realm_non_active_users: None,
758 avatar_source: None,
759 avatar_url_medium: None,
760 avatar_url: None,
761 can_create_streams: None,
762 can_create_public_streams: None,
763 can_create_private_streams: None,
764 can_create_web_public_streams: None,
765 can_subscribe_other_users: None,
766 can_invite_others_to_realm: None,
767 is_admin: None,
768 is_owner: None,
769 is_moderator: None,
770 is_guest: None,
771 user_id: None,
772 email: None,
773 delivery_email: None,
774 full_name: None,
775 cross_realm_bots: None,
776 server_supported_permission_settings: None,
777 max_bulk_new_subscription_messages: None,
778 }
779 }
780}
781
782field_access! {
783 Response {
784 /// The initial value of `last_event_id` to pass to `GET /api/v1/events`.
785 last_event_id: option { i64 },
786 /// The server's current [Zulip feature level](https://zulip.com/api/changelog).
787 ///
788 /// **Changes**: As of Zulip 3.0 (feature level 3), this is always present in the endpoint's response.
789 /// Previously, it was only present if `event_types` included `zulip_version`.
790 ///
791 /// New in Zulip 3.0 (feature level 1).
792 zulip_feature_level: option { i64 },
793 /// The UNIX timestamp (UTC) for when the organization was created.
794 ///
795 /// Present if `realm` is present in `fetch_event_types`.
796 ///
797 /// **Changes**: New in Zulip 8.0 (feature level 203).
798 realm_date_created: option { i64 },
799 /// The UNIX timestamp (UTC) when the demo organization will be automatically deleted.
800 ///
801 /// Present if `realm` is present in `fetch_event_types`, and the realm is a demo organization.
802 ///
803 /// Clients should use this to display a prominent warning to the user that the organization will be deleted at the indicated time.
804 ///
805 /// **Changes**: New in Zulip 5.0 (feature level 94).
806 demo_organization_scheduled_deletion_date: option { i64 },
807 /// The highest message ID among all messages the user has received as of the moment of this request.
808 ///
809 /// Present if `message` is present in `fetch_event_types`.
810 ///
811 /// **Deprecated**: This field may be removed in future versions as it no longer has a clear purpose.
812 /// Clients wishing to fetch the latest messages should pass `\"anchor\": \"latest\"` to `GET /messages`.
813 max_message_id: option { i64 },
814 /// The maximum allowed length for a reminder note. **Changes**: New in Zulip 11.0 (feature level 415).
815 max_reminder_note_length: option { i64 },
816 /// The maximum allowed length for a channel description, in Unicode code points. Clients should use this property rather than hardcoding field sizes.
817 ///
818 /// Present if `realm` is present in `fetch_event_types`.
819 ///
820 /// **Changes**: New in Zulip 4.0 (feature level 53). Previously, this required `stream` in `fetch_event_types`, was called `stream_description_max_length`, and always had a value of 1024.
821 max_stream_description_length: option { i64 },
822 /// The maximum allowed length for a channel folder description, in Unicode code points.
823 ///
824 /// Present if `realm` is present in `fetch_event_types`.
825 ///
826 /// Clients should use this property rather than hardcoding field sizes.
827 ///
828 /// **Changes**: New in Zulip 11.0 (feature level 410). Clients should use 1024 as a fallback value on previous feature levels.
829 max_channel_folder_description_length: option { i64 },
830 /// The maximum allowed length for a topic, in Unicode code points. Clients should use this property rather than hardcoding field sizes.
831 ///
832 /// Present if `realm` is present in `fetch_event_types`.
833 ///
834 /// **Changes**: New in Zulip 4.0 (feature level 53). Previously, this property always had a value of 60.
835 max_topic_length: option { i64 },
836 /// The maximum allowed length for a message, in Unicode code points. Clients should use this property rather than hardcoding field sizes.
837 ///
838 /// Present if `realm` is present in `fetch_event_types`.
839 ///
840 /// **Changes**: New in Zulip 4.0 (feature level 53). Previously, this property always had a value of 10000.
841 max_message_length: option { i64 },
842 /// The minimum permitted number of days before full data deletion (users, channels, messages, etc.) of a deactivated organization.
843 ///
844 /// Present if `realm` is present in `fetch_event_types`.
845 ///
846 /// If `null`, then a deactivated organization's data can be deleted immediately.
847 ///
848 /// **Changes**: New in Zulip 10.0 (feature level 332)
849 server_min_deactivated_realm_deletion_days: option { i64 },
850 /// The maximum permitted number of days before full data deletion (users, channels, messages, etc.) of a deactivated organization.
851 ///
852 /// Present if `realm` is present in `fetch_event_types`.
853 ///
854 /// If `null`, then a deactivated organization's data can be retained indefinitely.
855 ///
856 /// **Changes**: New in Zulip 10.0 (feature level 332).
857 server_max_deactivated_realm_deletion_days: option { i64 },
858 /// For clients implementing the [presence](https://zulip.com/api/get-presence) system,
859 /// the time interval the client should use for sending presence requests to the server
860 /// (and thus receive presence updates from the server).
861 ///
862 /// Present if `realm` is present in `fetch_event_types`.
863 ///
864 /// It is important for presence implementations to use both this and `server_presence_offline_threshold_seconds` correctly,
865 /// so that a Zulip server can change these values to manage the trade-off between load and freshness of presence data.
866 ///
867 /// **Changes**: New in Zulip 7.0 (feature level 164). Clients should use 60 for older Zulip servers,
868 /// since that's the value that was hardcoded in the Zulip mobile apps prior to this parameter being introduced.
869 server_presence_ping_interval_seconds: option { i64 },
870 /// How old a presence timestamp for a given user can be before the user should be displayed as offline by clients displaying Zulip presence data.
871 ///
872 /// Present if `realm` is present in `fetch_event_types`.
873 ///
874 /// See the related `server_presence_ping_interval_seconds` for details.
875 ///
876 /// **Changes**: New in Zulip 7.0 (feature level 164). Clients should use 140 for older Zulip servers,
877 /// since that's the value that was hardcoded in the Zulip client apps prior to this parameter being introduced.
878 server_presence_offline_threshold_seconds: option { i64 },
879 /// For clients implementing [typing notifications](https://zulip.com/api/set-typing-status) protocol,
880 /// the time interval in milliseconds that the client should wait for additional [typing start](https://zulip.com/api/get-events#typing-start)
881 /// events from the server before removing an active typing indicator.
882 ///
883 /// Present if `realm` is present in `fetch_event_types`.
884 ///
885 /// **Changes**: New in Zulip 8.0 (feature level 204).
886 /// Clients should use 15000 for older Zulip servers, since that's the value that was hardcoded in the Zulip apps prior to this parameter being introduced.
887 server_typing_started_expiry_period_milliseconds: option { i64 },
888 /// For clients implementing [typing notifications](https://zulip.com/api/set-typing-status) protocol,
889 /// the time interval in milliseconds that the client should use to send regular start notifications
890 /// to the server to indicate that the user is still actively interacting with the compose UI.
891 ///
892 /// Present if `realm` is present in `fetch_event_types`.
893 ///
894 /// **Changes**: New in Zulip 8.0 (feature level 204).
895 /// Clients should use 10000 for older Zulip servers,
896 /// since that's the value that was hardcoded in the Zulip apps prior to this parameter being introduced.
897 server_typing_started_wait_period_milliseconds: option { i64 },
898 /// Provides the `last_update_id` value of the latest presence data fetched by the server and included in the response in `presences`.
899 ///
900 /// Present if `presence` is present in `fetch_event_types`.
901 ///
902 /// This can be used as the value of the `presence_last_update_id` parameter when polling for presence data at the
903 /// [/users/me/presence](https://zulip.com/api/update-presence) endpoint to tell the server to only fetch the relevant newer data in order to skip redundant already-known presence information.
904 ///
905 /// **Changes**: New in Zulip 9.0 (feature level 263).
906 presence_last_update_id: option { i64 },
907 /// The time when the server fetched the `presences` data included in the response. Matches the similar field in presence responses.
908 ///
909 /// Present if `presence` is present in `fetch_event_types`.
910 ///
911 /// **Changes**: New in Zulip 5.0 (feature level 70).
912 server_timestamp: option { f64 },
913 /// A boolean which signifies whether the user has a Zoom token and has thus completed OAuth flow for the [Zoom integration](https://zulip.com/help/configure-call-provider).
914 ///
915 /// Present if `video_calls` is present in `fetch_event_types`.
916 ///
917 /// Clients need to know whether initiating Zoom OAuth is required before creating a Zoom call.
918 has_zoom_token: option { bool },
919 /// The current value of this global notification setting for the user.
920 ///
921 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object` in their
922 /// [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
923 ///
924 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
925 ///
926 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
927 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
928 enable_desktop_notifications: option { bool },
929 /// The current value of this global notification setting for the user.
930 ///
931 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object` in their
932 /// [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
933 ///
934 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
935 ///
936 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
937 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
938 enable_digest_emails: option { bool },
939 /// The current value of this global notification setting for the user.
940 ///
941 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object` in their
942 /// [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
943 ///
944 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
945 ///
946 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
947 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
948 enable_login_emails: option { bool },
949 /// The current value of this global notification setting for the user.
950 ///
951 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object` in their
952 /// [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
953 ///
954 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
955 ///
956 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
957 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
958 enable_marketing_emails: option { bool },
959 /// The current value of this global notification setting for the user.
960 ///
961 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object` in their
962 /// [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
963 ///
964 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
965 ///
966 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
967 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
968 email_notifications_batching_period_seconds: option { i64 },
969 /// The current value of this global notification setting for the user.
970 ///
971 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object` in their
972 /// [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
973 ///
974 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
975 ///
976 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
977 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
978 enable_offline_email_notifications: option { bool },
979 /// The current value of this global notification setting for the user.
980 ///
981 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
982 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
983 ///
984 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
985 ///
986 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
987 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
988 enable_offline_push_notifications: option { bool },
989 /// The current value of this global notification setting for the user.
990 ///
991 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
992 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
993 ///
994 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
995 ///
996 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
997 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
998 enable_sounds: option { bool },
999 /// The current value of this global notification setting for the user.
1000 ///
1001 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1002 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1003 ///
1004 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1005 ///
1006 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1007 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1008 enable_stream_desktop_notifications: option { bool },
1009 /// The current value of this global notification setting for the user.
1010 ///
1011 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1012 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1013 ///
1014 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1015 ///
1016 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1017 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1018 enable_stream_email_notifications: option { bool },
1019 /// The current value of this global notification setting for the user.
1020 ///
1021 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1022 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1023 ///
1024 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1025 ///
1026 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1027 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1028 enable_stream_push_notifications: option { bool },
1029 /// The current value of this global notification setting for the user.
1030 ///
1031 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1032 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1033 ///
1034 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1035 ///
1036 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1037 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1038 enable_stream_audible_notifications: option { bool },
1039 /// The current value of this global notification setting for the user.
1040 ///
1041 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1042 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1043 ///
1044 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1045 ///
1046 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1047 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1048 wildcard_mentions_notify: option { bool },
1049 /// The current value of this global notification setting for the user.
1050 ///
1051 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1052 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1053 ///
1054 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1055 ///
1056 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1057 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1058 message_content_in_email_notifications: option { bool },
1059 /// The current value of this global notification setting for the user.
1060 ///
1061 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1062 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1063 ///
1064 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1065 ///
1066 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1067 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1068 pm_content_in_desktop_notifications: option { bool },
1069 /// The current value of this global notification setting for the user.
1070 ///
1071 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1072 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1073 ///
1074 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1075 ///
1076 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1077 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1078 desktop_icon_count_display: option { i64 },
1079 /// The current value of this global notification setting for the user.
1080 ///
1081 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1082 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1083 ///
1084 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1085 ///
1086 /// **Changes**: In Zulip 7.0 (feature level 168), replaced previous `realm_name_in_notifications` global notifications setting with `realm_name_in_email_notifications_policy`.
1087 ///
1088 /// **Deprecated** since Zulip 5.0 (feature level 89); both `realm_name_in_notifications` and the newer `realm_name_in_email_notifications_policy` are deprecated.
1089 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1090 realm_name_in_email_notifications_policy: option { i64 },
1091 /// The current value of this global notification setting for the user.
1092 ///
1093 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1094 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1095 ///
1096 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1097 ///
1098 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1099 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1100 presence_enabled: option { bool },
1101 /// The color scheme selected by the user.
1102 ///
1103 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1104 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1105 ///
1106 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1107 ///
1108 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1109 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1110 color_scheme: option { i64 },
1111 /// Whether the user has chosen to hide inactive channels.
1112 ///
1113 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1114 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1115 ///
1116 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1117 ///
1118 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1119 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1120 demote_inactive_streams: option { i64 },
1121 /// Whether drafts synchronization is enabled for the user.
1122 ///
1123 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1124 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1125 ///
1126 /// If disabled, clients will receive an error when trying to use the `drafts` endpoints.
1127 ///
1128 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1129 ///
1130 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1131 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1132 ///
1133 /// New in Zulip 5.0 (feature level 87).
1134 enable_drafts_synchronization: option { bool },
1135 /// Whether the user has chosen for the layout width to be fluid.
1136 ///
1137 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1138 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1139 ///
1140 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1141 ///
1142 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1143 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1144 fluid_layout_width: option { bool },
1145 /// Whether has switched on high contrast mode.
1146 ///
1147 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1148 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1149 ///
1150 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1151 ///
1152 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1153 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1154 high_contrast_mode: option { bool },
1155 /// Whether the user has chosen for the userlist to be displayed on the left side of the screen (for desktop app and web app) in narrow windows.
1156 ///
1157 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1158 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1159 ///
1160 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1161 ///
1162 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1163 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1164 left_side_userlist: option { bool },
1165 /// Whether the user has chosen the number of starred messages to be displayed similar to unread counts.
1166 ///
1167 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1168 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1169 ///
1170 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1171 ///
1172 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1173 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1174 starred_message_counts: option { bool },
1175 /// Whether the user has chosen for emoticons to be translated into emoji in the Zulip compose box.
1176 ///
1177 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1178 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1179 ///
1180 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1181 ///
1182 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1183 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1184 translate_emoticons: option { bool },
1185 /// Whether the user has chosen a twenty four hour time display (true) or a twelve hour one (false).
1186 ///
1187 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1188 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1189 ///
1190 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
1191 ///
1192 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1193 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
1194 twenty_four_hour_time: option { bool },
1195 /// Whether the user is configured to receive typing notifications from other users.
1196 ///
1197 /// The server will only deliver typing notifications events to users who for whom this is enabled.
1198 ///
1199 /// **Changes**: New in Zulip 9.0 (feature level 253). Previously, there were only options to disable sending typing notifications.
1200 receives_typing_notifications: option { bool },
1201 /// Whether the user setting for [sending on pressing Enter](https://zulip.com/help/configure-send-message-keys) in the compose box is enabled.
1202 ///
1203 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
1204 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
1205 ///
1206 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
1207 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and process the `user_settings` event type instead.
1208 ///
1209 /// Prior to Zulip 5.0 (feature level 84), this field was present in response if `realm_user` was present in `fetch_event_types`, not `update_display_settings`.
1210 enter_sends: option { bool },
1211 /// Whether this organization is configured to allow users to access [message edit history](https://zulip.com/help/view-a-messages-edit-history).
1212 ///
1213 /// Present if `realm` is present in `fetch_event_types`.
1214 ///
1215 /// The value of `realm_allow_edit_history` is set as `false` if the `realm_message_edit_history_visibility_policy`
1216 /// is configured as \"None\" and `true` if it is configured as \"Moves only\" or \"All\".
1217 ///
1218 /// **Changes**: Deprecated in Zulip 10.0 (feature level 358) and will be removed in the future,
1219 /// as it is an inaccurate version `realm_message_edit_history_visibility_policy`, which replaces this field.
1220 realm_allow_edit_history: option { bool },
1221 /// A deprecated representation of a superset of the users who have permission to create public channels in the organization, available for backwards-compatibility.
1222 ///
1223 /// Present if `realm` is present in `fetch_event_types`.
1224 realm_create_public_stream_policy: option { RealmCreatePublicStreamPolicy },
1225 /// A deprecated representation of a superset of the users who have permission to create private channels in the organization, available for backwards-compatibility.
1226 ///
1227 /// Present if `realm` is present in `fetch_event_types`.
1228 ///
1229 /// Clients should use `can_create_private_channel_group` instead.
1230 realm_create_private_stream_policy: option { RealmCreatePrivateStreamPolicy },
1231 /// A deprecated representation of a superset of the users who have permission to create web-public channels in the organization, available for backwards-compatibility.
1232 ///
1233 /// Present if `realm` is present in `fetch_event_types`.
1234 ///
1235 /// Clients should use `can_create_web_public_channel_group` instead.
1236 realm_create_web_public_stream_policy: option { RealmCreateWebPublicStreamPolicy },
1237 /// A deprecated representation of a superset of the users who have permission to use wildcard mentions in large channels, available for backwards-compatibility.
1238 ///
1239 /// Present if `realm` is present in `fetch_event_types`.
1240 ///
1241 /// Clients should use `can_create_web_public_channel_group` instead.
1242 realm_wildcard_mention_policy: option { RealmWildcardMentionPolicy },
1243 /// Present if `realm` is present in `fetch_event_types`.
1244 ///
1245 /// Whether the organization has enabled [weekly digest emails](https://zulip.com/help/digest-emails).
1246 realm_digest_emails_enabled: option { bool },
1247 /// Present if `realm` is present in `fetch_event_types`.
1248 ///
1249 /// Whether the organization disallows disposable email addresses.
1250 realm_disallow_disposable_email_addresses: option { bool },
1251 /// Present if `realm` is present in `fetch_event_types`.
1252 ///
1253 /// Whether users are allowed to change their own email address in this organization.
1254 /// This is typically disabled for organizations that synchronize accounts from LDAP or a similar corporate database.
1255 realm_email_changes_disabled: option { bool },
1256 /// Present if `realm` is present in `fetch_event_types`.
1257 ///
1258 /// Whether an invitation is required to join this organization.
1259 realm_invite_required: option { bool },
1260 /// Present if `realm` is present in `fetch_event_types`.
1261 ///
1262 /// Whether this organization has been configured to enable [previews of linked images](https://zulip.com/help/image-video-and-website-previews).
1263 realm_inline_image_preview: option { bool },
1264 /// Whether this organization has been configured to enable [previews of linked websites](https://zulip.com/help/image-video-and-website-previews).
1265 ///
1266 /// Present if `realm` is present in `fetch_event_types`.
1267 realm_inline_url_embed_preview: option { bool },
1268 /// Present if `realm` is present in `fetch_event_types`.
1269 realm_topics_policy: option { TopicsPolicy },
1270 /// Whether [topics are required](https://zulip.com/help/require-topics) for messages in this organization.
1271 ///
1272 /// Present if `realm` is present in `fetch_event_types`.
1273 ///
1274 /// **Changes**: Deprecated in Zulip 11.0 (feature level 392). This is now controlled by the realm `topics_policy` setting.
1275 realm_mandatory_topics: option { bool },
1276 /// The default [message retention policy](https://zulip.com/help/message-retention-policy) for this organization.
1277 ///
1278 /// Present if `realm` is present in `fetch_event_types`.
1279 ///
1280 /// It can have one special value:
1281 ///
1282 /// - `-1` denoting that the messages will be retained forever for this realm, by default.
1283 ///
1284 /// **Changes**: Prior to Zulip 3.0 (feature level 22),
1285 /// no limit was encoded as `null` instead of `-1`.
1286 /// Clients can correctly handle all server versions by treating both `-1` and `null` as indicating unlimited message retention.
1287 realm_message_retention_days: option { i64 },
1288 /// Whether this realm is configured to disallow sending mobile push notifications with message content through the legacy mobile push notifications APIs.
1289 ///
1290 /// Present if `realm` is present in `fetch_event_types`.
1291 ///
1292 /// The new API uses end-to-end encryption to protect message content and metadata from being accessible to the push bouncer service, APNs, and FCM.
1293 /// Clients that support the new E2EE API will use it automatically regardless of this setting.
1294 ///
1295 /// If `true`, mobile push notifications sent to clients that lack support for E2EE push notifications will always have \"New message\" as their content.
1296 /// Note that these legacy mobile notifications will still contain metadata, which may include the message's ID, the sender's name, email address, and avatar.
1297 ///
1298 /// In a future release, once the official mobile apps have implemented fully validated their E2EE protocol support,
1299 /// this setting will become strict, and disable the legacy protocol entirely.
1300 ///
1301 /// **Changes**: New in Zulip 11.0 (feature level 409). Previously, this behavior was available only via the `PUSH_NOTIFICATION_REDACT_CONTENT` global server setting.
1302 realm_require_e2ee_push_notifications: option { bool },
1303 /// Indicates whether the organization is configured to require users to have unique full names.
1304 ///
1305 /// Present if `realm` is present in `fetch_event_types`.
1306 ///
1307 /// If true, the server will reject attempts to create a new user, or change the name of an existing user,
1308 /// where doing so would lead to two users whose names are identical modulo case and unicode normalization.
1309 ///
1310 /// **Changes**: New in Zulip 9.0 (feature level 246). Previously, the Zulip server could not be configured to enforce unique names.
1311 realm_require_unique_names: option { bool },
1312 /// Indicates whether users are [allowed to change](https://zulip.com/help/restrict-name-and-email-changes) their name via the Zulip UI in this organization.
1313 ///
1314 /// Present if `realm` is present in `fetch_event_types`.
1315 ///
1316 /// Typically disabled in organizations syncing this type of account information from an external user database like LDAP.
1317 realm_name_changes_disabled: option { bool },
1318 /// Indicates whether users are [allowed to change](https://zulip.com/help/restrict-name-and-email-changes) their avatar via the Zulip UI in this organization.
1319 ///
1320 /// Present if `realm` is present in `fetch_event_types`.
1321 ///
1322 /// Typically disabled in organizations syncing this type of account information from an external user database like LDAP.
1323 realm_avatar_changes_disabled: option { bool },
1324 /// Whether [new users joining](https://zulip.com/help/restrict-account-creation#configuring-email-domain-restrictions) this organization are required to have an email address in one of the `realm_domains` configured for the organization.
1325 ///
1326 /// Present if `realm` is present in `fetch_event_types`.
1327 realm_emails_restricted_to_domains: option { bool },
1328 /// Whether or not this organization is configured to send the standard Zulip [welcome emails](https://zulip.com/help/disable-welcome-emails) to new users joining the organization.
1329 ///
1330 /// Present if `realm` is present in `fetch_event_types`.
1331 realm_send_welcome_emails: option { bool },
1332 /// Whether notification emails in this organization are allowed to contain Zulip the message content, or simply indicate that a new message was sent.
1333 ///
1334 /// Present if `realm` is present in `fetch_event_types`.
1335 realm_message_content_allowed_in_email_notifications: option { bool },
1336 /// Whether web-public channels and related anonymous access APIs/features are enabled in this organization.
1337 ///
1338 /// Present if `realm` is present in `fetch_event_types`.
1339 ///
1340 /// Can only be enabled if the `WEB_PUBLIC_STREAMS_ENABLED` [server setting](https://zulip.readthedocs.io/en/stable/production/settings.html) is enabled on the Zulip server.
1341 /// See also the `can_create_web_public_channel_group` realm setting.
1342 ///
1343 /// **Changes**: New in Zulip 5.0 (feature level 109).
1344 realm_enable_spectator_access: option { bool },
1345 /// Whether the organization has given permission to be advertised in the Zulip [communities directory](https://zulip.com/help/communities-directory).
1346 ///
1347 /// Present if `realm` is present in `fetch_event_types`.
1348 ///
1349 /// Useful only to clients supporting changing this setting for the organization.
1350 ///
1351 /// Giving permission via this setting does not guarantee that an organization will be listed in the Zulip communities directory.
1352 ///
1353 /// **Changes**: New in Zulip 6.0 (feature level 129).
1354 realm_want_advertise_in_communities_directory: option { bool },
1355 /// The configured GIPHY rating for the organization.
1356 ///
1357 /// Present if `realm` is present in `fetch_event_types`.
1358 ///
1359 /// **Changes**: New in Zulip 4.0 (feature level 55).
1360 realm_giphy_rating: option { i64 },
1361 /// Members whose accounts have been created at least this many days ago will be treated as
1362 /// [full members](https://zulip.com/api/roles-and-permissions#determining-if-a-user-is-a-full-member) for the purpose of settings that restrict access to new members.
1363 ///
1364 /// Present if `realm` is present in `fetch_event_types`.
1365 realm_waiting_period_threshold: option { i64 },
1366 /// The day of the week when the organization will send its weekly digest email to inactive users.
1367 ///
1368 /// Present if `realm` is present in `fetch_event_types`.
1369 realm_digest_weekday: option { i64 },
1370 /// Messages sent more than this many seconds ago cannot be deleted with this organization's [message deletion policy](https://zulip.com/help/restrict-message-editing-and-deletion).
1371 ///
1372 /// Present if `realm` is present in `fetch_event_types`.
1373 ///
1374 /// Will not be 0. A `null` value means no limit: messages can be deleted regardless of how long ago they were sent.
1375 ///
1376 /// **Changes**: No limit was represented using the special value `0` before Zulip 5.0 (feature level 100).
1377 realm_message_content_delete_limit_seconds: option { i64 },
1378 /// Whether this organization's [message edit policy](https://zulip.com/help/restrict-message-editing-and-deletion) allows editing the content of messages.
1379 ///
1380 /// Present if `realm` is present in `fetch_event_types`.
1381 ///
1382 /// See [`PATCH /messages/{message_id}`](https://zulip.com/api/update-message) for details and history of how message editing permissions work.
1383 realm_allow_message_editing: option { bool },
1384 /// Messages sent more than this many seconds ago cannot be edited with this organization's [message edit policy](https://zulip.com/help/restrict-message-editing-and-deletion).
1385 ///
1386 /// Present if `realm` is present in `fetch_event_types`.
1387 ///
1388 /// Will not be `0`. A `null` value means no limit, so messages can be edited regardless of how long ago they were sent.
1389 ///
1390 /// See [`PATCH /messages/{message_id}`](https://zulip.com/api/update-message) for details and history of how message editing permissions work.
1391 ///
1392 /// **Changes**: Before Zulip 6.0 (feature level 138), no limit was represented using the special value `0`.
1393 realm_message_content_edit_limit_seconds: option { i64 },
1394 /// Messages sent more than this many seconds ago cannot be moved within a channel to another topic by
1395 /// users who have permission to do so based on this organization's [topic edit policy](https://zulip.com/help/restrict-moving-messages).
1396 ///
1397 /// Present if `realm` is present in `fetch_event_types`.
1398 ///
1399 /// This setting does not affect moderators and administrators.
1400 ///
1401 /// Will not be `0`. A `null` value means no limit, so message topics can be edited regardless of how long ago they were sent.
1402 ///
1403 /// See [`PATCH /messages/{message_id}`](https://zulip.com/api/update-message) for details and history of how message editing permissions work.
1404 ///
1405 /// **Changes**: New in Zulip 7.0 (feature level 162). Previously, this time limit was always 72 hours for users who were not administrators or moderators.
1406 realm_move_messages_within_stream_limit_seconds: option { i64 },
1407 /// Messages sent more than this many seconds ago cannot be moved between channels by users who have permission to do so based
1408 /// on this organization's [message move policy](https://zulip.com/help/restrict-moving-messages).
1409 ///
1410 /// Present if `realm` is present in `fetch_event_types`.
1411 ///
1412 /// This setting does not affect moderators and administrators.
1413 ///
1414 /// Will not be `0`. A `null` value means no limit, so messages can be moved regardless of how long ago they were sent.
1415 ///
1416 /// See [`PATCH /messages/{message_id}`](https://zulip.com/api/update-message) for details and history of how message editing permissions work.
1417 ///
1418 /// **Changes**: New in Zulip 7.0 (feature level 162). Previously, there was no time limit for moving messages between channels for users with permission to do so.
1419 realm_move_messages_between_streams_limit_seconds: option { i64 },
1420 /// Whether read receipts is enabled in the organization or not.
1421 ///
1422 /// Present if `realm` is present in `fetch_event_types`.
1423 ///
1424 /// If disabled, read receipt data will be unavailable to clients, regardless of individual users' personal read receipt settings.
1425 /// See also the `send_read_receipts` setting within `realm_user_settings_defaults`.
1426 ///
1427 /// **Changes**: New in Zulip 6.0 (feature level 137).
1428 realm_enable_read_receipts: option { bool },
1429 /// The maximum file size allowed for the organization's icon. Useful for UI allowing editing the organization's icon.
1430 ///
1431 /// Present if `realm` is present in `fetch_event_types`.
1432 ///
1433 /// **Changes**: New in Zulip 5.0 (feature level 72). Previously, this was called `max_icon_file_size`.
1434 max_icon_file_size_mib: option { i64 },
1435 /// The maximum file size allowed for the uploaded organization logos.
1436 ///
1437 /// Present if `realm` is present in `fetch_event_types`.
1438 ///
1439 /// **Changes**: New in Zulip 5.0 (feature level 72). Previously, this was called `max_logo_file_size`.
1440 max_logo_file_size_mib: option { i64 },
1441 /// Whether online presence of other users is shown in this organization.
1442 ///
1443 /// Present if `realm` is present in `fetch_event_types`.
1444 realm_presence_disabled: option { bool },
1445 /// Whether this Zulip server is configured to allow organizations to enable [digest emails](https://zulip.com/help/digest-emails).
1446 ///
1447 /// Present if `realm` is present in `fetch_event_types`.
1448 ///
1449 /// Relevant for administrative settings UI that can change the digest email settings.
1450 settings_send_digest_emails: option { bool },
1451 /// Whether the organization has enabled Zulip's default email and password authentication feature.
1452 ///
1453 /// Present if `realm` is present in `fetch_event_types`.
1454 ///
1455 /// Determines whether Zulip stores a password for the user and clients should offer any UI for changing the user's Zulip password.
1456 realm_email_auth_enabled: option { bool },
1457 /// Whether the organization allows any sort of password-based authentication (whether via EmailAuthBackend or LDAP passwords).
1458 ///
1459 /// Present if `realm` is present in `fetch_event_types`.
1460 ///
1461 /// Determines whether a client might ever need to display a password prompt
1462 /// (clients will primarily look at this attribute in [server_settings](https://zulip.com/api/get-server-settings) before presenting a login page).
1463 realm_password_auth_enabled: option { bool },
1464 /// Whether push notifications are enabled for this organization. Typically `true` for Zulip Cloud and self-hosted realms that have a
1465 /// valid registration for the [Mobile push notifications service](https://zulip.readthedocs.io/en/latest/production/mobile-push-notifications.html),
1466 /// and `false` for self-hosted servers that do not.
1467 ///
1468 /// Present if `realm` is present in `fetch_event_types`.
1469 ///
1470 /// **Changes**: Before Zulip 8.0 (feature level 231),
1471 /// this incorrectly was `true` for servers that were partly configured to use the Mobile Push Notifications Service but not properly registered.
1472 realm_push_notifications_enabled: option { bool },
1473 /// If the server expects the realm's push notifications access to end at a definite time in the future,
1474 /// the UNIX timestamp (UTC) at which this is expected to happen.
1475 ///
1476 /// Present if `realm` is present in `fetch_event_types`.
1477 ///
1478 /// Mobile clients should use this field to display warnings to users when the indicated timestamp is near.
1479 ///
1480 /// **Changes**: New in Zulip 8.0 (feature level 231).
1481 realm_push_notifications_enabled_end_timestamp: option { i64 },
1482 /// The total quota for uploaded files in this organization.
1483 ///
1484 /// Present if `realm` is present in `fetch_event_types`.
1485 ///
1486 /// Clients are not responsible for checking this quota; it is included in the API only for display purposes.
1487 ///
1488 /// If `null`, there is no limit.
1489 ///
1490 /// **Changes**: Before Zulip 9.0 (feature level 251), this field was incorrectly measured in bytes, not MiB.
1491 ///
1492 /// New in Zulip 5.0 (feature level 72). Previously, this was called `realm_upload_quota`.
1493 realm_upload_quota_mib: option { i64 },
1494 /// Represents the [organization type](https://zulip.com/help/organization-type) for the realm.
1495 ///
1496 /// Present if `realm` is present in `fetch_event_types`.
1497 realm_org_type: option { RealmOrganizationType },
1498 /// Represents the plan type of the organization.
1499 ///
1500 /// Present if `realm` is present in `fetch_event_types`.
1501 realm_plan_type: option { RealmPlanType },
1502 /// Whether clients should show a warning when a user is composing a DM to a guest user in this organization.
1503 ///
1504 /// Present if `realm` is present in `fetch_event_types`.
1505 ///
1506 /// **Changes**: New in Zulip 10.0 (feature level 348).
1507 realm_enable_guest_user_dm_warning: option { bool },
1508 /// Whether clients should display \"(guest)\" after the names of guest users to prominently highlight their status.
1509 ///
1510 /// Present if `realm` is present in `fetch_event_types`.
1511 ///
1512 /// **Changes**: New in Zulip 8.0 (feature level 216).
1513 realm_enable_guest_user_indicator: option { bool },
1514 /// Whether the organization is using a limited (Zulip Cloud Free) plan.
1515 ///
1516 /// Present if `realm` is present in `fetch_event_types`.
1517 zulip_plan_is_not_limited: option { bool },
1518 /// Whether this Zulip server is a development environment.
1519 ///
1520 /// Present if `realm` is present in `fetch_event_types`.
1521 ///
1522 /// Used to control certain features or UI (such as error popups) that should only apply when connected to a Zulip development environment.
1523 development_environment: option { bool },
1524 /// A timestamp indicating when the process hosting this event queue was started.
1525 ///
1526 /// Present if `realm` is present in `fetch_event_types`.
1527 ///
1528 /// Clients will likely only find this value useful for inclusion in detailed error reports.
1529 server_generation: option { i64 },
1530 /// This Zulip server's configured minimum required length for passwords.
1531 ///
1532 /// Present if `realm` is present in `fetch_event_types`.
1533 ///
1534 /// Necessary for password change UI to show whether the password will be accepted.
1535 password_min_length: option { i64 },
1536 /// This Zulip server's configured maximum length for passwords.
1537 ///
1538 /// Present if `realm` is present in `fetch_event_types`.
1539 ///
1540 /// Necessary for password change UI to show whether the password will be accepted.
1541 ///
1542 /// **Changes**: New in Zulip 10.0 (feature level 338).
1543 password_max_length: option { i64 },
1544 /// This Zulip server's configured minimum `zxcvbn` minimum guesses.
1545 ///
1546 /// Present if `realm` is present in `fetch_event_types`.
1547 ///
1548 /// Necessary for password change UI to show whether the password will be accepted.
1549 password_min_guesses: option { i64 },
1550 /// The maximum file size that can be uploaded to this Zulip organization.
1551 ///
1552 /// Present if `realm` is present in `fetch_event_types`.
1553 max_file_upload_size_mib: option { i64 },
1554 /// The maximum avatar size that can be uploaded to this Zulip server.
1555 ///
1556 /// Present if `realm` is present in `fetch_event_types`.
1557 max_avatar_file_size_mib: option { i64 },
1558 /// Whether the server is configured with support for inline image previews.
1559 ///
1560 /// Present if `realm` is present in `fetch_event_types`.
1561 ///
1562 /// Clients containing administrative UI for changing `realm_inline_image_preview` should consult this field before offering that feature.
1563 server_inline_image_preview: option { bool },
1564 /// Whether the server is configured with support for inline URL previews.
1565 ///
1566 /// Present if `realm` is present in `fetch_event_types`.
1567 ///
1568 /// Clients containing administrative UI for changing `realm_inline_url_embed_preview` should consult this field before offering that feature.
1569 server_inline_url_embed_preview: option { bool },
1570 /// Whether the server allows avatar changes.
1571 ///
1572 /// Present if `realm` is present in `fetch_event_types`.
1573 ///
1574 /// Similar to `realm_avatar_changes_disabled` but based on the `AVATAR_CHANGES_DISABLED` Zulip server level setting.
1575 server_avatar_changes_disabled: option { bool },
1576 /// Whether the server allows name changes.
1577 ///
1578 /// Present if `realm` is present in `fetch_event_types`.
1579 ///
1580 /// Similar to `realm_name_changes_disabled` but based on the `NAME_CHANGES_DISABLED` Zulip server level setting.
1581 server_name_changes_disabled: option { bool },
1582 /// Whether the server is running an old version based on the Zulip [server release lifecycle](https://zulip.readthedocs.io/en/latest/overview/release-lifecycle.html#upgrade-nag),
1583 /// such that the web app will display to the current user a prominent warning.
1584 ///
1585 /// Present if `realm` is present in `fetch_event_types`.
1586 ///
1587 /// **Changes**: New in Zulip 5.0 (feature level 74).
1588 server_needs_upgrade: option { bool },
1589 /// The value of the `WEB_PUBLIC_STREAMS_ENABLED` Zulip server level setting.
1590 ///
1591 /// Present if `realm` is present in `fetch_event_types`.
1592 ///
1593 /// A server that has disabled this setting intends to not offer [web public channels](https://zulip.com/help/public-access-option) to realms it hosts.
1594 /// (Zulip Cloud defaults to `true`; self-hosted servers default to `false`).
1595 ///
1596 /// Clients should use this to determine whether to offer UI for the realm-level setting for enabling web-public channels (`realm_enable_spectator_access`).
1597 ///
1598 /// **Changes**: New in Zulip 5.0 (feature level 110).
1599 server_web_public_streams_enabled: option { bool },
1600 /// Whether topic summarization is enabled in the server or not depending upon whether `TOPIC_SUMMARIZATION_MODEL` is set or not.
1601 ///
1602 /// Present if `realm` is present in `fetch_event_types`.
1603 ///
1604 /// **Changes**: New in Zulip 10.0 (feature level 350).
1605 server_can_summarize_topics: option { bool },
1606 /// Recommended client-side HTTP request timeout for [`GET /events`](https://zulip.com/api/get-events) calls.
1607 ///
1608 /// Present if `realm` is present in `fetch_event_types`.
1609 ///
1610 /// This is guaranteed to be somewhat greater than the heartbeat frequency.
1611 /// It is important that clients respect this parameter, so that increases in the heartbeat frequency do not break clients.
1612 ///
1613 /// **Changes**: New in Zulip 5.0 (feature level 74).
1614 /// Previously, this was hardcoded to 90 seconds, and clients should use that as a fallback value when interacting with servers where this field is not present.
1615 event_queue_longpoll_timeout_seconds: option { i64 },
1616 /// The ID of the private channel to which messages flagged by users for moderation are sent.
1617 ///
1618 /// Present if `realm` is present in `fetch_event_types`.
1619 ///
1620 /// Moderators can use this channel to review and act on reported content.
1621 ///
1622 /// Will be `-1` if moderation requests are disabled.
1623 ///
1624 /// Clients should check whether moderation requests are disabled to determine whether to present a \"report message\" feature in their UI within a given organization.
1625 ///
1626 /// **Changes**: New in Zulip 10.0 (feature level 331). Previously, no \"report message\" feature existed in Zulip.
1627 realm_moderation_request_channel_id: option { i64 },
1628 /// The ID of the channel to which automated messages announcing the [creation of new channels](https://zulip.com/help/configure-automated-notices#new-channel-announcements) are sent.
1629 ///
1630 /// Present if `realm` is present in `fetch_event_types`.
1631 ///
1632 /// Will be `-1` if such automated messages are disabled.
1633 ///
1634 /// Since these automated messages are sent by the server, this field is primarily relevant to clients containing UI for changing it.
1635 ///
1636 /// **Changes**: In Zulip 9.0 (feature level 241), renamed 'realm_notifications_stream_id' to `realm_new_stream_announcements_stream_id`.)
1637 realm_new_stream_announcements_stream_id: option { i64 },
1638 /// The ID of the channel to which automated messages announcing that [new users have joined the organization](https://zulip.com/help/configure-automated-notices#new-user-announcements) are sent.
1639 ///
1640 /// Present if `realm` is present in `fetch_event_types`.
1641 ///
1642 /// Will be `-1` if such automated messages are disabled.
1643 ///
1644 /// Since these automated messages are sent by the server, this field is primarily relevant to clients containing UI for changing it.
1645 ///
1646 /// **Changes**: In Zulip 9.0 (feature level 241), renamed 'realm_signup_notifications_stream_id' to `realm_signup_announcements_stream_id`.
1647 realm_signup_announcements_stream_id: option { i64 },
1648 /// The ID of the channel to which automated messages announcing new features or other end-user updates about the Zulip software are sent.
1649 ///
1650 /// Present if `realm` is present in `fetch_event_types`.
1651 ///
1652 /// Will be `-1` if such automated messages are disabled.
1653 ///
1654 /// Since these automated messages are sent by the server, this field is primarily relevant to clients containing UI for changing it.
1655 ///
1656 /// **Changes**: New in Zulip 9.0 (feature level 242).
1657 realm_zulip_update_announcements_stream_id: option { i64 },
1658 /// Whether the current user is allowed to create at least one type of channel with the organization's [channel creation policy](https://zulip.com/help/configure-who-can-create-channels).
1659 ///
1660 /// Its value will always equal `can_create_public_streams || can_create_private_streams`.
1661 ///
1662 /// Present if `realm_user` is present in `fetch_event_types`.
1663 ///
1664 /// **Changes**: Deprecated in Zulip 5.0 (feature level 102),
1665 /// when the new `create_private_stream_policy` and `create_public_stream_policy` properties introduced the possibility that a user could only create one type of channel.
1666 ///
1667 /// This field will be removed in a future release.
1668 can_create_streams: option { bool },
1669 /// Whether the current user is allowed to create public channels with the organization's [channel creation policy](https://zulip.com/help/configure-who-can-create-channels).
1670 ///
1671 /// Present if `realm_user` is present in `fetch_event_types`.
1672 ///
1673 /// **Changes**: New in Zulip 5.0 (feature level 102).
1674 /// In older versions, the deprecated `can_create_streams` property should be used to determine whether the user can create public channels.
1675 can_create_public_streams: option { bool },
1676 /// Whether the current user is allowed to create private channels with the organization's [channel creation policy](https://zulip.com/help/configure-who-can-create-channels).
1677 ///
1678 /// Present if `realm_user` is present in `fetch_event_types`.
1679 ///
1680 /// **Changes**: New in Zulip 5.0 (feature level 102).
1681 /// In older versions, the deprecated `can_create_streams` property should be used to determine whether the user can create private channels.
1682 can_create_private_streams: option { bool },
1683 /// Whether the current user is allowed to create public channels with the organization's [channel creation policy](https://zulip.com/help/configure-who-can-create-channels).
1684 ///
1685 /// Present if `realm_user` is present in `fetch_event_types`.
1686 ///
1687 /// Note that this will be false if the Zulip server does not have the `WEB_PUBLIC_STREAMS_ENABLED` setting enabled or if the organization has not enabled the `enable_spectator_access` realm setting.
1688 ///
1689 /// **Changes**: New in Zulip 5.0 (feature level 103).
1690 can_create_web_public_streams: option { bool },
1691 /// Whether the current user is allowed to subscribe other users to channels with the organization's [channels policy](https://zulip.com/help/configure-who-can-invite-to-channels).
1692 ///
1693 /// Present if `realm_user` is present in `fetch_event_types`.
1694 can_subscribe_other_users: option { bool },
1695 /// Whether the current user [is allowed to invite others](https://zulip.com/help/restrict-account-creation#change-who-can-send-invitations) to the organization.
1696 ///
1697 /// Present if `realm_user` is present in `fetch_event_types`.
1698 ///
1699 /// **Changes**: New in Zulip 4.0 (feature level 51).
1700 can_invite_others_to_realm: option { bool },
1701 /// Whether the current user is at least an [organization administrator](https://zulip.com/api/roles-and-permissions).
1702 ///
1703 /// Present if `realm_user` is present in `fetch_event_types`.
1704 is_admin: option { bool },
1705 /// Whether the current user is an [organization owner](https://zulip.com/api/roles-and-permissions).
1706 ///
1707 /// Present if `realm_user` is present in `fetch_event_types`.
1708 ///
1709 /// **Changes**: New in Zulip 3.0 (feature level 11).
1710 is_owner: option { bool },
1711 /// Present if `realm_user` is present in `fetch_event_types`.
1712 ///
1713 /// Whether the current user is at least an [organization moderator](https://zulip.com/api/roles-and-permissions).
1714 ///
1715 /// **Changes**: Prior to Zulip 11.0 (feature level 380), this was only true for users whose role was exactly the moderator role.
1716 ///
1717 /// New in Zulip 4.0 (feature level 60).
1718 is_moderator: option { bool },
1719 /// Whether the current user is a [guest user](https://zulip.com/api/roles-and-permissions).
1720 ///
1721 /// Present if `realm_user` is present in `fetch_event_types`.
1722 is_guest: option { bool },
1723 /// The unique ID for the current user.
1724 ///
1725 /// Present if `realm_user` is present in `fetch_event_types`.
1726 user_id: option { i64 },
1727 /// Maximum number of new subscribers for which the server will respect the `send_new_subscription_messages` parameter when [adding subscribers to a channel](https://zulip.com/api/subscribe#parameter-send_new_subscription_messages).
1728 ///
1729 /// **Changes**: New in Zulip 11.0 (feature level 397).
1730 max_bulk_new_subscription_messages: option { f64 },
1731 /// What typesof message edit history are accessible to users via [message edit history](https://zulip.com/help/view-a-messages-edit-history).
1732 ///
1733 /// Present if `realm` is present in `fetch_event_types`.
1734 ///
1735 /// - \"all\" = All edit history is visible.
1736 /// - \"moves\" = Only moves are visible.
1737 /// - \"none\" = No edit history is visible.
1738 ///
1739 /// **Changes**: New in Zulip 10.0 (feature level 358), replacing the previous `allow_edit_history` boolean setting; `true` corresponds to `all`, and `false` to `none`.
1740 realm_message_edit_history_visibility_policy: option { RealmMessageEditHistoryVisibilityPolicy },
1741 }
1742}
1743
1744field_access! {
1745 Response {
1746 /// An array of any parameters sent in the request that are not
1747 /// supported by the endpoint.
1748 ///
1749 /// See `error handling` documentation for details on this and its change history.
1750 ///
1751 /// [ignored_params](https://zulip.com/api/rest-error-handling#ignored-parameters)
1752 ignored_parameters_unsupported: option_cow_deref { [String], Vec<String> },
1753 /// The ID of the queue that has been allocated for your client.
1754 ///
1755 /// Will be `null` only for unauthenticated access in realms that have enabled the [public access option](https://zulip.com/help/public-access-option).
1756 queue_id: option_cow_deref { str, String },
1757 /// The server's version number.
1758 ///
1759 /// This is often a release version number, like `2.1.7`. But for a server running a [version from Git](https://zulip.readthedocs.io/en/latest/overview/release-lifecycle.html#git-versions),
1760 /// it will be a Git reference to the commit, like `5.0-dev-1650-gc3fd37755f`.
1761 ///
1762 /// **Changes**: As of Zulip 3.0 (feature level 3), this is always present in the endpoint's response. Previously, it was only present if `event_types` included `zulip_version`.
1763 zulip_version: option_cow_deref { str, String },
1764 /// The `git merge-base` between `zulip_version` and official branches in the public [Zulip server and web app repository](https://github.com/zulip/zulip),
1765 /// in the same format as `zulip_version`. This will equal `zulip_version` if the server is not running a fork of the Zulip server.
1766 ///
1767 /// This will be `\"\"` if the server does not know its `merge-base`.
1768 ///
1769 /// **Changes**: New in Zulip 5.0 (feature level 88).
1770 zulip_merge_base: option_cow_deref { str, String },
1771 /// Present if `alert_words` is present in `fetch_event_types`.
1772 ///
1773 /// An array of strings, each an [alert word](https://zulip.com/help/dm-mention-alert-notifications#alert-words) that the current user has configured.
1774 alert_words: option_cow_deref { [String], Vec<String> },
1775 /// Present if `custom_profile_fields` is present in `fetch_event_types`.
1776 ///
1777 /// An array of dictionaries where each dictionary contains the details of a single custom profile field that is available to users in this Zulip organization.
1778 ///
1779 /// This must be combined with the custom profile field values on individual user objects to display users' profiles.
1780 custom_profile_fields: option_cow_deref { [CustomProfileField], Vec<CustomProfileField> },
1781 /// An array containing draft objects for the user.
1782 ///
1783 /// These drafts are being stored on the backend for the purpose of syncing across devices.
1784 /// This array will be empty if `enable_drafts_synchronization` is set to `false`.
1785 drafts: option_cow_deref { [Draft], Vec<Draft> },
1786 /// Present if `onboarding_steps` is present in `fetch_event_types`.
1787 ///
1788 /// An array of dictionaries, where each dictionary contains details about a single onboarding step that should be shown to the user.
1789 ///
1790 /// We expect that only official Zulip clients will interact with this data.
1791 ///
1792 /// **Changes**: Before Zulip 8.0 (feature level 233), this array was named `hotspots`.
1793 /// Prior to this feature level, one-time notice onboarding steps were not supported,
1794 /// and the `type` field in these objects did not exist as all onboarding steps were implicitly hotspots.
1795 onboarding_steps: option_cow_deref { [OnboardingStep], Vec<OnboardingStep> },
1796 /// Present if `onboarding_steps` is present in `fetch_event_types`.
1797 ///
1798 /// URL of the navigation tour video to display to new users during onboarding. If `null`, the onboarding video experience is disabled.
1799 ///
1800 /// **Changes**: New in Zulip 10.0 (feature level 369).
1801 navigation_tour_video_url: option_cow_deref { str, String },
1802 /// Present if `scheduled_messages` is present in `fetch_event_types`.
1803 ///
1804 /// An array of all undelivered scheduled messages by the user.
1805 ///
1806 /// **Changes**: New in Zulip 7.0 (feature level 179).
1807 scheduled_messages: option_cow_deref { [ScheduledMessage], Vec<ScheduledMessage> },
1808 /// Present if `reminders` is present in `fetch_event_types`.
1809 ///
1810 /// An array of all undelivered reminders scheduled by the user.
1811 ///
1812 /// **Changes**: New in Zulip 11.0 (feature level 399).
1813 reminders: option_cow_deref { [ScheduledMessage], Vec<ScheduledMessage> },
1814 /// Present if `muted_topics` is present in `fetch_event_types`.
1815 ///
1816 /// Array of tuples, where each tuple describes a muted topic.
1817 /// The first element of the tuple is the channel name in which the topic has to be muted,
1818 /// the second element is the topic name to be muted and the third element is an integer UNIX timestamp representing when the topic was muted.
1819 ///
1820 /// **Changes**: Deprecated in Zulip 6.0 (feature level 134).
1821 /// Starting with this version, `muted_topics` will only be present in the response if the `user_topic` object,
1822 /// which generalizes and replaces this field, is not explicitly requested via `fetch_event_types`.
1823 ///
1824 /// Before Zulip 3.0 (feature level 1), the `muted_topics` array objects were 2-item tuples and did not include the timestamp information for when the topic was muted.
1825 muted_topics: option_cow_deref { [MutedTopic], Vec<MutedTopic> },
1826 /// Present if `muted_users` is present in `fetch_event_types`.
1827 ///
1828 /// A list of dictionaries where each dictionary describes a [MutedUser].
1829 ///
1830 /// **Changes**: New in Zulip 4.0 (feature level 48).
1831 muted_users: option_cow_deref { [MutedUser], Vec<MutedUser> },
1832 /// Present if `realm_domains` is present in `fetch_event_types`.
1833 ///
1834 /// An array of dictionaries where each dictionary describes a domain within which users can join the organization without and invitation.
1835 realm_domains: option_cow_deref { [RealmDomain], Vec<RealmDomain> },
1836 /// Present if `realm_linkifiers` is present in `fetch_event_types`.
1837 ///
1838 /// An ordered array of objects where each object describes a single [linkifier](https://zulip.com/help/add-a-custom-linkifier).
1839 ///
1840 /// The order of the array reflects the order that each linkifier should be processed when linkifying messages and topics.
1841 /// By default, new linkifiers are ordered last. This order can be modified with [`PATCH /realm/linkifiers`](https://zulip.com/api/reorder-linkifiers).
1842 ///
1843 /// Clients will receive an empty array unless the event queue is registered with the client capability `{\"linkifier_url_template\": true}`.
1844 /// See [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) parameter for how this can be specified.
1845 ///
1846 /// **Changes**: Before Zulip 7.0 (feature level 176), the `linkifier_url_template` client capability was not required.
1847 /// The requirement was added because linkifiers were updated to contain a URL template instead of a URL format string,
1848 /// which was a not backwards-compatible change.
1849 ///
1850 /// New in Zulip 4.0 (feature level 54). Clients can access this data for servers on earlier feature levels via the legacy `realm_filters` property.
1851 realm_linkifiers: option_cow_deref { [RealmLinkifier], Vec<RealmLinkifier> },
1852 /// Legacy property for [linkifiers](https://zulip.com/help/add-a-custom-linkifier).
1853 ///
1854 /// Present if `realm_filters` is present in `fetch_event_types`.
1855 ///
1856 /// When present, this is always an empty array.
1857 ///
1858 /// **Changes**: Prior to Zulip 7.0 (feature level 176), this was an array of tuples, where each tuple described a linkifier.
1859 /// The first element of the tuple was a string regex pattern which represented the pattern to be linkified on matching, for example `\"#(?P<id>[123])\"`.
1860 /// The second element was a URL format string that the pattern should be linkified with.
1861 /// A URL format string for the above example would be `\"https://realm.com/my_realm_filter/%(id)s\"`.
1862 /// And the third element was the ID of the realm filter.
1863 ///
1864 /// **Deprecated** in Zulip 4.0 (feature level 54), replaced by the `realm_linkifiers` key.
1865 realm_filters: option_cow_deref { [RealmFilter], Vec<RealmFilter> },
1866 /// Present if `realm_playgrounds` is present in `fetch_event_types`.
1867 ///
1868 /// An array of dictionaries where each dictionary describes a [code playground](https://zulip.com/help/code-blocks#code-playgrounds) configured for this Zulip organization.
1869 ///
1870 /// **Changes**: New in Zulip 4.0 (feature level 49).
1871 realm_playgrounds: option_cow_deref { [RealmPlayground], Vec<RealmPlayground> },
1872 /// Present if `realm_user_groups` is present in `fetch_event_types`.
1873 ///
1874 /// An array of dictionaries where each dictionary describes a [user group](https://zulip.com/help/user-groups) in the Zulip organization.
1875 ///
1876 /// Deactivated groups will only be included if `include_deactivated_groups` client capability is set to `true`.
1877 ///
1878 /// **Changes**: Prior to Zulip 10.0 (feature level 294), deactivated groups were included for all the clients.
1879 realm_user_groups: option_cow_deref { [UserGroup], Vec<UserGroup> },
1880 /// Present if `realm_bot` is present in `fetch_event_types`.
1881 ///
1882 /// An array of dictionaries where each dictionary describes a bot that the current user can administer.
1883 /// If the current user is an organization administrator, this will include all bots in the organization.
1884 /// Otherwise, it will only include bots owned by the user (either because the user created the bot or an administrator transferred the bot's ownership to the user).
1885 realm_bots: option_cow_deref { [Bot], Vec<Bot> },
1886 /// Present if `realm_embedded_bots` is present in `fetch_event_types`.
1887 ///
1888 /// An array of dictionaries where each dictionary describes an type of embedded bot that is available to be configured on this Zulip server.
1889 ///
1890 /// Clients only need these data if they contain UI for creating or administering bots.
1891 realm_embedded_bots: option_cow_deref { [RealmEmbeddedBot], Vec<RealmEmbeddedBot> },
1892 /// Present if `realm_incoming_webhook_bots` is present in `fetch_event_types`.
1893 ///
1894 /// An array of dictionaries where each dictionary describes a type of incoming webhook integration that is available to be configured on this Zulip server.
1895 ///
1896 /// Clients only need these data if they contain UI for creating or administering bots.
1897 realm_incoming_webhook_bots: option_cow_deref { [RealmIncomingWebhookBot], Vec<RealmIncomingWebhookBot> },
1898 /// Present if `recent_private_conversations` is present in `fetch_event_types`.
1899 ///
1900 /// An array of dictionaries containing data on all direct message and group direct message conversations that the user has received (or sent) messages in, organized by conversation.
1901 /// This data set is designed to support UI elements such as the \"Direct messages\" widget in the web application showing recent direct message conversations that the user has participated in.
1902 ///
1903 /// \"Recent\" is defined as the server's discretion; the original implementation interpreted that as \"the 1000 most recent direct messages the user received\".
1904 /// Present if `navigation_views` is present in `fetch_event_types`. An array of dictionaries containing data on all of the current user's navigation views.
1905 ///
1906 /// **Changes**: New in Zulip 11.0 (feature level 390).
1907 navigation_views: option_cow_deref { [NavigationView], Vec<NavigationView> },
1908 /// Present if `saved_snippets` is present in `fetch_event_types`.
1909 ///
1910 /// An array of dictionaries containing data on all of the current user's saved snippets.
1911 ///
1912 /// **Changes**: New in Zulip 10.0 (feature level 297).
1913 saved_snippets: option_cow_deref { [SavedSnippet], Vec<SavedSnippet> },
1914 /// Present if `subscription` is present in `fetch_event_types`.
1915 ///
1916 /// An array of dictionaries where each dictionary describes the properties of a channel the user is subscribed to (as well as that user's personal per-channel settings).
1917 ///
1918 /// **Changes**: Removed `email_address` field from the dictionary in Zulip 8.0 (feature level 226).
1919 ///
1920 /// Removed `role` field from the dictionary in Zulip 6.0 (feature level 133).
1921 subscriptions: option_cow_deref { [Subscription], Vec<Subscription> },
1922 /// Present if `subscription` is present in `fetch_event_types`.
1923 ///
1924 /// A array of dictionaries where each dictionary describes one of the channels the user has unsubscribed from but was previously subscribed to along with the subscription details.
1925 /// Unlike `never_subscribed`, the user might have messages in their personal message history that were sent to these channels.
1926 ///
1927 /// **Changes**: Prior to Zulip 10.0 (feature level 349), if a user was in `can_administer_channel_group` of a channel that they had unsubscribed from,
1928 /// but not an organization administrator, the channel in question would not be part of this array.
1929 ///
1930 /// Removed `email_address` field from the dictionary in Zulip 8.0 (feature level 226). Removed `role` field from the dictionary in Zulip 6.0 (feature level 133).
1931 unsubscribed: option_cow_deref { [Subscription], Vec<Subscription> },
1932 /// Present if `subscription` is present in `fetch_event_types`.
1933 ///
1934 /// A array of dictionaries where each dictionary describes one of the channels that is visible to the user and the user has never been subscribed to.
1935 ///
1936 /// Important for clients containing UI where one can browse channels to subscribe to.
1937 ///
1938 /// **Changes**: Before Zulip 10.0 (feature level 362),
1939 /// archived channels did not appear in this list,
1940 /// even if the `archived_channels` [client capability](https://zulip.com/api/register-queue#parameter-client_capabilities) was declared by the client.
1941 ///
1942 /// Prior to Zulip 10.0 (feature level 349), if a user was in `can_administer_channel_group` of a channel that they never subscribed to,
1943 /// but not an organization administrator, the channel in question would not be part of this array.
1944 never_subscribed: option_cow_deref { [NeverSubscribed], Vec<NeverSubscribed> },
1945 /// Present if `channel_folders` is present in `fetch_event_types`.
1946 ///
1947 /// An array of dictionaries where each dictionary describes one of the channel folders in the organization.
1948 ///
1949 /// Only channel folders with one or more public web channels are visible to spectators.
1950 ///
1951 /// **Changes**: New in Zulip 11.0 (feature level 389).
1952 channel_folders: option_cow_deref { [ChannelFolder], Vec<ChannelFolder> },
1953 /// Present if `starred_messages` is present in `fetch_event_types`. Array containing the IDs of all messages which have been [starred](https://zulip.com/help/star-a-message) by the user.
1954 starred_messages: option_cow_deref { [i64], Vec<i64> },
1955 /// Present if `stream` is present in `fetch_event_types`.
1956 ///
1957 /// Array of dictionaries where each dictionary contains details about a single channel in the organization that is visible to the user.
1958 ///
1959 /// For organization administrators, this will include all private channels in the organization.
1960 ///
1961 /// **Changes**: Before Zulip 11.0 (feature level 378),
1962 /// archived channels did not appear in this list,
1963 /// even if the `archived_channels` [client capability](https://zulip.com/api/register-queue#parameter-client_capabilities) was declared by the client.
1964 ///
1965 /// As of Zulip 8.0 (feature level 205), this will include all web-public channels in the organization as well.
1966 streams: option_cow_deref { [BasicChannel], Vec<BasicChannel> },
1967 /// An array of IDs of all the [default channels](https://zulip.com/help/set-default-streams-for-new-users) in the organization.
1968 ///
1969 /// Present if `default_streams` is present in `fetch_event_types`.
1970 ///
1971 /// **Changes**: Before Zulip 10.0 (feature level 330), we sent array of dictionaries where each dictionary contained details about a single default stream for the Zulip organization.
1972 realm_default_streams: option_cow_deref { [i64], Vec<i64> },
1973 /// An array of dictionaries where each dictionary contains details about a single default channel group configured for this Zulip organization.
1974 ///
1975 /// Present if `default_stream_groups` is present in `fetch_event_types`.
1976 ///
1977 /// Default channel groups are an experimental feature.
1978 realm_default_stream_groups: option_cow_deref { [DefaultChannelGroup], Vec<DefaultChannelGroup> },
1979 /// An array containing the stop words used by the Zulip server's full-text search implementation.
1980 ///
1981 /// Present if `stop_words` is present in `fetch_event_types`.
1982 ///
1983 /// Useful for showing helpful error messages when a search returns limited results because a stop word in the query was ignored.
1984 stop_words: option_cow_deref { [String], Vec<String> },
1985 /// Present if `user_topic` is present in `fetch_event_types`.
1986 ///
1987 /// **Changes**: New in Zulip 6.0 (feature level 134), deprecating and replacing the previous `muted_topics` structure.
1988 user_topics: option_cow_deref { [UserTopic], Vec<UserTopic> },
1989 /// GIPHY's client-side SDKs needs this API key to use the GIPHY API.
1990 ///
1991 /// Present if `giphy` is present in `fetch_event_types`.
1992 ///
1993 /// GIPHY API keys are not secret (their main purpose appears to be allowing GIPHY to block a problematic app).
1994 /// Please don't use our API key for an app unrelated to Zulip.
1995 ///
1996 /// Developers of clients should also read the [GIPHY API TOS](https://support.giphy.com/hc/en-us/articles/360028134111-GIPHY-API-Terms-of-Service-) before using this API key.
1997 ///
1998 /// **Changes**: Added in Zulip 4.0 (feature level 47).
1999 giphy_api_key: option_cow_deref { str, String },
2000 /// The current value of this global notification setting for the user.
2001 ///
2002 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2003 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2004 ///
2005 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
2006 ///
2007 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
2008 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2009 notification_sound: option_cow_deref { str, String },
2010 /// Present if `update_global_notifications` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2011 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2012 ///
2013 /// Array containing the names of the notification sound options supported by this Zulip server.
2014 /// Only relevant to support UI for configuring notification sounds.
2015 ///
2016 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
2017 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2018 available_notification_sounds: option_cow_deref { [String], Vec<String> },
2019 /// The default language chosen by the user.
2020 ///
2021 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2022 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2023 ///
2024 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
2025 ///
2026 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
2027 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2028 default_language: option_cow_deref { str, String },
2029 /// The name of the emoji set that the user has chosen.
2030 ///
2031 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2032 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2033 ///
2034 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
2035 ///
2036 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
2037 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2038 emojiset: option_cow_deref { str, String },
2039 /// The [home view](https://zulip.com/help/configure-home-view) in Zulip, represented as the URL suffix after `#` to be rendered when Zulip loads.
2040 ///
2041 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2042 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2043 ///
2044 /// Currently supported values are `all_messages` and `recent_topics`.
2045 ///
2046 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
2047 ///
2048 /// **Changes**: New in Zulip 8.0 (feature level 219).
2049 /// Previously, this was called `default_view`, which was new in Zulip 4.0 (feature level 42).
2050 ///
2051 /// **Deprecated** in Zulip 5.0 (feature level 89).
2052 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2053 web_home_view: option_cow_deref { str, String },
2054 /// The user's [profile time zone](https://zulip.com/help/change-your-timezone),
2055 /// which is used primarily to display the user's local time to other users.
2056 ///
2057 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2058 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2059 ///
2060 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
2061 ///
2062 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
2063 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2064 timezone: option_cow_deref { str, String },
2065 /// Array of dictionaries where each dictionary describes an emoji set supported by this version of the Zulip server.
2066 ///
2067 /// Present if `update_display_settings` is present in `fetch_event_types` and only for clients that did not include `user_settings_object`
2068 /// in their [`client_capabilities`](https://zulip.com/api/register-queue#parameter-client_capabilities) when registering the event queue.
2069 ///
2070 /// Only relevant to clients with configuration UI for choosing an emoji set; the currently selected emoji set is available in the `emojiset` key.
2071 ///
2072 /// See [PATCH /settings](https://zulip.com/api/update-settings) for details on the meaning of this setting.
2073 ///
2074 /// **Changes**: Deprecated in Zulip 5.0 (feature level 89).
2075 /// Clients connecting to newer servers should declare the `user_settings_object` client capability and access the `user_settings` object instead.
2076 emojiset_choices: option_cow_deref { [UserSettingsEmojisetChoice], Vec<UserSettingsEmojisetChoice> },
2077 /// The [organization language](https://zulip.com/help/configure-organization-language) for automated messages and invitation emails.
2078 ///
2079 /// Present if `realm` is present in `fetch_event_types`.
2080 realm_default_language: option_cow_deref { str, String },
2081 /// This organization's configured custom message for Welcome Bot to send to new user accounts, in Zulip Markdown format.
2082 ///
2083 /// Present if `realm` is present in `fetch_event_types`.
2084 ///
2085 /// **Changes**: New in Zulip 11.0 (feature level 416).
2086 realm_welcome_message_custom_text: option_cow_deref { str, String },
2087 /// Present if `realm` is present in `fetch_event_types`. The description of the organization, used on login and registration pages.
2088 realm_description: option_cow_deref { str, String },
2089 /// Present if `realm` is present in `fetch_event_types`. The name of the organization, used in login pages etc.
2090 realm_name: option_cow_deref { str, String },
2091 /// The URL of the custom Jitsi Meet server configured in this organization's settings.
2092 ///
2093 /// Present if `realm` is present in `fetch_event_types`.
2094 ///
2095 /// `null`, the default, means that the organization is using the should use the server-level configuration, `server_jitsi_server_url`.
2096 /// A correct client supporting only the modern API should use `realm_jitsi_server_url || server_jitsi_server_url` to create calls.
2097 ///
2098 /// **Changes**: New in Zulip 8.0 (feature level 212).
2099 /// Previously, this was only available as a server-level configuration, which was available via the `jitsi_server_url` field.
2100 realm_jitsi_server_url: option_cow_deref { str, String },
2101 /// The default pygments language code to be used for code blocks in this organization.
2102 ///
2103 /// Present if `realm` is present in `fetch_event_types`.
2104 ///
2105 /// If an empty string, no default has been set.
2106 ///
2107 /// **Changes**: Prior to Zulip 8.0 (feature level 195),
2108 /// a server bug meant that both `null` and an empty string could represent that no default was set for this realm setting.
2109 /// Clients supporting older server versions should treat either value (`null` or `\"\"`) as no default being set.
2110 realm_default_code_block_language: option_cow_deref { str, String },
2111 /// The URL of the organization's [profile icon](https://zulip.com/help/create-your-organization-profile).
2112 ///
2113 /// Present if `realm` is present in `fetch_event_types`.
2114 realm_icon_url: option_cow_deref { str, String },
2115 /// String indicating whether the organization's [profile icon](https://zulip.com/help/create-your-organization-profile) was uploaded by a user or is the default.
2116 ///
2117 /// Present if `realm` is present in `fetch_event_types`.
2118 ///
2119 /// Useful for UI allowing editing the organization's icon.
2120 ///
2121 /// - \"G\" means generated by Gravatar (the default).
2122 /// - \"U\" means uploaded by an organization administrator.
2123 realm_icon_source: option_cow_deref { str, String },
2124 /// The URL of the organization's wide logo configured in the [organization profile](https://zulip.com/help/create-your-organization-profile).
2125 ///
2126 /// Present if `realm` is present in `fetch_event_types`.
2127 realm_logo_url: option_cow_deref { str, String },
2128 /// String indicating whether the organization's [profile wide logo](https://zulip.com/help/create-your-organization-profile) was uploaded by a user or is the default.
2129 ///
2130 /// Present if `realm` is present in `fetch_event_types`.
2131 ///
2132 /// Useful for UI allowing editing the organization's wide logo.
2133 ///
2134 /// - \"D\" means the logo is the default Zulip logo.
2135 /// - \"U\" means uploaded by an organization administrator.
2136 realm_logo_source: option_cow_deref { str, String },
2137 /// The URL of the organization's dark theme wide-format logo configured in the [organization profile](https://zulip.com/help/create-your-organization-profile).
2138 ///
2139 /// Present if `realm` is present in `fetch_event_types`.
2140 realm_night_logo_url: option_cow_deref { str, String },
2141 /// String indicating whether the organization's dark theme [profile wide logo](https://zulip.com/help/create-your-organization-profile) was uploaded by a user or is the default.
2142 ///
2143 /// Present if `realm` is present in `fetch_event_types`.
2144 ///
2145 /// Useful for UI allowing editing the organization's wide logo.
2146 ///
2147 /// - \"D\" means the logo is the default Zulip logo.
2148 /// - \"U\" means uploaded by an organization administrator.
2149 realm_night_logo_source: option_cow_deref { str, String },
2150 /// The fake email domain that will be used for new bots created this organization.
2151 ///
2152 /// Useful for UI for creating bots.
2153 ///
2154 /// Present if `realm` is present in `fetch_event_types`.
2155 realm_bot_domain: option_cow_deref { str, String },
2156 /// The URL for the organization. Alias of `realm_url`.
2157 ///
2158 /// Present if `realm` is present in `fetch_event_types`.
2159 ///
2160 /// **Changes**: Deprecated in Zulip 9.0 (feature level 257).
2161 /// The term \"URI\" is deprecated in [web standards](https://url.spec.whatwg.org/#goals).
2162 realm_uri: option_cow_deref { str, String },
2163 /// The URL for the organization.
2164 ///
2165 /// Present if `realm` is present in `fetch_event_types`.
2166 ///
2167 /// **Changes**: New in Zulip 9.0 (feature level 257), replacing the deprecated `realm_uri`.
2168 realm_url: option_cow_deref { str, String },
2169 /// Text to use when displaying UI for wide organization logos, a feature that is currently not available on the Zulip Cloud Free plan.
2170 ///
2171 /// Present if `realm` is present in `fetch_event_types`.
2172 ///
2173 /// Useful only for clients supporting administrative UI for uploading a new wide organization logo to brand the organization.
2174 upgrade_text_for_wide_organization_logo: option_cow_deref { str, String },
2175 /// The base URL to be used to create Jitsi video calls.
2176 ///
2177 /// Equals `realm_jitsi_server_url || server_jitsi_server_url`.
2178 ///
2179 /// Present if `realm` is present in `fetch_event_types`.
2180 ///
2181 /// **Changes**: Deprecated in Zulip 8.0 (feature level 212) and will eventually be removed.
2182 /// Previously, the Jitsi server to use was not configurable on a per-realm basis, and this field contained the server's configured Jitsi server.
2183 /// (Which is now provided as `server_jitsi_server_url`).
2184 /// Clients supporting older versions should fall back to this field when creating calls:
2185 /// using `realm_jitsi_server_url || server_jitsi_server_url` with newer servers and using `jitsi_server_url` with servers below feature level 212.
2186 jitsi_server_url: option_cow_deref { str, String },
2187 /// A list describing the image formats that uploaded images will be thumbnailed into.
2188 ///
2189 /// Present if `realm` is present in `fetch_event_types`.
2190 ///
2191 /// Any image with a source starting with `/user_uploads/thumbnail/`
2192 /// can have its last path component replaced with any of the names contained in this list, to obtain the desired thumbnail size.
2193 ///
2194 /// **Changes**: New in Zulip 9.0 (feature level 273).
2195 server_thumbnail_formats: option_cow_deref { [ServerThumbnailFormat], Vec<ServerThumbnailFormat> },
2196 /// The URL to a JSON file that describes which emoji names map to which emoji codes, for all Unicode emoji this Zulip server accepts.
2197 ///
2198 /// Present if `realm` is present in `fetch_event_types`.
2199 ///
2200 /// The data at the given URL is a JSON object with one property, `code_to_names`.
2201 /// The value of that property is a JSON object where each key is an [emoji code](https://zulip.com/api/add-reaction#parameter-emoji_code) for an available Unicode emoji,
2202 /// and each value is the corresponding [emoji names](https://zulip.com/api/add-reaction#parameter-emoji_name) for this emoji,
2203 /// with the canonical name for the emoji always appearing first.
2204 ///
2205 /// The HTTP response at that URL will have appropriate HTTP caching headers, such any HTTP implementation should get a cached version if emoji haven't changed since the last request.
2206 ///
2207 /// **Changes**: New in Zulip 6.0 (feature level 140).
2208 server_emoji_data_url: option_cow_deref { str, String },
2209 /// The URL of the Jitsi server that the Zulip server is configured to use by default;
2210 /// the organization-level setting `realm_jitsi_server_url` takes precedence over this setting when both are set.
2211 ///
2212 /// Present if `realm` is present in `fetch_event_types`.
2213 ///
2214 /// **Changes**: New in Zulip 8.0 (feature level 212). Previously, this value was available as the now-deprecated `jitsi_server_url`.
2215 server_jitsi_server_url: option_cow_deref { str, String },
2216 /// Clients declaring the `empty_topic_name` client capability should use the value of `realm_empty_topic_display_name` to determine how to display the empty string topic.
2217 ///
2218 /// Present if `realm` is present in `fetch_event_types`.
2219 ///
2220 /// Clients not declaring the `empty_topic_name` client capability receive `realm_empty_topic_display_name` value as the topic name replacing empty string.
2221 ///
2222 /// **Changes**: New in Zulip 10.0 (feature level 334).
2223 /// Previously, the empty string was not a valid topic name.
2224 realm_empty_topic_display_name: option_cow_deref { str, String },
2225 /// A array of dictionaries where each entry describes a user whose account has not been deactivated.
2226 ///
2227 /// Present if `realm_user` is present in `fetch_event_types`.
2228 ///
2229 /// Note that unlike the usual User dictionary, this does not contain the `is_active` key, as all the users present in this array have active accounts.
2230 ///
2231 /// If the current user is a guest whose access to users is limited by a `can_access_all_users_group` policy,
2232 /// and the event queue was registered with the `user_list_incomplete` client capability,
2233 /// then users that the current user cannot access will not be included in this array.
2234 /// If the current user's access to a user is restricted but the client lacks this capability,
2235 /// then that inaccessible user will appear in the users array as an \"Unknown user\" object with the usual format but placeholder data whose only variable content is the user ID.
2236 ///
2237 /// See also `cross_realm_bots` and `realm_non_active_users`.
2238 ///
2239 /// **Changes**: Before Zulip 8.0 (feature level 232), the `user_list_incomplete` client capability did not exist,
2240 /// and so all clients whose access to a new user was prevented by `can_access_all_users_group` policy would receive a fake \"Unknown user\" event for such users.
2241 realm_users: option_cow_deref { [User], Vec<User> },
2242 /// A array of dictionaries where each entry describes a user whose account has been deactivated.
2243 ///
2244 /// Present if `realm_user` is present in `fetch_event_types`.
2245 ///
2246 /// Note that unlike the usual User dictionary this does not contain the `is_active` key as all the users present in this array have deactivated accounts.
2247 realm_non_active_users: option_cow_deref { [User], Vec<User> },
2248 /// The avatar data source type for the current user. Value values are `G` (gravatar) and `U` (uploaded by user).
2249 ///
2250 /// Present if `realm_user` is present in `fetch_event_types`.
2251 avatar_source: option_cow_deref { str, String },
2252 /// The avatar URL for the current user at 500x500 resolution, appropriate for use in settings UI showing the user's avatar.
2253 ///
2254 /// Present if `realm_user` is present in `fetch_event_types`.
2255 avatar_url_medium: option_cow_deref { str, String },
2256 /// The URL of the avatar for the current user at 100x100 resolution. See also `avatar_url_medium`.
2257 ///
2258 /// Present if `realm_user` is present in `fetch_event_types`.
2259 avatar_url: option_cow_deref { str, String },
2260 /// The Zulip API email address for the current user. See also `delivery_email`; these may be the same or different depending on the user's `email_address_visibility` policy.
2261 ///
2262 /// Present if `realm_user` is present in `fetch_event_types`.
2263 email: option_cow_deref { str, String },
2264 /// The user's email address, appropriate for UI for changing the user's email address. See also `email`.
2265 ///
2266 /// Present if `realm_user` is present in `fetch_event_types`.
2267 delivery_email: option_cow_deref { str, String },
2268 /// The full name of the current user.
2269 ///
2270 /// Present if `realm_user` is present in `fetch_event_types`.
2271 full_name: option_cow_deref { str, String },
2272 /// Array of dictionaries where each dictionary contains details of a single cross realm bot.
2273 ///
2274 /// Cross-realm bots are special system bot accounts like Notification Bot.
2275 ///
2276 /// Most clients will want to combine this with `realm_users` in many contexts.
2277 ///
2278 /// Present if `realm_user` is present in `fetch_event_types`.
2279 cross_realm_bots: option_cow_deref { [CrossRealmBot], Vec<CrossRealmBot> },
2280 }
2281}
2282
2283field_access! {
2284 Response {
2285 /// Present if `user_settings` is present in `fetch_event_types`.
2286 ///
2287 /// A dictionary containing the user's personal settings.
2288 ///
2289 /// **Changes**: Removed `dense_mode` setting in Zulip 10.0
2290 /// (feature level 364) as we now have `web_font_size_px` and
2291 /// `web_line_height_percent` settings for more control.
2292 ///
2293 /// New in Zulip 5.0 (feature level 89). Previously, these
2294 /// settings appeared in the top-level object, where they are
2295 /// available for clients without the `user_settings_object` client
2296 /// capability for backwards-compatibility.
2297 user_settings: option_ref { UserSettings },
2298 /// Present if `message` and `update_message_flags` are both present in
2299 /// `event_types`.
2300 ///
2301 /// A set of data structures describing the conversations containing
2302 /// the 50000 most recent unread messages the user has received. This will usually
2303 /// contain every unread message the user has received, but clients should support
2304 /// users with even more unread messages (and not hardcode the number 50000).
2305 unread_msgs: option_ref { UnreadMsgs },
2306 /// An array of objects; each object describes a type of custom profile field that could be configured on this Zulip server.
2307 ///
2308 /// Present if `custom_profile_fields` is present in `fetch_event_types`.
2309 ///
2310 /// Each custom profile type has an ID and the `type` property of a custom profile field is equal to one of these IDs.
2311 ///
2312 /// This attribute is only useful for clients containing UI for changing the set of configured custom profile fields in a Zulip organization.
2313 custom_profile_field_types: option_ref { HashMap<String, CustomProfileFieldType> },
2314 /// A dictionary where each entry describes the presence details of a user in the Zulip organization.
2315 ///
2316 /// Present if `presence` is present in `fetch_event_types`.
2317 ///
2318 /// The format of the entry (modern or legacy) depends on the value of [`slim_presence`](#parameter-slim_presence). Users who have been offline for multiple weeks may not appear in this object.
2319 presences: option_ref { PresenceList },
2320 /// A dictionary of objects where each object describes a custom emoji that has been uploaded in this Zulip organization.
2321 ///
2322 /// Present if `realm_emoji` is present in `fetch_event_types`.
2323 realm_emoji: option_ref { HashMap<String, RealmEmoji> },
2324 /// A dictionary which contains the [status](https://zulip.com/help/status-and-availability) of all users in the Zulip organization who have set a status.
2325 ///
2326 /// Present if `user_status` is present in `fetch_event_types`.
2327 ///
2328 /// **Changes**: The emoji parameters are new in Zulip 5.0 (feature level 86). Previously, Zulip did not support emoji associated with statuses.
2329 user_status: option_ref { HashMap<String, UserStatus> },
2330 /// Dictionary where each entry describes the user's push device's registration status and error code (if registration failed).
2331 ///
2332 /// Present if `push_device` is present in `fetch_event_types`.
2333 ///
2334 /// **Changes**: New in Zulip 11.0 (feature level 406).
2335 push_devices: option_ref { HashMap<String, PushDevice> },
2336 /// The configured [video call provider](https://zulip.com/help/configure-call-provider) for the organization.
2337 ///
2338 /// Present if `realm` is present in `fetch_event_types`.
2339 realm_video_chat_provider: option_ref { RealmVideoChatProvider },
2340 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to add custom emoji in the organization.
2341 ///
2342 /// Present if `realm` is present in `fetch_event_types`.
2343 realm_can_add_custom_emoji_group: option_ref { GroupSetting },
2344 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to start a new direct message conversation involving other non-bot users.
2345 ///
2346 /// Present if `realm` is present in `fetch_event_types`.
2347 ///
2348 /// Users who are outside this group and attempt to send the first direct message to a given collection of recipient users will receive an error, unless all other recipients are bots or the sender.
2349 ///
2350 /// **Changes**: New in Zulip 9.0 (feature level 270). Previously, access to send direct messages was controlled by the `private_message_policy` realm setting, which supported values of 1 (enabled) and 2 (disabled).
2351 realm_direct_message_initiator_group: option_ref { GroupSetting },
2352 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to add subscribers to channels in the organization.
2353 ///
2354 /// Present if `realm` is present in `fetch_event_types`.
2355 ///
2356 /// **Changes**: New in Zulip 10.0 (feature level 341).
2357 /// Previously, this permission was controlled by the enum `invite_to_stream_policy`.
2358 /// Values were 1=Members, 2=Admins, 3=Full members, 4=Moderators.
2359 realm_can_add_subscribers_group: option_ref { GroupSetting },
2360 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to delete any message in the organization.
2361 ///
2362 /// Present if `realm` is present in `fetch_event_types`.
2363 ///
2364 /// Note that a user must also be able to access the content of a message in order to delete it.
2365 /// See [channel permissions](https://zulip.com/help/channel-permissions) for information about content access for channel messages.
2366 /// For direct messages, the user must have received or sent the direct message to have content access.
2367 ///
2368 /// **Changes**: New in Zulip 10.0 (feature level 281).
2369 /// Previously, this permission was limited to administrators only and was uneditable.
2370 realm_can_delete_any_message_group: option_ref { GroupSetting },
2371 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to delete messages that they have sent in the organization.
2372 ///
2373 /// Present if `realm` is present in `fetch_event_types`.
2374 ///
2375 /// **Changes**: New in Zulip 10.0 (feature level 291).
2376 /// Previously, this permission was controlled by the enum `delete_own_message_policy`.
2377 /// Values were 1=Members, 2=Admins, 3=Full members, 4=Moderators, 5=Everyone.
2378 ///
2379 /// Before Zulip 5.0 (feature level 101), the `allow_message_deleting` boolean setting controlled this permission; `true` corresponded to `Everyone`, and `false` to `Admins`.
2380 realm_can_delete_own_message_group: option_ref { GroupSetting },
2381 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to change per-channel `can_delete_any_message_group` and `can_delete_own_message_group` permission settings.
2382 ///
2383 /// Present if `realm` is present in `fetch_event_types`.
2384 ///
2385 /// Note that the user must be a member of both this group and the `can_administer_channel_group` of the channel whose message delete settings they want to change.
2386 ///
2387 /// Organization administrators can always change these settings of every channel.
2388 ///
2389 /// **Changes**: New in Zulip 11.0 (feature level 407).
2390 realm_can_set_delete_message_policy_group: option_ref { GroupSetting },
2391 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to change per-channel `topics_policy` setting.
2392 ///
2393 /// Present if `realm` is present in `fetch_event_types`.
2394 ///
2395 /// Note that the user must be a member of both this group and the `can_administer_channel_group` of the channel whose `topics_policy` they want to change.
2396 ///
2397 /// Organization administrators can always change the `topics_policy` setting of every channel.
2398 ///
2399 /// **Changes**: New in Zulip 11.0 (feature level 392).
2400 realm_can_set_topics_policy_group: option_ref { GroupSetting },
2401 /// Present if `realm` is present in `fetch_event_types`.
2402 ///
2403 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to send email invitations for inviting other users to the organization.
2404 ///
2405 /// **Changes**: New in Zulip 10.0 (feature level 321).
2406 /// Previously, this permission was controlled by the enum `invite_to_realm_policy`.
2407 /// Values were 1=Members, 2=Admins, 3=Full members, 4=Moderators, 6=Nobody.
2408 ///
2409 /// Before Zulip 4.0 (feature level 50), the `invite_by_admins_only` boolean setting controlled this permission; `true` corresponded to `Admins`, and `false` to `Members`.
2410 realm_can_invite_users_group: option_ref { GroupSetting },
2411 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to use wildcard mentions in large channels.
2412 ///
2413 /// Present if `realm` is present in `fetch_event_types`.
2414 ///
2415 /// All users will receive a warning/reminder when using mentions in large channels, even when permitted to do so.
2416 ///
2417 /// **Changes**: New in Zulip 10.0 (feature level 352).
2418 /// Previously, this permission was controlled by the enum `wildcard_mention_policy`.
2419 realm_can_mention_many_users_group: option_ref { GroupSetting },
2420 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to move messages from one channel to another in the organization.
2421 ///
2422 /// Present if `realm` is present in `fetch_event_types`.
2423 ///
2424 /// **Changes**: New in Zulip 10.0 (feature level 310).
2425 /// Previously, this permission was controlled by the enum `move_messages_between_streams_policy`.
2426 /// Values were 1=Members, 2=Admins, 3=Full members, 4=Moderators, 6=Nobody.
2427 ///
2428 /// In Zulip 7.0 (feature level 159), `Nobody` was added as an option to `move_messages_between_streams_policy` enum.
2429 realm_can_move_messages_between_channels_group: option_ref { GroupSetting },
2430 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to move messages from one topic to another within a channel in the organization.
2431 ///
2432 /// Present if `realm` is present in `fetch_event_types`.
2433 ///
2434 /// **Changes**: New in Zulip 10.0 (feature level 316).
2435 /// Previously, this permission was controlled by the enum `edit_topic_policy`.
2436 /// Values were 1=Members, 2=Admins, 3=Full members, 4=Moderators, 5=Everyone, 6=Nobody.
2437 ///
2438 /// In Zulip 7.0 (feature level 159), `Nobody` was added as an option to `edit_topic_policy` enum.
2439 realm_can_move_messages_between_topics_group: option_ref { GroupSetting },
2440 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to create user groups in this organization.
2441 ///
2442 /// Present if `realm` is present in `fetch_event_types`.
2443 ///
2444 /// **Changes**: New in Zulip 10.0 (feature level 299).
2445 /// Previously `realm_user_group_edit_policy` field used to control the permission to create user groups.
2446 realm_can_create_groups: option_ref { GroupSetting },
2447 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to create all types of bot users in the organization.
2448 ///
2449 /// Present if `realm` is present in `fetch_event_types`.
2450 ///
2451 /// See also `can_create_write_only_bots_group`.
2452 ///
2453 /// **Changes**: New in Zulip 10.0 (feature level 344).
2454 /// Previously, this permission was controlled by the enum `bot_creation_policy`.
2455 /// Values were 1=Members, 2=Generic bots limited to administrators, 3=Administrators.
2456 realm_can_create_bots_group: option_ref { GroupSetting },
2457 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to create bot users that can only send messages in the organization, i.e. incoming webhooks, in addition to the users who are present in `can_create_bots_group`.
2458 ///
2459 /// Present if `realm` is present in `fetch_event_types`.
2460 ///
2461 /// **Changes**: New in Zulip 10.0 (feature level 344).
2462 /// Previously, this permission was controlled by the enum `bot_creation_policy`.
2463 /// Values were 1=Members, 2=Generic bots limited to administrators, 3=Administrators.
2464 realm_can_create_write_only_bots_group: option_ref { GroupSetting },
2465 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to administer all existing groups in this organization.
2466 ///
2467 /// Present if `realm` is present in `fetch_event_types`.
2468 ///
2469 /// **Changes**: Prior to Zulip 10.0 (feature level 305), only users who were a member of the group or had the moderator role or above could exercise the permission on a given group.
2470 ///
2471 /// New in Zulip 10.0 (feature level 299).
2472 /// Previously the `user_group_edit_policy` field controlled the permission to manage user groups.
2473 /// Valid values were as follows:
2474 ///
2475 /// - 1 = All members can create and edit user groups
2476 /// - 2 = Only organization administrators can create and edit user groups
2477 /// - 3 = Only [full members](https://zulip.com/api/roles-and-permissions#determining-if-a-user-is-a-full-member) can create and edit user groups.
2478 /// - 4 = Only organization administrators and moderators can create and edit user groups.
2479 realm_can_manage_all_groups: option_ref { GroupSetting },
2480 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to manage plans and billing in the organization.
2481 ///
2482 /// Present if `realm` is present in `fetch_event_types`.
2483 ///
2484 /// **Changes**: New in Zulip 10.0 (feature level 363).
2485 /// Previously, only owners and users with `is_billing_admin` property set to `true` were allowed to manage plans and billing.
2486 realm_can_manage_billing_group: option_ref { GroupSetting },
2487 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to create public channels in this organization.
2488 ///
2489 /// Present if `realm` is present in `fetch_event_types`.
2490 ///
2491 /// **Changes**: New in Zulip 9.0 (feature level 264).
2492 /// Previously `realm_create_public_stream_policy` field used to control the permission to create public channels.
2493 realm_can_create_public_channel_group: option_ref { GroupSetting },
2494 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to create private channels in this organization.
2495 ///
2496 /// Present if `realm` is present in `fetch_event_types`.
2497 ///
2498 /// **Changes**: New in Zulip 9.0 (feature level 266). Previously `realm_create_private_stream_policy` field used to control the permission to create private channels.
2499 realm_can_create_private_channel_group: option_ref { GroupSetting },
2500 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to create web-public channels in this organization.
2501 ///
2502 /// Present if `realm` is present in `fetch_event_types`.
2503 ///
2504 /// Has no effect and should not be displayed in settings UI unless the Zulip server has the `WEB_PUBLIC_STREAMS_ENABLED`
2505 /// server-level setting enabled and the organization has enabled the `enable_spectator_access` realm setting.
2506 ///
2507 /// **Changes**: New in Zulip 10.0 (feature level 280).
2508 /// Previously `realm_create_web_public_stream_policy` field used to control the permission to create web-public channels.
2509 realm_can_create_web_public_channel_group: option_ref { GroupSetting },
2510 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to [resolve topics](https://zulip.com/help/resolve-a-topic) in the organization.
2511 ///
2512 /// Present if `realm` is present in `fetch_event_types`.
2513 ///
2514 /// **Changes**: New in Zulip 10.0 (feature level 367).
2515 /// Previously, permission to resolve topics was controlled by the more general `can_move_messages_between_topics_group permission for moving messages`.
2516 realm_can_resolve_topics_group: option_ref { GroupSetting },
2517 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who have permission to fully use direct messages.
2518 ///
2519 /// Present if `realm` is present in `fetch_event_types`.
2520 ///
2521 /// Users outside this group can only send direct messages to conversations where all the recipients are in this group, are bots,
2522 /// or are the sender, ensuring that every direct message conversation will be visible to at least one user in this group.
2523 ///
2524 /// **Changes**: New in Zulip 9.0 (feature level 270).
2525 ///
2526 /// Previously, access to send direct messages was controlled by the `private_message_policy` realm setting, which supported values of 1 (enabled) and 2 (disabled).
2527 realm_direct_message_permission_group: option_ref { GroupSetting },
2528 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who are allowed to create
2529 /// [reusable invitation links](https://zulip.com/help/invite-new-users#create-a-reusable-invitation-link) to the organization.
2530 ///
2531 /// Present if `realm` is present in `fetch_event_types`.
2532 ///
2533 /// **Changes**: Prior to Zulip 10.0 (feature level 314), this value used to be of type integer and did not accept anonymous user groups. New in Zulip 8.0 (feature level 209).
2534 realm_create_multiuse_invite_group: option_ref { GroupSetting },
2535 /// Dictionary of authentication method keys mapped to dictionaries that describe the properties of the named authentication method for the organization
2536 /// - its enabled status and availability for use by the organization.
2537 ///
2538 /// Present if `realm` is present in `fetch_event_types`.
2539 ///
2540 /// Clients should use this to implement server-settings UI to change which methods are enabled for the organization.
2541 /// For authentication UI itself, clients should use the pre-authentication metadata returned by [`GET /server_settings`](https://zulip.com/api/get-server-settings).
2542 ///
2543 /// **Changes**: In Zulip 9.0 (feature level 241), the values in this dictionary were changed.
2544 /// Previously, the values were a simple boolean indicating whether the backend is enabled or not.
2545 realm_authentication_methods: option_ref { HashMap<String, RealmAuthenticationMethod> },
2546 /// Dictionary where each entry describes a supported [video call provider](https://zulip.com/help/configure-call-provider)
2547 /// that is configured on this server and could be selected by an organization administrator.
2548 ///
2549 /// Present if `realm` is present in `fetch_event_types`.
2550 ///
2551 /// Useful for administrative settings UI that allows changing the realm setting `video_chat_provider`.
2552 realm_available_video_chat_providers: option_ref { HashMap<String, RealmAvailableVideoChatProvider> },
2553 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who are allowed to access all users in the organization.
2554 ///
2555 /// Present if `realm` is present in `fetch_event_types`.
2556 ///
2557 /// **Changes**: Prior to Zulip 10.0 (feature level 314), this value used to be of type integer and did not accept anonymous user groups.
2558 ///
2559 /// New in Zulip 8.0 (feature level 225).
2560 realm_can_access_all_users_group: option_ref { GroupSetting },
2561 /// A [group-setting value](https://zulip.com/api/group-setting-values) defining the set of users who are allowed to use AI summarization.
2562 ///
2563 /// Present if `realm` is present in `fetch_event_types`.
2564 ///
2565 /// **Changes**: New in Zulip 10.0 (feature level 350).
2566 realm_can_summarize_topics_group: option_ref { GroupSetting },
2567 /// Dictionary where each entry describes a default external account type that can be configured with Zulip's [custom profile fields feature](https://zulip.com/help/custom-profile-fields).
2568 ///
2569 /// Present if `realm` is present in `fetch_event_types`.
2570 ///
2571 /// **Changes**: New in Zulip 2.1.0.
2572 realm_default_external_accounts: option_ref { HashMap<String, RealmDefaultExternalAccount> },
2573 /// Dictionary where each entry describes a valid rating that is configured on this server and could be selected by an organization administrator.
2574 ///
2575 /// Present if `realm` is present in `fetch_event_types`.
2576 ///
2577 /// Useful for administrative settings UI that allows changing the allowed rating of GIFs.
2578 giphy_rating_options: option_ref { HashMap<String, GiphyRatingOption> },
2579 /// A dictionary containing billing information of the organization.
2580 ///
2581 /// Present if `realm_billing` is present in `fetch_event_types`.
2582 ///
2583 /// **Changes**: New in Zulip 10.0 (feature level 363).
2584 realm_billing: option_ref { RealmBilling },
2585 /// A dictionary containing the default values of settings for new users.
2586 ///
2587 /// Present if `realm_user_settings_defaults` is present in `fetch_event_types`.
2588 ///
2589 /// **Changes**: New in Zulip 5.0 (feature level 95).
2590 realm_user_settings_defaults: option_ref { RealmUserSettingsDefault },
2591 /// Present if `realm` is present in `fetch_event_types`.
2592 ///
2593 /// Metadata detailing the valid values for permission settings that
2594 /// use [group-setting values](https://zulip.com/api/group-setting-values). Clients
2595 /// should use these data as explained in the
2596 /// [main documentation](https://zulip.com/api/group-setting-values#permitted-values)
2597 /// to determine what values to present as possible values for these
2598 /// settings in UI components.
2599 ///
2600 /// **Changes**: Before Zulip 10.0 (feature level 326), this part of
2601 /// the response had a documented-as-unstable format not suitable
2602 /// for general client use, and should be ignored.
2603 ///
2604 /// New in Zulip 8.0 (feature level 221).
2605 server_supported_permission_settings: option_ref { ServerSupportedPermissionSetting },
2606 }
2607}
2608
2609impl_default!(Response);
2610impl_display!(Response);
2611impl_response!(Response, base);