Skip to main content

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);