google_groups_settings/
types.rs

1//! The data types sent to and returned from the API client.
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5/// JSON template for Group resource
6#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
7pub struct Groups {
8    /**
9     * JSON template for Group resource
10     */
11    #[serde(
12        default,
13        skip_serializing_if = "String::is_empty",
14        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
15        rename = "allowExternalMembers"
16    )]
17    pub allow_external_members: String,
18    /**
19     * JSON template for Group resource
20     */
21    #[serde(
22        default,
23        skip_serializing_if = "String::is_empty",
24        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
25        rename = "allowGoogleCommunication"
26    )]
27    pub allow_google_communication: String,
28    /**
29     * JSON template for Group resource
30     */
31    #[serde(
32        default,
33        skip_serializing_if = "String::is_empty",
34        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
35        rename = "allowWebPosting"
36    )]
37    pub allow_web_posting: String,
38    /**
39     * JSON template for Group resource
40     */
41    #[serde(
42        default,
43        skip_serializing_if = "String::is_empty",
44        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
45        rename = "archiveOnly"
46    )]
47    pub archive_only: String,
48    /**
49     * JSON template for Group resource
50     */
51    #[serde(
52        default,
53        skip_serializing_if = "String::is_empty",
54        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
55        rename = "customFooterText"
56    )]
57    pub custom_footer_text: String,
58    /**
59     * JSON template for Group resource
60     */
61    #[serde(
62        default,
63        skip_serializing_if = "String::is_empty",
64        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
65        rename = "customReplyTo"
66    )]
67    pub custom_reply_to: String,
68    /**
69     * JSON template for Group resource
70     */
71    #[serde(
72        default,
73        skip_serializing_if = "String::is_empty",
74        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
75        rename = "customRolesEnabledForSettingsToBeMerged"
76    )]
77    pub custom_roles_enabled_for_settings_to_be_merged: String,
78    /**
79     * JSON template for Group resource
80     */
81    #[serde(
82        default,
83        skip_serializing_if = "String::is_empty",
84        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
85        rename = "defaultMessageDenyNotificationText"
86    )]
87    pub default_message_deny_notification_text: String,
88    /**
89     * JSON template for Group resource
90     */
91    #[serde(
92        default,
93        skip_serializing_if = "String::is_empty",
94        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
95    )]
96    pub default_sender: String,
97    /**
98     * JSON template for Group resource
99     */
100    #[serde(
101        default,
102        skip_serializing_if = "String::is_empty",
103        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
104    )]
105    pub description: String,
106    /**
107     * JSON template for Group resource
108     */
109    #[serde(
110        default,
111        skip_serializing_if = "String::is_empty",
112        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
113    )]
114    pub email: String,
115    /**
116     * JSON template for Group resource
117     */
118    #[serde(
119        default,
120        skip_serializing_if = "String::is_empty",
121        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
122        rename = "enableCollaborativeInbox"
123    )]
124    pub enable_collaborative_inbox: String,
125    /**
126     * JSON template for Group resource
127     */
128    #[serde(
129        default,
130        skip_serializing_if = "String::is_empty",
131        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
132        rename = "favoriteRepliesOnTop"
133    )]
134    pub favorite_replies_on_top: String,
135    /**
136     * JSON template for Group resource
137     */
138    #[serde(
139        default,
140        skip_serializing_if = "String::is_empty",
141        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
142        rename = "includeCustomFooter"
143    )]
144    pub include_custom_footer: String,
145    /**
146     * JSON template for Group resource
147     */
148    #[serde(
149        default,
150        skip_serializing_if = "String::is_empty",
151        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
152        rename = "includeInGlobalAddressList"
153    )]
154    pub include_in_global_address_list: String,
155    /**
156     * JSON template for Group resource
157     */
158    #[serde(
159        default,
160        skip_serializing_if = "String::is_empty",
161        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
162        rename = "isArchived"
163    )]
164    pub is_archived: String,
165    /**
166     * JSON template for Group resource
167     */
168    #[serde(
169        default,
170        skip_serializing_if = "String::is_empty",
171        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
172    )]
173    pub kind: String,
174    /**
175     * JSON template for Group resource
176     */
177    #[serde(
178        default,
179        skip_serializing_if = "crate::utils::zero_i64",
180        deserialize_with = "crate::utils::deserialize_null_i64::deserialize",
181        rename = "maxMessageBytes"
182    )]
183    pub max_message_bytes: i64,
184    /**
185     * JSON template for Group resource
186     */
187    #[serde(
188        default,
189        skip_serializing_if = "String::is_empty",
190        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
191        rename = "membersCanPostAsTheGroup"
192    )]
193    pub members_can_post_as_the_group: String,
194    /**
195     * JSON template for Group resource
196     */
197    #[serde(
198        default,
199        skip_serializing_if = "String::is_empty",
200        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
201        rename = "messageDisplayFont"
202    )]
203    pub message_display_font: String,
204    /**
205     * JSON template for Group resource
206     */
207    #[serde(
208        default,
209        skip_serializing_if = "String::is_empty",
210        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
211        rename = "messageModerationLevel"
212    )]
213    pub message_moderation_level: String,
214    /**
215     * JSON template for Group resource
216     */
217    #[serde(
218        default,
219        skip_serializing_if = "String::is_empty",
220        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
221    )]
222    pub name: String,
223    /**
224     * JSON template for Group resource
225     */
226    #[serde(
227        default,
228        skip_serializing_if = "String::is_empty",
229        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
230        rename = "primaryLanguage"
231    )]
232    pub primary_language: String,
233    /**
234     * JSON template for Group resource
235     */
236    #[serde(
237        default,
238        skip_serializing_if = "String::is_empty",
239        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
240        rename = "replyTo"
241    )]
242    pub reply_to: String,
243    /**
244     * JSON template for Group resource
245     */
246    #[serde(
247        default,
248        skip_serializing_if = "String::is_empty",
249        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
250        rename = "sendMessageDenyNotification"
251    )]
252    pub send_message_deny_notification: String,
253    /**
254     * JSON template for Group resource
255     */
256    #[serde(
257        default,
258        skip_serializing_if = "String::is_empty",
259        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
260        rename = "showInGroupDirectory"
261    )]
262    pub show_in_group_directory: String,
263    /**
264     * JSON template for Group resource
265     */
266    #[serde(
267        default,
268        skip_serializing_if = "String::is_empty",
269        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
270        rename = "spamModerationLevel"
271    )]
272    pub spam_moderation_level: String,
273    /**
274     * JSON template for Group resource
275     */
276    #[serde(
277        default,
278        skip_serializing_if = "String::is_empty",
279        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
280        rename = "whoCanAdd"
281    )]
282    pub who_can_add: String,
283    /**
284     * JSON template for Group resource
285     */
286    #[serde(
287        default,
288        skip_serializing_if = "String::is_empty",
289        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
290        rename = "whoCanAddReferences"
291    )]
292    pub who_can_add_references: String,
293    /**
294     * JSON template for Group resource
295     */
296    #[serde(
297        default,
298        skip_serializing_if = "String::is_empty",
299        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
300        rename = "whoCanApproveMembers"
301    )]
302    pub who_can_approve_members: String,
303    /**
304     * JSON template for Group resource
305     */
306    #[serde(
307        default,
308        skip_serializing_if = "String::is_empty",
309        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
310        rename = "whoCanApproveMessages"
311    )]
312    pub who_can_approve_messages: String,
313    /**
314     * JSON template for Group resource
315     */
316    #[serde(
317        default,
318        skip_serializing_if = "String::is_empty",
319        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
320        rename = "whoCanAssignTopics"
321    )]
322    pub who_can_assign_topics: String,
323    /**
324     * JSON template for Group resource
325     */
326    #[serde(
327        default,
328        skip_serializing_if = "String::is_empty",
329        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
330        rename = "whoCanAssistContent"
331    )]
332    pub who_can_assist_content: String,
333    /**
334     * JSON template for Group resource
335     */
336    #[serde(
337        default,
338        skip_serializing_if = "String::is_empty",
339        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
340        rename = "whoCanBanUsers"
341    )]
342    pub who_can_ban_users: String,
343    /**
344     * JSON template for Group resource
345     */
346    #[serde(
347        default,
348        skip_serializing_if = "String::is_empty",
349        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
350        rename = "whoCanContactOwner"
351    )]
352    pub who_can_contact_owner: String,
353    /**
354     * JSON template for Group resource
355     */
356    #[serde(
357        default,
358        skip_serializing_if = "String::is_empty",
359        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
360        rename = "whoCanDeleteAnyPost"
361    )]
362    pub who_can_delete_any_post: String,
363    /**
364     * JSON template for Group resource
365     */
366    #[serde(
367        default,
368        skip_serializing_if = "String::is_empty",
369        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
370        rename = "whoCanDeleteTopics"
371    )]
372    pub who_can_delete_topics: String,
373    /**
374     * JSON template for Group resource
375     */
376    #[serde(
377        default,
378        skip_serializing_if = "String::is_empty",
379        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
380        rename = "whoCanDiscoverGroup"
381    )]
382    pub who_can_discover_group: String,
383    /**
384     * JSON template for Group resource
385     */
386    #[serde(
387        default,
388        skip_serializing_if = "String::is_empty",
389        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
390        rename = "whoCanEnterFreeFormTags"
391    )]
392    pub who_can_enter_free_form_tags: String,
393    /**
394     * JSON template for Group resource
395     */
396    #[serde(
397        default,
398        skip_serializing_if = "String::is_empty",
399        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
400        rename = "whoCanHideAbuse"
401    )]
402    pub who_can_hide_abuse: String,
403    /**
404     * JSON template for Group resource
405     */
406    #[serde(
407        default,
408        skip_serializing_if = "String::is_empty",
409        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
410        rename = "whoCanInvite"
411    )]
412    pub who_can_invite: String,
413    /**
414     * JSON template for Group resource
415     */
416    #[serde(
417        default,
418        skip_serializing_if = "String::is_empty",
419        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
420        rename = "whoCanJoin"
421    )]
422    pub who_can_join: String,
423    /**
424     * JSON template for Group resource
425     */
426    #[serde(
427        default,
428        skip_serializing_if = "String::is_empty",
429        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
430        rename = "whoCanLeaveGroup"
431    )]
432    pub who_can_leave_group: String,
433    /**
434     * JSON template for Group resource
435     */
436    #[serde(
437        default,
438        skip_serializing_if = "String::is_empty",
439        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
440        rename = "whoCanLockTopics"
441    )]
442    pub who_can_lock_topics: String,
443    /**
444     * JSON template for Group resource
445     */
446    #[serde(
447        default,
448        skip_serializing_if = "String::is_empty",
449        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
450        rename = "whoCanMakeTopicsSticky"
451    )]
452    pub who_can_make_topics_sticky: String,
453    /**
454     * JSON template for Group resource
455     */
456    #[serde(
457        default,
458        skip_serializing_if = "String::is_empty",
459        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
460        rename = "whoCanMarkDuplicate"
461    )]
462    pub who_can_mark_duplicate: String,
463    /**
464     * JSON template for Group resource
465     */
466    #[serde(
467        default,
468        skip_serializing_if = "String::is_empty",
469        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
470        rename = "whoCanMarkFavoriteReplyOnAnyTopic"
471    )]
472    pub who_can_mark_favorite_reply_on_any_topic: String,
473    /**
474     * JSON template for Group resource
475     */
476    #[serde(
477        default,
478        skip_serializing_if = "String::is_empty",
479        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
480        rename = "whoCanMarkFavoriteReplyOnOwnTopic"
481    )]
482    pub who_can_mark_favorite_reply_on_own_topic: String,
483    /**
484     * JSON template for Group resource
485     */
486    #[serde(
487        default,
488        skip_serializing_if = "String::is_empty",
489        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
490        rename = "whoCanMarkNoResponseNeeded"
491    )]
492    pub who_can_mark_no_response_needed: String,
493    /**
494     * JSON template for Group resource
495     */
496    #[serde(
497        default,
498        skip_serializing_if = "String::is_empty",
499        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
500        rename = "whoCanModerateContent"
501    )]
502    pub who_can_moderate_content: String,
503    /**
504     * JSON template for Group resource
505     */
506    #[serde(
507        default,
508        skip_serializing_if = "String::is_empty",
509        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
510        rename = "whoCanModerateMembers"
511    )]
512    pub who_can_moderate_members: String,
513    /**
514     * JSON template for Group resource
515     */
516    #[serde(
517        default,
518        skip_serializing_if = "String::is_empty",
519        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
520        rename = "whoCanModifyMembers"
521    )]
522    pub who_can_modify_members: String,
523    /**
524     * JSON template for Group resource
525     */
526    #[serde(
527        default,
528        skip_serializing_if = "String::is_empty",
529        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
530        rename = "whoCanModifyTagsAndCategories"
531    )]
532    pub who_can_modify_tags_and_categories: String,
533    /**
534     * JSON template for Group resource
535     */
536    #[serde(
537        default,
538        skip_serializing_if = "String::is_empty",
539        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
540        rename = "whoCanMoveTopicsIn"
541    )]
542    pub who_can_move_topics_in: String,
543    /**
544     * JSON template for Group resource
545     */
546    #[serde(
547        default,
548        skip_serializing_if = "String::is_empty",
549        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
550        rename = "whoCanMoveTopicsOut"
551    )]
552    pub who_can_move_topics_out: String,
553    /**
554     * JSON template for Group resource
555     */
556    #[serde(
557        default,
558        skip_serializing_if = "String::is_empty",
559        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
560        rename = "whoCanPostAnnouncements"
561    )]
562    pub who_can_post_announcements: String,
563    /**
564     * JSON template for Group resource
565     */
566    #[serde(
567        default,
568        skip_serializing_if = "String::is_empty",
569        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
570        rename = "whoCanPostMessage"
571    )]
572    pub who_can_post_message: String,
573    /**
574     * JSON template for Group resource
575     */
576    #[serde(
577        default,
578        skip_serializing_if = "String::is_empty",
579        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
580        rename = "whoCanTakeTopics"
581    )]
582    pub who_can_take_topics: String,
583    /**
584     * JSON template for Group resource
585     */
586    #[serde(
587        default,
588        skip_serializing_if = "String::is_empty",
589        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
590        rename = "whoCanUnassignTopic"
591    )]
592    pub who_can_unassign_topic: String,
593    /**
594     * JSON template for Group resource
595     */
596    #[serde(
597        default,
598        skip_serializing_if = "String::is_empty",
599        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
600        rename = "whoCanUnmarkFavoriteReplyOnAnyTopic"
601    )]
602    pub who_can_unmark_favorite_reply_on_any_topic: String,
603    /**
604     * JSON template for Group resource
605     */
606    #[serde(
607        default,
608        skip_serializing_if = "String::is_empty",
609        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
610        rename = "whoCanViewGroup"
611    )]
612    pub who_can_view_group: String,
613    /**
614     * JSON template for Group resource
615     */
616    #[serde(
617        default,
618        skip_serializing_if = "String::is_empty",
619        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
620        rename = "whoCanViewMembership"
621    )]
622    pub who_can_view_membership: String,
623}
624
625/**
626 * Data format for the response.
627 */
628#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
629pub enum Alt {
630    #[serde(rename = "atom")]
631    Atom,
632    #[serde(rename = "json")]
633    Json,
634    #[serde(rename = "")]
635    #[default]
636    Noop,
637    #[serde(other)]
638    FallthroughString,
639}
640
641impl std::fmt::Display for Alt {
642    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
643        match self {
644            Alt::Atom => "atom",
645            Alt::Json => "json",
646            Alt::Noop => "",
647            Alt::FallthroughString => "*",
648        }
649        .fmt(f)
650    }
651}
652
653impl Alt {
654    pub fn is_noop(&self) -> bool {
655        matches!(self, Alt::Noop)
656    }
657}