1#![allow(
5 clippy::too_many_arguments,
6 clippy::large_enum_variant,
7 clippy::result_large_err,
8 clippy::doc_markdown,
9 clippy::doc_lazy_continuation,
10)]
11
12pub type GroupsGetInfoResult = Vec<GroupsGetInfoItem>;
13pub type LegalHoldId = String;
14pub type LegalHoldPolicyDescription = String;
15pub type LegalHoldPolicyName = String;
16pub type LegalHoldsGetPolicyResult = LegalHoldPolicy;
17pub type LegalHoldsPolicyCreateResult = LegalHoldPolicy;
18pub type LegalHoldsPolicyUpdateResult = LegalHoldPolicy;
19pub type ListHeldRevisionCursor = String;
20pub type MembersGetInfoResult = Vec<MembersGetInfoItem>;
21pub type NumberPerDay = Vec<Option<u64>>;
22pub type Path = String;
23pub type TeamMemberRoleId = String;
24pub type UserQuota = u32;
25
26#[derive(Debug, Clone, PartialEq, Eq)]
28#[non_exhaustive] pub struct ActiveWebSession {
30 pub session_id: String,
32 pub user_agent: String,
34 pub os: String,
36 pub browser: String,
38 pub ip_address: Option<String>,
40 pub country: Option<String>,
42 pub created: Option<crate::types::common::DropboxTimestamp>,
44 pub updated: Option<crate::types::common::DropboxTimestamp>,
46 pub expires: Option<crate::types::common::DropboxTimestamp>,
48}
49
50impl ActiveWebSession {
51 pub fn new(session_id: String, user_agent: String, os: String, browser: String) -> Self {
52 ActiveWebSession {
53 session_id,
54 user_agent,
55 os,
56 browser,
57 ip_address: None,
58 country: None,
59 created: None,
60 updated: None,
61 expires: None,
62 }
63 }
64
65 pub fn with_ip_address(mut self, value: String) -> Self {
66 self.ip_address = Some(value);
67 self
68 }
69
70 pub fn with_country(mut self, value: String) -> Self {
71 self.country = Some(value);
72 self
73 }
74
75 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
76 self.created = Some(value);
77 self
78 }
79
80 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
81 self.updated = Some(value);
82 self
83 }
84
85 pub fn with_expires(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
86 self.expires = Some(value);
87 self
88 }
89}
90
91const ACTIVE_WEB_SESSION_FIELDS: &[&str] = &["session_id",
92 "user_agent",
93 "os",
94 "browser",
95 "ip_address",
96 "country",
97 "created",
98 "updated",
99 "expires"];
100impl ActiveWebSession {
101 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
102 map: V,
103 ) -> Result<ActiveWebSession, V::Error> {
104 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
105 }
106
107 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
108 mut map: V,
109 optional: bool,
110 ) -> Result<Option<ActiveWebSession>, V::Error> {
111 let mut field_session_id = None;
112 let mut field_user_agent = None;
113 let mut field_os = None;
114 let mut field_browser = None;
115 let mut field_ip_address = None;
116 let mut field_country = None;
117 let mut field_created = None;
118 let mut field_updated = None;
119 let mut field_expires = None;
120 let mut nothing = true;
121 while let Some(key) = map.next_key::<&str>()? {
122 nothing = false;
123 match key {
124 "session_id" => {
125 if field_session_id.is_some() {
126 return Err(::serde::de::Error::duplicate_field("session_id"));
127 }
128 field_session_id = Some(map.next_value()?);
129 }
130 "user_agent" => {
131 if field_user_agent.is_some() {
132 return Err(::serde::de::Error::duplicate_field("user_agent"));
133 }
134 field_user_agent = Some(map.next_value()?);
135 }
136 "os" => {
137 if field_os.is_some() {
138 return Err(::serde::de::Error::duplicate_field("os"));
139 }
140 field_os = Some(map.next_value()?);
141 }
142 "browser" => {
143 if field_browser.is_some() {
144 return Err(::serde::de::Error::duplicate_field("browser"));
145 }
146 field_browser = Some(map.next_value()?);
147 }
148 "ip_address" => {
149 if field_ip_address.is_some() {
150 return Err(::serde::de::Error::duplicate_field("ip_address"));
151 }
152 field_ip_address = Some(map.next_value()?);
153 }
154 "country" => {
155 if field_country.is_some() {
156 return Err(::serde::de::Error::duplicate_field("country"));
157 }
158 field_country = Some(map.next_value()?);
159 }
160 "created" => {
161 if field_created.is_some() {
162 return Err(::serde::de::Error::duplicate_field("created"));
163 }
164 field_created = Some(map.next_value()?);
165 }
166 "updated" => {
167 if field_updated.is_some() {
168 return Err(::serde::de::Error::duplicate_field("updated"));
169 }
170 field_updated = Some(map.next_value()?);
171 }
172 "expires" => {
173 if field_expires.is_some() {
174 return Err(::serde::de::Error::duplicate_field("expires"));
175 }
176 field_expires = Some(map.next_value()?);
177 }
178 _ => {
179 map.next_value::<::serde_json::Value>()?;
181 }
182 }
183 }
184 if optional && nothing {
185 return Ok(None);
186 }
187 let result = ActiveWebSession {
188 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
189 user_agent: field_user_agent.ok_or_else(|| ::serde::de::Error::missing_field("user_agent"))?,
190 os: field_os.ok_or_else(|| ::serde::de::Error::missing_field("os"))?,
191 browser: field_browser.ok_or_else(|| ::serde::de::Error::missing_field("browser"))?,
192 ip_address: field_ip_address.and_then(Option::flatten),
193 country: field_country.and_then(Option::flatten),
194 created: field_created.and_then(Option::flatten),
195 updated: field_updated.and_then(Option::flatten),
196 expires: field_expires.and_then(Option::flatten),
197 };
198 Ok(Some(result))
199 }
200
201 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
202 &self,
203 s: &mut S::SerializeStruct,
204 ) -> Result<(), S::Error> {
205 use serde::ser::SerializeStruct;
206 s.serialize_field("session_id", &self.session_id)?;
207 s.serialize_field("user_agent", &self.user_agent)?;
208 s.serialize_field("os", &self.os)?;
209 s.serialize_field("browser", &self.browser)?;
210 if let Some(val) = &self.ip_address {
211 s.serialize_field("ip_address", val)?;
212 }
213 if let Some(val) = &self.country {
214 s.serialize_field("country", val)?;
215 }
216 if let Some(val) = &self.created {
217 s.serialize_field("created", val)?;
218 }
219 if let Some(val) = &self.updated {
220 s.serialize_field("updated", val)?;
221 }
222 if let Some(val) = &self.expires {
223 s.serialize_field("expires", val)?;
224 }
225 Ok(())
226 }
227}
228
229impl<'de> ::serde::de::Deserialize<'de> for ActiveWebSession {
230 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
231 use serde::de::{MapAccess, Visitor};
233 struct StructVisitor;
234 impl<'de> Visitor<'de> for StructVisitor {
235 type Value = ActiveWebSession;
236 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
237 f.write_str("a ActiveWebSession struct")
238 }
239 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
240 ActiveWebSession::internal_deserialize(map)
241 }
242 }
243 deserializer.deserialize_struct("ActiveWebSession", ACTIVE_WEB_SESSION_FIELDS, StructVisitor)
244 }
245}
246
247impl ::serde::ser::Serialize for ActiveWebSession {
248 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
249 use serde::ser::SerializeStruct;
251 let mut s = serializer.serialize_struct("ActiveWebSession", 9)?;
252 self.internal_serialize::<S>(&mut s)?;
253 s.end()
254 }
255}
256
257impl From<ActiveWebSession> for DeviceSession {
259 fn from(subtype: ActiveWebSession) -> Self {
260 Self {
261 session_id: subtype.session_id,
262 ip_address: subtype.ip_address,
263 country: subtype.country,
264 created: subtype.created,
265 updated: subtype.updated,
266 }
267 }
268}
269#[derive(Debug, Clone, PartialEq, Eq)]
273#[non_exhaustive] pub enum AddSecondaryEmailResult {
275 Success(crate::types::secondary_emails::SecondaryEmail),
277 Unavailable(crate::types::common::EmailAddress),
279 AlreadyPending(crate::types::common::EmailAddress),
281 AlreadyOwnedByUser(crate::types::common::EmailAddress),
283 ReachedLimit(crate::types::common::EmailAddress),
285 #[deprecated]
287 TransientError(crate::types::common::EmailAddress),
288 TooManyUpdates(crate::types::common::EmailAddress),
290 UnknownError(crate::types::common::EmailAddress),
292 RateLimited(crate::types::common::EmailAddress),
294 Other,
297}
298
299impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailResult {
300 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
301 use serde::de::{self, MapAccess, Visitor};
303 struct EnumVisitor;
304 impl<'de> Visitor<'de> for EnumVisitor {
305 type Value = AddSecondaryEmailResult;
306 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
307 f.write_str("a AddSecondaryEmailResult structure")
308 }
309 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
310 let tag: &str = match map.next_key()? {
311 Some(".tag") => map.next_value()?,
312 _ => return Err(de::Error::missing_field(".tag"))
313 };
314 let value = match tag {
315 "success" => AddSecondaryEmailResult::Success(crate::types::secondary_emails::SecondaryEmail::internal_deserialize(&mut map)?),
316 "unavailable" => {
317 match map.next_key()? {
318 Some("unavailable") => AddSecondaryEmailResult::Unavailable(map.next_value()?),
319 None => return Err(de::Error::missing_field("unavailable")),
320 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
321 }
322 }
323 "already_pending" => {
324 match map.next_key()? {
325 Some("already_pending") => AddSecondaryEmailResult::AlreadyPending(map.next_value()?),
326 None => return Err(de::Error::missing_field("already_pending")),
327 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
328 }
329 }
330 "already_owned_by_user" => {
331 match map.next_key()? {
332 Some("already_owned_by_user") => AddSecondaryEmailResult::AlreadyOwnedByUser(map.next_value()?),
333 None => return Err(de::Error::missing_field("already_owned_by_user")),
334 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
335 }
336 }
337 "reached_limit" => {
338 match map.next_key()? {
339 Some("reached_limit") => AddSecondaryEmailResult::ReachedLimit(map.next_value()?),
340 None => return Err(de::Error::missing_field("reached_limit")),
341 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
342 }
343 }
344 #[allow(deprecated)]
345 "transient_error" => {
346 match map.next_key()? {
347 Some("transient_error") => AddSecondaryEmailResult::TransientError(map.next_value()?),
348 None => return Err(de::Error::missing_field("transient_error")),
349 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
350 }
351 }
352 "too_many_updates" => {
353 match map.next_key()? {
354 Some("too_many_updates") => AddSecondaryEmailResult::TooManyUpdates(map.next_value()?),
355 None => return Err(de::Error::missing_field("too_many_updates")),
356 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
357 }
358 }
359 "unknown_error" => {
360 match map.next_key()? {
361 Some("unknown_error") => AddSecondaryEmailResult::UnknownError(map.next_value()?),
362 None => return Err(de::Error::missing_field("unknown_error")),
363 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
364 }
365 }
366 "rate_limited" => {
367 match map.next_key()? {
368 Some("rate_limited") => AddSecondaryEmailResult::RateLimited(map.next_value()?),
369 None => return Err(de::Error::missing_field("rate_limited")),
370 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
371 }
372 }
373 _ => AddSecondaryEmailResult::Other,
374 };
375 crate::eat_json_fields(&mut map)?;
376 Ok(value)
377 }
378 }
379 const VARIANTS: &[&str] = &["success",
380 "unavailable",
381 "already_pending",
382 "already_owned_by_user",
383 "reached_limit",
384 "transient_error",
385 "too_many_updates",
386 "unknown_error",
387 "rate_limited",
388 "other"];
389 deserializer.deserialize_struct("AddSecondaryEmailResult", VARIANTS, EnumVisitor)
390 }
391}
392
393impl ::serde::ser::Serialize for AddSecondaryEmailResult {
394 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
395 use serde::ser::SerializeStruct;
397 match self {
398 AddSecondaryEmailResult::Success(x) => {
399 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 3)?;
401 s.serialize_field(".tag", "success")?;
402 x.internal_serialize::<S>(&mut s)?;
403 s.end()
404 }
405 AddSecondaryEmailResult::Unavailable(x) => {
406 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
408 s.serialize_field(".tag", "unavailable")?;
409 s.serialize_field("unavailable", x)?;
410 s.end()
411 }
412 AddSecondaryEmailResult::AlreadyPending(x) => {
413 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
415 s.serialize_field(".tag", "already_pending")?;
416 s.serialize_field("already_pending", x)?;
417 s.end()
418 }
419 AddSecondaryEmailResult::AlreadyOwnedByUser(x) => {
420 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
422 s.serialize_field(".tag", "already_owned_by_user")?;
423 s.serialize_field("already_owned_by_user", x)?;
424 s.end()
425 }
426 AddSecondaryEmailResult::ReachedLimit(x) => {
427 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
429 s.serialize_field(".tag", "reached_limit")?;
430 s.serialize_field("reached_limit", x)?;
431 s.end()
432 }
433 #[allow(deprecated)]
434 AddSecondaryEmailResult::TransientError(x) => {
435 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
437 s.serialize_field(".tag", "transient_error")?;
438 s.serialize_field("transient_error", x)?;
439 s.end()
440 }
441 AddSecondaryEmailResult::TooManyUpdates(x) => {
442 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
444 s.serialize_field(".tag", "too_many_updates")?;
445 s.serialize_field("too_many_updates", x)?;
446 s.end()
447 }
448 AddSecondaryEmailResult::UnknownError(x) => {
449 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
451 s.serialize_field(".tag", "unknown_error")?;
452 s.serialize_field("unknown_error", x)?;
453 s.end()
454 }
455 AddSecondaryEmailResult::RateLimited(x) => {
456 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
458 s.serialize_field(".tag", "rate_limited")?;
459 s.serialize_field("rate_limited", x)?;
460 s.end()
461 }
462 AddSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
463 }
464 }
465}
466
467#[derive(Debug, Clone, PartialEq, Eq)]
468#[non_exhaustive] pub struct AddSecondaryEmailsArg {
470 pub new_secondary_emails: Vec<UserSecondaryEmailsArg>,
472}
473
474impl AddSecondaryEmailsArg {
475 pub fn new(new_secondary_emails: Vec<UserSecondaryEmailsArg>) -> Self {
476 AddSecondaryEmailsArg {
477 new_secondary_emails,
478 }
479 }
480}
481
482const ADD_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["new_secondary_emails"];
483impl AddSecondaryEmailsArg {
484 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
485 map: V,
486 ) -> Result<AddSecondaryEmailsArg, V::Error> {
487 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
488 }
489
490 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
491 mut map: V,
492 optional: bool,
493 ) -> Result<Option<AddSecondaryEmailsArg>, V::Error> {
494 let mut field_new_secondary_emails = None;
495 let mut nothing = true;
496 while let Some(key) = map.next_key::<&str>()? {
497 nothing = false;
498 match key {
499 "new_secondary_emails" => {
500 if field_new_secondary_emails.is_some() {
501 return Err(::serde::de::Error::duplicate_field("new_secondary_emails"));
502 }
503 field_new_secondary_emails = Some(map.next_value()?);
504 }
505 _ => {
506 map.next_value::<::serde_json::Value>()?;
508 }
509 }
510 }
511 if optional && nothing {
512 return Ok(None);
513 }
514 let result = AddSecondaryEmailsArg {
515 new_secondary_emails: field_new_secondary_emails.ok_or_else(|| ::serde::de::Error::missing_field("new_secondary_emails"))?,
516 };
517 Ok(Some(result))
518 }
519
520 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
521 &self,
522 s: &mut S::SerializeStruct,
523 ) -> Result<(), S::Error> {
524 use serde::ser::SerializeStruct;
525 s.serialize_field("new_secondary_emails", &self.new_secondary_emails)?;
526 Ok(())
527 }
528}
529
530impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailsArg {
531 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
532 use serde::de::{MapAccess, Visitor};
534 struct StructVisitor;
535 impl<'de> Visitor<'de> for StructVisitor {
536 type Value = AddSecondaryEmailsArg;
537 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
538 f.write_str("a AddSecondaryEmailsArg struct")
539 }
540 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
541 AddSecondaryEmailsArg::internal_deserialize(map)
542 }
543 }
544 deserializer.deserialize_struct("AddSecondaryEmailsArg", ADD_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
545 }
546}
547
548impl ::serde::ser::Serialize for AddSecondaryEmailsArg {
549 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
550 use serde::ser::SerializeStruct;
552 let mut s = serializer.serialize_struct("AddSecondaryEmailsArg", 1)?;
553 self.internal_serialize::<S>(&mut s)?;
554 s.end()
555 }
556}
557
558#[derive(Debug, Clone, PartialEq, Eq)]
560#[non_exhaustive] pub enum AddSecondaryEmailsError {
562 SecondaryEmailsDisabled,
564 TooManyEmails,
566 Other,
569}
570
571impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailsError {
572 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
573 use serde::de::{self, MapAccess, Visitor};
575 struct EnumVisitor;
576 impl<'de> Visitor<'de> for EnumVisitor {
577 type Value = AddSecondaryEmailsError;
578 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
579 f.write_str("a AddSecondaryEmailsError structure")
580 }
581 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
582 let tag: &str = match map.next_key()? {
583 Some(".tag") => map.next_value()?,
584 _ => return Err(de::Error::missing_field(".tag"))
585 };
586 let value = match tag {
587 "secondary_emails_disabled" => AddSecondaryEmailsError::SecondaryEmailsDisabled,
588 "too_many_emails" => AddSecondaryEmailsError::TooManyEmails,
589 _ => AddSecondaryEmailsError::Other,
590 };
591 crate::eat_json_fields(&mut map)?;
592 Ok(value)
593 }
594 }
595 const VARIANTS: &[&str] = &["secondary_emails_disabled",
596 "too_many_emails",
597 "other"];
598 deserializer.deserialize_struct("AddSecondaryEmailsError", VARIANTS, EnumVisitor)
599 }
600}
601
602impl ::serde::ser::Serialize for AddSecondaryEmailsError {
603 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
604 use serde::ser::SerializeStruct;
606 match self {
607 AddSecondaryEmailsError::SecondaryEmailsDisabled => {
608 let mut s = serializer.serialize_struct("AddSecondaryEmailsError", 1)?;
610 s.serialize_field(".tag", "secondary_emails_disabled")?;
611 s.end()
612 }
613 AddSecondaryEmailsError::TooManyEmails => {
614 let mut s = serializer.serialize_struct("AddSecondaryEmailsError", 1)?;
616 s.serialize_field(".tag", "too_many_emails")?;
617 s.end()
618 }
619 AddSecondaryEmailsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
620 }
621 }
622}
623
624impl ::std::error::Error for AddSecondaryEmailsError {
625}
626
627impl ::std::fmt::Display for AddSecondaryEmailsError {
628 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
629 match self {
630 AddSecondaryEmailsError::SecondaryEmailsDisabled => f.write_str("Secondary emails are disabled for the team."),
631 AddSecondaryEmailsError::TooManyEmails => f.write_str("A maximum of 20 secondary emails can be added in a single call."),
632 _ => write!(f, "{:?}", *self),
633 }
634 }
635}
636
637#[derive(Debug, Clone, PartialEq, Eq)]
638#[non_exhaustive] pub struct AddSecondaryEmailsResult {
640 pub results: Vec<UserAddResult>,
642}
643
644impl AddSecondaryEmailsResult {
645 pub fn new(results: Vec<UserAddResult>) -> Self {
646 AddSecondaryEmailsResult {
647 results,
648 }
649 }
650}
651
652const ADD_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["results"];
653impl AddSecondaryEmailsResult {
654 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
655 map: V,
656 ) -> Result<AddSecondaryEmailsResult, V::Error> {
657 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
658 }
659
660 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
661 mut map: V,
662 optional: bool,
663 ) -> Result<Option<AddSecondaryEmailsResult>, V::Error> {
664 let mut field_results = None;
665 let mut nothing = true;
666 while let Some(key) = map.next_key::<&str>()? {
667 nothing = false;
668 match key {
669 "results" => {
670 if field_results.is_some() {
671 return Err(::serde::de::Error::duplicate_field("results"));
672 }
673 field_results = Some(map.next_value()?);
674 }
675 _ => {
676 map.next_value::<::serde_json::Value>()?;
678 }
679 }
680 }
681 if optional && nothing {
682 return Ok(None);
683 }
684 let result = AddSecondaryEmailsResult {
685 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
686 };
687 Ok(Some(result))
688 }
689
690 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
691 &self,
692 s: &mut S::SerializeStruct,
693 ) -> Result<(), S::Error> {
694 use serde::ser::SerializeStruct;
695 s.serialize_field("results", &self.results)?;
696 Ok(())
697 }
698}
699
700impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailsResult {
701 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
702 use serde::de::{MapAccess, Visitor};
704 struct StructVisitor;
705 impl<'de> Visitor<'de> for StructVisitor {
706 type Value = AddSecondaryEmailsResult;
707 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
708 f.write_str("a AddSecondaryEmailsResult struct")
709 }
710 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
711 AddSecondaryEmailsResult::internal_deserialize(map)
712 }
713 }
714 deserializer.deserialize_struct("AddSecondaryEmailsResult", ADD_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
715 }
716}
717
718impl ::serde::ser::Serialize for AddSecondaryEmailsResult {
719 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
720 use serde::ser::SerializeStruct;
722 let mut s = serializer.serialize_struct("AddSecondaryEmailsResult", 1)?;
723 self.internal_serialize::<S>(&mut s)?;
724 s.end()
725 }
726}
727
728#[derive(Debug, Clone, PartialEq, Eq)]
730pub enum AdminTier {
731 TeamAdmin,
733 UserManagementAdmin,
735 SupportAdmin,
738 MemberOnly,
740}
741
742impl<'de> ::serde::de::Deserialize<'de> for AdminTier {
743 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
744 use serde::de::{self, MapAccess, Visitor};
746 struct EnumVisitor;
747 impl<'de> Visitor<'de> for EnumVisitor {
748 type Value = AdminTier;
749 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
750 f.write_str("a AdminTier structure")
751 }
752 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
753 let tag: &str = match map.next_key()? {
754 Some(".tag") => map.next_value()?,
755 _ => return Err(de::Error::missing_field(".tag"))
756 };
757 let value = match tag {
758 "team_admin" => AdminTier::TeamAdmin,
759 "user_management_admin" => AdminTier::UserManagementAdmin,
760 "support_admin" => AdminTier::SupportAdmin,
761 "member_only" => AdminTier::MemberOnly,
762 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
763 };
764 crate::eat_json_fields(&mut map)?;
765 Ok(value)
766 }
767 }
768 const VARIANTS: &[&str] = &["team_admin",
769 "user_management_admin",
770 "support_admin",
771 "member_only"];
772 deserializer.deserialize_struct("AdminTier", VARIANTS, EnumVisitor)
773 }
774}
775
776impl ::serde::ser::Serialize for AdminTier {
777 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
778 use serde::ser::SerializeStruct;
780 match self {
781 AdminTier::TeamAdmin => {
782 let mut s = serializer.serialize_struct("AdminTier", 1)?;
784 s.serialize_field(".tag", "team_admin")?;
785 s.end()
786 }
787 AdminTier::UserManagementAdmin => {
788 let mut s = serializer.serialize_struct("AdminTier", 1)?;
790 s.serialize_field(".tag", "user_management_admin")?;
791 s.end()
792 }
793 AdminTier::SupportAdmin => {
794 let mut s = serializer.serialize_struct("AdminTier", 1)?;
796 s.serialize_field(".tag", "support_admin")?;
797 s.end()
798 }
799 AdminTier::MemberOnly => {
800 let mut s = serializer.serialize_struct("AdminTier", 1)?;
802 s.serialize_field(".tag", "member_only")?;
803 s.end()
804 }
805 }
806 }
807}
808
809#[derive(Debug, Clone, PartialEq, Eq)]
811#[non_exhaustive] pub struct ApiApp {
813 pub app_id: String,
815 pub app_name: String,
817 pub is_app_folder: bool,
819 pub publisher: Option<String>,
821 pub publisher_url: Option<String>,
823 pub linked: Option<crate::types::common::DropboxTimestamp>,
825}
826
827impl ApiApp {
828 pub fn new(app_id: String, app_name: String, is_app_folder: bool) -> Self {
829 ApiApp {
830 app_id,
831 app_name,
832 is_app_folder,
833 publisher: None,
834 publisher_url: None,
835 linked: None,
836 }
837 }
838
839 pub fn with_publisher(mut self, value: String) -> Self {
840 self.publisher = Some(value);
841 self
842 }
843
844 pub fn with_publisher_url(mut self, value: String) -> Self {
845 self.publisher_url = Some(value);
846 self
847 }
848
849 pub fn with_linked(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
850 self.linked = Some(value);
851 self
852 }
853}
854
855const API_APP_FIELDS: &[&str] = &["app_id",
856 "app_name",
857 "is_app_folder",
858 "publisher",
859 "publisher_url",
860 "linked"];
861impl ApiApp {
862 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
863 map: V,
864 ) -> Result<ApiApp, V::Error> {
865 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
866 }
867
868 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
869 mut map: V,
870 optional: bool,
871 ) -> Result<Option<ApiApp>, V::Error> {
872 let mut field_app_id = None;
873 let mut field_app_name = None;
874 let mut field_is_app_folder = None;
875 let mut field_publisher = None;
876 let mut field_publisher_url = None;
877 let mut field_linked = None;
878 let mut nothing = true;
879 while let Some(key) = map.next_key::<&str>()? {
880 nothing = false;
881 match key {
882 "app_id" => {
883 if field_app_id.is_some() {
884 return Err(::serde::de::Error::duplicate_field("app_id"));
885 }
886 field_app_id = Some(map.next_value()?);
887 }
888 "app_name" => {
889 if field_app_name.is_some() {
890 return Err(::serde::de::Error::duplicate_field("app_name"));
891 }
892 field_app_name = Some(map.next_value()?);
893 }
894 "is_app_folder" => {
895 if field_is_app_folder.is_some() {
896 return Err(::serde::de::Error::duplicate_field("is_app_folder"));
897 }
898 field_is_app_folder = Some(map.next_value()?);
899 }
900 "publisher" => {
901 if field_publisher.is_some() {
902 return Err(::serde::de::Error::duplicate_field("publisher"));
903 }
904 field_publisher = Some(map.next_value()?);
905 }
906 "publisher_url" => {
907 if field_publisher_url.is_some() {
908 return Err(::serde::de::Error::duplicate_field("publisher_url"));
909 }
910 field_publisher_url = Some(map.next_value()?);
911 }
912 "linked" => {
913 if field_linked.is_some() {
914 return Err(::serde::de::Error::duplicate_field("linked"));
915 }
916 field_linked = Some(map.next_value()?);
917 }
918 _ => {
919 map.next_value::<::serde_json::Value>()?;
921 }
922 }
923 }
924 if optional && nothing {
925 return Ok(None);
926 }
927 let result = ApiApp {
928 app_id: field_app_id.ok_or_else(|| ::serde::de::Error::missing_field("app_id"))?,
929 app_name: field_app_name.ok_or_else(|| ::serde::de::Error::missing_field("app_name"))?,
930 is_app_folder: field_is_app_folder.ok_or_else(|| ::serde::de::Error::missing_field("is_app_folder"))?,
931 publisher: field_publisher.and_then(Option::flatten),
932 publisher_url: field_publisher_url.and_then(Option::flatten),
933 linked: field_linked.and_then(Option::flatten),
934 };
935 Ok(Some(result))
936 }
937
938 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
939 &self,
940 s: &mut S::SerializeStruct,
941 ) -> Result<(), S::Error> {
942 use serde::ser::SerializeStruct;
943 s.serialize_field("app_id", &self.app_id)?;
944 s.serialize_field("app_name", &self.app_name)?;
945 s.serialize_field("is_app_folder", &self.is_app_folder)?;
946 if let Some(val) = &self.publisher {
947 s.serialize_field("publisher", val)?;
948 }
949 if let Some(val) = &self.publisher_url {
950 s.serialize_field("publisher_url", val)?;
951 }
952 if let Some(val) = &self.linked {
953 s.serialize_field("linked", val)?;
954 }
955 Ok(())
956 }
957}
958
959impl<'de> ::serde::de::Deserialize<'de> for ApiApp {
960 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
961 use serde::de::{MapAccess, Visitor};
963 struct StructVisitor;
964 impl<'de> Visitor<'de> for StructVisitor {
965 type Value = ApiApp;
966 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
967 f.write_str("a ApiApp struct")
968 }
969 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
970 ApiApp::internal_deserialize(map)
971 }
972 }
973 deserializer.deserialize_struct("ApiApp", API_APP_FIELDS, StructVisitor)
974 }
975}
976
977impl ::serde::ser::Serialize for ApiApp {
978 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
979 use serde::ser::SerializeStruct;
981 let mut s = serializer.serialize_struct("ApiApp", 6)?;
982 self.internal_serialize::<S>(&mut s)?;
983 s.end()
984 }
985}
986
987#[derive(Debug, Clone, PartialEq, Eq)]
989#[non_exhaustive] pub struct BaseDfbReport {
991 pub start_date: String,
993}
994
995impl BaseDfbReport {
996 pub fn new(start_date: String) -> Self {
997 BaseDfbReport {
998 start_date,
999 }
1000 }
1001}
1002
1003const BASE_DFB_REPORT_FIELDS: &[&str] = &["start_date"];
1004impl BaseDfbReport {
1005 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1006 map: V,
1007 ) -> Result<BaseDfbReport, V::Error> {
1008 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1009 }
1010
1011 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1012 mut map: V,
1013 optional: bool,
1014 ) -> Result<Option<BaseDfbReport>, V::Error> {
1015 let mut field_start_date = None;
1016 let mut nothing = true;
1017 while let Some(key) = map.next_key::<&str>()? {
1018 nothing = false;
1019 match key {
1020 "start_date" => {
1021 if field_start_date.is_some() {
1022 return Err(::serde::de::Error::duplicate_field("start_date"));
1023 }
1024 field_start_date = Some(map.next_value()?);
1025 }
1026 _ => {
1027 map.next_value::<::serde_json::Value>()?;
1029 }
1030 }
1031 }
1032 if optional && nothing {
1033 return Ok(None);
1034 }
1035 let result = BaseDfbReport {
1036 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
1037 };
1038 Ok(Some(result))
1039 }
1040
1041 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1042 &self,
1043 s: &mut S::SerializeStruct,
1044 ) -> Result<(), S::Error> {
1045 use serde::ser::SerializeStruct;
1046 s.serialize_field("start_date", &self.start_date)?;
1047 Ok(())
1048 }
1049}
1050
1051impl<'de> ::serde::de::Deserialize<'de> for BaseDfbReport {
1052 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1053 use serde::de::{MapAccess, Visitor};
1055 struct StructVisitor;
1056 impl<'de> Visitor<'de> for StructVisitor {
1057 type Value = BaseDfbReport;
1058 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1059 f.write_str("a BaseDfbReport struct")
1060 }
1061 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1062 BaseDfbReport::internal_deserialize(map)
1063 }
1064 }
1065 deserializer.deserialize_struct("BaseDfbReport", BASE_DFB_REPORT_FIELDS, StructVisitor)
1066 }
1067}
1068
1069impl ::serde::ser::Serialize for BaseDfbReport {
1070 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1071 use serde::ser::SerializeStruct;
1073 let mut s = serializer.serialize_struct("BaseDfbReport", 1)?;
1074 self.internal_serialize::<S>(&mut s)?;
1075 s.end()
1076 }
1077}
1078
1079#[derive(Debug, Clone, PartialEq, Eq)]
1081#[non_exhaustive] pub enum BaseTeamFolderError {
1083 AccessError(TeamFolderAccessError),
1084 StatusError(TeamFolderInvalidStatusError),
1085 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
1086 Other,
1089}
1090
1091impl<'de> ::serde::de::Deserialize<'de> for BaseTeamFolderError {
1092 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1093 use serde::de::{self, MapAccess, Visitor};
1095 struct EnumVisitor;
1096 impl<'de> Visitor<'de> for EnumVisitor {
1097 type Value = BaseTeamFolderError;
1098 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1099 f.write_str("a BaseTeamFolderError structure")
1100 }
1101 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1102 let tag: &str = match map.next_key()? {
1103 Some(".tag") => map.next_value()?,
1104 _ => return Err(de::Error::missing_field(".tag"))
1105 };
1106 let value = match tag {
1107 "access_error" => {
1108 match map.next_key()? {
1109 Some("access_error") => BaseTeamFolderError::AccessError(map.next_value()?),
1110 None => return Err(de::Error::missing_field("access_error")),
1111 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1112 }
1113 }
1114 "status_error" => {
1115 match map.next_key()? {
1116 Some("status_error") => BaseTeamFolderError::StatusError(map.next_value()?),
1117 None => return Err(de::Error::missing_field("status_error")),
1118 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1119 }
1120 }
1121 "team_shared_dropbox_error" => {
1122 match map.next_key()? {
1123 Some("team_shared_dropbox_error") => BaseTeamFolderError::TeamSharedDropboxError(map.next_value()?),
1124 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
1125 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1126 }
1127 }
1128 _ => BaseTeamFolderError::Other,
1129 };
1130 crate::eat_json_fields(&mut map)?;
1131 Ok(value)
1132 }
1133 }
1134 const VARIANTS: &[&str] = &["access_error",
1135 "status_error",
1136 "team_shared_dropbox_error",
1137 "other"];
1138 deserializer.deserialize_struct("BaseTeamFolderError", VARIANTS, EnumVisitor)
1139 }
1140}
1141
1142impl ::serde::ser::Serialize for BaseTeamFolderError {
1143 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1144 use serde::ser::SerializeStruct;
1146 match self {
1147 BaseTeamFolderError::AccessError(x) => {
1148 let mut s = serializer.serialize_struct("BaseTeamFolderError", 2)?;
1150 s.serialize_field(".tag", "access_error")?;
1151 s.serialize_field("access_error", x)?;
1152 s.end()
1153 }
1154 BaseTeamFolderError::StatusError(x) => {
1155 let mut s = serializer.serialize_struct("BaseTeamFolderError", 2)?;
1157 s.serialize_field(".tag", "status_error")?;
1158 s.serialize_field("status_error", x)?;
1159 s.end()
1160 }
1161 BaseTeamFolderError::TeamSharedDropboxError(x) => {
1162 let mut s = serializer.serialize_struct("BaseTeamFolderError", 2)?;
1164 s.serialize_field(".tag", "team_shared_dropbox_error")?;
1165 s.serialize_field("team_shared_dropbox_error", x)?;
1166 s.end()
1167 }
1168 BaseTeamFolderError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1169 }
1170 }
1171}
1172
1173impl ::std::error::Error for BaseTeamFolderError {
1174 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
1175 match self {
1176 BaseTeamFolderError::AccessError(inner) => Some(inner),
1177 BaseTeamFolderError::StatusError(inner) => Some(inner),
1178 BaseTeamFolderError::TeamSharedDropboxError(inner) => Some(inner),
1179 _ => None,
1180 }
1181 }
1182}
1183
1184impl ::std::fmt::Display for BaseTeamFolderError {
1185 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1186 match self {
1187 BaseTeamFolderError::AccessError(inner) => write!(f, "BaseTeamFolderError: {}", inner),
1188 BaseTeamFolderError::StatusError(inner) => write!(f, "BaseTeamFolderError: {}", inner),
1189 BaseTeamFolderError::TeamSharedDropboxError(inner) => write!(f, "BaseTeamFolderError: {}", inner),
1190 _ => write!(f, "{:?}", *self),
1191 }
1192 }
1193}
1194
1195#[derive(Debug, Clone, PartialEq, Eq)]
1197#[non_exhaustive] pub struct BulkSuspendArg {
1199 pub members: Vec<BulkSuspendMemberTarget>,
1202}
1203
1204impl BulkSuspendArg {
1205 pub fn new(members: Vec<BulkSuspendMemberTarget>) -> Self {
1206 BulkSuspendArg {
1207 members,
1208 }
1209 }
1210}
1211
1212const BULK_SUSPEND_ARG_FIELDS: &[&str] = &["members"];
1213impl BulkSuspendArg {
1214 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1215 map: V,
1216 ) -> Result<BulkSuspendArg, V::Error> {
1217 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1218 }
1219
1220 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1221 mut map: V,
1222 optional: bool,
1223 ) -> Result<Option<BulkSuspendArg>, V::Error> {
1224 let mut field_members = None;
1225 let mut nothing = true;
1226 while let Some(key) = map.next_key::<&str>()? {
1227 nothing = false;
1228 match key {
1229 "members" => {
1230 if field_members.is_some() {
1231 return Err(::serde::de::Error::duplicate_field("members"));
1232 }
1233 field_members = Some(map.next_value()?);
1234 }
1235 _ => {
1236 map.next_value::<::serde_json::Value>()?;
1238 }
1239 }
1240 }
1241 if optional && nothing {
1242 return Ok(None);
1243 }
1244 let result = BulkSuspendArg {
1245 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
1246 };
1247 Ok(Some(result))
1248 }
1249
1250 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1251 &self,
1252 s: &mut S::SerializeStruct,
1253 ) -> Result<(), S::Error> {
1254 use serde::ser::SerializeStruct;
1255 s.serialize_field("members", &self.members)?;
1256 Ok(())
1257 }
1258}
1259
1260impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendArg {
1261 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1262 use serde::de::{MapAccess, Visitor};
1264 struct StructVisitor;
1265 impl<'de> Visitor<'de> for StructVisitor {
1266 type Value = BulkSuspendArg;
1267 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1268 f.write_str("a BulkSuspendArg struct")
1269 }
1270 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1271 BulkSuspendArg::internal_deserialize(map)
1272 }
1273 }
1274 deserializer.deserialize_struct("BulkSuspendArg", BULK_SUSPEND_ARG_FIELDS, StructVisitor)
1275 }
1276}
1277
1278impl ::serde::ser::Serialize for BulkSuspendArg {
1279 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1280 use serde::ser::SerializeStruct;
1282 let mut s = serializer.serialize_struct("BulkSuspendArg", 1)?;
1283 self.internal_serialize::<S>(&mut s)?;
1284 s.end()
1285 }
1286}
1287
1288#[derive(Debug, Clone, PartialEq, Eq)]
1289#[non_exhaustive] pub struct BulkSuspendComplete {
1291 pub requested: i64,
1292 pub suspended: i64,
1293 pub failed: i64,
1294 pub unknown: i64,
1295 pub report_delivery: BulkSuspendReportDeliveryStatus,
1296}
1297
1298impl BulkSuspendComplete {
1299 pub fn new(
1300 requested: i64,
1301 suspended: i64,
1302 failed: i64,
1303 unknown: i64,
1304 report_delivery: BulkSuspendReportDeliveryStatus,
1305 ) -> Self {
1306 BulkSuspendComplete {
1307 requested,
1308 suspended,
1309 failed,
1310 unknown,
1311 report_delivery,
1312 }
1313 }
1314}
1315
1316const BULK_SUSPEND_COMPLETE_FIELDS: &[&str] = &["requested",
1317 "suspended",
1318 "failed",
1319 "unknown",
1320 "report_delivery"];
1321impl BulkSuspendComplete {
1322 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1323 map: V,
1324 ) -> Result<BulkSuspendComplete, V::Error> {
1325 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1326 }
1327
1328 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1329 mut map: V,
1330 optional: bool,
1331 ) -> Result<Option<BulkSuspendComplete>, V::Error> {
1332 let mut field_requested = None;
1333 let mut field_suspended = None;
1334 let mut field_failed = None;
1335 let mut field_unknown = None;
1336 let mut field_report_delivery = None;
1337 let mut nothing = true;
1338 while let Some(key) = map.next_key::<&str>()? {
1339 nothing = false;
1340 match key {
1341 "requested" => {
1342 if field_requested.is_some() {
1343 return Err(::serde::de::Error::duplicate_field("requested"));
1344 }
1345 field_requested = Some(map.next_value()?);
1346 }
1347 "suspended" => {
1348 if field_suspended.is_some() {
1349 return Err(::serde::de::Error::duplicate_field("suspended"));
1350 }
1351 field_suspended = Some(map.next_value()?);
1352 }
1353 "failed" => {
1354 if field_failed.is_some() {
1355 return Err(::serde::de::Error::duplicate_field("failed"));
1356 }
1357 field_failed = Some(map.next_value()?);
1358 }
1359 "unknown" => {
1360 if field_unknown.is_some() {
1361 return Err(::serde::de::Error::duplicate_field("unknown"));
1362 }
1363 field_unknown = Some(map.next_value()?);
1364 }
1365 "report_delivery" => {
1366 if field_report_delivery.is_some() {
1367 return Err(::serde::de::Error::duplicate_field("report_delivery"));
1368 }
1369 field_report_delivery = Some(map.next_value()?);
1370 }
1371 _ => {
1372 map.next_value::<::serde_json::Value>()?;
1374 }
1375 }
1376 }
1377 if optional && nothing {
1378 return Ok(None);
1379 }
1380 let result = BulkSuspendComplete {
1381 requested: field_requested.ok_or_else(|| ::serde::de::Error::missing_field("requested"))?,
1382 suspended: field_suspended.ok_or_else(|| ::serde::de::Error::missing_field("suspended"))?,
1383 failed: field_failed.ok_or_else(|| ::serde::de::Error::missing_field("failed"))?,
1384 unknown: field_unknown.ok_or_else(|| ::serde::de::Error::missing_field("unknown"))?,
1385 report_delivery: field_report_delivery.ok_or_else(|| ::serde::de::Error::missing_field("report_delivery"))?,
1386 };
1387 Ok(Some(result))
1388 }
1389
1390 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1391 &self,
1392 s: &mut S::SerializeStruct,
1393 ) -> Result<(), S::Error> {
1394 use serde::ser::SerializeStruct;
1395 s.serialize_field("requested", &self.requested)?;
1396 s.serialize_field("suspended", &self.suspended)?;
1397 s.serialize_field("failed", &self.failed)?;
1398 s.serialize_field("unknown", &self.unknown)?;
1399 s.serialize_field("report_delivery", &self.report_delivery)?;
1400 Ok(())
1401 }
1402}
1403
1404impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendComplete {
1405 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1406 use serde::de::{MapAccess, Visitor};
1408 struct StructVisitor;
1409 impl<'de> Visitor<'de> for StructVisitor {
1410 type Value = BulkSuspendComplete;
1411 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1412 f.write_str("a BulkSuspendComplete struct")
1413 }
1414 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1415 BulkSuspendComplete::internal_deserialize(map)
1416 }
1417 }
1418 deserializer.deserialize_struct("BulkSuspendComplete", BULK_SUSPEND_COMPLETE_FIELDS, StructVisitor)
1419 }
1420}
1421
1422impl ::serde::ser::Serialize for BulkSuspendComplete {
1423 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1424 use serde::ser::SerializeStruct;
1426 let mut s = serializer.serialize_struct("BulkSuspendComplete", 5)?;
1427 self.internal_serialize::<S>(&mut s)?;
1428 s.end()
1429 }
1430}
1431
1432#[derive(Debug, Clone, PartialEq, Eq)]
1435#[non_exhaustive] pub enum BulkSuspendError {
1437 InvalidRequest,
1438 TooManyMembers,
1439 DuplicateClientItemId,
1440 DuplicateTeamMemberId,
1441 ActingAdmin,
1442 LastAdmin,
1443 Other,
1446}
1447
1448impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendError {
1449 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1450 use serde::de::{self, MapAccess, Visitor};
1452 struct EnumVisitor;
1453 impl<'de> Visitor<'de> for EnumVisitor {
1454 type Value = BulkSuspendError;
1455 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1456 f.write_str("a BulkSuspendError structure")
1457 }
1458 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1459 let tag: &str = match map.next_key()? {
1460 Some(".tag") => map.next_value()?,
1461 _ => return Err(de::Error::missing_field(".tag"))
1462 };
1463 let value = match tag {
1464 "invalid_request" => BulkSuspendError::InvalidRequest,
1465 "too_many_members" => BulkSuspendError::TooManyMembers,
1466 "duplicate_client_item_id" => BulkSuspendError::DuplicateClientItemId,
1467 "duplicate_team_member_id" => BulkSuspendError::DuplicateTeamMemberId,
1468 "acting_admin" => BulkSuspendError::ActingAdmin,
1469 "last_admin" => BulkSuspendError::LastAdmin,
1470 _ => BulkSuspendError::Other,
1471 };
1472 crate::eat_json_fields(&mut map)?;
1473 Ok(value)
1474 }
1475 }
1476 const VARIANTS: &[&str] = &["invalid_request",
1477 "too_many_members",
1478 "duplicate_client_item_id",
1479 "duplicate_team_member_id",
1480 "acting_admin",
1481 "last_admin",
1482 "other"];
1483 deserializer.deserialize_struct("BulkSuspendError", VARIANTS, EnumVisitor)
1484 }
1485}
1486
1487impl ::serde::ser::Serialize for BulkSuspendError {
1488 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1489 use serde::ser::SerializeStruct;
1491 match self {
1492 BulkSuspendError::InvalidRequest => {
1493 let mut s = serializer.serialize_struct("BulkSuspendError", 1)?;
1495 s.serialize_field(".tag", "invalid_request")?;
1496 s.end()
1497 }
1498 BulkSuspendError::TooManyMembers => {
1499 let mut s = serializer.serialize_struct("BulkSuspendError", 1)?;
1501 s.serialize_field(".tag", "too_many_members")?;
1502 s.end()
1503 }
1504 BulkSuspendError::DuplicateClientItemId => {
1505 let mut s = serializer.serialize_struct("BulkSuspendError", 1)?;
1507 s.serialize_field(".tag", "duplicate_client_item_id")?;
1508 s.end()
1509 }
1510 BulkSuspendError::DuplicateTeamMemberId => {
1511 let mut s = serializer.serialize_struct("BulkSuspendError", 1)?;
1513 s.serialize_field(".tag", "duplicate_team_member_id")?;
1514 s.end()
1515 }
1516 BulkSuspendError::ActingAdmin => {
1517 let mut s = serializer.serialize_struct("BulkSuspendError", 1)?;
1519 s.serialize_field(".tag", "acting_admin")?;
1520 s.end()
1521 }
1522 BulkSuspendError::LastAdmin => {
1523 let mut s = serializer.serialize_struct("BulkSuspendError", 1)?;
1525 s.serialize_field(".tag", "last_admin")?;
1526 s.end()
1527 }
1528 BulkSuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1529 }
1530 }
1531}
1532
1533impl ::std::error::Error for BulkSuspendError {
1534}
1535
1536impl ::std::fmt::Display for BulkSuspendError {
1537 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1538 write!(f, "{:?}", *self)
1539 }
1540}
1541
1542#[derive(Debug, Clone, PartialEq, Eq)]
1545#[non_exhaustive] pub enum BulkSuspendJobStatus {
1547 InProgress,
1549 Complete(BulkSuspendComplete),
1550 Failed(BulkSuspendTaskFailure),
1551 Other,
1554}
1555
1556impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendJobStatus {
1557 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1558 use serde::de::{self, MapAccess, Visitor};
1560 struct EnumVisitor;
1561 impl<'de> Visitor<'de> for EnumVisitor {
1562 type Value = BulkSuspendJobStatus;
1563 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1564 f.write_str("a BulkSuspendJobStatus structure")
1565 }
1566 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1567 let tag: &str = match map.next_key()? {
1568 Some(".tag") => map.next_value()?,
1569 _ => return Err(de::Error::missing_field(".tag"))
1570 };
1571 let value = match tag {
1572 "in_progress" => BulkSuspendJobStatus::InProgress,
1573 "complete" => BulkSuspendJobStatus::Complete(BulkSuspendComplete::internal_deserialize(&mut map)?),
1574 "failed" => {
1575 match map.next_key()? {
1576 Some("failed") => BulkSuspendJobStatus::Failed(map.next_value()?),
1577 None => return Err(de::Error::missing_field("failed")),
1578 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1579 }
1580 }
1581 _ => BulkSuspendJobStatus::Other,
1582 };
1583 crate::eat_json_fields(&mut map)?;
1584 Ok(value)
1585 }
1586 }
1587 const VARIANTS: &[&str] = &["in_progress",
1588 "complete",
1589 "failed",
1590 "other"];
1591 deserializer.deserialize_struct("BulkSuspendJobStatus", VARIANTS, EnumVisitor)
1592 }
1593}
1594
1595impl ::serde::ser::Serialize for BulkSuspendJobStatus {
1596 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1597 use serde::ser::SerializeStruct;
1599 match self {
1600 BulkSuspendJobStatus::InProgress => {
1601 let mut s = serializer.serialize_struct("BulkSuspendJobStatus", 1)?;
1603 s.serialize_field(".tag", "in_progress")?;
1604 s.end()
1605 }
1606 BulkSuspendJobStatus::Complete(x) => {
1607 let mut s = serializer.serialize_struct("BulkSuspendJobStatus", 6)?;
1609 s.serialize_field(".tag", "complete")?;
1610 x.internal_serialize::<S>(&mut s)?;
1611 s.end()
1612 }
1613 BulkSuspendJobStatus::Failed(x) => {
1614 let mut s = serializer.serialize_struct("BulkSuspendJobStatus", 2)?;
1616 s.serialize_field(".tag", "failed")?;
1617 s.serialize_field("failed", x)?;
1618 s.end()
1619 }
1620 BulkSuspendJobStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1621 }
1622 }
1623}
1624
1625impl From<crate::types::dbx_async::PollResultBase> for BulkSuspendJobStatus {
1627 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
1628 match parent {
1629 crate::types::dbx_async::PollResultBase::InProgress => BulkSuspendJobStatus::InProgress,
1630 }
1631 }
1632}
1633#[derive(Debug, Clone, PartialEq, Eq)]
1636#[non_exhaustive] pub struct BulkSuspendMemberTarget {
1638 pub client_item_id: String,
1639 pub suspend_arg: MembersDeactivateArg,
1640}
1641
1642impl BulkSuspendMemberTarget {
1643 pub fn new(client_item_id: String, suspend_arg: MembersDeactivateArg) -> Self {
1644 BulkSuspendMemberTarget {
1645 client_item_id,
1646 suspend_arg,
1647 }
1648 }
1649}
1650
1651const BULK_SUSPEND_MEMBER_TARGET_FIELDS: &[&str] = &["client_item_id",
1652 "suspend_arg"];
1653impl BulkSuspendMemberTarget {
1654 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1655 map: V,
1656 ) -> Result<BulkSuspendMemberTarget, V::Error> {
1657 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1658 }
1659
1660 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1661 mut map: V,
1662 optional: bool,
1663 ) -> Result<Option<BulkSuspendMemberTarget>, V::Error> {
1664 let mut field_client_item_id = None;
1665 let mut field_suspend_arg = None;
1666 let mut nothing = true;
1667 while let Some(key) = map.next_key::<&str>()? {
1668 nothing = false;
1669 match key {
1670 "client_item_id" => {
1671 if field_client_item_id.is_some() {
1672 return Err(::serde::de::Error::duplicate_field("client_item_id"));
1673 }
1674 field_client_item_id = Some(map.next_value()?);
1675 }
1676 "suspend_arg" => {
1677 if field_suspend_arg.is_some() {
1678 return Err(::serde::de::Error::duplicate_field("suspend_arg"));
1679 }
1680 field_suspend_arg = Some(map.next_value()?);
1681 }
1682 _ => {
1683 map.next_value::<::serde_json::Value>()?;
1685 }
1686 }
1687 }
1688 if optional && nothing {
1689 return Ok(None);
1690 }
1691 let result = BulkSuspendMemberTarget {
1692 client_item_id: field_client_item_id.ok_or_else(|| ::serde::de::Error::missing_field("client_item_id"))?,
1693 suspend_arg: field_suspend_arg.ok_or_else(|| ::serde::de::Error::missing_field("suspend_arg"))?,
1694 };
1695 Ok(Some(result))
1696 }
1697
1698 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1699 &self,
1700 s: &mut S::SerializeStruct,
1701 ) -> Result<(), S::Error> {
1702 use serde::ser::SerializeStruct;
1703 s.serialize_field("client_item_id", &self.client_item_id)?;
1704 s.serialize_field("suspend_arg", &self.suspend_arg)?;
1705 Ok(())
1706 }
1707}
1708
1709impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendMemberTarget {
1710 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1711 use serde::de::{MapAccess, Visitor};
1713 struct StructVisitor;
1714 impl<'de> Visitor<'de> for StructVisitor {
1715 type Value = BulkSuspendMemberTarget;
1716 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1717 f.write_str("a BulkSuspendMemberTarget struct")
1718 }
1719 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1720 BulkSuspendMemberTarget::internal_deserialize(map)
1721 }
1722 }
1723 deserializer.deserialize_struct("BulkSuspendMemberTarget", BULK_SUSPEND_MEMBER_TARGET_FIELDS, StructVisitor)
1724 }
1725}
1726
1727impl ::serde::ser::Serialize for BulkSuspendMemberTarget {
1728 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1729 use serde::ser::SerializeStruct;
1731 let mut s = serializer.serialize_struct("BulkSuspendMemberTarget", 2)?;
1732 self.internal_serialize::<S>(&mut s)?;
1733 s.end()
1734 }
1735}
1736
1737#[derive(Debug, Clone, PartialEq, Eq)]
1738#[non_exhaustive] pub enum BulkSuspendReportDeliveryStatus {
1740 BulkSuspendReportDeliveryStatusUnspecified,
1741 BulkSuspendReportDeliveryStatusPending,
1742 BulkSuspendReportDeliveryStatusDelivered,
1743 BulkSuspendReportDeliveryStatusFailed,
1744 Other,
1747}
1748
1749impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendReportDeliveryStatus {
1750 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1751 use serde::de::{self, MapAccess, Visitor};
1753 struct EnumVisitor;
1754 impl<'de> Visitor<'de> for EnumVisitor {
1755 type Value = BulkSuspendReportDeliveryStatus;
1756 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1757 f.write_str("a BulkSuspendReportDeliveryStatus structure")
1758 }
1759 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1760 let tag: &str = match map.next_key()? {
1761 Some(".tag") => map.next_value()?,
1762 _ => return Err(de::Error::missing_field(".tag"))
1763 };
1764 let value = match tag {
1765 "bulk_suspend_report_delivery_status_unspecified" => BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusUnspecified,
1766 "bulk_suspend_report_delivery_status_pending" => BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusPending,
1767 "bulk_suspend_report_delivery_status_delivered" => BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusDelivered,
1768 "bulk_suspend_report_delivery_status_failed" => BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusFailed,
1769 _ => BulkSuspendReportDeliveryStatus::Other,
1770 };
1771 crate::eat_json_fields(&mut map)?;
1772 Ok(value)
1773 }
1774 }
1775 const VARIANTS: &[&str] = &["bulk_suspend_report_delivery_status_unspecified",
1776 "bulk_suspend_report_delivery_status_pending",
1777 "bulk_suspend_report_delivery_status_delivered",
1778 "bulk_suspend_report_delivery_status_failed",
1779 "other"];
1780 deserializer.deserialize_struct("BulkSuspendReportDeliveryStatus", VARIANTS, EnumVisitor)
1781 }
1782}
1783
1784impl ::serde::ser::Serialize for BulkSuspendReportDeliveryStatus {
1785 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1786 use serde::ser::SerializeStruct;
1788 match self {
1789 BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusUnspecified => {
1790 let mut s = serializer.serialize_struct("BulkSuspendReportDeliveryStatus", 1)?;
1792 s.serialize_field(".tag", "bulk_suspend_report_delivery_status_unspecified")?;
1793 s.end()
1794 }
1795 BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusPending => {
1796 let mut s = serializer.serialize_struct("BulkSuspendReportDeliveryStatus", 1)?;
1798 s.serialize_field(".tag", "bulk_suspend_report_delivery_status_pending")?;
1799 s.end()
1800 }
1801 BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusDelivered => {
1802 let mut s = serializer.serialize_struct("BulkSuspendReportDeliveryStatus", 1)?;
1804 s.serialize_field(".tag", "bulk_suspend_report_delivery_status_delivered")?;
1805 s.end()
1806 }
1807 BulkSuspendReportDeliveryStatus::BulkSuspendReportDeliveryStatusFailed => {
1808 let mut s = serializer.serialize_struct("BulkSuspendReportDeliveryStatus", 1)?;
1810 s.serialize_field(".tag", "bulk_suspend_report_delivery_status_failed")?;
1811 s.end()
1812 }
1813 BulkSuspendReportDeliveryStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1814 }
1815 }
1816}
1817
1818#[derive(Debug, Clone, PartialEq, Eq)]
1820#[non_exhaustive] pub enum BulkSuspendRowFailure {
1822 UserNotFound,
1825 UserNotInTeam,
1827 SuspendInactiveUser,
1829 SuspendLastAdmin,
1831 TeamLicenseLimit,
1833 ProtectedActingAdmin,
1834 PermissionChanged,
1835 SuspendFailed,
1836 Other,
1839}
1840
1841impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendRowFailure {
1842 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1843 use serde::de::{self, MapAccess, Visitor};
1845 struct EnumVisitor;
1846 impl<'de> Visitor<'de> for EnumVisitor {
1847 type Value = BulkSuspendRowFailure;
1848 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1849 f.write_str("a BulkSuspendRowFailure structure")
1850 }
1851 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1852 let tag: &str = match map.next_key()? {
1853 Some(".tag") => map.next_value()?,
1854 _ => return Err(de::Error::missing_field(".tag"))
1855 };
1856 let value = match tag {
1857 "user_not_found" => BulkSuspendRowFailure::UserNotFound,
1858 "user_not_in_team" => BulkSuspendRowFailure::UserNotInTeam,
1859 "suspend_inactive_user" => BulkSuspendRowFailure::SuspendInactiveUser,
1860 "suspend_last_admin" => BulkSuspendRowFailure::SuspendLastAdmin,
1861 "team_license_limit" => BulkSuspendRowFailure::TeamLicenseLimit,
1862 "protected_acting_admin" => BulkSuspendRowFailure::ProtectedActingAdmin,
1863 "permission_changed" => BulkSuspendRowFailure::PermissionChanged,
1864 "suspend_failed" => BulkSuspendRowFailure::SuspendFailed,
1865 _ => BulkSuspendRowFailure::Other,
1866 };
1867 crate::eat_json_fields(&mut map)?;
1868 Ok(value)
1869 }
1870 }
1871 const VARIANTS: &[&str] = &["user_not_found",
1872 "user_not_in_team",
1873 "other",
1874 "suspend_inactive_user",
1875 "suspend_last_admin",
1876 "team_license_limit",
1877 "protected_acting_admin",
1878 "permission_changed",
1879 "suspend_failed"];
1880 deserializer.deserialize_struct("BulkSuspendRowFailure", VARIANTS, EnumVisitor)
1881 }
1882}
1883
1884impl ::serde::ser::Serialize for BulkSuspendRowFailure {
1885 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1886 use serde::ser::SerializeStruct;
1888 match self {
1889 BulkSuspendRowFailure::UserNotFound => {
1890 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1892 s.serialize_field(".tag", "user_not_found")?;
1893 s.end()
1894 }
1895 BulkSuspendRowFailure::UserNotInTeam => {
1896 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1898 s.serialize_field(".tag", "user_not_in_team")?;
1899 s.end()
1900 }
1901 BulkSuspendRowFailure::SuspendInactiveUser => {
1902 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1904 s.serialize_field(".tag", "suspend_inactive_user")?;
1905 s.end()
1906 }
1907 BulkSuspendRowFailure::SuspendLastAdmin => {
1908 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1910 s.serialize_field(".tag", "suspend_last_admin")?;
1911 s.end()
1912 }
1913 BulkSuspendRowFailure::TeamLicenseLimit => {
1914 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1916 s.serialize_field(".tag", "team_license_limit")?;
1917 s.end()
1918 }
1919 BulkSuspendRowFailure::ProtectedActingAdmin => {
1920 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1922 s.serialize_field(".tag", "protected_acting_admin")?;
1923 s.end()
1924 }
1925 BulkSuspendRowFailure::PermissionChanged => {
1926 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1928 s.serialize_field(".tag", "permission_changed")?;
1929 s.end()
1930 }
1931 BulkSuspendRowFailure::SuspendFailed => {
1932 let mut s = serializer.serialize_struct("BulkSuspendRowFailure", 1)?;
1934 s.serialize_field(".tag", "suspend_failed")?;
1935 s.end()
1936 }
1937 BulkSuspendRowFailure::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1938 }
1939 }
1940}
1941
1942impl From<MembersSuspendError> for BulkSuspendRowFailure {
1944 fn from(parent: MembersSuspendError) -> Self {
1945 match parent {
1946 MembersSuspendError::UserNotFound => BulkSuspendRowFailure::UserNotFound,
1947 MembersSuspendError::UserNotInTeam => BulkSuspendRowFailure::UserNotInTeam,
1948 MembersSuspendError::Other => BulkSuspendRowFailure::Other,
1949 MembersSuspendError::SuspendInactiveUser => BulkSuspendRowFailure::SuspendInactiveUser,
1950 MembersSuspendError::SuspendLastAdmin => BulkSuspendRowFailure::SuspendLastAdmin,
1951 MembersSuspendError::TeamLicenseLimit => BulkSuspendRowFailure::TeamLicenseLimit,
1952 }
1953 }
1954}
1955#[derive(Debug, Clone, PartialEq, Eq)]
1958#[non_exhaustive] pub enum BulkSuspendRowOutcome {
1960 Suspended,
1961 Failed(BulkSuspendRowFailure),
1962 Unknown,
1963 Other,
1966}
1967
1968impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendRowOutcome {
1969 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1970 use serde::de::{self, MapAccess, Visitor};
1972 struct EnumVisitor;
1973 impl<'de> Visitor<'de> for EnumVisitor {
1974 type Value = BulkSuspendRowOutcome;
1975 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1976 f.write_str("a BulkSuspendRowOutcome structure")
1977 }
1978 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1979 let tag: &str = match map.next_key()? {
1980 Some(".tag") => map.next_value()?,
1981 _ => return Err(de::Error::missing_field(".tag"))
1982 };
1983 let value = match tag {
1984 "suspended" => BulkSuspendRowOutcome::Suspended,
1985 "failed" => {
1986 match map.next_key()? {
1987 Some("failed") => BulkSuspendRowOutcome::Failed(map.next_value()?),
1988 None => return Err(de::Error::missing_field("failed")),
1989 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1990 }
1991 }
1992 "unknown" => BulkSuspendRowOutcome::Unknown,
1993 _ => BulkSuspendRowOutcome::Other,
1994 };
1995 crate::eat_json_fields(&mut map)?;
1996 Ok(value)
1997 }
1998 }
1999 const VARIANTS: &[&str] = &["suspended",
2000 "failed",
2001 "unknown",
2002 "other"];
2003 deserializer.deserialize_struct("BulkSuspendRowOutcome", VARIANTS, EnumVisitor)
2004 }
2005}
2006
2007impl ::serde::ser::Serialize for BulkSuspendRowOutcome {
2008 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2009 use serde::ser::SerializeStruct;
2011 match self {
2012 BulkSuspendRowOutcome::Suspended => {
2013 let mut s = serializer.serialize_struct("BulkSuspendRowOutcome", 1)?;
2015 s.serialize_field(".tag", "suspended")?;
2016 s.end()
2017 }
2018 BulkSuspendRowOutcome::Failed(x) => {
2019 let mut s = serializer.serialize_struct("BulkSuspendRowOutcome", 2)?;
2021 s.serialize_field(".tag", "failed")?;
2022 s.serialize_field("failed", x)?;
2023 s.end()
2024 }
2025 BulkSuspendRowOutcome::Unknown => {
2026 let mut s = serializer.serialize_struct("BulkSuspendRowOutcome", 1)?;
2028 s.serialize_field(".tag", "unknown")?;
2029 s.end()
2030 }
2031 BulkSuspendRowOutcome::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2032 }
2033 }
2034}
2035
2036#[derive(Debug, Clone, PartialEq, Eq)]
2037#[non_exhaustive] pub enum BulkSuspendTaskFailure {
2039 UnusableResult,
2040 Other,
2043}
2044
2045impl<'de> ::serde::de::Deserialize<'de> for BulkSuspendTaskFailure {
2046 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2047 use serde::de::{self, MapAccess, Visitor};
2049 struct EnumVisitor;
2050 impl<'de> Visitor<'de> for EnumVisitor {
2051 type Value = BulkSuspendTaskFailure;
2052 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2053 f.write_str("a BulkSuspendTaskFailure structure")
2054 }
2055 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2056 let tag: &str = match map.next_key()? {
2057 Some(".tag") => map.next_value()?,
2058 _ => return Err(de::Error::missing_field(".tag"))
2059 };
2060 let value = match tag {
2061 "unusable_result" => BulkSuspendTaskFailure::UnusableResult,
2062 _ => BulkSuspendTaskFailure::Other,
2063 };
2064 crate::eat_json_fields(&mut map)?;
2065 Ok(value)
2066 }
2067 }
2068 const VARIANTS: &[&str] = &["unusable_result",
2069 "other"];
2070 deserializer.deserialize_struct("BulkSuspendTaskFailure", VARIANTS, EnumVisitor)
2071 }
2072}
2073
2074impl ::serde::ser::Serialize for BulkSuspendTaskFailure {
2075 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2076 use serde::ser::SerializeStruct;
2078 match self {
2079 BulkSuspendTaskFailure::UnusableResult => {
2080 let mut s = serializer.serialize_struct("BulkSuspendTaskFailure", 1)?;
2082 s.serialize_field(".tag", "unusable_result")?;
2083 s.end()
2084 }
2085 BulkSuspendTaskFailure::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2086 }
2087 }
2088}
2089
2090#[derive(Debug, Clone, PartialEq, Eq)]
2092#[non_exhaustive] pub enum CustomQuotaError {
2094 TooManyUsers,
2096 Other,
2099}
2100
2101impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaError {
2102 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2103 use serde::de::{self, MapAccess, Visitor};
2105 struct EnumVisitor;
2106 impl<'de> Visitor<'de> for EnumVisitor {
2107 type Value = CustomQuotaError;
2108 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2109 f.write_str("a CustomQuotaError structure")
2110 }
2111 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2112 let tag: &str = match map.next_key()? {
2113 Some(".tag") => map.next_value()?,
2114 _ => return Err(de::Error::missing_field(".tag"))
2115 };
2116 let value = match tag {
2117 "too_many_users" => CustomQuotaError::TooManyUsers,
2118 _ => CustomQuotaError::Other,
2119 };
2120 crate::eat_json_fields(&mut map)?;
2121 Ok(value)
2122 }
2123 }
2124 const VARIANTS: &[&str] = &["too_many_users",
2125 "other"];
2126 deserializer.deserialize_struct("CustomQuotaError", VARIANTS, EnumVisitor)
2127 }
2128}
2129
2130impl ::serde::ser::Serialize for CustomQuotaError {
2131 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2132 use serde::ser::SerializeStruct;
2134 match self {
2135 CustomQuotaError::TooManyUsers => {
2136 let mut s = serializer.serialize_struct("CustomQuotaError", 1)?;
2138 s.serialize_field(".tag", "too_many_users")?;
2139 s.end()
2140 }
2141 CustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2142 }
2143 }
2144}
2145
2146impl ::std::error::Error for CustomQuotaError {
2147}
2148
2149impl ::std::fmt::Display for CustomQuotaError {
2150 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2151 match self {
2152 CustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
2153 _ => write!(f, "{:?}", *self),
2154 }
2155 }
2156}
2157
2158#[derive(Debug, Clone, PartialEq, Eq)]
2160#[non_exhaustive] pub enum CustomQuotaResult {
2162 Success(UserCustomQuotaResult),
2164 InvalidUser(UserSelectorArg),
2166 Other,
2169}
2170
2171impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaResult {
2172 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2173 use serde::de::{self, MapAccess, Visitor};
2175 struct EnumVisitor;
2176 impl<'de> Visitor<'de> for EnumVisitor {
2177 type Value = CustomQuotaResult;
2178 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2179 f.write_str("a CustomQuotaResult structure")
2180 }
2181 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2182 let tag: &str = match map.next_key()? {
2183 Some(".tag") => map.next_value()?,
2184 _ => return Err(de::Error::missing_field(".tag"))
2185 };
2186 let value = match tag {
2187 "success" => CustomQuotaResult::Success(UserCustomQuotaResult::internal_deserialize(&mut map)?),
2188 "invalid_user" => {
2189 match map.next_key()? {
2190 Some("invalid_user") => CustomQuotaResult::InvalidUser(map.next_value()?),
2191 None => return Err(de::Error::missing_field("invalid_user")),
2192 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
2193 }
2194 }
2195 _ => CustomQuotaResult::Other,
2196 };
2197 crate::eat_json_fields(&mut map)?;
2198 Ok(value)
2199 }
2200 }
2201 const VARIANTS: &[&str] = &["success",
2202 "invalid_user",
2203 "other"];
2204 deserializer.deserialize_struct("CustomQuotaResult", VARIANTS, EnumVisitor)
2205 }
2206}
2207
2208impl ::serde::ser::Serialize for CustomQuotaResult {
2209 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2210 use serde::ser::SerializeStruct;
2212 match self {
2213 CustomQuotaResult::Success(x) => {
2214 let mut s = serializer.serialize_struct("CustomQuotaResult", 3)?;
2216 s.serialize_field(".tag", "success")?;
2217 x.internal_serialize::<S>(&mut s)?;
2218 s.end()
2219 }
2220 CustomQuotaResult::InvalidUser(x) => {
2221 let mut s = serializer.serialize_struct("CustomQuotaResult", 2)?;
2223 s.serialize_field(".tag", "invalid_user")?;
2224 s.serialize_field("invalid_user", x)?;
2225 s.end()
2226 }
2227 CustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2228 }
2229 }
2230}
2231
2232#[derive(Debug, Clone, PartialEq, Eq)]
2233#[non_exhaustive] pub struct CustomQuotaUsersArg {
2235 pub users: Vec<UserSelectorArg>,
2237}
2238
2239impl CustomQuotaUsersArg {
2240 pub fn new(users: Vec<UserSelectorArg>) -> Self {
2241 CustomQuotaUsersArg {
2242 users,
2243 }
2244 }
2245}
2246
2247const CUSTOM_QUOTA_USERS_ARG_FIELDS: &[&str] = &["users"];
2248impl CustomQuotaUsersArg {
2249 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2250 map: V,
2251 ) -> Result<CustomQuotaUsersArg, V::Error> {
2252 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2253 }
2254
2255 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2256 mut map: V,
2257 optional: bool,
2258 ) -> Result<Option<CustomQuotaUsersArg>, V::Error> {
2259 let mut field_users = None;
2260 let mut nothing = true;
2261 while let Some(key) = map.next_key::<&str>()? {
2262 nothing = false;
2263 match key {
2264 "users" => {
2265 if field_users.is_some() {
2266 return Err(::serde::de::Error::duplicate_field("users"));
2267 }
2268 field_users = Some(map.next_value()?);
2269 }
2270 _ => {
2271 map.next_value::<::serde_json::Value>()?;
2273 }
2274 }
2275 }
2276 if optional && nothing {
2277 return Ok(None);
2278 }
2279 let result = CustomQuotaUsersArg {
2280 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
2281 };
2282 Ok(Some(result))
2283 }
2284
2285 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2286 &self,
2287 s: &mut S::SerializeStruct,
2288 ) -> Result<(), S::Error> {
2289 use serde::ser::SerializeStruct;
2290 s.serialize_field("users", &self.users)?;
2291 Ok(())
2292 }
2293}
2294
2295impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaUsersArg {
2296 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2297 use serde::de::{MapAccess, Visitor};
2299 struct StructVisitor;
2300 impl<'de> Visitor<'de> for StructVisitor {
2301 type Value = CustomQuotaUsersArg;
2302 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2303 f.write_str("a CustomQuotaUsersArg struct")
2304 }
2305 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2306 CustomQuotaUsersArg::internal_deserialize(map)
2307 }
2308 }
2309 deserializer.deserialize_struct("CustomQuotaUsersArg", CUSTOM_QUOTA_USERS_ARG_FIELDS, StructVisitor)
2310 }
2311}
2312
2313impl ::serde::ser::Serialize for CustomQuotaUsersArg {
2314 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2315 use serde::ser::SerializeStruct;
2317 let mut s = serializer.serialize_struct("CustomQuotaUsersArg", 1)?;
2318 self.internal_serialize::<S>(&mut s)?;
2319 s.end()
2320 }
2321}
2322
2323#[derive(Debug, Clone, PartialEq, Eq, Default)]
2325#[non_exhaustive] pub struct DateRange {
2327 pub start_date: Option<crate::types::common::Date>,
2330 pub end_date: Option<crate::types::common::Date>,
2332}
2333
2334impl DateRange {
2335 pub fn with_start_date(mut self, value: crate::types::common::Date) -> Self {
2336 self.start_date = Some(value);
2337 self
2338 }
2339
2340 pub fn with_end_date(mut self, value: crate::types::common::Date) -> Self {
2341 self.end_date = Some(value);
2342 self
2343 }
2344}
2345
2346const DATE_RANGE_FIELDS: &[&str] = &["start_date",
2347 "end_date"];
2348impl DateRange {
2349 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2351 mut map: V,
2352 ) -> Result<DateRange, V::Error> {
2353 let mut field_start_date = None;
2354 let mut field_end_date = None;
2355 while let Some(key) = map.next_key::<&str>()? {
2356 match key {
2357 "start_date" => {
2358 if field_start_date.is_some() {
2359 return Err(::serde::de::Error::duplicate_field("start_date"));
2360 }
2361 field_start_date = Some(map.next_value()?);
2362 }
2363 "end_date" => {
2364 if field_end_date.is_some() {
2365 return Err(::serde::de::Error::duplicate_field("end_date"));
2366 }
2367 field_end_date = Some(map.next_value()?);
2368 }
2369 _ => {
2370 map.next_value::<::serde_json::Value>()?;
2372 }
2373 }
2374 }
2375 let result = DateRange {
2376 start_date: field_start_date.and_then(Option::flatten),
2377 end_date: field_end_date.and_then(Option::flatten),
2378 };
2379 Ok(result)
2380 }
2381
2382 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2383 &self,
2384 s: &mut S::SerializeStruct,
2385 ) -> Result<(), S::Error> {
2386 use serde::ser::SerializeStruct;
2387 if let Some(val) = &self.start_date {
2388 s.serialize_field("start_date", val)?;
2389 }
2390 if let Some(val) = &self.end_date {
2391 s.serialize_field("end_date", val)?;
2392 }
2393 Ok(())
2394 }
2395}
2396
2397impl<'de> ::serde::de::Deserialize<'de> for DateRange {
2398 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2399 use serde::de::{MapAccess, Visitor};
2401 struct StructVisitor;
2402 impl<'de> Visitor<'de> for StructVisitor {
2403 type Value = DateRange;
2404 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2405 f.write_str("a DateRange struct")
2406 }
2407 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2408 DateRange::internal_deserialize(map)
2409 }
2410 }
2411 deserializer.deserialize_struct("DateRange", DATE_RANGE_FIELDS, StructVisitor)
2412 }
2413}
2414
2415impl ::serde::ser::Serialize for DateRange {
2416 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2417 use serde::ser::SerializeStruct;
2419 let mut s = serializer.serialize_struct("DateRange", 2)?;
2420 self.internal_serialize::<S>(&mut s)?;
2421 s.end()
2422 }
2423}
2424
2425#[derive(Debug, Clone, PartialEq, Eq)]
2427#[non_exhaustive] pub enum DateRangeError {
2429 Other,
2432}
2433
2434impl<'de> ::serde::de::Deserialize<'de> for DateRangeError {
2435 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2436 use serde::de::{self, MapAccess, Visitor};
2438 struct EnumVisitor;
2439 impl<'de> Visitor<'de> for EnumVisitor {
2440 type Value = DateRangeError;
2441 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2442 f.write_str("a DateRangeError structure")
2443 }
2444 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2445 let tag: &str = match map.next_key()? {
2446 Some(".tag") => map.next_value()?,
2447 _ => return Err(de::Error::missing_field(".tag"))
2448 };
2449 let _ = tag;
2451 crate::eat_json_fields(&mut map)?;
2452 Ok(DateRangeError::Other)
2453 }
2454 }
2455 const VARIANTS: &[&str] = &["other"];
2456 deserializer.deserialize_struct("DateRangeError", VARIANTS, EnumVisitor)
2457 }
2458}
2459
2460impl ::serde::ser::Serialize for DateRangeError {
2461 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2462 #![allow(unused_variables)]
2464 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
2465 }
2466}
2467
2468impl ::std::error::Error for DateRangeError {
2469}
2470
2471impl ::std::fmt::Display for DateRangeError {
2472 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2473 write!(f, "{:?}", *self)
2474 }
2475}
2476
2477#[derive(Debug, Clone, PartialEq, Eq)]
2481#[non_exhaustive] pub enum DeleteSecondaryEmailResult {
2483 Success(crate::types::common::EmailAddress),
2485 NotFound(crate::types::common::EmailAddress),
2487 CannotRemovePrimary(crate::types::common::EmailAddress),
2489 Other,
2492}
2493
2494impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailResult {
2495 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2496 use serde::de::{self, MapAccess, Visitor};
2498 struct EnumVisitor;
2499 impl<'de> Visitor<'de> for EnumVisitor {
2500 type Value = DeleteSecondaryEmailResult;
2501 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2502 f.write_str("a DeleteSecondaryEmailResult structure")
2503 }
2504 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2505 let tag: &str = match map.next_key()? {
2506 Some(".tag") => map.next_value()?,
2507 _ => return Err(de::Error::missing_field(".tag"))
2508 };
2509 let value = match tag {
2510 "success" => {
2511 match map.next_key()? {
2512 Some("success") => DeleteSecondaryEmailResult::Success(map.next_value()?),
2513 None => return Err(de::Error::missing_field("success")),
2514 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
2515 }
2516 }
2517 "not_found" => {
2518 match map.next_key()? {
2519 Some("not_found") => DeleteSecondaryEmailResult::NotFound(map.next_value()?),
2520 None => return Err(de::Error::missing_field("not_found")),
2521 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
2522 }
2523 }
2524 "cannot_remove_primary" => {
2525 match map.next_key()? {
2526 Some("cannot_remove_primary") => DeleteSecondaryEmailResult::CannotRemovePrimary(map.next_value()?),
2527 None => return Err(de::Error::missing_field("cannot_remove_primary")),
2528 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
2529 }
2530 }
2531 _ => DeleteSecondaryEmailResult::Other,
2532 };
2533 crate::eat_json_fields(&mut map)?;
2534 Ok(value)
2535 }
2536 }
2537 const VARIANTS: &[&str] = &["success",
2538 "not_found",
2539 "cannot_remove_primary",
2540 "other"];
2541 deserializer.deserialize_struct("DeleteSecondaryEmailResult", VARIANTS, EnumVisitor)
2542 }
2543}
2544
2545impl ::serde::ser::Serialize for DeleteSecondaryEmailResult {
2546 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2547 use serde::ser::SerializeStruct;
2549 match self {
2550 DeleteSecondaryEmailResult::Success(x) => {
2551 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
2553 s.serialize_field(".tag", "success")?;
2554 s.serialize_field("success", x)?;
2555 s.end()
2556 }
2557 DeleteSecondaryEmailResult::NotFound(x) => {
2558 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
2560 s.serialize_field(".tag", "not_found")?;
2561 s.serialize_field("not_found", x)?;
2562 s.end()
2563 }
2564 DeleteSecondaryEmailResult::CannotRemovePrimary(x) => {
2565 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
2567 s.serialize_field(".tag", "cannot_remove_primary")?;
2568 s.serialize_field("cannot_remove_primary", x)?;
2569 s.end()
2570 }
2571 DeleteSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2572 }
2573 }
2574}
2575
2576#[derive(Debug, Clone, PartialEq, Eq)]
2577#[non_exhaustive] pub struct DeleteSecondaryEmailsArg {
2579 pub emails_to_delete: Vec<UserSecondaryEmailsArg>,
2581}
2582
2583impl DeleteSecondaryEmailsArg {
2584 pub fn new(emails_to_delete: Vec<UserSecondaryEmailsArg>) -> Self {
2585 DeleteSecondaryEmailsArg {
2586 emails_to_delete,
2587 }
2588 }
2589}
2590
2591const DELETE_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["emails_to_delete"];
2592impl DeleteSecondaryEmailsArg {
2593 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2594 map: V,
2595 ) -> Result<DeleteSecondaryEmailsArg, V::Error> {
2596 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2597 }
2598
2599 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2600 mut map: V,
2601 optional: bool,
2602 ) -> Result<Option<DeleteSecondaryEmailsArg>, V::Error> {
2603 let mut field_emails_to_delete = None;
2604 let mut nothing = true;
2605 while let Some(key) = map.next_key::<&str>()? {
2606 nothing = false;
2607 match key {
2608 "emails_to_delete" => {
2609 if field_emails_to_delete.is_some() {
2610 return Err(::serde::de::Error::duplicate_field("emails_to_delete"));
2611 }
2612 field_emails_to_delete = Some(map.next_value()?);
2613 }
2614 _ => {
2615 map.next_value::<::serde_json::Value>()?;
2617 }
2618 }
2619 }
2620 if optional && nothing {
2621 return Ok(None);
2622 }
2623 let result = DeleteSecondaryEmailsArg {
2624 emails_to_delete: field_emails_to_delete.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_delete"))?,
2625 };
2626 Ok(Some(result))
2627 }
2628
2629 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2630 &self,
2631 s: &mut S::SerializeStruct,
2632 ) -> Result<(), S::Error> {
2633 use serde::ser::SerializeStruct;
2634 s.serialize_field("emails_to_delete", &self.emails_to_delete)?;
2635 Ok(())
2636 }
2637}
2638
2639impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailsArg {
2640 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2641 use serde::de::{MapAccess, Visitor};
2643 struct StructVisitor;
2644 impl<'de> Visitor<'de> for StructVisitor {
2645 type Value = DeleteSecondaryEmailsArg;
2646 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2647 f.write_str("a DeleteSecondaryEmailsArg struct")
2648 }
2649 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2650 DeleteSecondaryEmailsArg::internal_deserialize(map)
2651 }
2652 }
2653 deserializer.deserialize_struct("DeleteSecondaryEmailsArg", DELETE_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
2654 }
2655}
2656
2657impl ::serde::ser::Serialize for DeleteSecondaryEmailsArg {
2658 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2659 use serde::ser::SerializeStruct;
2661 let mut s = serializer.serialize_struct("DeleteSecondaryEmailsArg", 1)?;
2662 self.internal_serialize::<S>(&mut s)?;
2663 s.end()
2664 }
2665}
2666
2667#[derive(Debug, Clone, PartialEq, Eq)]
2668#[non_exhaustive] pub struct DeleteSecondaryEmailsResult {
2670 pub results: Vec<UserDeleteResult>,
2671}
2672
2673impl DeleteSecondaryEmailsResult {
2674 pub fn new(results: Vec<UserDeleteResult>) -> Self {
2675 DeleteSecondaryEmailsResult {
2676 results,
2677 }
2678 }
2679}
2680
2681const DELETE_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["results"];
2682impl DeleteSecondaryEmailsResult {
2683 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2684 map: V,
2685 ) -> Result<DeleteSecondaryEmailsResult, V::Error> {
2686 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2687 }
2688
2689 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2690 mut map: V,
2691 optional: bool,
2692 ) -> Result<Option<DeleteSecondaryEmailsResult>, V::Error> {
2693 let mut field_results = None;
2694 let mut nothing = true;
2695 while let Some(key) = map.next_key::<&str>()? {
2696 nothing = false;
2697 match key {
2698 "results" => {
2699 if field_results.is_some() {
2700 return Err(::serde::de::Error::duplicate_field("results"));
2701 }
2702 field_results = Some(map.next_value()?);
2703 }
2704 _ => {
2705 map.next_value::<::serde_json::Value>()?;
2707 }
2708 }
2709 }
2710 if optional && nothing {
2711 return Ok(None);
2712 }
2713 let result = DeleteSecondaryEmailsResult {
2714 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
2715 };
2716 Ok(Some(result))
2717 }
2718
2719 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2720 &self,
2721 s: &mut S::SerializeStruct,
2722 ) -> Result<(), S::Error> {
2723 use serde::ser::SerializeStruct;
2724 s.serialize_field("results", &self.results)?;
2725 Ok(())
2726 }
2727}
2728
2729impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailsResult {
2730 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2731 use serde::de::{MapAccess, Visitor};
2733 struct StructVisitor;
2734 impl<'de> Visitor<'de> for StructVisitor {
2735 type Value = DeleteSecondaryEmailsResult;
2736 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2737 f.write_str("a DeleteSecondaryEmailsResult struct")
2738 }
2739 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2740 DeleteSecondaryEmailsResult::internal_deserialize(map)
2741 }
2742 }
2743 deserializer.deserialize_struct("DeleteSecondaryEmailsResult", DELETE_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
2744 }
2745}
2746
2747impl ::serde::ser::Serialize for DeleteSecondaryEmailsResult {
2748 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2749 use serde::ser::SerializeStruct;
2751 let mut s = serializer.serialize_struct("DeleteSecondaryEmailsResult", 1)?;
2752 self.internal_serialize::<S>(&mut s)?;
2753 s.end()
2754 }
2755}
2756
2757#[derive(Debug, Clone, PartialEq, Eq)]
2759#[non_exhaustive] pub struct DesktopClientSession {
2761 pub session_id: String,
2763 pub host_name: String,
2765 pub client_type: DesktopPlatform,
2767 pub client_version: String,
2769 pub platform: String,
2771 pub is_delete_on_unlink_supported: bool,
2773 pub ip_address: Option<String>,
2775 pub country: Option<String>,
2777 pub created: Option<crate::types::common::DropboxTimestamp>,
2779 pub updated: Option<crate::types::common::DropboxTimestamp>,
2781}
2782
2783impl DesktopClientSession {
2784 pub fn new(
2785 session_id: String,
2786 host_name: String,
2787 client_type: DesktopPlatform,
2788 client_version: String,
2789 platform: String,
2790 is_delete_on_unlink_supported: bool,
2791 ) -> Self {
2792 DesktopClientSession {
2793 session_id,
2794 host_name,
2795 client_type,
2796 client_version,
2797 platform,
2798 is_delete_on_unlink_supported,
2799 ip_address: None,
2800 country: None,
2801 created: None,
2802 updated: None,
2803 }
2804 }
2805
2806 pub fn with_ip_address(mut self, value: String) -> Self {
2807 self.ip_address = Some(value);
2808 self
2809 }
2810
2811 pub fn with_country(mut self, value: String) -> Self {
2812 self.country = Some(value);
2813 self
2814 }
2815
2816 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
2817 self.created = Some(value);
2818 self
2819 }
2820
2821 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
2822 self.updated = Some(value);
2823 self
2824 }
2825}
2826
2827const DESKTOP_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
2828 "host_name",
2829 "client_type",
2830 "client_version",
2831 "platform",
2832 "is_delete_on_unlink_supported",
2833 "ip_address",
2834 "country",
2835 "created",
2836 "updated"];
2837impl DesktopClientSession {
2838 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2839 map: V,
2840 ) -> Result<DesktopClientSession, V::Error> {
2841 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2842 }
2843
2844 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2845 mut map: V,
2846 optional: bool,
2847 ) -> Result<Option<DesktopClientSession>, V::Error> {
2848 let mut field_session_id = None;
2849 let mut field_host_name = None;
2850 let mut field_client_type = None;
2851 let mut field_client_version = None;
2852 let mut field_platform = None;
2853 let mut field_is_delete_on_unlink_supported = None;
2854 let mut field_ip_address = None;
2855 let mut field_country = None;
2856 let mut field_created = None;
2857 let mut field_updated = None;
2858 let mut nothing = true;
2859 while let Some(key) = map.next_key::<&str>()? {
2860 nothing = false;
2861 match key {
2862 "session_id" => {
2863 if field_session_id.is_some() {
2864 return Err(::serde::de::Error::duplicate_field("session_id"));
2865 }
2866 field_session_id = Some(map.next_value()?);
2867 }
2868 "host_name" => {
2869 if field_host_name.is_some() {
2870 return Err(::serde::de::Error::duplicate_field("host_name"));
2871 }
2872 field_host_name = Some(map.next_value()?);
2873 }
2874 "client_type" => {
2875 if field_client_type.is_some() {
2876 return Err(::serde::de::Error::duplicate_field("client_type"));
2877 }
2878 field_client_type = Some(map.next_value()?);
2879 }
2880 "client_version" => {
2881 if field_client_version.is_some() {
2882 return Err(::serde::de::Error::duplicate_field("client_version"));
2883 }
2884 field_client_version = Some(map.next_value()?);
2885 }
2886 "platform" => {
2887 if field_platform.is_some() {
2888 return Err(::serde::de::Error::duplicate_field("platform"));
2889 }
2890 field_platform = Some(map.next_value()?);
2891 }
2892 "is_delete_on_unlink_supported" => {
2893 if field_is_delete_on_unlink_supported.is_some() {
2894 return Err(::serde::de::Error::duplicate_field("is_delete_on_unlink_supported"));
2895 }
2896 field_is_delete_on_unlink_supported = Some(map.next_value()?);
2897 }
2898 "ip_address" => {
2899 if field_ip_address.is_some() {
2900 return Err(::serde::de::Error::duplicate_field("ip_address"));
2901 }
2902 field_ip_address = Some(map.next_value()?);
2903 }
2904 "country" => {
2905 if field_country.is_some() {
2906 return Err(::serde::de::Error::duplicate_field("country"));
2907 }
2908 field_country = Some(map.next_value()?);
2909 }
2910 "created" => {
2911 if field_created.is_some() {
2912 return Err(::serde::de::Error::duplicate_field("created"));
2913 }
2914 field_created = Some(map.next_value()?);
2915 }
2916 "updated" => {
2917 if field_updated.is_some() {
2918 return Err(::serde::de::Error::duplicate_field("updated"));
2919 }
2920 field_updated = Some(map.next_value()?);
2921 }
2922 _ => {
2923 map.next_value::<::serde_json::Value>()?;
2925 }
2926 }
2927 }
2928 if optional && nothing {
2929 return Ok(None);
2930 }
2931 let result = DesktopClientSession {
2932 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2933 host_name: field_host_name.ok_or_else(|| ::serde::de::Error::missing_field("host_name"))?,
2934 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
2935 client_version: field_client_version.ok_or_else(|| ::serde::de::Error::missing_field("client_version"))?,
2936 platform: field_platform.ok_or_else(|| ::serde::de::Error::missing_field("platform"))?,
2937 is_delete_on_unlink_supported: field_is_delete_on_unlink_supported.ok_or_else(|| ::serde::de::Error::missing_field("is_delete_on_unlink_supported"))?,
2938 ip_address: field_ip_address.and_then(Option::flatten),
2939 country: field_country.and_then(Option::flatten),
2940 created: field_created.and_then(Option::flatten),
2941 updated: field_updated.and_then(Option::flatten),
2942 };
2943 Ok(Some(result))
2944 }
2945
2946 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2947 &self,
2948 s: &mut S::SerializeStruct,
2949 ) -> Result<(), S::Error> {
2950 use serde::ser::SerializeStruct;
2951 s.serialize_field("session_id", &self.session_id)?;
2952 s.serialize_field("host_name", &self.host_name)?;
2953 s.serialize_field("client_type", &self.client_type)?;
2954 s.serialize_field("client_version", &self.client_version)?;
2955 s.serialize_field("platform", &self.platform)?;
2956 s.serialize_field("is_delete_on_unlink_supported", &self.is_delete_on_unlink_supported)?;
2957 if let Some(val) = &self.ip_address {
2958 s.serialize_field("ip_address", val)?;
2959 }
2960 if let Some(val) = &self.country {
2961 s.serialize_field("country", val)?;
2962 }
2963 if let Some(val) = &self.created {
2964 s.serialize_field("created", val)?;
2965 }
2966 if let Some(val) = &self.updated {
2967 s.serialize_field("updated", val)?;
2968 }
2969 Ok(())
2970 }
2971}
2972
2973impl<'de> ::serde::de::Deserialize<'de> for DesktopClientSession {
2974 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2975 use serde::de::{MapAccess, Visitor};
2977 struct StructVisitor;
2978 impl<'de> Visitor<'de> for StructVisitor {
2979 type Value = DesktopClientSession;
2980 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2981 f.write_str("a DesktopClientSession struct")
2982 }
2983 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2984 DesktopClientSession::internal_deserialize(map)
2985 }
2986 }
2987 deserializer.deserialize_struct("DesktopClientSession", DESKTOP_CLIENT_SESSION_FIELDS, StructVisitor)
2988 }
2989}
2990
2991impl ::serde::ser::Serialize for DesktopClientSession {
2992 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2993 use serde::ser::SerializeStruct;
2995 let mut s = serializer.serialize_struct("DesktopClientSession", 10)?;
2996 self.internal_serialize::<S>(&mut s)?;
2997 s.end()
2998 }
2999}
3000
3001impl From<DesktopClientSession> for DeviceSession {
3003 fn from(subtype: DesktopClientSession) -> Self {
3004 Self {
3005 session_id: subtype.session_id,
3006 ip_address: subtype.ip_address,
3007 country: subtype.country,
3008 created: subtype.created,
3009 updated: subtype.updated,
3010 }
3011 }
3012}
3013#[derive(Debug, Clone, PartialEq, Eq)]
3014#[non_exhaustive] pub enum DesktopPlatform {
3016 Windows,
3018 Mac,
3020 Linux,
3022 Other,
3025}
3026
3027impl<'de> ::serde::de::Deserialize<'de> for DesktopPlatform {
3028 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3029 use serde::de::{self, MapAccess, Visitor};
3031 struct EnumVisitor;
3032 impl<'de> Visitor<'de> for EnumVisitor {
3033 type Value = DesktopPlatform;
3034 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3035 f.write_str("a DesktopPlatform structure")
3036 }
3037 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3038 let tag: &str = match map.next_key()? {
3039 Some(".tag") => map.next_value()?,
3040 _ => return Err(de::Error::missing_field(".tag"))
3041 };
3042 let value = match tag {
3043 "windows" => DesktopPlatform::Windows,
3044 "mac" => DesktopPlatform::Mac,
3045 "linux" => DesktopPlatform::Linux,
3046 _ => DesktopPlatform::Other,
3047 };
3048 crate::eat_json_fields(&mut map)?;
3049 Ok(value)
3050 }
3051 }
3052 const VARIANTS: &[&str] = &["windows",
3053 "mac",
3054 "linux",
3055 "other"];
3056 deserializer.deserialize_struct("DesktopPlatform", VARIANTS, EnumVisitor)
3057 }
3058}
3059
3060impl ::serde::ser::Serialize for DesktopPlatform {
3061 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3062 use serde::ser::SerializeStruct;
3064 match self {
3065 DesktopPlatform::Windows => {
3066 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
3068 s.serialize_field(".tag", "windows")?;
3069 s.end()
3070 }
3071 DesktopPlatform::Mac => {
3072 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
3074 s.serialize_field(".tag", "mac")?;
3075 s.end()
3076 }
3077 DesktopPlatform::Linux => {
3078 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
3080 s.serialize_field(".tag", "linux")?;
3081 s.end()
3082 }
3083 DesktopPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3084 }
3085 }
3086}
3087
3088#[derive(Debug, Clone, PartialEq, Eq)]
3089#[non_exhaustive] pub struct DeviceSession {
3091 pub session_id: String,
3093 pub ip_address: Option<String>,
3095 pub country: Option<String>,
3097 pub created: Option<crate::types::common::DropboxTimestamp>,
3099 pub updated: Option<crate::types::common::DropboxTimestamp>,
3101}
3102
3103impl DeviceSession {
3104 pub fn new(session_id: String) -> Self {
3105 DeviceSession {
3106 session_id,
3107 ip_address: None,
3108 country: None,
3109 created: None,
3110 updated: None,
3111 }
3112 }
3113
3114 pub fn with_ip_address(mut self, value: String) -> Self {
3115 self.ip_address = Some(value);
3116 self
3117 }
3118
3119 pub fn with_country(mut self, value: String) -> Self {
3120 self.country = Some(value);
3121 self
3122 }
3123
3124 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
3125 self.created = Some(value);
3126 self
3127 }
3128
3129 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
3130 self.updated = Some(value);
3131 self
3132 }
3133}
3134
3135const DEVICE_SESSION_FIELDS: &[&str] = &["session_id",
3136 "ip_address",
3137 "country",
3138 "created",
3139 "updated"];
3140impl DeviceSession {
3141 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3142 map: V,
3143 ) -> Result<DeviceSession, V::Error> {
3144 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3145 }
3146
3147 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3148 mut map: V,
3149 optional: bool,
3150 ) -> Result<Option<DeviceSession>, V::Error> {
3151 let mut field_session_id = None;
3152 let mut field_ip_address = None;
3153 let mut field_country = None;
3154 let mut field_created = None;
3155 let mut field_updated = None;
3156 let mut nothing = true;
3157 while let Some(key) = map.next_key::<&str>()? {
3158 nothing = false;
3159 match key {
3160 "session_id" => {
3161 if field_session_id.is_some() {
3162 return Err(::serde::de::Error::duplicate_field("session_id"));
3163 }
3164 field_session_id = Some(map.next_value()?);
3165 }
3166 "ip_address" => {
3167 if field_ip_address.is_some() {
3168 return Err(::serde::de::Error::duplicate_field("ip_address"));
3169 }
3170 field_ip_address = Some(map.next_value()?);
3171 }
3172 "country" => {
3173 if field_country.is_some() {
3174 return Err(::serde::de::Error::duplicate_field("country"));
3175 }
3176 field_country = Some(map.next_value()?);
3177 }
3178 "created" => {
3179 if field_created.is_some() {
3180 return Err(::serde::de::Error::duplicate_field("created"));
3181 }
3182 field_created = Some(map.next_value()?);
3183 }
3184 "updated" => {
3185 if field_updated.is_some() {
3186 return Err(::serde::de::Error::duplicate_field("updated"));
3187 }
3188 field_updated = Some(map.next_value()?);
3189 }
3190 _ => {
3191 map.next_value::<::serde_json::Value>()?;
3193 }
3194 }
3195 }
3196 if optional && nothing {
3197 return Ok(None);
3198 }
3199 let result = DeviceSession {
3200 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
3201 ip_address: field_ip_address.and_then(Option::flatten),
3202 country: field_country.and_then(Option::flatten),
3203 created: field_created.and_then(Option::flatten),
3204 updated: field_updated.and_then(Option::flatten),
3205 };
3206 Ok(Some(result))
3207 }
3208
3209 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3210 &self,
3211 s: &mut S::SerializeStruct,
3212 ) -> Result<(), S::Error> {
3213 use serde::ser::SerializeStruct;
3214 s.serialize_field("session_id", &self.session_id)?;
3215 if let Some(val) = &self.ip_address {
3216 s.serialize_field("ip_address", val)?;
3217 }
3218 if let Some(val) = &self.country {
3219 s.serialize_field("country", val)?;
3220 }
3221 if let Some(val) = &self.created {
3222 s.serialize_field("created", val)?;
3223 }
3224 if let Some(val) = &self.updated {
3225 s.serialize_field("updated", val)?;
3226 }
3227 Ok(())
3228 }
3229}
3230
3231impl<'de> ::serde::de::Deserialize<'de> for DeviceSession {
3232 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3233 use serde::de::{MapAccess, Visitor};
3235 struct StructVisitor;
3236 impl<'de> Visitor<'de> for StructVisitor {
3237 type Value = DeviceSession;
3238 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3239 f.write_str("a DeviceSession struct")
3240 }
3241 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3242 DeviceSession::internal_deserialize(map)
3243 }
3244 }
3245 deserializer.deserialize_struct("DeviceSession", DEVICE_SESSION_FIELDS, StructVisitor)
3246 }
3247}
3248
3249impl ::serde::ser::Serialize for DeviceSession {
3250 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3251 use serde::ser::SerializeStruct;
3253 let mut s = serializer.serialize_struct("DeviceSession", 5)?;
3254 self.internal_serialize::<S>(&mut s)?;
3255 s.end()
3256 }
3257}
3258
3259#[derive(Debug, Clone, PartialEq, Eq)]
3260#[non_exhaustive] pub struct DeviceSessionArg {
3262 pub session_id: String,
3264 pub team_member_id: String,
3266}
3267
3268impl DeviceSessionArg {
3269 pub fn new(session_id: String, team_member_id: String) -> Self {
3270 DeviceSessionArg {
3271 session_id,
3272 team_member_id,
3273 }
3274 }
3275}
3276
3277const DEVICE_SESSION_ARG_FIELDS: &[&str] = &["session_id",
3278 "team_member_id"];
3279impl DeviceSessionArg {
3280 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3281 map: V,
3282 ) -> Result<DeviceSessionArg, V::Error> {
3283 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3284 }
3285
3286 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3287 mut map: V,
3288 optional: bool,
3289 ) -> Result<Option<DeviceSessionArg>, V::Error> {
3290 let mut field_session_id = None;
3291 let mut field_team_member_id = None;
3292 let mut nothing = true;
3293 while let Some(key) = map.next_key::<&str>()? {
3294 nothing = false;
3295 match key {
3296 "session_id" => {
3297 if field_session_id.is_some() {
3298 return Err(::serde::de::Error::duplicate_field("session_id"));
3299 }
3300 field_session_id = Some(map.next_value()?);
3301 }
3302 "team_member_id" => {
3303 if field_team_member_id.is_some() {
3304 return Err(::serde::de::Error::duplicate_field("team_member_id"));
3305 }
3306 field_team_member_id = Some(map.next_value()?);
3307 }
3308 _ => {
3309 map.next_value::<::serde_json::Value>()?;
3311 }
3312 }
3313 }
3314 if optional && nothing {
3315 return Ok(None);
3316 }
3317 let result = DeviceSessionArg {
3318 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
3319 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
3320 };
3321 Ok(Some(result))
3322 }
3323
3324 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3325 &self,
3326 s: &mut S::SerializeStruct,
3327 ) -> Result<(), S::Error> {
3328 use serde::ser::SerializeStruct;
3329 s.serialize_field("session_id", &self.session_id)?;
3330 s.serialize_field("team_member_id", &self.team_member_id)?;
3331 Ok(())
3332 }
3333}
3334
3335impl<'de> ::serde::de::Deserialize<'de> for DeviceSessionArg {
3336 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3337 use serde::de::{MapAccess, Visitor};
3339 struct StructVisitor;
3340 impl<'de> Visitor<'de> for StructVisitor {
3341 type Value = DeviceSessionArg;
3342 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3343 f.write_str("a DeviceSessionArg struct")
3344 }
3345 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3346 DeviceSessionArg::internal_deserialize(map)
3347 }
3348 }
3349 deserializer.deserialize_struct("DeviceSessionArg", DEVICE_SESSION_ARG_FIELDS, StructVisitor)
3350 }
3351}
3352
3353impl ::serde::ser::Serialize for DeviceSessionArg {
3354 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3355 use serde::ser::SerializeStruct;
3357 let mut s = serializer.serialize_struct("DeviceSessionArg", 2)?;
3358 self.internal_serialize::<S>(&mut s)?;
3359 s.end()
3360 }
3361}
3362
3363#[derive(Debug, Clone, PartialEq, Eq)]
3367#[non_exhaustive] pub struct DevicesActive {
3369 pub windows: NumberPerDay,
3371 pub macos: NumberPerDay,
3373 pub linux: NumberPerDay,
3375 pub ios: NumberPerDay,
3377 pub android: NumberPerDay,
3379 pub other: NumberPerDay,
3381 pub total: NumberPerDay,
3383}
3384
3385impl DevicesActive {
3386 pub fn new(
3387 windows: NumberPerDay,
3388 macos: NumberPerDay,
3389 linux: NumberPerDay,
3390 ios: NumberPerDay,
3391 android: NumberPerDay,
3392 other: NumberPerDay,
3393 total: NumberPerDay,
3394 ) -> Self {
3395 DevicesActive {
3396 windows,
3397 macos,
3398 linux,
3399 ios,
3400 android,
3401 other,
3402 total,
3403 }
3404 }
3405}
3406
3407const DEVICES_ACTIVE_FIELDS: &[&str] = &["windows",
3408 "macos",
3409 "linux",
3410 "ios",
3411 "android",
3412 "other",
3413 "total"];
3414impl DevicesActive {
3415 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3416 map: V,
3417 ) -> Result<DevicesActive, V::Error> {
3418 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3419 }
3420
3421 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3422 mut map: V,
3423 optional: bool,
3424 ) -> Result<Option<DevicesActive>, V::Error> {
3425 let mut field_windows = None;
3426 let mut field_macos = None;
3427 let mut field_linux = None;
3428 let mut field_ios = None;
3429 let mut field_android = None;
3430 let mut field_other = None;
3431 let mut field_total = None;
3432 let mut nothing = true;
3433 while let Some(key) = map.next_key::<&str>()? {
3434 nothing = false;
3435 match key {
3436 "windows" => {
3437 if field_windows.is_some() {
3438 return Err(::serde::de::Error::duplicate_field("windows"));
3439 }
3440 field_windows = Some(map.next_value()?);
3441 }
3442 "macos" => {
3443 if field_macos.is_some() {
3444 return Err(::serde::de::Error::duplicate_field("macos"));
3445 }
3446 field_macos = Some(map.next_value()?);
3447 }
3448 "linux" => {
3449 if field_linux.is_some() {
3450 return Err(::serde::de::Error::duplicate_field("linux"));
3451 }
3452 field_linux = Some(map.next_value()?);
3453 }
3454 "ios" => {
3455 if field_ios.is_some() {
3456 return Err(::serde::de::Error::duplicate_field("ios"));
3457 }
3458 field_ios = Some(map.next_value()?);
3459 }
3460 "android" => {
3461 if field_android.is_some() {
3462 return Err(::serde::de::Error::duplicate_field("android"));
3463 }
3464 field_android = Some(map.next_value()?);
3465 }
3466 "other" => {
3467 if field_other.is_some() {
3468 return Err(::serde::de::Error::duplicate_field("other"));
3469 }
3470 field_other = Some(map.next_value()?);
3471 }
3472 "total" => {
3473 if field_total.is_some() {
3474 return Err(::serde::de::Error::duplicate_field("total"));
3475 }
3476 field_total = Some(map.next_value()?);
3477 }
3478 _ => {
3479 map.next_value::<::serde_json::Value>()?;
3481 }
3482 }
3483 }
3484 if optional && nothing {
3485 return Ok(None);
3486 }
3487 let result = DevicesActive {
3488 windows: field_windows.ok_or_else(|| ::serde::de::Error::missing_field("windows"))?,
3489 macos: field_macos.ok_or_else(|| ::serde::de::Error::missing_field("macos"))?,
3490 linux: field_linux.ok_or_else(|| ::serde::de::Error::missing_field("linux"))?,
3491 ios: field_ios.ok_or_else(|| ::serde::de::Error::missing_field("ios"))?,
3492 android: field_android.ok_or_else(|| ::serde::de::Error::missing_field("android"))?,
3493 other: field_other.ok_or_else(|| ::serde::de::Error::missing_field("other"))?,
3494 total: field_total.ok_or_else(|| ::serde::de::Error::missing_field("total"))?,
3495 };
3496 Ok(Some(result))
3497 }
3498
3499 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3500 &self,
3501 s: &mut S::SerializeStruct,
3502 ) -> Result<(), S::Error> {
3503 use serde::ser::SerializeStruct;
3504 s.serialize_field("windows", &self.windows)?;
3505 s.serialize_field("macos", &self.macos)?;
3506 s.serialize_field("linux", &self.linux)?;
3507 s.serialize_field("ios", &self.ios)?;
3508 s.serialize_field("android", &self.android)?;
3509 s.serialize_field("other", &self.other)?;
3510 s.serialize_field("total", &self.total)?;
3511 Ok(())
3512 }
3513}
3514
3515impl<'de> ::serde::de::Deserialize<'de> for DevicesActive {
3516 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3517 use serde::de::{MapAccess, Visitor};
3519 struct StructVisitor;
3520 impl<'de> Visitor<'de> for StructVisitor {
3521 type Value = DevicesActive;
3522 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3523 f.write_str("a DevicesActive struct")
3524 }
3525 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3526 DevicesActive::internal_deserialize(map)
3527 }
3528 }
3529 deserializer.deserialize_struct("DevicesActive", DEVICES_ACTIVE_FIELDS, StructVisitor)
3530 }
3531}
3532
3533impl ::serde::ser::Serialize for DevicesActive {
3534 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3535 use serde::ser::SerializeStruct;
3537 let mut s = serializer.serialize_struct("DevicesActive", 7)?;
3538 self.internal_serialize::<S>(&mut s)?;
3539 s.end()
3540 }
3541}
3542
3543#[derive(Debug, Clone, PartialEq, Eq)]
3545#[non_exhaustive] pub struct ExcludedUsersListArg {
3547 pub limit: u32,
3549}
3550
3551impl Default for ExcludedUsersListArg {
3552 fn default() -> Self {
3553 ExcludedUsersListArg {
3554 limit: 1000,
3555 }
3556 }
3557}
3558
3559impl ExcludedUsersListArg {
3560 pub fn with_limit(mut self, value: u32) -> Self {
3561 self.limit = value;
3562 self
3563 }
3564}
3565
3566const EXCLUDED_USERS_LIST_ARG_FIELDS: &[&str] = &["limit"];
3567impl ExcludedUsersListArg {
3568 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3570 mut map: V,
3571 ) -> Result<ExcludedUsersListArg, V::Error> {
3572 let mut field_limit = None;
3573 while let Some(key) = map.next_key::<&str>()? {
3574 match key {
3575 "limit" => {
3576 if field_limit.is_some() {
3577 return Err(::serde::de::Error::duplicate_field("limit"));
3578 }
3579 field_limit = Some(map.next_value()?);
3580 }
3581 _ => {
3582 map.next_value::<::serde_json::Value>()?;
3584 }
3585 }
3586 }
3587 let result = ExcludedUsersListArg {
3588 limit: field_limit.unwrap_or(1000),
3589 };
3590 Ok(result)
3591 }
3592
3593 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3594 &self,
3595 s: &mut S::SerializeStruct,
3596 ) -> Result<(), S::Error> {
3597 use serde::ser::SerializeStruct;
3598 if self.limit != 1000 {
3599 s.serialize_field("limit", &self.limit)?;
3600 }
3601 Ok(())
3602 }
3603}
3604
3605impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListArg {
3606 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3607 use serde::de::{MapAccess, Visitor};
3609 struct StructVisitor;
3610 impl<'de> Visitor<'de> for StructVisitor {
3611 type Value = ExcludedUsersListArg;
3612 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3613 f.write_str("a ExcludedUsersListArg struct")
3614 }
3615 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3616 ExcludedUsersListArg::internal_deserialize(map)
3617 }
3618 }
3619 deserializer.deserialize_struct("ExcludedUsersListArg", EXCLUDED_USERS_LIST_ARG_FIELDS, StructVisitor)
3620 }
3621}
3622
3623impl ::serde::ser::Serialize for ExcludedUsersListArg {
3624 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3625 use serde::ser::SerializeStruct;
3627 let mut s = serializer.serialize_struct("ExcludedUsersListArg", 1)?;
3628 self.internal_serialize::<S>(&mut s)?;
3629 s.end()
3630 }
3631}
3632
3633#[derive(Debug, Clone, PartialEq, Eq)]
3635#[non_exhaustive] pub struct ExcludedUsersListContinueArg {
3637 pub cursor: String,
3639}
3640
3641impl ExcludedUsersListContinueArg {
3642 pub fn new(cursor: String) -> Self {
3643 ExcludedUsersListContinueArg {
3644 cursor,
3645 }
3646 }
3647}
3648
3649const EXCLUDED_USERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
3650impl ExcludedUsersListContinueArg {
3651 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3652 map: V,
3653 ) -> Result<ExcludedUsersListContinueArg, V::Error> {
3654 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3655 }
3656
3657 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3658 mut map: V,
3659 optional: bool,
3660 ) -> Result<Option<ExcludedUsersListContinueArg>, V::Error> {
3661 let mut field_cursor = None;
3662 let mut nothing = true;
3663 while let Some(key) = map.next_key::<&str>()? {
3664 nothing = false;
3665 match key {
3666 "cursor" => {
3667 if field_cursor.is_some() {
3668 return Err(::serde::de::Error::duplicate_field("cursor"));
3669 }
3670 field_cursor = Some(map.next_value()?);
3671 }
3672 _ => {
3673 map.next_value::<::serde_json::Value>()?;
3675 }
3676 }
3677 }
3678 if optional && nothing {
3679 return Ok(None);
3680 }
3681 let result = ExcludedUsersListContinueArg {
3682 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
3683 };
3684 Ok(Some(result))
3685 }
3686
3687 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3688 &self,
3689 s: &mut S::SerializeStruct,
3690 ) -> Result<(), S::Error> {
3691 use serde::ser::SerializeStruct;
3692 s.serialize_field("cursor", &self.cursor)?;
3693 Ok(())
3694 }
3695}
3696
3697impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListContinueArg {
3698 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3699 use serde::de::{MapAccess, Visitor};
3701 struct StructVisitor;
3702 impl<'de> Visitor<'de> for StructVisitor {
3703 type Value = ExcludedUsersListContinueArg;
3704 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3705 f.write_str("a ExcludedUsersListContinueArg struct")
3706 }
3707 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3708 ExcludedUsersListContinueArg::internal_deserialize(map)
3709 }
3710 }
3711 deserializer.deserialize_struct("ExcludedUsersListContinueArg", EXCLUDED_USERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
3712 }
3713}
3714
3715impl ::serde::ser::Serialize for ExcludedUsersListContinueArg {
3716 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3717 use serde::ser::SerializeStruct;
3719 let mut s = serializer.serialize_struct("ExcludedUsersListContinueArg", 1)?;
3720 self.internal_serialize::<S>(&mut s)?;
3721 s.end()
3722 }
3723}
3724
3725#[derive(Debug, Clone, PartialEq, Eq)]
3727#[non_exhaustive] pub enum ExcludedUsersListContinueError {
3729 InvalidCursor,
3731 Other,
3734}
3735
3736impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListContinueError {
3737 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3738 use serde::de::{self, MapAccess, Visitor};
3740 struct EnumVisitor;
3741 impl<'de> Visitor<'de> for EnumVisitor {
3742 type Value = ExcludedUsersListContinueError;
3743 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3744 f.write_str("a ExcludedUsersListContinueError structure")
3745 }
3746 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3747 let tag: &str = match map.next_key()? {
3748 Some(".tag") => map.next_value()?,
3749 _ => return Err(de::Error::missing_field(".tag"))
3750 };
3751 let value = match tag {
3752 "invalid_cursor" => ExcludedUsersListContinueError::InvalidCursor,
3753 _ => ExcludedUsersListContinueError::Other,
3754 };
3755 crate::eat_json_fields(&mut map)?;
3756 Ok(value)
3757 }
3758 }
3759 const VARIANTS: &[&str] = &["invalid_cursor",
3760 "other"];
3761 deserializer.deserialize_struct("ExcludedUsersListContinueError", VARIANTS, EnumVisitor)
3762 }
3763}
3764
3765impl ::serde::ser::Serialize for ExcludedUsersListContinueError {
3766 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3767 use serde::ser::SerializeStruct;
3769 match self {
3770 ExcludedUsersListContinueError::InvalidCursor => {
3771 let mut s = serializer.serialize_struct("ExcludedUsersListContinueError", 1)?;
3773 s.serialize_field(".tag", "invalid_cursor")?;
3774 s.end()
3775 }
3776 ExcludedUsersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3777 }
3778 }
3779}
3780
3781impl ::std::error::Error for ExcludedUsersListContinueError {
3782}
3783
3784impl ::std::fmt::Display for ExcludedUsersListContinueError {
3785 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3786 match self {
3787 ExcludedUsersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
3788 _ => write!(f, "{:?}", *self),
3789 }
3790 }
3791}
3792
3793#[derive(Debug, Clone, PartialEq, Eq)]
3795#[non_exhaustive] pub enum ExcludedUsersListError {
3797 ListError,
3799 Other,
3802}
3803
3804impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListError {
3805 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3806 use serde::de::{self, MapAccess, Visitor};
3808 struct EnumVisitor;
3809 impl<'de> Visitor<'de> for EnumVisitor {
3810 type Value = ExcludedUsersListError;
3811 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3812 f.write_str("a ExcludedUsersListError structure")
3813 }
3814 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3815 let tag: &str = match map.next_key()? {
3816 Some(".tag") => map.next_value()?,
3817 _ => return Err(de::Error::missing_field(".tag"))
3818 };
3819 let value = match tag {
3820 "list_error" => ExcludedUsersListError::ListError,
3821 _ => ExcludedUsersListError::Other,
3822 };
3823 crate::eat_json_fields(&mut map)?;
3824 Ok(value)
3825 }
3826 }
3827 const VARIANTS: &[&str] = &["list_error",
3828 "other"];
3829 deserializer.deserialize_struct("ExcludedUsersListError", VARIANTS, EnumVisitor)
3830 }
3831}
3832
3833impl ::serde::ser::Serialize for ExcludedUsersListError {
3834 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3835 use serde::ser::SerializeStruct;
3837 match self {
3838 ExcludedUsersListError::ListError => {
3839 let mut s = serializer.serialize_struct("ExcludedUsersListError", 1)?;
3841 s.serialize_field(".tag", "list_error")?;
3842 s.end()
3843 }
3844 ExcludedUsersListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3845 }
3846 }
3847}
3848
3849impl ::std::error::Error for ExcludedUsersListError {
3850}
3851
3852impl ::std::fmt::Display for ExcludedUsersListError {
3853 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3854 match self {
3855 ExcludedUsersListError::ListError => f.write_str("An error occurred."),
3856 _ => write!(f, "{:?}", *self),
3857 }
3858 }
3859}
3860
3861#[derive(Debug, Clone, PartialEq, Eq)]
3863#[non_exhaustive] pub struct ExcludedUsersListResult {
3865 pub users: Vec<MemberProfile>,
3866 pub has_more: bool,
3871 pub cursor: Option<String>,
3875}
3876
3877impl ExcludedUsersListResult {
3878 pub fn new(users: Vec<MemberProfile>, has_more: bool) -> Self {
3879 ExcludedUsersListResult {
3880 users,
3881 has_more,
3882 cursor: None,
3883 }
3884 }
3885
3886 pub fn with_cursor(mut self, value: String) -> Self {
3887 self.cursor = Some(value);
3888 self
3889 }
3890}
3891
3892const EXCLUDED_USERS_LIST_RESULT_FIELDS: &[&str] = &["users",
3893 "has_more",
3894 "cursor"];
3895impl ExcludedUsersListResult {
3896 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3897 map: V,
3898 ) -> Result<ExcludedUsersListResult, V::Error> {
3899 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3900 }
3901
3902 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3903 mut map: V,
3904 optional: bool,
3905 ) -> Result<Option<ExcludedUsersListResult>, V::Error> {
3906 let mut field_users = None;
3907 let mut field_has_more = None;
3908 let mut field_cursor = None;
3909 let mut nothing = true;
3910 while let Some(key) = map.next_key::<&str>()? {
3911 nothing = false;
3912 match key {
3913 "users" => {
3914 if field_users.is_some() {
3915 return Err(::serde::de::Error::duplicate_field("users"));
3916 }
3917 field_users = Some(map.next_value()?);
3918 }
3919 "has_more" => {
3920 if field_has_more.is_some() {
3921 return Err(::serde::de::Error::duplicate_field("has_more"));
3922 }
3923 field_has_more = Some(map.next_value()?);
3924 }
3925 "cursor" => {
3926 if field_cursor.is_some() {
3927 return Err(::serde::de::Error::duplicate_field("cursor"));
3928 }
3929 field_cursor = Some(map.next_value()?);
3930 }
3931 _ => {
3932 map.next_value::<::serde_json::Value>()?;
3934 }
3935 }
3936 }
3937 if optional && nothing {
3938 return Ok(None);
3939 }
3940 let result = ExcludedUsersListResult {
3941 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
3942 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
3943 cursor: field_cursor.and_then(Option::flatten),
3944 };
3945 Ok(Some(result))
3946 }
3947
3948 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3949 &self,
3950 s: &mut S::SerializeStruct,
3951 ) -> Result<(), S::Error> {
3952 use serde::ser::SerializeStruct;
3953 s.serialize_field("users", &self.users)?;
3954 s.serialize_field("has_more", &self.has_more)?;
3955 if let Some(val) = &self.cursor {
3956 s.serialize_field("cursor", val)?;
3957 }
3958 Ok(())
3959 }
3960}
3961
3962impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListResult {
3963 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3964 use serde::de::{MapAccess, Visitor};
3966 struct StructVisitor;
3967 impl<'de> Visitor<'de> for StructVisitor {
3968 type Value = ExcludedUsersListResult;
3969 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3970 f.write_str("a ExcludedUsersListResult struct")
3971 }
3972 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3973 ExcludedUsersListResult::internal_deserialize(map)
3974 }
3975 }
3976 deserializer.deserialize_struct("ExcludedUsersListResult", EXCLUDED_USERS_LIST_RESULT_FIELDS, StructVisitor)
3977 }
3978}
3979
3980impl ::serde::ser::Serialize for ExcludedUsersListResult {
3981 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3982 use serde::ser::SerializeStruct;
3984 let mut s = serializer.serialize_struct("ExcludedUsersListResult", 3)?;
3985 self.internal_serialize::<S>(&mut s)?;
3986 s.end()
3987 }
3988}
3989
3990#[derive(Debug, Clone, PartialEq, Eq, Default)]
3993#[non_exhaustive] pub struct ExcludedUsersUpdateArg {
3995 pub users: Option<Vec<UserSelectorArg>>,
3997}
3998
3999impl ExcludedUsersUpdateArg {
4000 pub fn with_users(mut self, value: Vec<UserSelectorArg>) -> Self {
4001 self.users = Some(value);
4002 self
4003 }
4004}
4005
4006const EXCLUDED_USERS_UPDATE_ARG_FIELDS: &[&str] = &["users"];
4007impl ExcludedUsersUpdateArg {
4008 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4010 mut map: V,
4011 ) -> Result<ExcludedUsersUpdateArg, V::Error> {
4012 let mut field_users = None;
4013 while let Some(key) = map.next_key::<&str>()? {
4014 match key {
4015 "users" => {
4016 if field_users.is_some() {
4017 return Err(::serde::de::Error::duplicate_field("users"));
4018 }
4019 field_users = Some(map.next_value()?);
4020 }
4021 _ => {
4022 map.next_value::<::serde_json::Value>()?;
4024 }
4025 }
4026 }
4027 let result = ExcludedUsersUpdateArg {
4028 users: field_users.and_then(Option::flatten),
4029 };
4030 Ok(result)
4031 }
4032
4033 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4034 &self,
4035 s: &mut S::SerializeStruct,
4036 ) -> Result<(), S::Error> {
4037 use serde::ser::SerializeStruct;
4038 if let Some(val) = &self.users {
4039 s.serialize_field("users", val)?;
4040 }
4041 Ok(())
4042 }
4043}
4044
4045impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateArg {
4046 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4047 use serde::de::{MapAccess, Visitor};
4049 struct StructVisitor;
4050 impl<'de> Visitor<'de> for StructVisitor {
4051 type Value = ExcludedUsersUpdateArg;
4052 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4053 f.write_str("a ExcludedUsersUpdateArg struct")
4054 }
4055 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4056 ExcludedUsersUpdateArg::internal_deserialize(map)
4057 }
4058 }
4059 deserializer.deserialize_struct("ExcludedUsersUpdateArg", EXCLUDED_USERS_UPDATE_ARG_FIELDS, StructVisitor)
4060 }
4061}
4062
4063impl ::serde::ser::Serialize for ExcludedUsersUpdateArg {
4064 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4065 use serde::ser::SerializeStruct;
4067 let mut s = serializer.serialize_struct("ExcludedUsersUpdateArg", 1)?;
4068 self.internal_serialize::<S>(&mut s)?;
4069 s.end()
4070 }
4071}
4072
4073#[derive(Debug, Clone, PartialEq, Eq)]
4075#[non_exhaustive] pub enum ExcludedUsersUpdateError {
4077 UsersNotInTeam,
4079 TooManyUsers,
4081 Other,
4084}
4085
4086impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateError {
4087 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4088 use serde::de::{self, MapAccess, Visitor};
4090 struct EnumVisitor;
4091 impl<'de> Visitor<'de> for EnumVisitor {
4092 type Value = ExcludedUsersUpdateError;
4093 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4094 f.write_str("a ExcludedUsersUpdateError structure")
4095 }
4096 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4097 let tag: &str = match map.next_key()? {
4098 Some(".tag") => map.next_value()?,
4099 _ => return Err(de::Error::missing_field(".tag"))
4100 };
4101 let value = match tag {
4102 "users_not_in_team" => ExcludedUsersUpdateError::UsersNotInTeam,
4103 "too_many_users" => ExcludedUsersUpdateError::TooManyUsers,
4104 _ => ExcludedUsersUpdateError::Other,
4105 };
4106 crate::eat_json_fields(&mut map)?;
4107 Ok(value)
4108 }
4109 }
4110 const VARIANTS: &[&str] = &["users_not_in_team",
4111 "too_many_users",
4112 "other"];
4113 deserializer.deserialize_struct("ExcludedUsersUpdateError", VARIANTS, EnumVisitor)
4114 }
4115}
4116
4117impl ::serde::ser::Serialize for ExcludedUsersUpdateError {
4118 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4119 use serde::ser::SerializeStruct;
4121 match self {
4122 ExcludedUsersUpdateError::UsersNotInTeam => {
4123 let mut s = serializer.serialize_struct("ExcludedUsersUpdateError", 1)?;
4125 s.serialize_field(".tag", "users_not_in_team")?;
4126 s.end()
4127 }
4128 ExcludedUsersUpdateError::TooManyUsers => {
4129 let mut s = serializer.serialize_struct("ExcludedUsersUpdateError", 1)?;
4131 s.serialize_field(".tag", "too_many_users")?;
4132 s.end()
4133 }
4134 ExcludedUsersUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4135 }
4136 }
4137}
4138
4139impl ::std::error::Error for ExcludedUsersUpdateError {
4140}
4141
4142impl ::std::fmt::Display for ExcludedUsersUpdateError {
4143 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4144 match self {
4145 ExcludedUsersUpdateError::UsersNotInTeam => f.write_str("At least one of the users is not part of your team."),
4146 ExcludedUsersUpdateError::TooManyUsers => f.write_str("A maximum of 1000 users for each of addition/removal can be supplied."),
4147 _ => write!(f, "{:?}", *self),
4148 }
4149 }
4150}
4151
4152#[derive(Debug, Clone, PartialEq, Eq)]
4154#[non_exhaustive] pub struct ExcludedUsersUpdateResult {
4156 pub status: ExcludedUsersUpdateStatus,
4158}
4159
4160impl ExcludedUsersUpdateResult {
4161 pub fn new(status: ExcludedUsersUpdateStatus) -> Self {
4162 ExcludedUsersUpdateResult {
4163 status,
4164 }
4165 }
4166}
4167
4168const EXCLUDED_USERS_UPDATE_RESULT_FIELDS: &[&str] = &["status"];
4169impl ExcludedUsersUpdateResult {
4170 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4171 map: V,
4172 ) -> Result<ExcludedUsersUpdateResult, V::Error> {
4173 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4174 }
4175
4176 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4177 mut map: V,
4178 optional: bool,
4179 ) -> Result<Option<ExcludedUsersUpdateResult>, V::Error> {
4180 let mut field_status = None;
4181 let mut nothing = true;
4182 while let Some(key) = map.next_key::<&str>()? {
4183 nothing = false;
4184 match key {
4185 "status" => {
4186 if field_status.is_some() {
4187 return Err(::serde::de::Error::duplicate_field("status"));
4188 }
4189 field_status = Some(map.next_value()?);
4190 }
4191 _ => {
4192 map.next_value::<::serde_json::Value>()?;
4194 }
4195 }
4196 }
4197 if optional && nothing {
4198 return Ok(None);
4199 }
4200 let result = ExcludedUsersUpdateResult {
4201 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
4202 };
4203 Ok(Some(result))
4204 }
4205
4206 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4207 &self,
4208 s: &mut S::SerializeStruct,
4209 ) -> Result<(), S::Error> {
4210 use serde::ser::SerializeStruct;
4211 s.serialize_field("status", &self.status)?;
4212 Ok(())
4213 }
4214}
4215
4216impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateResult {
4217 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4218 use serde::de::{MapAccess, Visitor};
4220 struct StructVisitor;
4221 impl<'de> Visitor<'de> for StructVisitor {
4222 type Value = ExcludedUsersUpdateResult;
4223 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4224 f.write_str("a ExcludedUsersUpdateResult struct")
4225 }
4226 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4227 ExcludedUsersUpdateResult::internal_deserialize(map)
4228 }
4229 }
4230 deserializer.deserialize_struct("ExcludedUsersUpdateResult", EXCLUDED_USERS_UPDATE_RESULT_FIELDS, StructVisitor)
4231 }
4232}
4233
4234impl ::serde::ser::Serialize for ExcludedUsersUpdateResult {
4235 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4236 use serde::ser::SerializeStruct;
4238 let mut s = serializer.serialize_struct("ExcludedUsersUpdateResult", 1)?;
4239 self.internal_serialize::<S>(&mut s)?;
4240 s.end()
4241 }
4242}
4243
4244#[derive(Debug, Clone, PartialEq, Eq)]
4246#[non_exhaustive] pub enum ExcludedUsersUpdateStatus {
4248 Success,
4250 Other,
4253}
4254
4255impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateStatus {
4256 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4257 use serde::de::{self, MapAccess, Visitor};
4259 struct EnumVisitor;
4260 impl<'de> Visitor<'de> for EnumVisitor {
4261 type Value = ExcludedUsersUpdateStatus;
4262 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4263 f.write_str("a ExcludedUsersUpdateStatus structure")
4264 }
4265 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4266 let tag: &str = match map.next_key()? {
4267 Some(".tag") => map.next_value()?,
4268 _ => return Err(de::Error::missing_field(".tag"))
4269 };
4270 let value = match tag {
4271 "success" => ExcludedUsersUpdateStatus::Success,
4272 _ => ExcludedUsersUpdateStatus::Other,
4273 };
4274 crate::eat_json_fields(&mut map)?;
4275 Ok(value)
4276 }
4277 }
4278 const VARIANTS: &[&str] = &["success",
4279 "other"];
4280 deserializer.deserialize_struct("ExcludedUsersUpdateStatus", VARIANTS, EnumVisitor)
4281 }
4282}
4283
4284impl ::serde::ser::Serialize for ExcludedUsersUpdateStatus {
4285 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4286 use serde::ser::SerializeStruct;
4288 match self {
4289 ExcludedUsersUpdateStatus::Success => {
4290 let mut s = serializer.serialize_struct("ExcludedUsersUpdateStatus", 1)?;
4292 s.serialize_field(".tag", "success")?;
4293 s.end()
4294 }
4295 ExcludedUsersUpdateStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4296 }
4297 }
4298}
4299
4300#[derive(Debug, Clone, PartialEq, Eq)]
4302#[non_exhaustive] pub enum Feature {
4304 UploadApiRateLimit,
4306 HasTeamSharedDropbox,
4308 HasTeamFileEvents,
4310 HasTeamSelectiveSync,
4312 HasDistinctMemberHomes,
4314 Other,
4317}
4318
4319impl<'de> ::serde::de::Deserialize<'de> for Feature {
4320 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4321 use serde::de::{self, MapAccess, Visitor};
4323 struct EnumVisitor;
4324 impl<'de> Visitor<'de> for EnumVisitor {
4325 type Value = Feature;
4326 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4327 f.write_str("a Feature structure")
4328 }
4329 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4330 let tag: &str = match map.next_key()? {
4331 Some(".tag") => map.next_value()?,
4332 _ => return Err(de::Error::missing_field(".tag"))
4333 };
4334 let value = match tag {
4335 "upload_api_rate_limit" => Feature::UploadApiRateLimit,
4336 "has_team_shared_dropbox" => Feature::HasTeamSharedDropbox,
4337 "has_team_file_events" => Feature::HasTeamFileEvents,
4338 "has_team_selective_sync" => Feature::HasTeamSelectiveSync,
4339 "has_distinct_member_homes" => Feature::HasDistinctMemberHomes,
4340 _ => Feature::Other,
4341 };
4342 crate::eat_json_fields(&mut map)?;
4343 Ok(value)
4344 }
4345 }
4346 const VARIANTS: &[&str] = &["upload_api_rate_limit",
4347 "has_team_shared_dropbox",
4348 "has_team_file_events",
4349 "has_team_selective_sync",
4350 "has_distinct_member_homes",
4351 "other"];
4352 deserializer.deserialize_struct("Feature", VARIANTS, EnumVisitor)
4353 }
4354}
4355
4356impl ::serde::ser::Serialize for Feature {
4357 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4358 use serde::ser::SerializeStruct;
4360 match self {
4361 Feature::UploadApiRateLimit => {
4362 let mut s = serializer.serialize_struct("Feature", 1)?;
4364 s.serialize_field(".tag", "upload_api_rate_limit")?;
4365 s.end()
4366 }
4367 Feature::HasTeamSharedDropbox => {
4368 let mut s = serializer.serialize_struct("Feature", 1)?;
4370 s.serialize_field(".tag", "has_team_shared_dropbox")?;
4371 s.end()
4372 }
4373 Feature::HasTeamFileEvents => {
4374 let mut s = serializer.serialize_struct("Feature", 1)?;
4376 s.serialize_field(".tag", "has_team_file_events")?;
4377 s.end()
4378 }
4379 Feature::HasTeamSelectiveSync => {
4380 let mut s = serializer.serialize_struct("Feature", 1)?;
4382 s.serialize_field(".tag", "has_team_selective_sync")?;
4383 s.end()
4384 }
4385 Feature::HasDistinctMemberHomes => {
4386 let mut s = serializer.serialize_struct("Feature", 1)?;
4388 s.serialize_field(".tag", "has_distinct_member_homes")?;
4389 s.end()
4390 }
4391 Feature::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4392 }
4393 }
4394}
4395
4396#[derive(Debug, Clone, PartialEq, Eq)]
4399#[non_exhaustive] pub enum FeatureValue {
4401 UploadApiRateLimit(UploadApiRateLimitValue),
4402 HasTeamSharedDropbox(HasTeamSharedDropboxValue),
4403 HasTeamFileEvents(HasTeamFileEventsValue),
4404 HasTeamSelectiveSync(HasTeamSelectiveSyncValue),
4405 HasDistinctMemberHomes(HasDistinctMemberHomesValue),
4406 Other,
4409}
4410
4411impl<'de> ::serde::de::Deserialize<'de> for FeatureValue {
4412 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4413 use serde::de::{self, MapAccess, Visitor};
4415 struct EnumVisitor;
4416 impl<'de> Visitor<'de> for EnumVisitor {
4417 type Value = FeatureValue;
4418 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4419 f.write_str("a FeatureValue structure")
4420 }
4421 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4422 let tag: &str = match map.next_key()? {
4423 Some(".tag") => map.next_value()?,
4424 _ => return Err(de::Error::missing_field(".tag"))
4425 };
4426 let value = match tag {
4427 "upload_api_rate_limit" => {
4428 match map.next_key()? {
4429 Some("upload_api_rate_limit") => FeatureValue::UploadApiRateLimit(map.next_value()?),
4430 None => return Err(de::Error::missing_field("upload_api_rate_limit")),
4431 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
4432 }
4433 }
4434 "has_team_shared_dropbox" => {
4435 match map.next_key()? {
4436 Some("has_team_shared_dropbox") => FeatureValue::HasTeamSharedDropbox(map.next_value()?),
4437 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
4438 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
4439 }
4440 }
4441 "has_team_file_events" => {
4442 match map.next_key()? {
4443 Some("has_team_file_events") => FeatureValue::HasTeamFileEvents(map.next_value()?),
4444 None => return Err(de::Error::missing_field("has_team_file_events")),
4445 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
4446 }
4447 }
4448 "has_team_selective_sync" => {
4449 match map.next_key()? {
4450 Some("has_team_selective_sync") => FeatureValue::HasTeamSelectiveSync(map.next_value()?),
4451 None => return Err(de::Error::missing_field("has_team_selective_sync")),
4452 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
4453 }
4454 }
4455 "has_distinct_member_homes" => {
4456 match map.next_key()? {
4457 Some("has_distinct_member_homes") => FeatureValue::HasDistinctMemberHomes(map.next_value()?),
4458 None => return Err(de::Error::missing_field("has_distinct_member_homes")),
4459 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
4460 }
4461 }
4462 _ => FeatureValue::Other,
4463 };
4464 crate::eat_json_fields(&mut map)?;
4465 Ok(value)
4466 }
4467 }
4468 const VARIANTS: &[&str] = &["upload_api_rate_limit",
4469 "has_team_shared_dropbox",
4470 "has_team_file_events",
4471 "has_team_selective_sync",
4472 "has_distinct_member_homes",
4473 "other"];
4474 deserializer.deserialize_struct("FeatureValue", VARIANTS, EnumVisitor)
4475 }
4476}
4477
4478impl ::serde::ser::Serialize for FeatureValue {
4479 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4480 use serde::ser::SerializeStruct;
4482 match self {
4483 FeatureValue::UploadApiRateLimit(x) => {
4484 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
4486 s.serialize_field(".tag", "upload_api_rate_limit")?;
4487 s.serialize_field("upload_api_rate_limit", x)?;
4488 s.end()
4489 }
4490 FeatureValue::HasTeamSharedDropbox(x) => {
4491 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
4493 s.serialize_field(".tag", "has_team_shared_dropbox")?;
4494 s.serialize_field("has_team_shared_dropbox", x)?;
4495 s.end()
4496 }
4497 FeatureValue::HasTeamFileEvents(x) => {
4498 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
4500 s.serialize_field(".tag", "has_team_file_events")?;
4501 s.serialize_field("has_team_file_events", x)?;
4502 s.end()
4503 }
4504 FeatureValue::HasTeamSelectiveSync(x) => {
4505 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
4507 s.serialize_field(".tag", "has_team_selective_sync")?;
4508 s.serialize_field("has_team_selective_sync", x)?;
4509 s.end()
4510 }
4511 FeatureValue::HasDistinctMemberHomes(x) => {
4512 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
4514 s.serialize_field(".tag", "has_distinct_member_homes")?;
4515 s.serialize_field("has_distinct_member_homes", x)?;
4516 s.end()
4517 }
4518 FeatureValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4519 }
4520 }
4521}
4522
4523#[derive(Debug, Clone, PartialEq, Eq)]
4524#[non_exhaustive] pub struct FeaturesGetValuesBatchArg {
4526 pub features: Vec<Feature>,
4529}
4530
4531impl FeaturesGetValuesBatchArg {
4532 pub fn new(features: Vec<Feature>) -> Self {
4533 FeaturesGetValuesBatchArg {
4534 features,
4535 }
4536 }
4537}
4538
4539const FEATURES_GET_VALUES_BATCH_ARG_FIELDS: &[&str] = &["features"];
4540impl FeaturesGetValuesBatchArg {
4541 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4542 map: V,
4543 ) -> Result<FeaturesGetValuesBatchArg, V::Error> {
4544 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4545 }
4546
4547 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4548 mut map: V,
4549 optional: bool,
4550 ) -> Result<Option<FeaturesGetValuesBatchArg>, V::Error> {
4551 let mut field_features = None;
4552 let mut nothing = true;
4553 while let Some(key) = map.next_key::<&str>()? {
4554 nothing = false;
4555 match key {
4556 "features" => {
4557 if field_features.is_some() {
4558 return Err(::serde::de::Error::duplicate_field("features"));
4559 }
4560 field_features = Some(map.next_value()?);
4561 }
4562 _ => {
4563 map.next_value::<::serde_json::Value>()?;
4565 }
4566 }
4567 }
4568 if optional && nothing {
4569 return Ok(None);
4570 }
4571 let result = FeaturesGetValuesBatchArg {
4572 features: field_features.ok_or_else(|| ::serde::de::Error::missing_field("features"))?,
4573 };
4574 Ok(Some(result))
4575 }
4576
4577 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4578 &self,
4579 s: &mut S::SerializeStruct,
4580 ) -> Result<(), S::Error> {
4581 use serde::ser::SerializeStruct;
4582 s.serialize_field("features", &self.features)?;
4583 Ok(())
4584 }
4585}
4586
4587impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchArg {
4588 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4589 use serde::de::{MapAccess, Visitor};
4591 struct StructVisitor;
4592 impl<'de> Visitor<'de> for StructVisitor {
4593 type Value = FeaturesGetValuesBatchArg;
4594 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4595 f.write_str("a FeaturesGetValuesBatchArg struct")
4596 }
4597 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4598 FeaturesGetValuesBatchArg::internal_deserialize(map)
4599 }
4600 }
4601 deserializer.deserialize_struct("FeaturesGetValuesBatchArg", FEATURES_GET_VALUES_BATCH_ARG_FIELDS, StructVisitor)
4602 }
4603}
4604
4605impl ::serde::ser::Serialize for FeaturesGetValuesBatchArg {
4606 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4607 use serde::ser::SerializeStruct;
4609 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchArg", 1)?;
4610 self.internal_serialize::<S>(&mut s)?;
4611 s.end()
4612 }
4613}
4614
4615#[derive(Debug, Clone, PartialEq, Eq)]
4616#[non_exhaustive] pub enum FeaturesGetValuesBatchError {
4618 EmptyFeaturesList,
4621 Other,
4624}
4625
4626impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchError {
4627 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4628 use serde::de::{self, MapAccess, Visitor};
4630 struct EnumVisitor;
4631 impl<'de> Visitor<'de> for EnumVisitor {
4632 type Value = FeaturesGetValuesBatchError;
4633 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4634 f.write_str("a FeaturesGetValuesBatchError structure")
4635 }
4636 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4637 let tag: &str = match map.next_key()? {
4638 Some(".tag") => map.next_value()?,
4639 _ => return Err(de::Error::missing_field(".tag"))
4640 };
4641 let value = match tag {
4642 "empty_features_list" => FeaturesGetValuesBatchError::EmptyFeaturesList,
4643 _ => FeaturesGetValuesBatchError::Other,
4644 };
4645 crate::eat_json_fields(&mut map)?;
4646 Ok(value)
4647 }
4648 }
4649 const VARIANTS: &[&str] = &["empty_features_list",
4650 "other"];
4651 deserializer.deserialize_struct("FeaturesGetValuesBatchError", VARIANTS, EnumVisitor)
4652 }
4653}
4654
4655impl ::serde::ser::Serialize for FeaturesGetValuesBatchError {
4656 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4657 use serde::ser::SerializeStruct;
4659 match self {
4660 FeaturesGetValuesBatchError::EmptyFeaturesList => {
4661 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchError", 1)?;
4663 s.serialize_field(".tag", "empty_features_list")?;
4664 s.end()
4665 }
4666 FeaturesGetValuesBatchError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4667 }
4668 }
4669}
4670
4671impl ::std::error::Error for FeaturesGetValuesBatchError {
4672}
4673
4674impl ::std::fmt::Display for FeaturesGetValuesBatchError {
4675 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4676 write!(f, "{:?}", *self)
4677 }
4678}
4679
4680#[derive(Debug, Clone, PartialEq, Eq)]
4681#[non_exhaustive] pub struct FeaturesGetValuesBatchResult {
4683 pub values: Vec<FeatureValue>,
4684}
4685
4686impl FeaturesGetValuesBatchResult {
4687 pub fn new(values: Vec<FeatureValue>) -> Self {
4688 FeaturesGetValuesBatchResult {
4689 values,
4690 }
4691 }
4692}
4693
4694const FEATURES_GET_VALUES_BATCH_RESULT_FIELDS: &[&str] = &["values"];
4695impl FeaturesGetValuesBatchResult {
4696 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4697 map: V,
4698 ) -> Result<FeaturesGetValuesBatchResult, V::Error> {
4699 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4700 }
4701
4702 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4703 mut map: V,
4704 optional: bool,
4705 ) -> Result<Option<FeaturesGetValuesBatchResult>, V::Error> {
4706 let mut field_values = None;
4707 let mut nothing = true;
4708 while let Some(key) = map.next_key::<&str>()? {
4709 nothing = false;
4710 match key {
4711 "values" => {
4712 if field_values.is_some() {
4713 return Err(::serde::de::Error::duplicate_field("values"));
4714 }
4715 field_values = Some(map.next_value()?);
4716 }
4717 _ => {
4718 map.next_value::<::serde_json::Value>()?;
4720 }
4721 }
4722 }
4723 if optional && nothing {
4724 return Ok(None);
4725 }
4726 let result = FeaturesGetValuesBatchResult {
4727 values: field_values.ok_or_else(|| ::serde::de::Error::missing_field("values"))?,
4728 };
4729 Ok(Some(result))
4730 }
4731
4732 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4733 &self,
4734 s: &mut S::SerializeStruct,
4735 ) -> Result<(), S::Error> {
4736 use serde::ser::SerializeStruct;
4737 s.serialize_field("values", &self.values)?;
4738 Ok(())
4739 }
4740}
4741
4742impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchResult {
4743 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4744 use serde::de::{MapAccess, Visitor};
4746 struct StructVisitor;
4747 impl<'de> Visitor<'de> for StructVisitor {
4748 type Value = FeaturesGetValuesBatchResult;
4749 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4750 f.write_str("a FeaturesGetValuesBatchResult struct")
4751 }
4752 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4753 FeaturesGetValuesBatchResult::internal_deserialize(map)
4754 }
4755 }
4756 deserializer.deserialize_struct("FeaturesGetValuesBatchResult", FEATURES_GET_VALUES_BATCH_RESULT_FIELDS, StructVisitor)
4757 }
4758}
4759
4760impl ::serde::ser::Serialize for FeaturesGetValuesBatchResult {
4761 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4762 use serde::ser::SerializeStruct;
4764 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchResult", 1)?;
4765 self.internal_serialize::<S>(&mut s)?;
4766 s.end()
4767 }
4768}
4769
4770#[derive(Debug, Clone, PartialEq, Eq)]
4773#[non_exhaustive] pub struct GetActivityReport {
4775 pub start_date: String,
4777 pub adds: NumberPerDay,
4779 pub edits: NumberPerDay,
4782 pub deletes: NumberPerDay,
4784 pub active_users_28_day: NumberPerDay,
4786 pub active_users_7_day: NumberPerDay,
4788 pub active_users_1_day: NumberPerDay,
4790 pub active_shared_folders_28_day: NumberPerDay,
4792 pub active_shared_folders_7_day: NumberPerDay,
4794 pub active_shared_folders_1_day: NumberPerDay,
4796 pub shared_links_created: NumberPerDay,
4798 pub shared_links_viewed_by_team: NumberPerDay,
4800 pub shared_links_viewed_by_outside_user: NumberPerDay,
4803 pub shared_links_viewed_by_not_logged_in: NumberPerDay,
4805 pub shared_links_viewed_total: NumberPerDay,
4807}
4808
4809impl GetActivityReport {
4810 pub fn new(
4811 start_date: String,
4812 adds: NumberPerDay,
4813 edits: NumberPerDay,
4814 deletes: NumberPerDay,
4815 active_users_28_day: NumberPerDay,
4816 active_users_7_day: NumberPerDay,
4817 active_users_1_day: NumberPerDay,
4818 active_shared_folders_28_day: NumberPerDay,
4819 active_shared_folders_7_day: NumberPerDay,
4820 active_shared_folders_1_day: NumberPerDay,
4821 shared_links_created: NumberPerDay,
4822 shared_links_viewed_by_team: NumberPerDay,
4823 shared_links_viewed_by_outside_user: NumberPerDay,
4824 shared_links_viewed_by_not_logged_in: NumberPerDay,
4825 shared_links_viewed_total: NumberPerDay,
4826 ) -> Self {
4827 GetActivityReport {
4828 start_date,
4829 adds,
4830 edits,
4831 deletes,
4832 active_users_28_day,
4833 active_users_7_day,
4834 active_users_1_day,
4835 active_shared_folders_28_day,
4836 active_shared_folders_7_day,
4837 active_shared_folders_1_day,
4838 shared_links_created,
4839 shared_links_viewed_by_team,
4840 shared_links_viewed_by_outside_user,
4841 shared_links_viewed_by_not_logged_in,
4842 shared_links_viewed_total,
4843 }
4844 }
4845}
4846
4847const GET_ACTIVITY_REPORT_FIELDS: &[&str] = &["start_date",
4848 "adds",
4849 "edits",
4850 "deletes",
4851 "active_users_28_day",
4852 "active_users_7_day",
4853 "active_users_1_day",
4854 "active_shared_folders_28_day",
4855 "active_shared_folders_7_day",
4856 "active_shared_folders_1_day",
4857 "shared_links_created",
4858 "shared_links_viewed_by_team",
4859 "shared_links_viewed_by_outside_user",
4860 "shared_links_viewed_by_not_logged_in",
4861 "shared_links_viewed_total"];
4862impl GetActivityReport {
4863 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4864 map: V,
4865 ) -> Result<GetActivityReport, V::Error> {
4866 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4867 }
4868
4869 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4870 mut map: V,
4871 optional: bool,
4872 ) -> Result<Option<GetActivityReport>, V::Error> {
4873 let mut field_start_date = None;
4874 let mut field_adds = None;
4875 let mut field_edits = None;
4876 let mut field_deletes = None;
4877 let mut field_active_users_28_day = None;
4878 let mut field_active_users_7_day = None;
4879 let mut field_active_users_1_day = None;
4880 let mut field_active_shared_folders_28_day = None;
4881 let mut field_active_shared_folders_7_day = None;
4882 let mut field_active_shared_folders_1_day = None;
4883 let mut field_shared_links_created = None;
4884 let mut field_shared_links_viewed_by_team = None;
4885 let mut field_shared_links_viewed_by_outside_user = None;
4886 let mut field_shared_links_viewed_by_not_logged_in = None;
4887 let mut field_shared_links_viewed_total = None;
4888 let mut nothing = true;
4889 while let Some(key) = map.next_key::<&str>()? {
4890 nothing = false;
4891 match key {
4892 "start_date" => {
4893 if field_start_date.is_some() {
4894 return Err(::serde::de::Error::duplicate_field("start_date"));
4895 }
4896 field_start_date = Some(map.next_value()?);
4897 }
4898 "adds" => {
4899 if field_adds.is_some() {
4900 return Err(::serde::de::Error::duplicate_field("adds"));
4901 }
4902 field_adds = Some(map.next_value()?);
4903 }
4904 "edits" => {
4905 if field_edits.is_some() {
4906 return Err(::serde::de::Error::duplicate_field("edits"));
4907 }
4908 field_edits = Some(map.next_value()?);
4909 }
4910 "deletes" => {
4911 if field_deletes.is_some() {
4912 return Err(::serde::de::Error::duplicate_field("deletes"));
4913 }
4914 field_deletes = Some(map.next_value()?);
4915 }
4916 "active_users_28_day" => {
4917 if field_active_users_28_day.is_some() {
4918 return Err(::serde::de::Error::duplicate_field("active_users_28_day"));
4919 }
4920 field_active_users_28_day = Some(map.next_value()?);
4921 }
4922 "active_users_7_day" => {
4923 if field_active_users_7_day.is_some() {
4924 return Err(::serde::de::Error::duplicate_field("active_users_7_day"));
4925 }
4926 field_active_users_7_day = Some(map.next_value()?);
4927 }
4928 "active_users_1_day" => {
4929 if field_active_users_1_day.is_some() {
4930 return Err(::serde::de::Error::duplicate_field("active_users_1_day"));
4931 }
4932 field_active_users_1_day = Some(map.next_value()?);
4933 }
4934 "active_shared_folders_28_day" => {
4935 if field_active_shared_folders_28_day.is_some() {
4936 return Err(::serde::de::Error::duplicate_field("active_shared_folders_28_day"));
4937 }
4938 field_active_shared_folders_28_day = Some(map.next_value()?);
4939 }
4940 "active_shared_folders_7_day" => {
4941 if field_active_shared_folders_7_day.is_some() {
4942 return Err(::serde::de::Error::duplicate_field("active_shared_folders_7_day"));
4943 }
4944 field_active_shared_folders_7_day = Some(map.next_value()?);
4945 }
4946 "active_shared_folders_1_day" => {
4947 if field_active_shared_folders_1_day.is_some() {
4948 return Err(::serde::de::Error::duplicate_field("active_shared_folders_1_day"));
4949 }
4950 field_active_shared_folders_1_day = Some(map.next_value()?);
4951 }
4952 "shared_links_created" => {
4953 if field_shared_links_created.is_some() {
4954 return Err(::serde::de::Error::duplicate_field("shared_links_created"));
4955 }
4956 field_shared_links_created = Some(map.next_value()?);
4957 }
4958 "shared_links_viewed_by_team" => {
4959 if field_shared_links_viewed_by_team.is_some() {
4960 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_team"));
4961 }
4962 field_shared_links_viewed_by_team = Some(map.next_value()?);
4963 }
4964 "shared_links_viewed_by_outside_user" => {
4965 if field_shared_links_viewed_by_outside_user.is_some() {
4966 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_outside_user"));
4967 }
4968 field_shared_links_viewed_by_outside_user = Some(map.next_value()?);
4969 }
4970 "shared_links_viewed_by_not_logged_in" => {
4971 if field_shared_links_viewed_by_not_logged_in.is_some() {
4972 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_not_logged_in"));
4973 }
4974 field_shared_links_viewed_by_not_logged_in = Some(map.next_value()?);
4975 }
4976 "shared_links_viewed_total" => {
4977 if field_shared_links_viewed_total.is_some() {
4978 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_total"));
4979 }
4980 field_shared_links_viewed_total = Some(map.next_value()?);
4981 }
4982 _ => {
4983 map.next_value::<::serde_json::Value>()?;
4985 }
4986 }
4987 }
4988 if optional && nothing {
4989 return Ok(None);
4990 }
4991 let result = GetActivityReport {
4992 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4993 adds: field_adds.ok_or_else(|| ::serde::de::Error::missing_field("adds"))?,
4994 edits: field_edits.ok_or_else(|| ::serde::de::Error::missing_field("edits"))?,
4995 deletes: field_deletes.ok_or_else(|| ::serde::de::Error::missing_field("deletes"))?,
4996 active_users_28_day: field_active_users_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_28_day"))?,
4997 active_users_7_day: field_active_users_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_7_day"))?,
4998 active_users_1_day: field_active_users_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_1_day"))?,
4999 active_shared_folders_28_day: field_active_shared_folders_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_28_day"))?,
5000 active_shared_folders_7_day: field_active_shared_folders_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_7_day"))?,
5001 active_shared_folders_1_day: field_active_shared_folders_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_1_day"))?,
5002 shared_links_created: field_shared_links_created.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_created"))?,
5003 shared_links_viewed_by_team: field_shared_links_viewed_by_team.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_by_team"))?,
5004 shared_links_viewed_by_outside_user: field_shared_links_viewed_by_outside_user.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_by_outside_user"))?,
5005 shared_links_viewed_by_not_logged_in: field_shared_links_viewed_by_not_logged_in.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_by_not_logged_in"))?,
5006 shared_links_viewed_total: field_shared_links_viewed_total.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_total"))?,
5007 };
5008 Ok(Some(result))
5009 }
5010
5011 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5012 &self,
5013 s: &mut S::SerializeStruct,
5014 ) -> Result<(), S::Error> {
5015 use serde::ser::SerializeStruct;
5016 s.serialize_field("start_date", &self.start_date)?;
5017 s.serialize_field("adds", &self.adds)?;
5018 s.serialize_field("edits", &self.edits)?;
5019 s.serialize_field("deletes", &self.deletes)?;
5020 s.serialize_field("active_users_28_day", &self.active_users_28_day)?;
5021 s.serialize_field("active_users_7_day", &self.active_users_7_day)?;
5022 s.serialize_field("active_users_1_day", &self.active_users_1_day)?;
5023 s.serialize_field("active_shared_folders_28_day", &self.active_shared_folders_28_day)?;
5024 s.serialize_field("active_shared_folders_7_day", &self.active_shared_folders_7_day)?;
5025 s.serialize_field("active_shared_folders_1_day", &self.active_shared_folders_1_day)?;
5026 s.serialize_field("shared_links_created", &self.shared_links_created)?;
5027 s.serialize_field("shared_links_viewed_by_team", &self.shared_links_viewed_by_team)?;
5028 s.serialize_field("shared_links_viewed_by_outside_user", &self.shared_links_viewed_by_outside_user)?;
5029 s.serialize_field("shared_links_viewed_by_not_logged_in", &self.shared_links_viewed_by_not_logged_in)?;
5030 s.serialize_field("shared_links_viewed_total", &self.shared_links_viewed_total)?;
5031 Ok(())
5032 }
5033}
5034
5035impl<'de> ::serde::de::Deserialize<'de> for GetActivityReport {
5036 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5037 use serde::de::{MapAccess, Visitor};
5039 struct StructVisitor;
5040 impl<'de> Visitor<'de> for StructVisitor {
5041 type Value = GetActivityReport;
5042 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5043 f.write_str("a GetActivityReport struct")
5044 }
5045 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5046 GetActivityReport::internal_deserialize(map)
5047 }
5048 }
5049 deserializer.deserialize_struct("GetActivityReport", GET_ACTIVITY_REPORT_FIELDS, StructVisitor)
5050 }
5051}
5052
5053impl ::serde::ser::Serialize for GetActivityReport {
5054 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5055 use serde::ser::SerializeStruct;
5057 let mut s = serializer.serialize_struct("GetActivityReport", 15)?;
5058 self.internal_serialize::<S>(&mut s)?;
5059 s.end()
5060 }
5061}
5062
5063impl From<GetActivityReport> for BaseDfbReport {
5065 fn from(subtype: GetActivityReport) -> Self {
5066 Self {
5067 start_date: subtype.start_date,
5068 }
5069 }
5070}
5071#[derive(Debug, Clone, PartialEq, Eq)]
5075#[non_exhaustive] pub struct GetDevicesReport {
5077 pub start_date: String,
5079 pub active_1_day: DevicesActive,
5081 pub active_7_day: DevicesActive,
5083 pub active_28_day: DevicesActive,
5085}
5086
5087impl GetDevicesReport {
5088 pub fn new(
5089 start_date: String,
5090 active_1_day: DevicesActive,
5091 active_7_day: DevicesActive,
5092 active_28_day: DevicesActive,
5093 ) -> Self {
5094 GetDevicesReport {
5095 start_date,
5096 active_1_day,
5097 active_7_day,
5098 active_28_day,
5099 }
5100 }
5101}
5102
5103const GET_DEVICES_REPORT_FIELDS: &[&str] = &["start_date",
5104 "active_1_day",
5105 "active_7_day",
5106 "active_28_day"];
5107impl GetDevicesReport {
5108 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5109 map: V,
5110 ) -> Result<GetDevicesReport, V::Error> {
5111 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5112 }
5113
5114 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5115 mut map: V,
5116 optional: bool,
5117 ) -> Result<Option<GetDevicesReport>, V::Error> {
5118 let mut field_start_date = None;
5119 let mut field_active_1_day = None;
5120 let mut field_active_7_day = None;
5121 let mut field_active_28_day = None;
5122 let mut nothing = true;
5123 while let Some(key) = map.next_key::<&str>()? {
5124 nothing = false;
5125 match key {
5126 "start_date" => {
5127 if field_start_date.is_some() {
5128 return Err(::serde::de::Error::duplicate_field("start_date"));
5129 }
5130 field_start_date = Some(map.next_value()?);
5131 }
5132 "active_1_day" => {
5133 if field_active_1_day.is_some() {
5134 return Err(::serde::de::Error::duplicate_field("active_1_day"));
5135 }
5136 field_active_1_day = Some(map.next_value()?);
5137 }
5138 "active_7_day" => {
5139 if field_active_7_day.is_some() {
5140 return Err(::serde::de::Error::duplicate_field("active_7_day"));
5141 }
5142 field_active_7_day = Some(map.next_value()?);
5143 }
5144 "active_28_day" => {
5145 if field_active_28_day.is_some() {
5146 return Err(::serde::de::Error::duplicate_field("active_28_day"));
5147 }
5148 field_active_28_day = Some(map.next_value()?);
5149 }
5150 _ => {
5151 map.next_value::<::serde_json::Value>()?;
5153 }
5154 }
5155 }
5156 if optional && nothing {
5157 return Ok(None);
5158 }
5159 let result = GetDevicesReport {
5160 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
5161 active_1_day: field_active_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_1_day"))?,
5162 active_7_day: field_active_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_7_day"))?,
5163 active_28_day: field_active_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_28_day"))?,
5164 };
5165 Ok(Some(result))
5166 }
5167
5168 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5169 &self,
5170 s: &mut S::SerializeStruct,
5171 ) -> Result<(), S::Error> {
5172 use serde::ser::SerializeStruct;
5173 s.serialize_field("start_date", &self.start_date)?;
5174 s.serialize_field("active_1_day", &self.active_1_day)?;
5175 s.serialize_field("active_7_day", &self.active_7_day)?;
5176 s.serialize_field("active_28_day", &self.active_28_day)?;
5177 Ok(())
5178 }
5179}
5180
5181impl<'de> ::serde::de::Deserialize<'de> for GetDevicesReport {
5182 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5183 use serde::de::{MapAccess, Visitor};
5185 struct StructVisitor;
5186 impl<'de> Visitor<'de> for StructVisitor {
5187 type Value = GetDevicesReport;
5188 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5189 f.write_str("a GetDevicesReport struct")
5190 }
5191 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5192 GetDevicesReport::internal_deserialize(map)
5193 }
5194 }
5195 deserializer.deserialize_struct("GetDevicesReport", GET_DEVICES_REPORT_FIELDS, StructVisitor)
5196 }
5197}
5198
5199impl ::serde::ser::Serialize for GetDevicesReport {
5200 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5201 use serde::ser::SerializeStruct;
5203 let mut s = serializer.serialize_struct("GetDevicesReport", 4)?;
5204 self.internal_serialize::<S>(&mut s)?;
5205 s.end()
5206 }
5207}
5208
5209impl From<GetDevicesReport> for BaseDfbReport {
5211 fn from(subtype: GetDevicesReport) -> Self {
5212 Self {
5213 start_date: subtype.start_date,
5214 }
5215 }
5216}
5217#[derive(Debug, Clone, PartialEq, Eq)]
5220#[non_exhaustive] pub struct GetMembershipReport {
5222 pub start_date: String,
5224 pub team_size: NumberPerDay,
5226 pub pending_invites: NumberPerDay,
5228 pub members_joined: NumberPerDay,
5230 pub suspended_members: NumberPerDay,
5232 pub licenses: NumberPerDay,
5234}
5235
5236impl GetMembershipReport {
5237 pub fn new(
5238 start_date: String,
5239 team_size: NumberPerDay,
5240 pending_invites: NumberPerDay,
5241 members_joined: NumberPerDay,
5242 suspended_members: NumberPerDay,
5243 licenses: NumberPerDay,
5244 ) -> Self {
5245 GetMembershipReport {
5246 start_date,
5247 team_size,
5248 pending_invites,
5249 members_joined,
5250 suspended_members,
5251 licenses,
5252 }
5253 }
5254}
5255
5256const GET_MEMBERSHIP_REPORT_FIELDS: &[&str] = &["start_date",
5257 "team_size",
5258 "pending_invites",
5259 "members_joined",
5260 "suspended_members",
5261 "licenses"];
5262impl GetMembershipReport {
5263 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5264 map: V,
5265 ) -> Result<GetMembershipReport, V::Error> {
5266 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5267 }
5268
5269 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5270 mut map: V,
5271 optional: bool,
5272 ) -> Result<Option<GetMembershipReport>, V::Error> {
5273 let mut field_start_date = None;
5274 let mut field_team_size = None;
5275 let mut field_pending_invites = None;
5276 let mut field_members_joined = None;
5277 let mut field_suspended_members = None;
5278 let mut field_licenses = None;
5279 let mut nothing = true;
5280 while let Some(key) = map.next_key::<&str>()? {
5281 nothing = false;
5282 match key {
5283 "start_date" => {
5284 if field_start_date.is_some() {
5285 return Err(::serde::de::Error::duplicate_field("start_date"));
5286 }
5287 field_start_date = Some(map.next_value()?);
5288 }
5289 "team_size" => {
5290 if field_team_size.is_some() {
5291 return Err(::serde::de::Error::duplicate_field("team_size"));
5292 }
5293 field_team_size = Some(map.next_value()?);
5294 }
5295 "pending_invites" => {
5296 if field_pending_invites.is_some() {
5297 return Err(::serde::de::Error::duplicate_field("pending_invites"));
5298 }
5299 field_pending_invites = Some(map.next_value()?);
5300 }
5301 "members_joined" => {
5302 if field_members_joined.is_some() {
5303 return Err(::serde::de::Error::duplicate_field("members_joined"));
5304 }
5305 field_members_joined = Some(map.next_value()?);
5306 }
5307 "suspended_members" => {
5308 if field_suspended_members.is_some() {
5309 return Err(::serde::de::Error::duplicate_field("suspended_members"));
5310 }
5311 field_suspended_members = Some(map.next_value()?);
5312 }
5313 "licenses" => {
5314 if field_licenses.is_some() {
5315 return Err(::serde::de::Error::duplicate_field("licenses"));
5316 }
5317 field_licenses = Some(map.next_value()?);
5318 }
5319 _ => {
5320 map.next_value::<::serde_json::Value>()?;
5322 }
5323 }
5324 }
5325 if optional && nothing {
5326 return Ok(None);
5327 }
5328 let result = GetMembershipReport {
5329 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
5330 team_size: field_team_size.ok_or_else(|| ::serde::de::Error::missing_field("team_size"))?,
5331 pending_invites: field_pending_invites.ok_or_else(|| ::serde::de::Error::missing_field("pending_invites"))?,
5332 members_joined: field_members_joined.ok_or_else(|| ::serde::de::Error::missing_field("members_joined"))?,
5333 suspended_members: field_suspended_members.ok_or_else(|| ::serde::de::Error::missing_field("suspended_members"))?,
5334 licenses: field_licenses.ok_or_else(|| ::serde::de::Error::missing_field("licenses"))?,
5335 };
5336 Ok(Some(result))
5337 }
5338
5339 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5340 &self,
5341 s: &mut S::SerializeStruct,
5342 ) -> Result<(), S::Error> {
5343 use serde::ser::SerializeStruct;
5344 s.serialize_field("start_date", &self.start_date)?;
5345 s.serialize_field("team_size", &self.team_size)?;
5346 s.serialize_field("pending_invites", &self.pending_invites)?;
5347 s.serialize_field("members_joined", &self.members_joined)?;
5348 s.serialize_field("suspended_members", &self.suspended_members)?;
5349 s.serialize_field("licenses", &self.licenses)?;
5350 Ok(())
5351 }
5352}
5353
5354impl<'de> ::serde::de::Deserialize<'de> for GetMembershipReport {
5355 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5356 use serde::de::{MapAccess, Visitor};
5358 struct StructVisitor;
5359 impl<'de> Visitor<'de> for StructVisitor {
5360 type Value = GetMembershipReport;
5361 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5362 f.write_str("a GetMembershipReport struct")
5363 }
5364 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5365 GetMembershipReport::internal_deserialize(map)
5366 }
5367 }
5368 deserializer.deserialize_struct("GetMembershipReport", GET_MEMBERSHIP_REPORT_FIELDS, StructVisitor)
5369 }
5370}
5371
5372impl ::serde::ser::Serialize for GetMembershipReport {
5373 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5374 use serde::ser::SerializeStruct;
5376 let mut s = serializer.serialize_struct("GetMembershipReport", 6)?;
5377 self.internal_serialize::<S>(&mut s)?;
5378 s.end()
5379 }
5380}
5381
5382impl From<GetMembershipReport> for BaseDfbReport {
5384 fn from(subtype: GetMembershipReport) -> Self {
5385 Self {
5386 start_date: subtype.start_date,
5387 }
5388 }
5389}
5390#[derive(Debug, Clone, PartialEq, Eq)]
5393#[non_exhaustive] pub struct GetStorageReport {
5395 pub start_date: String,
5397 pub total_usage: NumberPerDay,
5399 pub shared_usage: NumberPerDay,
5401 pub unshared_usage: NumberPerDay,
5403 pub shared_folders: NumberPerDay,
5405 pub member_storage_map: Vec<Vec<StorageBucket>>,
5410}
5411
5412impl GetStorageReport {
5413 pub fn new(
5414 start_date: String,
5415 total_usage: NumberPerDay,
5416 shared_usage: NumberPerDay,
5417 unshared_usage: NumberPerDay,
5418 shared_folders: NumberPerDay,
5419 member_storage_map: Vec<Vec<StorageBucket>>,
5420 ) -> Self {
5421 GetStorageReport {
5422 start_date,
5423 total_usage,
5424 shared_usage,
5425 unshared_usage,
5426 shared_folders,
5427 member_storage_map,
5428 }
5429 }
5430}
5431
5432const GET_STORAGE_REPORT_FIELDS: &[&str] = &["start_date",
5433 "total_usage",
5434 "shared_usage",
5435 "unshared_usage",
5436 "shared_folders",
5437 "member_storage_map"];
5438impl GetStorageReport {
5439 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5440 map: V,
5441 ) -> Result<GetStorageReport, V::Error> {
5442 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5443 }
5444
5445 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5446 mut map: V,
5447 optional: bool,
5448 ) -> Result<Option<GetStorageReport>, V::Error> {
5449 let mut field_start_date = None;
5450 let mut field_total_usage = None;
5451 let mut field_shared_usage = None;
5452 let mut field_unshared_usage = None;
5453 let mut field_shared_folders = None;
5454 let mut field_member_storage_map = None;
5455 let mut nothing = true;
5456 while let Some(key) = map.next_key::<&str>()? {
5457 nothing = false;
5458 match key {
5459 "start_date" => {
5460 if field_start_date.is_some() {
5461 return Err(::serde::de::Error::duplicate_field("start_date"));
5462 }
5463 field_start_date = Some(map.next_value()?);
5464 }
5465 "total_usage" => {
5466 if field_total_usage.is_some() {
5467 return Err(::serde::de::Error::duplicate_field("total_usage"));
5468 }
5469 field_total_usage = Some(map.next_value()?);
5470 }
5471 "shared_usage" => {
5472 if field_shared_usage.is_some() {
5473 return Err(::serde::de::Error::duplicate_field("shared_usage"));
5474 }
5475 field_shared_usage = Some(map.next_value()?);
5476 }
5477 "unshared_usage" => {
5478 if field_unshared_usage.is_some() {
5479 return Err(::serde::de::Error::duplicate_field("unshared_usage"));
5480 }
5481 field_unshared_usage = Some(map.next_value()?);
5482 }
5483 "shared_folders" => {
5484 if field_shared_folders.is_some() {
5485 return Err(::serde::de::Error::duplicate_field("shared_folders"));
5486 }
5487 field_shared_folders = Some(map.next_value()?);
5488 }
5489 "member_storage_map" => {
5490 if field_member_storage_map.is_some() {
5491 return Err(::serde::de::Error::duplicate_field("member_storage_map"));
5492 }
5493 field_member_storage_map = Some(map.next_value()?);
5494 }
5495 _ => {
5496 map.next_value::<::serde_json::Value>()?;
5498 }
5499 }
5500 }
5501 if optional && nothing {
5502 return Ok(None);
5503 }
5504 let result = GetStorageReport {
5505 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
5506 total_usage: field_total_usage.ok_or_else(|| ::serde::de::Error::missing_field("total_usage"))?,
5507 shared_usage: field_shared_usage.ok_or_else(|| ::serde::de::Error::missing_field("shared_usage"))?,
5508 unshared_usage: field_unshared_usage.ok_or_else(|| ::serde::de::Error::missing_field("unshared_usage"))?,
5509 shared_folders: field_shared_folders.ok_or_else(|| ::serde::de::Error::missing_field("shared_folders"))?,
5510 member_storage_map: field_member_storage_map.ok_or_else(|| ::serde::de::Error::missing_field("member_storage_map"))?,
5511 };
5512 Ok(Some(result))
5513 }
5514
5515 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5516 &self,
5517 s: &mut S::SerializeStruct,
5518 ) -> Result<(), S::Error> {
5519 use serde::ser::SerializeStruct;
5520 s.serialize_field("start_date", &self.start_date)?;
5521 s.serialize_field("total_usage", &self.total_usage)?;
5522 s.serialize_field("shared_usage", &self.shared_usage)?;
5523 s.serialize_field("unshared_usage", &self.unshared_usage)?;
5524 s.serialize_field("shared_folders", &self.shared_folders)?;
5525 s.serialize_field("member_storage_map", &self.member_storage_map)?;
5526 Ok(())
5527 }
5528}
5529
5530impl<'de> ::serde::de::Deserialize<'de> for GetStorageReport {
5531 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5532 use serde::de::{MapAccess, Visitor};
5534 struct StructVisitor;
5535 impl<'de> Visitor<'de> for StructVisitor {
5536 type Value = GetStorageReport;
5537 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5538 f.write_str("a GetStorageReport struct")
5539 }
5540 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5541 GetStorageReport::internal_deserialize(map)
5542 }
5543 }
5544 deserializer.deserialize_struct("GetStorageReport", GET_STORAGE_REPORT_FIELDS, StructVisitor)
5545 }
5546}
5547
5548impl ::serde::ser::Serialize for GetStorageReport {
5549 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5550 use serde::ser::SerializeStruct;
5552 let mut s = serializer.serialize_struct("GetStorageReport", 6)?;
5553 self.internal_serialize::<S>(&mut s)?;
5554 s.end()
5555 }
5556}
5557
5558impl From<GetStorageReport> for BaseDfbReport {
5560 fn from(subtype: GetStorageReport) -> Self {
5561 Self {
5562 start_date: subtype.start_date,
5563 }
5564 }
5565}
5566#[derive(Debug, Clone, PartialEq, Eq)]
5568pub enum GroupAccessType {
5569 Member,
5571 Owner,
5573}
5574
5575impl<'de> ::serde::de::Deserialize<'de> for GroupAccessType {
5576 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5577 use serde::de::{self, MapAccess, Visitor};
5579 struct EnumVisitor;
5580 impl<'de> Visitor<'de> for EnumVisitor {
5581 type Value = GroupAccessType;
5582 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5583 f.write_str("a GroupAccessType structure")
5584 }
5585 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5586 let tag: &str = match map.next_key()? {
5587 Some(".tag") => map.next_value()?,
5588 _ => return Err(de::Error::missing_field(".tag"))
5589 };
5590 let value = match tag {
5591 "member" => GroupAccessType::Member,
5592 "owner" => GroupAccessType::Owner,
5593 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
5594 };
5595 crate::eat_json_fields(&mut map)?;
5596 Ok(value)
5597 }
5598 }
5599 const VARIANTS: &[&str] = &["member",
5600 "owner"];
5601 deserializer.deserialize_struct("GroupAccessType", VARIANTS, EnumVisitor)
5602 }
5603}
5604
5605impl ::serde::ser::Serialize for GroupAccessType {
5606 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5607 use serde::ser::SerializeStruct;
5609 match self {
5610 GroupAccessType::Member => {
5611 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
5613 s.serialize_field(".tag", "member")?;
5614 s.end()
5615 }
5616 GroupAccessType::Owner => {
5617 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
5619 s.serialize_field(".tag", "owner")?;
5620 s.end()
5621 }
5622 }
5623 }
5624}
5625
5626#[derive(Debug, Clone, PartialEq, Eq)]
5627#[non_exhaustive] pub struct GroupCreateArg {
5629 pub group_name: String,
5631 pub add_creator_as_owner: bool,
5633 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
5635 pub group_management_type: Option<crate::types::team_common::GroupManagementType>,
5637}
5638
5639impl GroupCreateArg {
5640 pub fn new(group_name: String) -> Self {
5641 GroupCreateArg {
5642 group_name,
5643 add_creator_as_owner: false,
5644 group_external_id: None,
5645 group_management_type: None,
5646 }
5647 }
5648
5649 pub fn with_add_creator_as_owner(mut self, value: bool) -> Self {
5650 self.add_creator_as_owner = value;
5651 self
5652 }
5653
5654 pub fn with_group_external_id(
5655 mut self,
5656 value: crate::types::team_common::GroupExternalId,
5657 ) -> Self {
5658 self.group_external_id = Some(value);
5659 self
5660 }
5661
5662 pub fn with_group_management_type(
5663 mut self,
5664 value: crate::types::team_common::GroupManagementType,
5665 ) -> Self {
5666 self.group_management_type = Some(value);
5667 self
5668 }
5669}
5670
5671const GROUP_CREATE_ARG_FIELDS: &[&str] = &["group_name",
5672 "add_creator_as_owner",
5673 "group_external_id",
5674 "group_management_type"];
5675impl GroupCreateArg {
5676 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5677 map: V,
5678 ) -> Result<GroupCreateArg, V::Error> {
5679 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5680 }
5681
5682 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5683 mut map: V,
5684 optional: bool,
5685 ) -> Result<Option<GroupCreateArg>, V::Error> {
5686 let mut field_group_name = None;
5687 let mut field_add_creator_as_owner = None;
5688 let mut field_group_external_id = None;
5689 let mut field_group_management_type = None;
5690 let mut nothing = true;
5691 while let Some(key) = map.next_key::<&str>()? {
5692 nothing = false;
5693 match key {
5694 "group_name" => {
5695 if field_group_name.is_some() {
5696 return Err(::serde::de::Error::duplicate_field("group_name"));
5697 }
5698 field_group_name = Some(map.next_value()?);
5699 }
5700 "add_creator_as_owner" => {
5701 if field_add_creator_as_owner.is_some() {
5702 return Err(::serde::de::Error::duplicate_field("add_creator_as_owner"));
5703 }
5704 field_add_creator_as_owner = Some(map.next_value()?);
5705 }
5706 "group_external_id" => {
5707 if field_group_external_id.is_some() {
5708 return Err(::serde::de::Error::duplicate_field("group_external_id"));
5709 }
5710 field_group_external_id = Some(map.next_value()?);
5711 }
5712 "group_management_type" => {
5713 if field_group_management_type.is_some() {
5714 return Err(::serde::de::Error::duplicate_field("group_management_type"));
5715 }
5716 field_group_management_type = Some(map.next_value()?);
5717 }
5718 _ => {
5719 map.next_value::<::serde_json::Value>()?;
5721 }
5722 }
5723 }
5724 if optional && nothing {
5725 return Ok(None);
5726 }
5727 let result = GroupCreateArg {
5728 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
5729 add_creator_as_owner: field_add_creator_as_owner.unwrap_or(false),
5730 group_external_id: field_group_external_id.and_then(Option::flatten),
5731 group_management_type: field_group_management_type.and_then(Option::flatten),
5732 };
5733 Ok(Some(result))
5734 }
5735
5736 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5737 &self,
5738 s: &mut S::SerializeStruct,
5739 ) -> Result<(), S::Error> {
5740 use serde::ser::SerializeStruct;
5741 s.serialize_field("group_name", &self.group_name)?;
5742 if self.add_creator_as_owner {
5743 s.serialize_field("add_creator_as_owner", &self.add_creator_as_owner)?;
5744 }
5745 if let Some(val) = &self.group_external_id {
5746 s.serialize_field("group_external_id", val)?;
5747 }
5748 if let Some(val) = &self.group_management_type {
5749 s.serialize_field("group_management_type", val)?;
5750 }
5751 Ok(())
5752 }
5753}
5754
5755impl<'de> ::serde::de::Deserialize<'de> for GroupCreateArg {
5756 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5757 use serde::de::{MapAccess, Visitor};
5759 struct StructVisitor;
5760 impl<'de> Visitor<'de> for StructVisitor {
5761 type Value = GroupCreateArg;
5762 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5763 f.write_str("a GroupCreateArg struct")
5764 }
5765 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5766 GroupCreateArg::internal_deserialize(map)
5767 }
5768 }
5769 deserializer.deserialize_struct("GroupCreateArg", GROUP_CREATE_ARG_FIELDS, StructVisitor)
5770 }
5771}
5772
5773impl ::serde::ser::Serialize for GroupCreateArg {
5774 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5775 use serde::ser::SerializeStruct;
5777 let mut s = serializer.serialize_struct("GroupCreateArg", 4)?;
5778 self.internal_serialize::<S>(&mut s)?;
5779 s.end()
5780 }
5781}
5782
5783#[derive(Debug, Clone, PartialEq, Eq)]
5784#[non_exhaustive] pub enum GroupCreateError {
5786 GroupNameAlreadyUsed,
5788 GroupNameInvalid,
5790 ExternalIdAlreadyInUse,
5792 SystemManagedGroupDisallowed,
5794 Other,
5797}
5798
5799impl<'de> ::serde::de::Deserialize<'de> for GroupCreateError {
5800 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5801 use serde::de::{self, MapAccess, Visitor};
5803 struct EnumVisitor;
5804 impl<'de> Visitor<'de> for EnumVisitor {
5805 type Value = GroupCreateError;
5806 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5807 f.write_str("a GroupCreateError structure")
5808 }
5809 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5810 let tag: &str = match map.next_key()? {
5811 Some(".tag") => map.next_value()?,
5812 _ => return Err(de::Error::missing_field(".tag"))
5813 };
5814 let value = match tag {
5815 "group_name_already_used" => GroupCreateError::GroupNameAlreadyUsed,
5816 "group_name_invalid" => GroupCreateError::GroupNameInvalid,
5817 "external_id_already_in_use" => GroupCreateError::ExternalIdAlreadyInUse,
5818 "system_managed_group_disallowed" => GroupCreateError::SystemManagedGroupDisallowed,
5819 _ => GroupCreateError::Other,
5820 };
5821 crate::eat_json_fields(&mut map)?;
5822 Ok(value)
5823 }
5824 }
5825 const VARIANTS: &[&str] = &["group_name_already_used",
5826 "group_name_invalid",
5827 "external_id_already_in_use",
5828 "system_managed_group_disallowed",
5829 "other"];
5830 deserializer.deserialize_struct("GroupCreateError", VARIANTS, EnumVisitor)
5831 }
5832}
5833
5834impl ::serde::ser::Serialize for GroupCreateError {
5835 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5836 use serde::ser::SerializeStruct;
5838 match self {
5839 GroupCreateError::GroupNameAlreadyUsed => {
5840 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
5842 s.serialize_field(".tag", "group_name_already_used")?;
5843 s.end()
5844 }
5845 GroupCreateError::GroupNameInvalid => {
5846 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
5848 s.serialize_field(".tag", "group_name_invalid")?;
5849 s.end()
5850 }
5851 GroupCreateError::ExternalIdAlreadyInUse => {
5852 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
5854 s.serialize_field(".tag", "external_id_already_in_use")?;
5855 s.end()
5856 }
5857 GroupCreateError::SystemManagedGroupDisallowed => {
5858 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
5860 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5861 s.end()
5862 }
5863 GroupCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5864 }
5865 }
5866}
5867
5868impl ::std::error::Error for GroupCreateError {
5869}
5870
5871impl ::std::fmt::Display for GroupCreateError {
5872 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5873 match self {
5874 GroupCreateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
5875 GroupCreateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
5876 GroupCreateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
5877 GroupCreateError::SystemManagedGroupDisallowed => f.write_str("System-managed group cannot be manually created."),
5878 _ => write!(f, "{:?}", *self),
5879 }
5880 }
5881}
5882
5883#[derive(Debug, Clone, PartialEq, Eq)]
5884#[non_exhaustive] pub enum GroupDeleteError {
5886 GroupNotFound,
5888 SystemManagedGroupDisallowed,
5890 GroupAlreadyDeleted,
5892 Other,
5895}
5896
5897impl<'de> ::serde::de::Deserialize<'de> for GroupDeleteError {
5898 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5899 use serde::de::{self, MapAccess, Visitor};
5901 struct EnumVisitor;
5902 impl<'de> Visitor<'de> for EnumVisitor {
5903 type Value = GroupDeleteError;
5904 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5905 f.write_str("a GroupDeleteError structure")
5906 }
5907 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5908 let tag: &str = match map.next_key()? {
5909 Some(".tag") => map.next_value()?,
5910 _ => return Err(de::Error::missing_field(".tag"))
5911 };
5912 let value = match tag {
5913 "group_not_found" => GroupDeleteError::GroupNotFound,
5914 "system_managed_group_disallowed" => GroupDeleteError::SystemManagedGroupDisallowed,
5915 "group_already_deleted" => GroupDeleteError::GroupAlreadyDeleted,
5916 _ => GroupDeleteError::Other,
5917 };
5918 crate::eat_json_fields(&mut map)?;
5919 Ok(value)
5920 }
5921 }
5922 const VARIANTS: &[&str] = &["group_not_found",
5923 "other",
5924 "system_managed_group_disallowed",
5925 "group_already_deleted"];
5926 deserializer.deserialize_struct("GroupDeleteError", VARIANTS, EnumVisitor)
5927 }
5928}
5929
5930impl ::serde::ser::Serialize for GroupDeleteError {
5931 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5932 use serde::ser::SerializeStruct;
5934 match self {
5935 GroupDeleteError::GroupNotFound => {
5936 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5938 s.serialize_field(".tag", "group_not_found")?;
5939 s.end()
5940 }
5941 GroupDeleteError::SystemManagedGroupDisallowed => {
5942 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5944 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5945 s.end()
5946 }
5947 GroupDeleteError::GroupAlreadyDeleted => {
5948 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5950 s.serialize_field(".tag", "group_already_deleted")?;
5951 s.end()
5952 }
5953 GroupDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5954 }
5955 }
5956}
5957
5958impl ::std::error::Error for GroupDeleteError {
5959}
5960
5961impl ::std::fmt::Display for GroupDeleteError {
5962 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5963 match self {
5964 GroupDeleteError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5965 GroupDeleteError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5966 GroupDeleteError::GroupAlreadyDeleted => f.write_str("This group has already been deleted."),
5967 _ => write!(f, "{:?}", *self),
5968 }
5969 }
5970}
5971
5972impl From<GroupSelectorWithTeamGroupError> for GroupDeleteError {
5974 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5975 match parent {
5976 GroupSelectorWithTeamGroupError::GroupNotFound => GroupDeleteError::GroupNotFound,
5977 GroupSelectorWithTeamGroupError::Other => GroupDeleteError::Other,
5978 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupDeleteError::SystemManagedGroupDisallowed,
5979 }
5980 }
5981}
5982#[derive(Debug, Clone, PartialEq, Eq)]
5984#[non_exhaustive] pub struct GroupFullInfo {
5986 pub group_name: String,
5987 pub group_id: crate::types::team_common::GroupId,
5988 pub group_management_type: crate::types::team_common::GroupManagementType,
5990 pub created: u64,
5992 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
5994 pub member_count: Option<u32>,
5996 pub members: Option<Vec<GroupMemberInfo>>,
5998}
5999
6000impl GroupFullInfo {
6001 pub fn new(
6002 group_name: String,
6003 group_id: crate::types::team_common::GroupId,
6004 group_management_type: crate::types::team_common::GroupManagementType,
6005 created: u64,
6006 ) -> Self {
6007 GroupFullInfo {
6008 group_name,
6009 group_id,
6010 group_management_type,
6011 created,
6012 group_external_id: None,
6013 member_count: None,
6014 members: None,
6015 }
6016 }
6017
6018 pub fn with_group_external_id(
6019 mut self,
6020 value: crate::types::team_common::GroupExternalId,
6021 ) -> Self {
6022 self.group_external_id = Some(value);
6023 self
6024 }
6025
6026 pub fn with_member_count(mut self, value: u32) -> Self {
6027 self.member_count = Some(value);
6028 self
6029 }
6030
6031 pub fn with_members(mut self, value: Vec<GroupMemberInfo>) -> Self {
6032 self.members = Some(value);
6033 self
6034 }
6035}
6036
6037const GROUP_FULL_INFO_FIELDS: &[&str] = &["group_name",
6038 "group_id",
6039 "group_management_type",
6040 "created",
6041 "group_external_id",
6042 "member_count",
6043 "members"];
6044impl GroupFullInfo {
6045 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6046 map: V,
6047 ) -> Result<GroupFullInfo, V::Error> {
6048 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6049 }
6050
6051 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6052 mut map: V,
6053 optional: bool,
6054 ) -> Result<Option<GroupFullInfo>, V::Error> {
6055 let mut field_group_name = None;
6056 let mut field_group_id = None;
6057 let mut field_group_management_type = None;
6058 let mut field_created = None;
6059 let mut field_group_external_id = None;
6060 let mut field_member_count = None;
6061 let mut field_members = None;
6062 let mut nothing = true;
6063 while let Some(key) = map.next_key::<&str>()? {
6064 nothing = false;
6065 match key {
6066 "group_name" => {
6067 if field_group_name.is_some() {
6068 return Err(::serde::de::Error::duplicate_field("group_name"));
6069 }
6070 field_group_name = Some(map.next_value()?);
6071 }
6072 "group_id" => {
6073 if field_group_id.is_some() {
6074 return Err(::serde::de::Error::duplicate_field("group_id"));
6075 }
6076 field_group_id = Some(map.next_value()?);
6077 }
6078 "group_management_type" => {
6079 if field_group_management_type.is_some() {
6080 return Err(::serde::de::Error::duplicate_field("group_management_type"));
6081 }
6082 field_group_management_type = Some(map.next_value()?);
6083 }
6084 "created" => {
6085 if field_created.is_some() {
6086 return Err(::serde::de::Error::duplicate_field("created"));
6087 }
6088 field_created = Some(map.next_value()?);
6089 }
6090 "group_external_id" => {
6091 if field_group_external_id.is_some() {
6092 return Err(::serde::de::Error::duplicate_field("group_external_id"));
6093 }
6094 field_group_external_id = Some(map.next_value()?);
6095 }
6096 "member_count" => {
6097 if field_member_count.is_some() {
6098 return Err(::serde::de::Error::duplicate_field("member_count"));
6099 }
6100 field_member_count = Some(map.next_value()?);
6101 }
6102 "members" => {
6103 if field_members.is_some() {
6104 return Err(::serde::de::Error::duplicate_field("members"));
6105 }
6106 field_members = Some(map.next_value()?);
6107 }
6108 _ => {
6109 map.next_value::<::serde_json::Value>()?;
6111 }
6112 }
6113 }
6114 if optional && nothing {
6115 return Ok(None);
6116 }
6117 let result = GroupFullInfo {
6118 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
6119 group_id: field_group_id.ok_or_else(|| ::serde::de::Error::missing_field("group_id"))?,
6120 group_management_type: field_group_management_type.ok_or_else(|| ::serde::de::Error::missing_field("group_management_type"))?,
6121 created: field_created.ok_or_else(|| ::serde::de::Error::missing_field("created"))?,
6122 group_external_id: field_group_external_id.and_then(Option::flatten),
6123 member_count: field_member_count.and_then(Option::flatten),
6124 members: field_members.and_then(Option::flatten),
6125 };
6126 Ok(Some(result))
6127 }
6128
6129 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6130 &self,
6131 s: &mut S::SerializeStruct,
6132 ) -> Result<(), S::Error> {
6133 use serde::ser::SerializeStruct;
6134 s.serialize_field("group_name", &self.group_name)?;
6135 s.serialize_field("group_id", &self.group_id)?;
6136 s.serialize_field("group_management_type", &self.group_management_type)?;
6137 s.serialize_field("created", &self.created)?;
6138 if let Some(val) = &self.group_external_id {
6139 s.serialize_field("group_external_id", val)?;
6140 }
6141 if let Some(val) = &self.member_count {
6142 s.serialize_field("member_count", val)?;
6143 }
6144 if let Some(val) = &self.members {
6145 s.serialize_field("members", val)?;
6146 }
6147 Ok(())
6148 }
6149}
6150
6151impl<'de> ::serde::de::Deserialize<'de> for GroupFullInfo {
6152 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6153 use serde::de::{MapAccess, Visitor};
6155 struct StructVisitor;
6156 impl<'de> Visitor<'de> for StructVisitor {
6157 type Value = GroupFullInfo;
6158 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6159 f.write_str("a GroupFullInfo struct")
6160 }
6161 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6162 GroupFullInfo::internal_deserialize(map)
6163 }
6164 }
6165 deserializer.deserialize_struct("GroupFullInfo", GROUP_FULL_INFO_FIELDS, StructVisitor)
6166 }
6167}
6168
6169impl ::serde::ser::Serialize for GroupFullInfo {
6170 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6171 use serde::ser::SerializeStruct;
6173 let mut s = serializer.serialize_struct("GroupFullInfo", 7)?;
6174 self.internal_serialize::<S>(&mut s)?;
6175 s.end()
6176 }
6177}
6178
6179impl From<GroupFullInfo> for crate::types::team_common::GroupSummary {
6181 fn from(subtype: GroupFullInfo) -> Self {
6182 Self {
6183 group_name: subtype.group_name,
6184 group_id: subtype.group_id,
6185 group_management_type: subtype.group_management_type,
6186 group_external_id: subtype.group_external_id,
6187 member_count: subtype.member_count,
6188 }
6189 }
6190}
6191#[derive(Debug, Clone, PartialEq, Eq)]
6193#[non_exhaustive] pub struct GroupMemberInfo {
6195 pub profile: MemberProfile,
6197 pub access_type: GroupAccessType,
6199}
6200
6201impl GroupMemberInfo {
6202 pub fn new(profile: MemberProfile, access_type: GroupAccessType) -> Self {
6203 GroupMemberInfo {
6204 profile,
6205 access_type,
6206 }
6207 }
6208}
6209
6210const GROUP_MEMBER_INFO_FIELDS: &[&str] = &["profile",
6211 "access_type"];
6212impl GroupMemberInfo {
6213 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6214 map: V,
6215 ) -> Result<GroupMemberInfo, V::Error> {
6216 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6217 }
6218
6219 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6220 mut map: V,
6221 optional: bool,
6222 ) -> Result<Option<GroupMemberInfo>, V::Error> {
6223 let mut field_profile = None;
6224 let mut field_access_type = None;
6225 let mut nothing = true;
6226 while let Some(key) = map.next_key::<&str>()? {
6227 nothing = false;
6228 match key {
6229 "profile" => {
6230 if field_profile.is_some() {
6231 return Err(::serde::de::Error::duplicate_field("profile"));
6232 }
6233 field_profile = Some(map.next_value()?);
6234 }
6235 "access_type" => {
6236 if field_access_type.is_some() {
6237 return Err(::serde::de::Error::duplicate_field("access_type"));
6238 }
6239 field_access_type = Some(map.next_value()?);
6240 }
6241 _ => {
6242 map.next_value::<::serde_json::Value>()?;
6244 }
6245 }
6246 }
6247 if optional && nothing {
6248 return Ok(None);
6249 }
6250 let result = GroupMemberInfo {
6251 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
6252 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
6253 };
6254 Ok(Some(result))
6255 }
6256
6257 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6258 &self,
6259 s: &mut S::SerializeStruct,
6260 ) -> Result<(), S::Error> {
6261 use serde::ser::SerializeStruct;
6262 s.serialize_field("profile", &self.profile)?;
6263 s.serialize_field("access_type", &self.access_type)?;
6264 Ok(())
6265 }
6266}
6267
6268impl<'de> ::serde::de::Deserialize<'de> for GroupMemberInfo {
6269 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6270 use serde::de::{MapAccess, Visitor};
6272 struct StructVisitor;
6273 impl<'de> Visitor<'de> for StructVisitor {
6274 type Value = GroupMemberInfo;
6275 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6276 f.write_str("a GroupMemberInfo struct")
6277 }
6278 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6279 GroupMemberInfo::internal_deserialize(map)
6280 }
6281 }
6282 deserializer.deserialize_struct("GroupMemberInfo", GROUP_MEMBER_INFO_FIELDS, StructVisitor)
6283 }
6284}
6285
6286impl ::serde::ser::Serialize for GroupMemberInfo {
6287 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6288 use serde::ser::SerializeStruct;
6290 let mut s = serializer.serialize_struct("GroupMemberInfo", 2)?;
6291 self.internal_serialize::<S>(&mut s)?;
6292 s.end()
6293 }
6294}
6295
6296#[derive(Debug, Clone, PartialEq, Eq)]
6298#[non_exhaustive] pub struct GroupMemberSelector {
6300 pub group: GroupSelector,
6302 pub user: UserSelectorArg,
6304}
6305
6306impl GroupMemberSelector {
6307 pub fn new(group: GroupSelector, user: UserSelectorArg) -> Self {
6308 GroupMemberSelector {
6309 group,
6310 user,
6311 }
6312 }
6313}
6314
6315const GROUP_MEMBER_SELECTOR_FIELDS: &[&str] = &["group",
6316 "user"];
6317impl GroupMemberSelector {
6318 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6319 map: V,
6320 ) -> Result<GroupMemberSelector, V::Error> {
6321 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6322 }
6323
6324 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6325 mut map: V,
6326 optional: bool,
6327 ) -> Result<Option<GroupMemberSelector>, V::Error> {
6328 let mut field_group = None;
6329 let mut field_user = None;
6330 let mut nothing = true;
6331 while let Some(key) = map.next_key::<&str>()? {
6332 nothing = false;
6333 match key {
6334 "group" => {
6335 if field_group.is_some() {
6336 return Err(::serde::de::Error::duplicate_field("group"));
6337 }
6338 field_group = Some(map.next_value()?);
6339 }
6340 "user" => {
6341 if field_user.is_some() {
6342 return Err(::serde::de::Error::duplicate_field("user"));
6343 }
6344 field_user = Some(map.next_value()?);
6345 }
6346 _ => {
6347 map.next_value::<::serde_json::Value>()?;
6349 }
6350 }
6351 }
6352 if optional && nothing {
6353 return Ok(None);
6354 }
6355 let result = GroupMemberSelector {
6356 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6357 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
6358 };
6359 Ok(Some(result))
6360 }
6361
6362 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6363 &self,
6364 s: &mut S::SerializeStruct,
6365 ) -> Result<(), S::Error> {
6366 use serde::ser::SerializeStruct;
6367 s.serialize_field("group", &self.group)?;
6368 s.serialize_field("user", &self.user)?;
6369 Ok(())
6370 }
6371}
6372
6373impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelector {
6374 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6375 use serde::de::{MapAccess, Visitor};
6377 struct StructVisitor;
6378 impl<'de> Visitor<'de> for StructVisitor {
6379 type Value = GroupMemberSelector;
6380 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6381 f.write_str("a GroupMemberSelector struct")
6382 }
6383 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6384 GroupMemberSelector::internal_deserialize(map)
6385 }
6386 }
6387 deserializer.deserialize_struct("GroupMemberSelector", GROUP_MEMBER_SELECTOR_FIELDS, StructVisitor)
6388 }
6389}
6390
6391impl ::serde::ser::Serialize for GroupMemberSelector {
6392 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6393 use serde::ser::SerializeStruct;
6395 let mut s = serializer.serialize_struct("GroupMemberSelector", 2)?;
6396 self.internal_serialize::<S>(&mut s)?;
6397 s.end()
6398 }
6399}
6400
6401#[derive(Debug, Clone, PartialEq, Eq)]
6404#[non_exhaustive] pub enum GroupMemberSelectorError {
6406 GroupNotFound,
6408 SystemManagedGroupDisallowed,
6410 MemberNotInGroup,
6412 Other,
6415}
6416
6417impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelectorError {
6418 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6419 use serde::de::{self, MapAccess, Visitor};
6421 struct EnumVisitor;
6422 impl<'de> Visitor<'de> for EnumVisitor {
6423 type Value = GroupMemberSelectorError;
6424 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6425 f.write_str("a GroupMemberSelectorError structure")
6426 }
6427 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6428 let tag: &str = match map.next_key()? {
6429 Some(".tag") => map.next_value()?,
6430 _ => return Err(de::Error::missing_field(".tag"))
6431 };
6432 let value = match tag {
6433 "group_not_found" => GroupMemberSelectorError::GroupNotFound,
6434 "system_managed_group_disallowed" => GroupMemberSelectorError::SystemManagedGroupDisallowed,
6435 "member_not_in_group" => GroupMemberSelectorError::MemberNotInGroup,
6436 _ => GroupMemberSelectorError::Other,
6437 };
6438 crate::eat_json_fields(&mut map)?;
6439 Ok(value)
6440 }
6441 }
6442 const VARIANTS: &[&str] = &["group_not_found",
6443 "other",
6444 "system_managed_group_disallowed",
6445 "member_not_in_group"];
6446 deserializer.deserialize_struct("GroupMemberSelectorError", VARIANTS, EnumVisitor)
6447 }
6448}
6449
6450impl ::serde::ser::Serialize for GroupMemberSelectorError {
6451 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6452 use serde::ser::SerializeStruct;
6454 match self {
6455 GroupMemberSelectorError::GroupNotFound => {
6456 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
6458 s.serialize_field(".tag", "group_not_found")?;
6459 s.end()
6460 }
6461 GroupMemberSelectorError::SystemManagedGroupDisallowed => {
6462 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
6464 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6465 s.end()
6466 }
6467 GroupMemberSelectorError::MemberNotInGroup => {
6468 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
6470 s.serialize_field(".tag", "member_not_in_group")?;
6471 s.end()
6472 }
6473 GroupMemberSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6474 }
6475 }
6476}
6477
6478impl ::std::error::Error for GroupMemberSelectorError {
6479}
6480
6481impl ::std::fmt::Display for GroupMemberSelectorError {
6482 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6483 match self {
6484 GroupMemberSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6485 GroupMemberSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6486 GroupMemberSelectorError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
6487 _ => write!(f, "{:?}", *self),
6488 }
6489 }
6490}
6491
6492impl From<GroupSelectorWithTeamGroupError> for GroupMemberSelectorError {
6494 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6495 match parent {
6496 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMemberSelectorError::GroupNotFound,
6497 GroupSelectorWithTeamGroupError::Other => GroupMemberSelectorError::Other,
6498 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMemberSelectorError::SystemManagedGroupDisallowed,
6499 }
6500 }
6501}
6502#[derive(Debug, Clone, PartialEq, Eq)]
6503#[non_exhaustive] pub enum GroupMemberSetAccessTypeError {
6505 GroupNotFound,
6507 SystemManagedGroupDisallowed,
6509 MemberNotInGroup,
6511 UserCannotBeManagerOfCompanyManagedGroup,
6513 Other,
6516}
6517
6518impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSetAccessTypeError {
6519 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6520 use serde::de::{self, MapAccess, Visitor};
6522 struct EnumVisitor;
6523 impl<'de> Visitor<'de> for EnumVisitor {
6524 type Value = GroupMemberSetAccessTypeError;
6525 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6526 f.write_str("a GroupMemberSetAccessTypeError structure")
6527 }
6528 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6529 let tag: &str = match map.next_key()? {
6530 Some(".tag") => map.next_value()?,
6531 _ => return Err(de::Error::missing_field(".tag"))
6532 };
6533 let value = match tag {
6534 "group_not_found" => GroupMemberSetAccessTypeError::GroupNotFound,
6535 "system_managed_group_disallowed" => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
6536 "member_not_in_group" => GroupMemberSetAccessTypeError::MemberNotInGroup,
6537 "user_cannot_be_manager_of_company_managed_group" => GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup,
6538 _ => GroupMemberSetAccessTypeError::Other,
6539 };
6540 crate::eat_json_fields(&mut map)?;
6541 Ok(value)
6542 }
6543 }
6544 const VARIANTS: &[&str] = &["group_not_found",
6545 "other",
6546 "system_managed_group_disallowed",
6547 "member_not_in_group",
6548 "user_cannot_be_manager_of_company_managed_group"];
6549 deserializer.deserialize_struct("GroupMemberSetAccessTypeError", VARIANTS, EnumVisitor)
6550 }
6551}
6552
6553impl ::serde::ser::Serialize for GroupMemberSetAccessTypeError {
6554 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6555 use serde::ser::SerializeStruct;
6557 match self {
6558 GroupMemberSetAccessTypeError::GroupNotFound => {
6559 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
6561 s.serialize_field(".tag", "group_not_found")?;
6562 s.end()
6563 }
6564 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => {
6565 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
6567 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6568 s.end()
6569 }
6570 GroupMemberSetAccessTypeError::MemberNotInGroup => {
6571 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
6573 s.serialize_field(".tag", "member_not_in_group")?;
6574 s.end()
6575 }
6576 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => {
6577 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
6579 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
6580 s.end()
6581 }
6582 GroupMemberSetAccessTypeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6583 }
6584 }
6585}
6586
6587impl ::std::error::Error for GroupMemberSetAccessTypeError {
6588}
6589
6590impl ::std::fmt::Display for GroupMemberSetAccessTypeError {
6591 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6592 match self {
6593 GroupMemberSetAccessTypeError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6594 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6595 GroupMemberSetAccessTypeError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
6596 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => f.write_str("A company managed group cannot be managed by a user."),
6597 _ => write!(f, "{:?}", *self),
6598 }
6599 }
6600}
6601
6602impl From<GroupMemberSelectorError> for GroupMemberSetAccessTypeError {
6604 fn from(parent: GroupMemberSelectorError) -> Self {
6605 match parent {
6606 GroupMemberSelectorError::GroupNotFound => GroupMemberSetAccessTypeError::GroupNotFound,
6607 GroupMemberSelectorError::Other => GroupMemberSetAccessTypeError::Other,
6608 GroupMemberSelectorError::SystemManagedGroupDisallowed => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
6609 GroupMemberSelectorError::MemberNotInGroup => GroupMemberSetAccessTypeError::MemberNotInGroup,
6610 }
6611 }
6612}
6613#[derive(Debug, Clone, PartialEq, Eq)]
6614#[non_exhaustive] pub struct GroupMembersAddArg {
6616 pub group: GroupSelector,
6618 pub members: Vec<MemberAccess>,
6620 pub return_members: bool,
6624}
6625
6626impl GroupMembersAddArg {
6627 pub fn new(group: GroupSelector, members: Vec<MemberAccess>) -> Self {
6628 GroupMembersAddArg {
6629 group,
6630 members,
6631 return_members: true,
6632 }
6633 }
6634
6635 pub fn with_return_members(mut self, value: bool) -> Self {
6636 self.return_members = value;
6637 self
6638 }
6639}
6640
6641const GROUP_MEMBERS_ADD_ARG_FIELDS: &[&str] = &["group",
6642 "members",
6643 "return_members"];
6644impl GroupMembersAddArg {
6645 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6646 map: V,
6647 ) -> Result<GroupMembersAddArg, V::Error> {
6648 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6649 }
6650
6651 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6652 mut map: V,
6653 optional: bool,
6654 ) -> Result<Option<GroupMembersAddArg>, V::Error> {
6655 let mut field_group = None;
6656 let mut field_members = None;
6657 let mut field_return_members = None;
6658 let mut nothing = true;
6659 while let Some(key) = map.next_key::<&str>()? {
6660 nothing = false;
6661 match key {
6662 "group" => {
6663 if field_group.is_some() {
6664 return Err(::serde::de::Error::duplicate_field("group"));
6665 }
6666 field_group = Some(map.next_value()?);
6667 }
6668 "members" => {
6669 if field_members.is_some() {
6670 return Err(::serde::de::Error::duplicate_field("members"));
6671 }
6672 field_members = Some(map.next_value()?);
6673 }
6674 "return_members" => {
6675 if field_return_members.is_some() {
6676 return Err(::serde::de::Error::duplicate_field("return_members"));
6677 }
6678 field_return_members = Some(map.next_value()?);
6679 }
6680 _ => {
6681 map.next_value::<::serde_json::Value>()?;
6683 }
6684 }
6685 }
6686 if optional && nothing {
6687 return Ok(None);
6688 }
6689 let result = GroupMembersAddArg {
6690 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6691 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
6692 return_members: field_return_members.unwrap_or(true),
6693 };
6694 Ok(Some(result))
6695 }
6696
6697 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6698 &self,
6699 s: &mut S::SerializeStruct,
6700 ) -> Result<(), S::Error> {
6701 use serde::ser::SerializeStruct;
6702 s.serialize_field("group", &self.group)?;
6703 s.serialize_field("members", &self.members)?;
6704 if !self.return_members {
6705 s.serialize_field("return_members", &self.return_members)?;
6706 }
6707 Ok(())
6708 }
6709}
6710
6711impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddArg {
6712 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6713 use serde::de::{MapAccess, Visitor};
6715 struct StructVisitor;
6716 impl<'de> Visitor<'de> for StructVisitor {
6717 type Value = GroupMembersAddArg;
6718 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6719 f.write_str("a GroupMembersAddArg struct")
6720 }
6721 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6722 GroupMembersAddArg::internal_deserialize(map)
6723 }
6724 }
6725 deserializer.deserialize_struct("GroupMembersAddArg", GROUP_MEMBERS_ADD_ARG_FIELDS, StructVisitor)
6726 }
6727}
6728
6729impl ::serde::ser::Serialize for GroupMembersAddArg {
6730 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6731 use serde::ser::SerializeStruct;
6733 let mut s = serializer.serialize_struct("GroupMembersAddArg", 3)?;
6734 self.internal_serialize::<S>(&mut s)?;
6735 s.end()
6736 }
6737}
6738
6739impl From<GroupMembersAddArg> for IncludeMembersArg {
6741 fn from(subtype: GroupMembersAddArg) -> Self {
6742 Self {
6743 return_members: subtype.return_members,
6744 }
6745 }
6746}
6747#[derive(Debug, Clone, PartialEq, Eq)]
6748#[non_exhaustive] pub enum GroupMembersAddError {
6750 GroupNotFound,
6752 SystemManagedGroupDisallowed,
6754 DuplicateUser,
6757 GroupNotInTeam,
6759 MembersNotInTeam(Vec<String>),
6764 UsersNotFound(Vec<String>),
6766 UserMustBeActiveToBeOwner,
6768 UserCannotBeManagerOfCompanyManagedGroup(Vec<String>),
6770 Other,
6773}
6774
6775impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddError {
6776 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6777 use serde::de::{self, MapAccess, Visitor};
6779 struct EnumVisitor;
6780 impl<'de> Visitor<'de> for EnumVisitor {
6781 type Value = GroupMembersAddError;
6782 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6783 f.write_str("a GroupMembersAddError structure")
6784 }
6785 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6786 let tag: &str = match map.next_key()? {
6787 Some(".tag") => map.next_value()?,
6788 _ => return Err(de::Error::missing_field(".tag"))
6789 };
6790 let value = match tag {
6791 "group_not_found" => GroupMembersAddError::GroupNotFound,
6792 "system_managed_group_disallowed" => GroupMembersAddError::SystemManagedGroupDisallowed,
6793 "duplicate_user" => GroupMembersAddError::DuplicateUser,
6794 "group_not_in_team" => GroupMembersAddError::GroupNotInTeam,
6795 "members_not_in_team" => {
6796 match map.next_key()? {
6797 Some("members_not_in_team") => GroupMembersAddError::MembersNotInTeam(map.next_value()?),
6798 None => return Err(de::Error::missing_field("members_not_in_team")),
6799 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6800 }
6801 }
6802 "users_not_found" => {
6803 match map.next_key()? {
6804 Some("users_not_found") => GroupMembersAddError::UsersNotFound(map.next_value()?),
6805 None => return Err(de::Error::missing_field("users_not_found")),
6806 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6807 }
6808 }
6809 "user_must_be_active_to_be_owner" => GroupMembersAddError::UserMustBeActiveToBeOwner,
6810 "user_cannot_be_manager_of_company_managed_group" => {
6811 match map.next_key()? {
6812 Some("user_cannot_be_manager_of_company_managed_group") => GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(map.next_value()?),
6813 None => return Err(de::Error::missing_field("user_cannot_be_manager_of_company_managed_group")),
6814 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6815 }
6816 }
6817 _ => GroupMembersAddError::Other,
6818 };
6819 crate::eat_json_fields(&mut map)?;
6820 Ok(value)
6821 }
6822 }
6823 const VARIANTS: &[&str] = &["group_not_found",
6824 "other",
6825 "system_managed_group_disallowed",
6826 "duplicate_user",
6827 "group_not_in_team",
6828 "members_not_in_team",
6829 "users_not_found",
6830 "user_must_be_active_to_be_owner",
6831 "user_cannot_be_manager_of_company_managed_group"];
6832 deserializer.deserialize_struct("GroupMembersAddError", VARIANTS, EnumVisitor)
6833 }
6834}
6835
6836impl ::serde::ser::Serialize for GroupMembersAddError {
6837 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6838 use serde::ser::SerializeStruct;
6840 match self {
6841 GroupMembersAddError::GroupNotFound => {
6842 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
6844 s.serialize_field(".tag", "group_not_found")?;
6845 s.end()
6846 }
6847 GroupMembersAddError::SystemManagedGroupDisallowed => {
6848 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
6850 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6851 s.end()
6852 }
6853 GroupMembersAddError::DuplicateUser => {
6854 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
6856 s.serialize_field(".tag", "duplicate_user")?;
6857 s.end()
6858 }
6859 GroupMembersAddError::GroupNotInTeam => {
6860 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
6862 s.serialize_field(".tag", "group_not_in_team")?;
6863 s.end()
6864 }
6865 GroupMembersAddError::MembersNotInTeam(x) => {
6866 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
6868 s.serialize_field(".tag", "members_not_in_team")?;
6869 s.serialize_field("members_not_in_team", x)?;
6870 s.end()
6871 }
6872 GroupMembersAddError::UsersNotFound(x) => {
6873 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
6875 s.serialize_field(".tag", "users_not_found")?;
6876 s.serialize_field("users_not_found", x)?;
6877 s.end()
6878 }
6879 GroupMembersAddError::UserMustBeActiveToBeOwner => {
6880 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
6882 s.serialize_field(".tag", "user_must_be_active_to_be_owner")?;
6883 s.end()
6884 }
6885 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(x) => {
6886 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
6888 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
6889 s.serialize_field("user_cannot_be_manager_of_company_managed_group", x)?;
6890 s.end()
6891 }
6892 GroupMembersAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6893 }
6894 }
6895}
6896
6897impl ::std::error::Error for GroupMembersAddError {
6898}
6899
6900impl ::std::fmt::Display for GroupMembersAddError {
6901 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6902 match self {
6903 GroupMembersAddError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6904 GroupMembersAddError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6905 GroupMembersAddError::DuplicateUser => f.write_str("You cannot add duplicate users. One or more of the members you are trying to add is already a member of the group."),
6906 GroupMembersAddError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot add members to a group that is outside of your team."),
6907 GroupMembersAddError::MembersNotInTeam(inner) => write!(f, "members_not_in_team: {:?}", inner),
6908 GroupMembersAddError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
6909 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(inner) => write!(f, "A company-managed group cannot be managed by a user: {:?}", inner),
6910 _ => write!(f, "{:?}", *self),
6911 }
6912 }
6913}
6914
6915impl From<GroupSelectorWithTeamGroupError> for GroupMembersAddError {
6917 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6918 match parent {
6919 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersAddError::GroupNotFound,
6920 GroupSelectorWithTeamGroupError::Other => GroupMembersAddError::Other,
6921 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersAddError::SystemManagedGroupDisallowed,
6922 }
6923 }
6924}
6925#[derive(Debug, Clone, PartialEq, Eq)]
6928#[non_exhaustive] pub struct GroupMembersChangeResult {
6930 pub group_info: GroupFullInfo,
6932 #[deprecated]
6936 pub async_job_id: crate::types::dbx_async::AsyncJobId,
6937}
6938
6939impl GroupMembersChangeResult {
6940 pub fn new(
6941 group_info: GroupFullInfo,
6942 async_job_id: crate::types::dbx_async::AsyncJobId,
6943 ) -> Self {
6944 GroupMembersChangeResult {
6945 group_info,
6946 #[allow(deprecated)] async_job_id,
6947 }
6948 }
6949}
6950
6951const GROUP_MEMBERS_CHANGE_RESULT_FIELDS: &[&str] = &["group_info",
6952 "async_job_id"];
6953impl GroupMembersChangeResult {
6954 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6955 map: V,
6956 ) -> Result<GroupMembersChangeResult, V::Error> {
6957 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6958 }
6959
6960 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6961 mut map: V,
6962 optional: bool,
6963 ) -> Result<Option<GroupMembersChangeResult>, V::Error> {
6964 let mut field_group_info = None;
6965 let mut field_async_job_id = None;
6966 let mut nothing = true;
6967 while let Some(key) = map.next_key::<&str>()? {
6968 nothing = false;
6969 match key {
6970 "group_info" => {
6971 if field_group_info.is_some() {
6972 return Err(::serde::de::Error::duplicate_field("group_info"));
6973 }
6974 field_group_info = Some(map.next_value()?);
6975 }
6976 "async_job_id" => {
6977 if field_async_job_id.is_some() {
6978 return Err(::serde::de::Error::duplicate_field("async_job_id"));
6979 }
6980 field_async_job_id = Some(map.next_value()?);
6981 }
6982 _ => {
6983 map.next_value::<::serde_json::Value>()?;
6985 }
6986 }
6987 }
6988 if optional && nothing {
6989 return Ok(None);
6990 }
6991 let result = GroupMembersChangeResult {
6992 group_info: field_group_info.ok_or_else(|| ::serde::de::Error::missing_field("group_info"))?,
6993 #[allow(deprecated)] async_job_id: field_async_job_id.ok_or_else(|| ::serde::de::Error::missing_field("async_job_id"))?,
6994 };
6995 Ok(Some(result))
6996 }
6997
6998 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6999 &self,
7000 s: &mut S::SerializeStruct,
7001 ) -> Result<(), S::Error> {
7002 use serde::ser::SerializeStruct;
7003 s.serialize_field("group_info", &self.group_info)?;
7004 #[allow(deprecated)]
7005 s.serialize_field("async_job_id", &self.async_job_id)?;
7006 Ok(())
7007 }
7008}
7009
7010impl<'de> ::serde::de::Deserialize<'de> for GroupMembersChangeResult {
7011 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7012 use serde::de::{MapAccess, Visitor};
7014 struct StructVisitor;
7015 impl<'de> Visitor<'de> for StructVisitor {
7016 type Value = GroupMembersChangeResult;
7017 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7018 f.write_str("a GroupMembersChangeResult struct")
7019 }
7020 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7021 GroupMembersChangeResult::internal_deserialize(map)
7022 }
7023 }
7024 deserializer.deserialize_struct("GroupMembersChangeResult", GROUP_MEMBERS_CHANGE_RESULT_FIELDS, StructVisitor)
7025 }
7026}
7027
7028impl ::serde::ser::Serialize for GroupMembersChangeResult {
7029 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7030 use serde::ser::SerializeStruct;
7032 let mut s = serializer.serialize_struct("GroupMembersChangeResult", 2)?;
7033 self.internal_serialize::<S>(&mut s)?;
7034 s.end()
7035 }
7036}
7037
7038#[derive(Debug, Clone, PartialEq, Eq)]
7039#[non_exhaustive] pub struct GroupMembersRemoveArg {
7041 pub group: GroupSelector,
7043 pub users: Vec<UserSelectorArg>,
7045 pub return_members: bool,
7049}
7050
7051impl GroupMembersRemoveArg {
7052 pub fn new(group: GroupSelector, users: Vec<UserSelectorArg>) -> Self {
7053 GroupMembersRemoveArg {
7054 group,
7055 users,
7056 return_members: true,
7057 }
7058 }
7059
7060 pub fn with_return_members(mut self, value: bool) -> Self {
7061 self.return_members = value;
7062 self
7063 }
7064}
7065
7066const GROUP_MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["group",
7067 "users",
7068 "return_members"];
7069impl GroupMembersRemoveArg {
7070 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7071 map: V,
7072 ) -> Result<GroupMembersRemoveArg, V::Error> {
7073 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7074 }
7075
7076 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7077 mut map: V,
7078 optional: bool,
7079 ) -> Result<Option<GroupMembersRemoveArg>, V::Error> {
7080 let mut field_group = None;
7081 let mut field_users = None;
7082 let mut field_return_members = None;
7083 let mut nothing = true;
7084 while let Some(key) = map.next_key::<&str>()? {
7085 nothing = false;
7086 match key {
7087 "group" => {
7088 if field_group.is_some() {
7089 return Err(::serde::de::Error::duplicate_field("group"));
7090 }
7091 field_group = Some(map.next_value()?);
7092 }
7093 "users" => {
7094 if field_users.is_some() {
7095 return Err(::serde::de::Error::duplicate_field("users"));
7096 }
7097 field_users = Some(map.next_value()?);
7098 }
7099 "return_members" => {
7100 if field_return_members.is_some() {
7101 return Err(::serde::de::Error::duplicate_field("return_members"));
7102 }
7103 field_return_members = Some(map.next_value()?);
7104 }
7105 _ => {
7106 map.next_value::<::serde_json::Value>()?;
7108 }
7109 }
7110 }
7111 if optional && nothing {
7112 return Ok(None);
7113 }
7114 let result = GroupMembersRemoveArg {
7115 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7116 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
7117 return_members: field_return_members.unwrap_or(true),
7118 };
7119 Ok(Some(result))
7120 }
7121
7122 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7123 &self,
7124 s: &mut S::SerializeStruct,
7125 ) -> Result<(), S::Error> {
7126 use serde::ser::SerializeStruct;
7127 s.serialize_field("group", &self.group)?;
7128 s.serialize_field("users", &self.users)?;
7129 if !self.return_members {
7130 s.serialize_field("return_members", &self.return_members)?;
7131 }
7132 Ok(())
7133 }
7134}
7135
7136impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveArg {
7137 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7138 use serde::de::{MapAccess, Visitor};
7140 struct StructVisitor;
7141 impl<'de> Visitor<'de> for StructVisitor {
7142 type Value = GroupMembersRemoveArg;
7143 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7144 f.write_str("a GroupMembersRemoveArg struct")
7145 }
7146 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7147 GroupMembersRemoveArg::internal_deserialize(map)
7148 }
7149 }
7150 deserializer.deserialize_struct("GroupMembersRemoveArg", GROUP_MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
7151 }
7152}
7153
7154impl ::serde::ser::Serialize for GroupMembersRemoveArg {
7155 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7156 use serde::ser::SerializeStruct;
7158 let mut s = serializer.serialize_struct("GroupMembersRemoveArg", 3)?;
7159 self.internal_serialize::<S>(&mut s)?;
7160 s.end()
7161 }
7162}
7163
7164impl From<GroupMembersRemoveArg> for IncludeMembersArg {
7166 fn from(subtype: GroupMembersRemoveArg) -> Self {
7167 Self {
7168 return_members: subtype.return_members,
7169 }
7170 }
7171}
7172#[derive(Debug, Clone, PartialEq, Eq)]
7173#[non_exhaustive] pub enum GroupMembersRemoveError {
7175 GroupNotFound,
7177 SystemManagedGroupDisallowed,
7179 MemberNotInGroup,
7181 GroupNotInTeam,
7184 MembersNotInTeam(Vec<String>),
7186 UsersNotFound(Vec<String>),
7188 Other,
7191}
7192
7193impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveError {
7194 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7195 use serde::de::{self, MapAccess, Visitor};
7197 struct EnumVisitor;
7198 impl<'de> Visitor<'de> for EnumVisitor {
7199 type Value = GroupMembersRemoveError;
7200 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7201 f.write_str("a GroupMembersRemoveError structure")
7202 }
7203 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7204 let tag: &str = match map.next_key()? {
7205 Some(".tag") => map.next_value()?,
7206 _ => return Err(de::Error::missing_field(".tag"))
7207 };
7208 let value = match tag {
7209 "group_not_found" => GroupMembersRemoveError::GroupNotFound,
7210 "system_managed_group_disallowed" => GroupMembersRemoveError::SystemManagedGroupDisallowed,
7211 "member_not_in_group" => GroupMembersRemoveError::MemberNotInGroup,
7212 "group_not_in_team" => GroupMembersRemoveError::GroupNotInTeam,
7213 "members_not_in_team" => {
7214 match map.next_key()? {
7215 Some("members_not_in_team") => GroupMembersRemoveError::MembersNotInTeam(map.next_value()?),
7216 None => return Err(de::Error::missing_field("members_not_in_team")),
7217 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7218 }
7219 }
7220 "users_not_found" => {
7221 match map.next_key()? {
7222 Some("users_not_found") => GroupMembersRemoveError::UsersNotFound(map.next_value()?),
7223 None => return Err(de::Error::missing_field("users_not_found")),
7224 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7225 }
7226 }
7227 _ => GroupMembersRemoveError::Other,
7228 };
7229 crate::eat_json_fields(&mut map)?;
7230 Ok(value)
7231 }
7232 }
7233 const VARIANTS: &[&str] = &["group_not_found",
7234 "other",
7235 "system_managed_group_disallowed",
7236 "member_not_in_group",
7237 "group_not_in_team",
7238 "members_not_in_team",
7239 "users_not_found"];
7240 deserializer.deserialize_struct("GroupMembersRemoveError", VARIANTS, EnumVisitor)
7241 }
7242}
7243
7244impl ::serde::ser::Serialize for GroupMembersRemoveError {
7245 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7246 use serde::ser::SerializeStruct;
7248 match self {
7249 GroupMembersRemoveError::GroupNotFound => {
7250 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
7252 s.serialize_field(".tag", "group_not_found")?;
7253 s.end()
7254 }
7255 GroupMembersRemoveError::SystemManagedGroupDisallowed => {
7256 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
7258 s.serialize_field(".tag", "system_managed_group_disallowed")?;
7259 s.end()
7260 }
7261 GroupMembersRemoveError::MemberNotInGroup => {
7262 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
7264 s.serialize_field(".tag", "member_not_in_group")?;
7265 s.end()
7266 }
7267 GroupMembersRemoveError::GroupNotInTeam => {
7268 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
7270 s.serialize_field(".tag", "group_not_in_team")?;
7271 s.end()
7272 }
7273 GroupMembersRemoveError::MembersNotInTeam(x) => {
7274 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
7276 s.serialize_field(".tag", "members_not_in_team")?;
7277 s.serialize_field("members_not_in_team", x)?;
7278 s.end()
7279 }
7280 GroupMembersRemoveError::UsersNotFound(x) => {
7281 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
7283 s.serialize_field(".tag", "users_not_found")?;
7284 s.serialize_field("users_not_found", x)?;
7285 s.end()
7286 }
7287 GroupMembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7288 }
7289 }
7290}
7291
7292impl ::std::error::Error for GroupMembersRemoveError {
7293}
7294
7295impl ::std::fmt::Display for GroupMembersRemoveError {
7296 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7297 match self {
7298 GroupMembersRemoveError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7299 GroupMembersRemoveError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
7300 GroupMembersRemoveError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
7301 GroupMembersRemoveError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot remove members from a group that is outside of your team."),
7302 GroupMembersRemoveError::MembersNotInTeam(inner) => write!(f, "These members are not part of your team: {:?}", inner),
7303 GroupMembersRemoveError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
7304 _ => write!(f, "{:?}", *self),
7305 }
7306 }
7307}
7308
7309impl From<GroupMembersSelectorError> for GroupMembersRemoveError {
7311 fn from(parent: GroupMembersSelectorError) -> Self {
7312 match parent {
7313 GroupMembersSelectorError::GroupNotFound => GroupMembersRemoveError::GroupNotFound,
7314 GroupMembersSelectorError::Other => GroupMembersRemoveError::Other,
7315 GroupMembersSelectorError::SystemManagedGroupDisallowed => GroupMembersRemoveError::SystemManagedGroupDisallowed,
7316 GroupMembersSelectorError::MemberNotInGroup => GroupMembersRemoveError::MemberNotInGroup,
7317 }
7318 }
7319}
7320#[derive(Debug, Clone, PartialEq, Eq)]
7322#[non_exhaustive] pub struct GroupMembersSelector {
7324 pub group: GroupSelector,
7326 pub users: UsersSelectorArg,
7328}
7329
7330impl GroupMembersSelector {
7331 pub fn new(group: GroupSelector, users: UsersSelectorArg) -> Self {
7332 GroupMembersSelector {
7333 group,
7334 users,
7335 }
7336 }
7337}
7338
7339const GROUP_MEMBERS_SELECTOR_FIELDS: &[&str] = &["group",
7340 "users"];
7341impl GroupMembersSelector {
7342 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7343 map: V,
7344 ) -> Result<GroupMembersSelector, V::Error> {
7345 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7346 }
7347
7348 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7349 mut map: V,
7350 optional: bool,
7351 ) -> Result<Option<GroupMembersSelector>, V::Error> {
7352 let mut field_group = None;
7353 let mut field_users = None;
7354 let mut nothing = true;
7355 while let Some(key) = map.next_key::<&str>()? {
7356 nothing = false;
7357 match key {
7358 "group" => {
7359 if field_group.is_some() {
7360 return Err(::serde::de::Error::duplicate_field("group"));
7361 }
7362 field_group = Some(map.next_value()?);
7363 }
7364 "users" => {
7365 if field_users.is_some() {
7366 return Err(::serde::de::Error::duplicate_field("users"));
7367 }
7368 field_users = Some(map.next_value()?);
7369 }
7370 _ => {
7371 map.next_value::<::serde_json::Value>()?;
7373 }
7374 }
7375 }
7376 if optional && nothing {
7377 return Ok(None);
7378 }
7379 let result = GroupMembersSelector {
7380 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7381 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
7382 };
7383 Ok(Some(result))
7384 }
7385
7386 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7387 &self,
7388 s: &mut S::SerializeStruct,
7389 ) -> Result<(), S::Error> {
7390 use serde::ser::SerializeStruct;
7391 s.serialize_field("group", &self.group)?;
7392 s.serialize_field("users", &self.users)?;
7393 Ok(())
7394 }
7395}
7396
7397impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelector {
7398 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7399 use serde::de::{MapAccess, Visitor};
7401 struct StructVisitor;
7402 impl<'de> Visitor<'de> for StructVisitor {
7403 type Value = GroupMembersSelector;
7404 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7405 f.write_str("a GroupMembersSelector struct")
7406 }
7407 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7408 GroupMembersSelector::internal_deserialize(map)
7409 }
7410 }
7411 deserializer.deserialize_struct("GroupMembersSelector", GROUP_MEMBERS_SELECTOR_FIELDS, StructVisitor)
7412 }
7413}
7414
7415impl ::serde::ser::Serialize for GroupMembersSelector {
7416 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7417 use serde::ser::SerializeStruct;
7419 let mut s = serializer.serialize_struct("GroupMembersSelector", 2)?;
7420 self.internal_serialize::<S>(&mut s)?;
7421 s.end()
7422 }
7423}
7424
7425#[derive(Debug, Clone, PartialEq, Eq)]
7428#[non_exhaustive] pub enum GroupMembersSelectorError {
7430 GroupNotFound,
7432 SystemManagedGroupDisallowed,
7434 MemberNotInGroup,
7436 Other,
7439}
7440
7441impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelectorError {
7442 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7443 use serde::de::{self, MapAccess, Visitor};
7445 struct EnumVisitor;
7446 impl<'de> Visitor<'de> for EnumVisitor {
7447 type Value = GroupMembersSelectorError;
7448 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7449 f.write_str("a GroupMembersSelectorError structure")
7450 }
7451 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7452 let tag: &str = match map.next_key()? {
7453 Some(".tag") => map.next_value()?,
7454 _ => return Err(de::Error::missing_field(".tag"))
7455 };
7456 let value = match tag {
7457 "group_not_found" => GroupMembersSelectorError::GroupNotFound,
7458 "system_managed_group_disallowed" => GroupMembersSelectorError::SystemManagedGroupDisallowed,
7459 "member_not_in_group" => GroupMembersSelectorError::MemberNotInGroup,
7460 _ => GroupMembersSelectorError::Other,
7461 };
7462 crate::eat_json_fields(&mut map)?;
7463 Ok(value)
7464 }
7465 }
7466 const VARIANTS: &[&str] = &["group_not_found",
7467 "other",
7468 "system_managed_group_disallowed",
7469 "member_not_in_group"];
7470 deserializer.deserialize_struct("GroupMembersSelectorError", VARIANTS, EnumVisitor)
7471 }
7472}
7473
7474impl ::serde::ser::Serialize for GroupMembersSelectorError {
7475 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7476 use serde::ser::SerializeStruct;
7478 match self {
7479 GroupMembersSelectorError::GroupNotFound => {
7480 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
7482 s.serialize_field(".tag", "group_not_found")?;
7483 s.end()
7484 }
7485 GroupMembersSelectorError::SystemManagedGroupDisallowed => {
7486 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
7488 s.serialize_field(".tag", "system_managed_group_disallowed")?;
7489 s.end()
7490 }
7491 GroupMembersSelectorError::MemberNotInGroup => {
7492 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
7494 s.serialize_field(".tag", "member_not_in_group")?;
7495 s.end()
7496 }
7497 GroupMembersSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7498 }
7499 }
7500}
7501
7502impl ::std::error::Error for GroupMembersSelectorError {
7503}
7504
7505impl ::std::fmt::Display for GroupMembersSelectorError {
7506 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7507 match self {
7508 GroupMembersSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7509 GroupMembersSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
7510 GroupMembersSelectorError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
7511 _ => write!(f, "{:?}", *self),
7512 }
7513 }
7514}
7515
7516impl From<GroupSelectorWithTeamGroupError> for GroupMembersSelectorError {
7518 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
7519 match parent {
7520 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersSelectorError::GroupNotFound,
7521 GroupSelectorWithTeamGroupError::Other => GroupMembersSelectorError::Other,
7522 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersSelectorError::SystemManagedGroupDisallowed,
7523 }
7524 }
7525}
7526#[derive(Debug, Clone, PartialEq, Eq)]
7527#[non_exhaustive] pub struct GroupMembersSetAccessTypeArg {
7529 pub group: GroupSelector,
7531 pub user: UserSelectorArg,
7533 pub access_type: GroupAccessType,
7535 pub return_members: bool,
7539}
7540
7541impl GroupMembersSetAccessTypeArg {
7542 pub fn new(group: GroupSelector, user: UserSelectorArg, access_type: GroupAccessType) -> Self {
7543 GroupMembersSetAccessTypeArg {
7544 group,
7545 user,
7546 access_type,
7547 return_members: true,
7548 }
7549 }
7550
7551 pub fn with_return_members(mut self, value: bool) -> Self {
7552 self.return_members = value;
7553 self
7554 }
7555}
7556
7557const GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS: &[&str] = &["group",
7558 "user",
7559 "access_type",
7560 "return_members"];
7561impl GroupMembersSetAccessTypeArg {
7562 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7563 map: V,
7564 ) -> Result<GroupMembersSetAccessTypeArg, V::Error> {
7565 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7566 }
7567
7568 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7569 mut map: V,
7570 optional: bool,
7571 ) -> Result<Option<GroupMembersSetAccessTypeArg>, V::Error> {
7572 let mut field_group = None;
7573 let mut field_user = None;
7574 let mut field_access_type = None;
7575 let mut field_return_members = None;
7576 let mut nothing = true;
7577 while let Some(key) = map.next_key::<&str>()? {
7578 nothing = false;
7579 match key {
7580 "group" => {
7581 if field_group.is_some() {
7582 return Err(::serde::de::Error::duplicate_field("group"));
7583 }
7584 field_group = Some(map.next_value()?);
7585 }
7586 "user" => {
7587 if field_user.is_some() {
7588 return Err(::serde::de::Error::duplicate_field("user"));
7589 }
7590 field_user = Some(map.next_value()?);
7591 }
7592 "access_type" => {
7593 if field_access_type.is_some() {
7594 return Err(::serde::de::Error::duplicate_field("access_type"));
7595 }
7596 field_access_type = Some(map.next_value()?);
7597 }
7598 "return_members" => {
7599 if field_return_members.is_some() {
7600 return Err(::serde::de::Error::duplicate_field("return_members"));
7601 }
7602 field_return_members = Some(map.next_value()?);
7603 }
7604 _ => {
7605 map.next_value::<::serde_json::Value>()?;
7607 }
7608 }
7609 }
7610 if optional && nothing {
7611 return Ok(None);
7612 }
7613 let result = GroupMembersSetAccessTypeArg {
7614 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7615 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
7616 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
7617 return_members: field_return_members.unwrap_or(true),
7618 };
7619 Ok(Some(result))
7620 }
7621
7622 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7623 &self,
7624 s: &mut S::SerializeStruct,
7625 ) -> Result<(), S::Error> {
7626 use serde::ser::SerializeStruct;
7627 s.serialize_field("group", &self.group)?;
7628 s.serialize_field("user", &self.user)?;
7629 s.serialize_field("access_type", &self.access_type)?;
7630 if !self.return_members {
7631 s.serialize_field("return_members", &self.return_members)?;
7632 }
7633 Ok(())
7634 }
7635}
7636
7637impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSetAccessTypeArg {
7638 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7639 use serde::de::{MapAccess, Visitor};
7641 struct StructVisitor;
7642 impl<'de> Visitor<'de> for StructVisitor {
7643 type Value = GroupMembersSetAccessTypeArg;
7644 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7645 f.write_str("a GroupMembersSetAccessTypeArg struct")
7646 }
7647 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7648 GroupMembersSetAccessTypeArg::internal_deserialize(map)
7649 }
7650 }
7651 deserializer.deserialize_struct("GroupMembersSetAccessTypeArg", GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS, StructVisitor)
7652 }
7653}
7654
7655impl ::serde::ser::Serialize for GroupMembersSetAccessTypeArg {
7656 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7657 use serde::ser::SerializeStruct;
7659 let mut s = serializer.serialize_struct("GroupMembersSetAccessTypeArg", 4)?;
7660 self.internal_serialize::<S>(&mut s)?;
7661 s.end()
7662 }
7663}
7664
7665impl From<GroupMembersSetAccessTypeArg> for GroupMemberSelector {
7667 fn from(subtype: GroupMembersSetAccessTypeArg) -> Self {
7668 Self {
7669 group: subtype.group,
7670 user: subtype.user,
7671 }
7672 }
7673}
7674#[derive(Debug, Clone, PartialEq, Eq)]
7676pub enum GroupSelector {
7677 GroupId(crate::types::team_common::GroupId),
7679 GroupExternalId(crate::types::team_common::GroupExternalId),
7681}
7682
7683impl<'de> ::serde::de::Deserialize<'de> for GroupSelector {
7684 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7685 use serde::de::{self, MapAccess, Visitor};
7687 struct EnumVisitor;
7688 impl<'de> Visitor<'de> for EnumVisitor {
7689 type Value = GroupSelector;
7690 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7691 f.write_str("a GroupSelector structure")
7692 }
7693 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7694 let tag: &str = match map.next_key()? {
7695 Some(".tag") => map.next_value()?,
7696 _ => return Err(de::Error::missing_field(".tag"))
7697 };
7698 let value = match tag {
7699 "group_id" => {
7700 match map.next_key()? {
7701 Some("group_id") => GroupSelector::GroupId(map.next_value()?),
7702 None => return Err(de::Error::missing_field("group_id")),
7703 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7704 }
7705 }
7706 "group_external_id" => {
7707 match map.next_key()? {
7708 Some("group_external_id") => GroupSelector::GroupExternalId(map.next_value()?),
7709 None => return Err(de::Error::missing_field("group_external_id")),
7710 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7711 }
7712 }
7713 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
7714 };
7715 crate::eat_json_fields(&mut map)?;
7716 Ok(value)
7717 }
7718 }
7719 const VARIANTS: &[&str] = &["group_id",
7720 "group_external_id"];
7721 deserializer.deserialize_struct("GroupSelector", VARIANTS, EnumVisitor)
7722 }
7723}
7724
7725impl ::serde::ser::Serialize for GroupSelector {
7726 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7727 use serde::ser::SerializeStruct;
7729 match self {
7730 GroupSelector::GroupId(x) => {
7731 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
7733 s.serialize_field(".tag", "group_id")?;
7734 s.serialize_field("group_id", x)?;
7735 s.end()
7736 }
7737 GroupSelector::GroupExternalId(x) => {
7738 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
7740 s.serialize_field(".tag", "group_external_id")?;
7741 s.serialize_field("group_external_id", x)?;
7742 s.end()
7743 }
7744 }
7745 }
7746}
7747
7748#[derive(Debug, Clone, PartialEq, Eq)]
7750#[non_exhaustive] pub enum GroupSelectorError {
7752 GroupNotFound,
7754 Other,
7757}
7758
7759impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorError {
7760 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7761 use serde::de::{self, MapAccess, Visitor};
7763 struct EnumVisitor;
7764 impl<'de> Visitor<'de> for EnumVisitor {
7765 type Value = GroupSelectorError;
7766 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7767 f.write_str("a GroupSelectorError structure")
7768 }
7769 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7770 let tag: &str = match map.next_key()? {
7771 Some(".tag") => map.next_value()?,
7772 _ => return Err(de::Error::missing_field(".tag"))
7773 };
7774 let value = match tag {
7775 "group_not_found" => GroupSelectorError::GroupNotFound,
7776 _ => GroupSelectorError::Other,
7777 };
7778 crate::eat_json_fields(&mut map)?;
7779 Ok(value)
7780 }
7781 }
7782 const VARIANTS: &[&str] = &["group_not_found",
7783 "other"];
7784 deserializer.deserialize_struct("GroupSelectorError", VARIANTS, EnumVisitor)
7785 }
7786}
7787
7788impl ::serde::ser::Serialize for GroupSelectorError {
7789 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7790 use serde::ser::SerializeStruct;
7792 match self {
7793 GroupSelectorError::GroupNotFound => {
7794 let mut s = serializer.serialize_struct("GroupSelectorError", 1)?;
7796 s.serialize_field(".tag", "group_not_found")?;
7797 s.end()
7798 }
7799 GroupSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7800 }
7801 }
7802}
7803
7804impl ::std::error::Error for GroupSelectorError {
7805}
7806
7807impl ::std::fmt::Display for GroupSelectorError {
7808 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7809 match self {
7810 GroupSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7811 _ => write!(f, "{:?}", *self),
7812 }
7813 }
7814}
7815
7816#[derive(Debug, Clone, PartialEq, Eq)]
7819#[non_exhaustive] pub enum GroupSelectorWithTeamGroupError {
7821 GroupNotFound,
7823 SystemManagedGroupDisallowed,
7825 Other,
7828}
7829
7830impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorWithTeamGroupError {
7831 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7832 use serde::de::{self, MapAccess, Visitor};
7834 struct EnumVisitor;
7835 impl<'de> Visitor<'de> for EnumVisitor {
7836 type Value = GroupSelectorWithTeamGroupError;
7837 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7838 f.write_str("a GroupSelectorWithTeamGroupError structure")
7839 }
7840 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7841 let tag: &str = match map.next_key()? {
7842 Some(".tag") => map.next_value()?,
7843 _ => return Err(de::Error::missing_field(".tag"))
7844 };
7845 let value = match tag {
7846 "group_not_found" => GroupSelectorWithTeamGroupError::GroupNotFound,
7847 "system_managed_group_disallowed" => GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed,
7848 _ => GroupSelectorWithTeamGroupError::Other,
7849 };
7850 crate::eat_json_fields(&mut map)?;
7851 Ok(value)
7852 }
7853 }
7854 const VARIANTS: &[&str] = &["group_not_found",
7855 "other",
7856 "system_managed_group_disallowed"];
7857 deserializer.deserialize_struct("GroupSelectorWithTeamGroupError", VARIANTS, EnumVisitor)
7858 }
7859}
7860
7861impl ::serde::ser::Serialize for GroupSelectorWithTeamGroupError {
7862 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7863 use serde::ser::SerializeStruct;
7865 match self {
7866 GroupSelectorWithTeamGroupError::GroupNotFound => {
7867 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
7869 s.serialize_field(".tag", "group_not_found")?;
7870 s.end()
7871 }
7872 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => {
7873 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
7875 s.serialize_field(".tag", "system_managed_group_disallowed")?;
7876 s.end()
7877 }
7878 GroupSelectorWithTeamGroupError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7879 }
7880 }
7881}
7882
7883impl ::std::error::Error for GroupSelectorWithTeamGroupError {
7884}
7885
7886impl ::std::fmt::Display for GroupSelectorWithTeamGroupError {
7887 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7888 match self {
7889 GroupSelectorWithTeamGroupError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7890 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
7891 _ => write!(f, "{:?}", *self),
7892 }
7893 }
7894}
7895
7896impl From<GroupSelectorError> for GroupSelectorWithTeamGroupError {
7898 fn from(parent: GroupSelectorError) -> Self {
7899 match parent {
7900 GroupSelectorError::GroupNotFound => GroupSelectorWithTeamGroupError::GroupNotFound,
7901 GroupSelectorError::Other => GroupSelectorWithTeamGroupError::Other,
7902 }
7903 }
7904}
7905#[derive(Debug, Clone, PartialEq, Eq)]
7906#[non_exhaustive] pub struct GroupUpdateArgs {
7908 pub group: GroupSelector,
7910 pub return_members: bool,
7914 pub new_group_name: Option<String>,
7916 pub new_group_external_id: Option<crate::types::team_common::GroupExternalId>,
7919 pub new_group_management_type: Option<crate::types::team_common::GroupManagementType>,
7921}
7922
7923impl GroupUpdateArgs {
7924 pub fn new(group: GroupSelector) -> Self {
7925 GroupUpdateArgs {
7926 group,
7927 return_members: true,
7928 new_group_name: None,
7929 new_group_external_id: None,
7930 new_group_management_type: None,
7931 }
7932 }
7933
7934 pub fn with_return_members(mut self, value: bool) -> Self {
7935 self.return_members = value;
7936 self
7937 }
7938
7939 pub fn with_new_group_name(mut self, value: String) -> Self {
7940 self.new_group_name = Some(value);
7941 self
7942 }
7943
7944 pub fn with_new_group_external_id(
7945 mut self,
7946 value: crate::types::team_common::GroupExternalId,
7947 ) -> Self {
7948 self.new_group_external_id = Some(value);
7949 self
7950 }
7951
7952 pub fn with_new_group_management_type(
7953 mut self,
7954 value: crate::types::team_common::GroupManagementType,
7955 ) -> Self {
7956 self.new_group_management_type = Some(value);
7957 self
7958 }
7959}
7960
7961const GROUP_UPDATE_ARGS_FIELDS: &[&str] = &["group",
7962 "return_members",
7963 "new_group_name",
7964 "new_group_external_id",
7965 "new_group_management_type"];
7966impl GroupUpdateArgs {
7967 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7968 map: V,
7969 ) -> Result<GroupUpdateArgs, V::Error> {
7970 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7971 }
7972
7973 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7974 mut map: V,
7975 optional: bool,
7976 ) -> Result<Option<GroupUpdateArgs>, V::Error> {
7977 let mut field_group = None;
7978 let mut field_return_members = None;
7979 let mut field_new_group_name = None;
7980 let mut field_new_group_external_id = None;
7981 let mut field_new_group_management_type = None;
7982 let mut nothing = true;
7983 while let Some(key) = map.next_key::<&str>()? {
7984 nothing = false;
7985 match key {
7986 "group" => {
7987 if field_group.is_some() {
7988 return Err(::serde::de::Error::duplicate_field("group"));
7989 }
7990 field_group = Some(map.next_value()?);
7991 }
7992 "return_members" => {
7993 if field_return_members.is_some() {
7994 return Err(::serde::de::Error::duplicate_field("return_members"));
7995 }
7996 field_return_members = Some(map.next_value()?);
7997 }
7998 "new_group_name" => {
7999 if field_new_group_name.is_some() {
8000 return Err(::serde::de::Error::duplicate_field("new_group_name"));
8001 }
8002 field_new_group_name = Some(map.next_value()?);
8003 }
8004 "new_group_external_id" => {
8005 if field_new_group_external_id.is_some() {
8006 return Err(::serde::de::Error::duplicate_field("new_group_external_id"));
8007 }
8008 field_new_group_external_id = Some(map.next_value()?);
8009 }
8010 "new_group_management_type" => {
8011 if field_new_group_management_type.is_some() {
8012 return Err(::serde::de::Error::duplicate_field("new_group_management_type"));
8013 }
8014 field_new_group_management_type = Some(map.next_value()?);
8015 }
8016 _ => {
8017 map.next_value::<::serde_json::Value>()?;
8019 }
8020 }
8021 }
8022 if optional && nothing {
8023 return Ok(None);
8024 }
8025 let result = GroupUpdateArgs {
8026 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
8027 return_members: field_return_members.unwrap_or(true),
8028 new_group_name: field_new_group_name.and_then(Option::flatten),
8029 new_group_external_id: field_new_group_external_id.and_then(Option::flatten),
8030 new_group_management_type: field_new_group_management_type.and_then(Option::flatten),
8031 };
8032 Ok(Some(result))
8033 }
8034
8035 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8036 &self,
8037 s: &mut S::SerializeStruct,
8038 ) -> Result<(), S::Error> {
8039 use serde::ser::SerializeStruct;
8040 s.serialize_field("group", &self.group)?;
8041 if !self.return_members {
8042 s.serialize_field("return_members", &self.return_members)?;
8043 }
8044 if let Some(val) = &self.new_group_name {
8045 s.serialize_field("new_group_name", val)?;
8046 }
8047 if let Some(val) = &self.new_group_external_id {
8048 s.serialize_field("new_group_external_id", val)?;
8049 }
8050 if let Some(val) = &self.new_group_management_type {
8051 s.serialize_field("new_group_management_type", val)?;
8052 }
8053 Ok(())
8054 }
8055}
8056
8057impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateArgs {
8058 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8059 use serde::de::{MapAccess, Visitor};
8061 struct StructVisitor;
8062 impl<'de> Visitor<'de> for StructVisitor {
8063 type Value = GroupUpdateArgs;
8064 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8065 f.write_str("a GroupUpdateArgs struct")
8066 }
8067 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8068 GroupUpdateArgs::internal_deserialize(map)
8069 }
8070 }
8071 deserializer.deserialize_struct("GroupUpdateArgs", GROUP_UPDATE_ARGS_FIELDS, StructVisitor)
8072 }
8073}
8074
8075impl ::serde::ser::Serialize for GroupUpdateArgs {
8076 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8077 use serde::ser::SerializeStruct;
8079 let mut s = serializer.serialize_struct("GroupUpdateArgs", 5)?;
8080 self.internal_serialize::<S>(&mut s)?;
8081 s.end()
8082 }
8083}
8084
8085impl From<GroupUpdateArgs> for IncludeMembersArg {
8087 fn from(subtype: GroupUpdateArgs) -> Self {
8088 Self {
8089 return_members: subtype.return_members,
8090 }
8091 }
8092}
8093#[derive(Debug, Clone, PartialEq, Eq)]
8094#[non_exhaustive] pub enum GroupUpdateError {
8096 GroupNotFound,
8098 SystemManagedGroupDisallowed,
8100 GroupNameAlreadyUsed,
8102 GroupNameInvalid,
8104 ExternalIdAlreadyInUse,
8106 Other,
8109}
8110
8111impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateError {
8112 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8113 use serde::de::{self, MapAccess, Visitor};
8115 struct EnumVisitor;
8116 impl<'de> Visitor<'de> for EnumVisitor {
8117 type Value = GroupUpdateError;
8118 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8119 f.write_str("a GroupUpdateError structure")
8120 }
8121 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8122 let tag: &str = match map.next_key()? {
8123 Some(".tag") => map.next_value()?,
8124 _ => return Err(de::Error::missing_field(".tag"))
8125 };
8126 let value = match tag {
8127 "group_not_found" => GroupUpdateError::GroupNotFound,
8128 "system_managed_group_disallowed" => GroupUpdateError::SystemManagedGroupDisallowed,
8129 "group_name_already_used" => GroupUpdateError::GroupNameAlreadyUsed,
8130 "group_name_invalid" => GroupUpdateError::GroupNameInvalid,
8131 "external_id_already_in_use" => GroupUpdateError::ExternalIdAlreadyInUse,
8132 _ => GroupUpdateError::Other,
8133 };
8134 crate::eat_json_fields(&mut map)?;
8135 Ok(value)
8136 }
8137 }
8138 const VARIANTS: &[&str] = &["group_not_found",
8139 "other",
8140 "system_managed_group_disallowed",
8141 "group_name_already_used",
8142 "group_name_invalid",
8143 "external_id_already_in_use"];
8144 deserializer.deserialize_struct("GroupUpdateError", VARIANTS, EnumVisitor)
8145 }
8146}
8147
8148impl ::serde::ser::Serialize for GroupUpdateError {
8149 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8150 use serde::ser::SerializeStruct;
8152 match self {
8153 GroupUpdateError::GroupNotFound => {
8154 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
8156 s.serialize_field(".tag", "group_not_found")?;
8157 s.end()
8158 }
8159 GroupUpdateError::SystemManagedGroupDisallowed => {
8160 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
8162 s.serialize_field(".tag", "system_managed_group_disallowed")?;
8163 s.end()
8164 }
8165 GroupUpdateError::GroupNameAlreadyUsed => {
8166 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
8168 s.serialize_field(".tag", "group_name_already_used")?;
8169 s.end()
8170 }
8171 GroupUpdateError::GroupNameInvalid => {
8172 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
8174 s.serialize_field(".tag", "group_name_invalid")?;
8175 s.end()
8176 }
8177 GroupUpdateError::ExternalIdAlreadyInUse => {
8178 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
8180 s.serialize_field(".tag", "external_id_already_in_use")?;
8181 s.end()
8182 }
8183 GroupUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8184 }
8185 }
8186}
8187
8188impl ::std::error::Error for GroupUpdateError {
8189}
8190
8191impl ::std::fmt::Display for GroupUpdateError {
8192 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8193 match self {
8194 GroupUpdateError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
8195 GroupUpdateError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
8196 GroupUpdateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
8197 GroupUpdateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
8198 GroupUpdateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
8199 _ => write!(f, "{:?}", *self),
8200 }
8201 }
8202}
8203
8204impl From<GroupSelectorWithTeamGroupError> for GroupUpdateError {
8206 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
8207 match parent {
8208 GroupSelectorWithTeamGroupError::GroupNotFound => GroupUpdateError::GroupNotFound,
8209 GroupSelectorWithTeamGroupError::Other => GroupUpdateError::Other,
8210 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupUpdateError::SystemManagedGroupDisallowed,
8211 }
8212 }
8213}
8214#[derive(Debug, Clone, PartialEq, Eq)]
8215#[non_exhaustive] pub enum GroupsGetInfoError {
8217 GroupNotOnTeam,
8219 Other,
8222}
8223
8224impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoError {
8225 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8226 use serde::de::{self, MapAccess, Visitor};
8228 struct EnumVisitor;
8229 impl<'de> Visitor<'de> for EnumVisitor {
8230 type Value = GroupsGetInfoError;
8231 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8232 f.write_str("a GroupsGetInfoError structure")
8233 }
8234 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8235 let tag: &str = match map.next_key()? {
8236 Some(".tag") => map.next_value()?,
8237 _ => return Err(de::Error::missing_field(".tag"))
8238 };
8239 let value = match tag {
8240 "group_not_on_team" => GroupsGetInfoError::GroupNotOnTeam,
8241 _ => GroupsGetInfoError::Other,
8242 };
8243 crate::eat_json_fields(&mut map)?;
8244 Ok(value)
8245 }
8246 }
8247 const VARIANTS: &[&str] = &["group_not_on_team",
8248 "other"];
8249 deserializer.deserialize_struct("GroupsGetInfoError", VARIANTS, EnumVisitor)
8250 }
8251}
8252
8253impl ::serde::ser::Serialize for GroupsGetInfoError {
8254 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8255 use serde::ser::SerializeStruct;
8257 match self {
8258 GroupsGetInfoError::GroupNotOnTeam => {
8259 let mut s = serializer.serialize_struct("GroupsGetInfoError", 1)?;
8261 s.serialize_field(".tag", "group_not_on_team")?;
8262 s.end()
8263 }
8264 GroupsGetInfoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8265 }
8266 }
8267}
8268
8269impl ::std::error::Error for GroupsGetInfoError {
8270}
8271
8272impl ::std::fmt::Display for GroupsGetInfoError {
8273 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8274 match self {
8275 GroupsGetInfoError::GroupNotOnTeam => f.write_str("The group is not on your team."),
8276 _ => write!(f, "{:?}", *self),
8277 }
8278 }
8279}
8280
8281#[derive(Debug, Clone, PartialEq, Eq)]
8282pub enum GroupsGetInfoItem {
8283 IdNotFound(String),
8287 GroupInfo(GroupFullInfo),
8289}
8290
8291impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoItem {
8292 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8293 use serde::de::{self, MapAccess, Visitor};
8295 struct EnumVisitor;
8296 impl<'de> Visitor<'de> for EnumVisitor {
8297 type Value = GroupsGetInfoItem;
8298 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8299 f.write_str("a GroupsGetInfoItem structure")
8300 }
8301 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8302 let tag: &str = match map.next_key()? {
8303 Some(".tag") => map.next_value()?,
8304 _ => return Err(de::Error::missing_field(".tag"))
8305 };
8306 let value = match tag {
8307 "id_not_found" => {
8308 match map.next_key()? {
8309 Some("id_not_found") => GroupsGetInfoItem::IdNotFound(map.next_value()?),
8310 None => return Err(de::Error::missing_field("id_not_found")),
8311 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8312 }
8313 }
8314 "group_info" => GroupsGetInfoItem::GroupInfo(GroupFullInfo::internal_deserialize(&mut map)?),
8315 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
8316 };
8317 crate::eat_json_fields(&mut map)?;
8318 Ok(value)
8319 }
8320 }
8321 const VARIANTS: &[&str] = &["id_not_found",
8322 "group_info"];
8323 deserializer.deserialize_struct("GroupsGetInfoItem", VARIANTS, EnumVisitor)
8324 }
8325}
8326
8327impl ::serde::ser::Serialize for GroupsGetInfoItem {
8328 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8329 use serde::ser::SerializeStruct;
8331 match self {
8332 GroupsGetInfoItem::IdNotFound(x) => {
8333 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 2)?;
8335 s.serialize_field(".tag", "id_not_found")?;
8336 s.serialize_field("id_not_found", x)?;
8337 s.end()
8338 }
8339 GroupsGetInfoItem::GroupInfo(x) => {
8340 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 8)?;
8342 s.serialize_field(".tag", "group_info")?;
8343 x.internal_serialize::<S>(&mut s)?;
8344 s.end()
8345 }
8346 }
8347 }
8348}
8349
8350#[derive(Debug, Clone, PartialEq, Eq)]
8351#[non_exhaustive] pub struct GroupsListArg {
8353 pub limit: u32,
8355}
8356
8357impl Default for GroupsListArg {
8358 fn default() -> Self {
8359 GroupsListArg {
8360 limit: 1000,
8361 }
8362 }
8363}
8364
8365impl GroupsListArg {
8366 pub fn with_limit(mut self, value: u32) -> Self {
8367 self.limit = value;
8368 self
8369 }
8370}
8371
8372const GROUPS_LIST_ARG_FIELDS: &[&str] = &["limit"];
8373impl GroupsListArg {
8374 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8376 mut map: V,
8377 ) -> Result<GroupsListArg, V::Error> {
8378 let mut field_limit = None;
8379 while let Some(key) = map.next_key::<&str>()? {
8380 match key {
8381 "limit" => {
8382 if field_limit.is_some() {
8383 return Err(::serde::de::Error::duplicate_field("limit"));
8384 }
8385 field_limit = Some(map.next_value()?);
8386 }
8387 _ => {
8388 map.next_value::<::serde_json::Value>()?;
8390 }
8391 }
8392 }
8393 let result = GroupsListArg {
8394 limit: field_limit.unwrap_or(1000),
8395 };
8396 Ok(result)
8397 }
8398
8399 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8400 &self,
8401 s: &mut S::SerializeStruct,
8402 ) -> Result<(), S::Error> {
8403 use serde::ser::SerializeStruct;
8404 if self.limit != 1000 {
8405 s.serialize_field("limit", &self.limit)?;
8406 }
8407 Ok(())
8408 }
8409}
8410
8411impl<'de> ::serde::de::Deserialize<'de> for GroupsListArg {
8412 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8413 use serde::de::{MapAccess, Visitor};
8415 struct StructVisitor;
8416 impl<'de> Visitor<'de> for StructVisitor {
8417 type Value = GroupsListArg;
8418 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8419 f.write_str("a GroupsListArg struct")
8420 }
8421 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8422 GroupsListArg::internal_deserialize(map)
8423 }
8424 }
8425 deserializer.deserialize_struct("GroupsListArg", GROUPS_LIST_ARG_FIELDS, StructVisitor)
8426 }
8427}
8428
8429impl ::serde::ser::Serialize for GroupsListArg {
8430 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8431 use serde::ser::SerializeStruct;
8433 let mut s = serializer.serialize_struct("GroupsListArg", 1)?;
8434 self.internal_serialize::<S>(&mut s)?;
8435 s.end()
8436 }
8437}
8438
8439#[derive(Debug, Clone, PartialEq, Eq)]
8440#[non_exhaustive] pub struct GroupsListContinueArg {
8442 pub cursor: String,
8444}
8445
8446impl GroupsListContinueArg {
8447 pub fn new(cursor: String) -> Self {
8448 GroupsListContinueArg {
8449 cursor,
8450 }
8451 }
8452}
8453
8454const GROUPS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
8455impl GroupsListContinueArg {
8456 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8457 map: V,
8458 ) -> Result<GroupsListContinueArg, V::Error> {
8459 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8460 }
8461
8462 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8463 mut map: V,
8464 optional: bool,
8465 ) -> Result<Option<GroupsListContinueArg>, V::Error> {
8466 let mut field_cursor = None;
8467 let mut nothing = true;
8468 while let Some(key) = map.next_key::<&str>()? {
8469 nothing = false;
8470 match key {
8471 "cursor" => {
8472 if field_cursor.is_some() {
8473 return Err(::serde::de::Error::duplicate_field("cursor"));
8474 }
8475 field_cursor = Some(map.next_value()?);
8476 }
8477 _ => {
8478 map.next_value::<::serde_json::Value>()?;
8480 }
8481 }
8482 }
8483 if optional && nothing {
8484 return Ok(None);
8485 }
8486 let result = GroupsListContinueArg {
8487 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
8488 };
8489 Ok(Some(result))
8490 }
8491
8492 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8493 &self,
8494 s: &mut S::SerializeStruct,
8495 ) -> Result<(), S::Error> {
8496 use serde::ser::SerializeStruct;
8497 s.serialize_field("cursor", &self.cursor)?;
8498 Ok(())
8499 }
8500}
8501
8502impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueArg {
8503 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8504 use serde::de::{MapAccess, Visitor};
8506 struct StructVisitor;
8507 impl<'de> Visitor<'de> for StructVisitor {
8508 type Value = GroupsListContinueArg;
8509 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8510 f.write_str("a GroupsListContinueArg struct")
8511 }
8512 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8513 GroupsListContinueArg::internal_deserialize(map)
8514 }
8515 }
8516 deserializer.deserialize_struct("GroupsListContinueArg", GROUPS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
8517 }
8518}
8519
8520impl ::serde::ser::Serialize for GroupsListContinueArg {
8521 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8522 use serde::ser::SerializeStruct;
8524 let mut s = serializer.serialize_struct("GroupsListContinueArg", 1)?;
8525 self.internal_serialize::<S>(&mut s)?;
8526 s.end()
8527 }
8528}
8529
8530#[derive(Debug, Clone, PartialEq, Eq)]
8531#[non_exhaustive] pub enum GroupsListContinueError {
8533 InvalidCursor,
8535 Other,
8538}
8539
8540impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueError {
8541 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8542 use serde::de::{self, MapAccess, Visitor};
8544 struct EnumVisitor;
8545 impl<'de> Visitor<'de> for EnumVisitor {
8546 type Value = GroupsListContinueError;
8547 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8548 f.write_str("a GroupsListContinueError structure")
8549 }
8550 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8551 let tag: &str = match map.next_key()? {
8552 Some(".tag") => map.next_value()?,
8553 _ => return Err(de::Error::missing_field(".tag"))
8554 };
8555 let value = match tag {
8556 "invalid_cursor" => GroupsListContinueError::InvalidCursor,
8557 _ => GroupsListContinueError::Other,
8558 };
8559 crate::eat_json_fields(&mut map)?;
8560 Ok(value)
8561 }
8562 }
8563 const VARIANTS: &[&str] = &["invalid_cursor",
8564 "other"];
8565 deserializer.deserialize_struct("GroupsListContinueError", VARIANTS, EnumVisitor)
8566 }
8567}
8568
8569impl ::serde::ser::Serialize for GroupsListContinueError {
8570 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8571 use serde::ser::SerializeStruct;
8573 match self {
8574 GroupsListContinueError::InvalidCursor => {
8575 let mut s = serializer.serialize_struct("GroupsListContinueError", 1)?;
8577 s.serialize_field(".tag", "invalid_cursor")?;
8578 s.end()
8579 }
8580 GroupsListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8581 }
8582 }
8583}
8584
8585impl ::std::error::Error for GroupsListContinueError {
8586}
8587
8588impl ::std::fmt::Display for GroupsListContinueError {
8589 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8590 match self {
8591 GroupsListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
8592 _ => write!(f, "{:?}", *self),
8593 }
8594 }
8595}
8596
8597#[derive(Debug, Clone, PartialEq, Eq)]
8598#[non_exhaustive] pub struct GroupsListResult {
8600 pub groups: Vec<crate::types::team_common::GroupSummary>,
8601 pub cursor: String,
8604 pub has_more: bool,
8607}
8608
8609impl GroupsListResult {
8610 pub fn new(
8611 groups: Vec<crate::types::team_common::GroupSummary>,
8612 cursor: String,
8613 has_more: bool,
8614 ) -> Self {
8615 GroupsListResult {
8616 groups,
8617 cursor,
8618 has_more,
8619 }
8620 }
8621}
8622
8623const GROUPS_LIST_RESULT_FIELDS: &[&str] = &["groups",
8624 "cursor",
8625 "has_more"];
8626impl GroupsListResult {
8627 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8628 map: V,
8629 ) -> Result<GroupsListResult, V::Error> {
8630 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8631 }
8632
8633 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8634 mut map: V,
8635 optional: bool,
8636 ) -> Result<Option<GroupsListResult>, V::Error> {
8637 let mut field_groups = None;
8638 let mut field_cursor = None;
8639 let mut field_has_more = None;
8640 let mut nothing = true;
8641 while let Some(key) = map.next_key::<&str>()? {
8642 nothing = false;
8643 match key {
8644 "groups" => {
8645 if field_groups.is_some() {
8646 return Err(::serde::de::Error::duplicate_field("groups"));
8647 }
8648 field_groups = Some(map.next_value()?);
8649 }
8650 "cursor" => {
8651 if field_cursor.is_some() {
8652 return Err(::serde::de::Error::duplicate_field("cursor"));
8653 }
8654 field_cursor = Some(map.next_value()?);
8655 }
8656 "has_more" => {
8657 if field_has_more.is_some() {
8658 return Err(::serde::de::Error::duplicate_field("has_more"));
8659 }
8660 field_has_more = Some(map.next_value()?);
8661 }
8662 _ => {
8663 map.next_value::<::serde_json::Value>()?;
8665 }
8666 }
8667 }
8668 if optional && nothing {
8669 return Ok(None);
8670 }
8671 let result = GroupsListResult {
8672 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
8673 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
8674 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
8675 };
8676 Ok(Some(result))
8677 }
8678
8679 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8680 &self,
8681 s: &mut S::SerializeStruct,
8682 ) -> Result<(), S::Error> {
8683 use serde::ser::SerializeStruct;
8684 s.serialize_field("groups", &self.groups)?;
8685 s.serialize_field("cursor", &self.cursor)?;
8686 s.serialize_field("has_more", &self.has_more)?;
8687 Ok(())
8688 }
8689}
8690
8691impl<'de> ::serde::de::Deserialize<'de> for GroupsListResult {
8692 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8693 use serde::de::{MapAccess, Visitor};
8695 struct StructVisitor;
8696 impl<'de> Visitor<'de> for StructVisitor {
8697 type Value = GroupsListResult;
8698 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8699 f.write_str("a GroupsListResult struct")
8700 }
8701 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8702 GroupsListResult::internal_deserialize(map)
8703 }
8704 }
8705 deserializer.deserialize_struct("GroupsListResult", GROUPS_LIST_RESULT_FIELDS, StructVisitor)
8706 }
8707}
8708
8709impl ::serde::ser::Serialize for GroupsListResult {
8710 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8711 use serde::ser::SerializeStruct;
8713 let mut s = serializer.serialize_struct("GroupsListResult", 3)?;
8714 self.internal_serialize::<S>(&mut s)?;
8715 s.end()
8716 }
8717}
8718
8719#[derive(Debug, Clone, PartialEq, Eq)]
8720#[non_exhaustive] pub struct GroupsMembersListArg {
8722 pub group: GroupSelector,
8724 pub limit: u32,
8726}
8727
8728impl GroupsMembersListArg {
8729 pub fn new(group: GroupSelector) -> Self {
8730 GroupsMembersListArg {
8731 group,
8732 limit: 1000,
8733 }
8734 }
8735
8736 pub fn with_limit(mut self, value: u32) -> Self {
8737 self.limit = value;
8738 self
8739 }
8740}
8741
8742const GROUPS_MEMBERS_LIST_ARG_FIELDS: &[&str] = &["group",
8743 "limit"];
8744impl GroupsMembersListArg {
8745 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8746 map: V,
8747 ) -> Result<GroupsMembersListArg, V::Error> {
8748 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8749 }
8750
8751 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8752 mut map: V,
8753 optional: bool,
8754 ) -> Result<Option<GroupsMembersListArg>, V::Error> {
8755 let mut field_group = None;
8756 let mut field_limit = None;
8757 let mut nothing = true;
8758 while let Some(key) = map.next_key::<&str>()? {
8759 nothing = false;
8760 match key {
8761 "group" => {
8762 if field_group.is_some() {
8763 return Err(::serde::de::Error::duplicate_field("group"));
8764 }
8765 field_group = Some(map.next_value()?);
8766 }
8767 "limit" => {
8768 if field_limit.is_some() {
8769 return Err(::serde::de::Error::duplicate_field("limit"));
8770 }
8771 field_limit = Some(map.next_value()?);
8772 }
8773 _ => {
8774 map.next_value::<::serde_json::Value>()?;
8776 }
8777 }
8778 }
8779 if optional && nothing {
8780 return Ok(None);
8781 }
8782 let result = GroupsMembersListArg {
8783 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
8784 limit: field_limit.unwrap_or(1000),
8785 };
8786 Ok(Some(result))
8787 }
8788
8789 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8790 &self,
8791 s: &mut S::SerializeStruct,
8792 ) -> Result<(), S::Error> {
8793 use serde::ser::SerializeStruct;
8794 s.serialize_field("group", &self.group)?;
8795 if self.limit != 1000 {
8796 s.serialize_field("limit", &self.limit)?;
8797 }
8798 Ok(())
8799 }
8800}
8801
8802impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListArg {
8803 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8804 use serde::de::{MapAccess, Visitor};
8806 struct StructVisitor;
8807 impl<'de> Visitor<'de> for StructVisitor {
8808 type Value = GroupsMembersListArg;
8809 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8810 f.write_str("a GroupsMembersListArg struct")
8811 }
8812 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8813 GroupsMembersListArg::internal_deserialize(map)
8814 }
8815 }
8816 deserializer.deserialize_struct("GroupsMembersListArg", GROUPS_MEMBERS_LIST_ARG_FIELDS, StructVisitor)
8817 }
8818}
8819
8820impl ::serde::ser::Serialize for GroupsMembersListArg {
8821 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8822 use serde::ser::SerializeStruct;
8824 let mut s = serializer.serialize_struct("GroupsMembersListArg", 2)?;
8825 self.internal_serialize::<S>(&mut s)?;
8826 s.end()
8827 }
8828}
8829
8830#[derive(Debug, Clone, PartialEq, Eq)]
8831#[non_exhaustive] pub struct GroupsMembersListContinueArg {
8833 pub cursor: String,
8835}
8836
8837impl GroupsMembersListContinueArg {
8838 pub fn new(cursor: String) -> Self {
8839 GroupsMembersListContinueArg {
8840 cursor,
8841 }
8842 }
8843}
8844
8845const GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
8846impl GroupsMembersListContinueArg {
8847 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8848 map: V,
8849 ) -> Result<GroupsMembersListContinueArg, V::Error> {
8850 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8851 }
8852
8853 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8854 mut map: V,
8855 optional: bool,
8856 ) -> Result<Option<GroupsMembersListContinueArg>, V::Error> {
8857 let mut field_cursor = None;
8858 let mut nothing = true;
8859 while let Some(key) = map.next_key::<&str>()? {
8860 nothing = false;
8861 match key {
8862 "cursor" => {
8863 if field_cursor.is_some() {
8864 return Err(::serde::de::Error::duplicate_field("cursor"));
8865 }
8866 field_cursor = Some(map.next_value()?);
8867 }
8868 _ => {
8869 map.next_value::<::serde_json::Value>()?;
8871 }
8872 }
8873 }
8874 if optional && nothing {
8875 return Ok(None);
8876 }
8877 let result = GroupsMembersListContinueArg {
8878 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
8879 };
8880 Ok(Some(result))
8881 }
8882
8883 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8884 &self,
8885 s: &mut S::SerializeStruct,
8886 ) -> Result<(), S::Error> {
8887 use serde::ser::SerializeStruct;
8888 s.serialize_field("cursor", &self.cursor)?;
8889 Ok(())
8890 }
8891}
8892
8893impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueArg {
8894 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8895 use serde::de::{MapAccess, Visitor};
8897 struct StructVisitor;
8898 impl<'de> Visitor<'de> for StructVisitor {
8899 type Value = GroupsMembersListContinueArg;
8900 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8901 f.write_str("a GroupsMembersListContinueArg struct")
8902 }
8903 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8904 GroupsMembersListContinueArg::internal_deserialize(map)
8905 }
8906 }
8907 deserializer.deserialize_struct("GroupsMembersListContinueArg", GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
8908 }
8909}
8910
8911impl ::serde::ser::Serialize for GroupsMembersListContinueArg {
8912 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8913 use serde::ser::SerializeStruct;
8915 let mut s = serializer.serialize_struct("GroupsMembersListContinueArg", 1)?;
8916 self.internal_serialize::<S>(&mut s)?;
8917 s.end()
8918 }
8919}
8920
8921#[derive(Debug, Clone, PartialEq, Eq)]
8922#[non_exhaustive] pub enum GroupsMembersListContinueError {
8924 InvalidCursor,
8926 Other,
8929}
8930
8931impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueError {
8932 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8933 use serde::de::{self, MapAccess, Visitor};
8935 struct EnumVisitor;
8936 impl<'de> Visitor<'de> for EnumVisitor {
8937 type Value = GroupsMembersListContinueError;
8938 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8939 f.write_str("a GroupsMembersListContinueError structure")
8940 }
8941 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8942 let tag: &str = match map.next_key()? {
8943 Some(".tag") => map.next_value()?,
8944 _ => return Err(de::Error::missing_field(".tag"))
8945 };
8946 let value = match tag {
8947 "invalid_cursor" => GroupsMembersListContinueError::InvalidCursor,
8948 _ => GroupsMembersListContinueError::Other,
8949 };
8950 crate::eat_json_fields(&mut map)?;
8951 Ok(value)
8952 }
8953 }
8954 const VARIANTS: &[&str] = &["invalid_cursor",
8955 "other"];
8956 deserializer.deserialize_struct("GroupsMembersListContinueError", VARIANTS, EnumVisitor)
8957 }
8958}
8959
8960impl ::serde::ser::Serialize for GroupsMembersListContinueError {
8961 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8962 use serde::ser::SerializeStruct;
8964 match self {
8965 GroupsMembersListContinueError::InvalidCursor => {
8966 let mut s = serializer.serialize_struct("GroupsMembersListContinueError", 1)?;
8968 s.serialize_field(".tag", "invalid_cursor")?;
8969 s.end()
8970 }
8971 GroupsMembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8972 }
8973 }
8974}
8975
8976impl ::std::error::Error for GroupsMembersListContinueError {
8977}
8978
8979impl ::std::fmt::Display for GroupsMembersListContinueError {
8980 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8981 match self {
8982 GroupsMembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
8983 _ => write!(f, "{:?}", *self),
8984 }
8985 }
8986}
8987
8988#[derive(Debug, Clone, PartialEq, Eq)]
8989#[non_exhaustive] pub struct GroupsMembersListResult {
8991 pub members: Vec<GroupMemberInfo>,
8992 pub cursor: String,
8996 pub has_more: bool,
9000}
9001
9002impl GroupsMembersListResult {
9003 pub fn new(members: Vec<GroupMemberInfo>, cursor: String, has_more: bool) -> Self {
9004 GroupsMembersListResult {
9005 members,
9006 cursor,
9007 has_more,
9008 }
9009 }
9010}
9011
9012const GROUPS_MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
9013 "cursor",
9014 "has_more"];
9015impl GroupsMembersListResult {
9016 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9017 map: V,
9018 ) -> Result<GroupsMembersListResult, V::Error> {
9019 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9020 }
9021
9022 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9023 mut map: V,
9024 optional: bool,
9025 ) -> Result<Option<GroupsMembersListResult>, V::Error> {
9026 let mut field_members = None;
9027 let mut field_cursor = None;
9028 let mut field_has_more = None;
9029 let mut nothing = true;
9030 while let Some(key) = map.next_key::<&str>()? {
9031 nothing = false;
9032 match key {
9033 "members" => {
9034 if field_members.is_some() {
9035 return Err(::serde::de::Error::duplicate_field("members"));
9036 }
9037 field_members = Some(map.next_value()?);
9038 }
9039 "cursor" => {
9040 if field_cursor.is_some() {
9041 return Err(::serde::de::Error::duplicate_field("cursor"));
9042 }
9043 field_cursor = Some(map.next_value()?);
9044 }
9045 "has_more" => {
9046 if field_has_more.is_some() {
9047 return Err(::serde::de::Error::duplicate_field("has_more"));
9048 }
9049 field_has_more = Some(map.next_value()?);
9050 }
9051 _ => {
9052 map.next_value::<::serde_json::Value>()?;
9054 }
9055 }
9056 }
9057 if optional && nothing {
9058 return Ok(None);
9059 }
9060 let result = GroupsMembersListResult {
9061 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
9062 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
9063 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
9064 };
9065 Ok(Some(result))
9066 }
9067
9068 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9069 &self,
9070 s: &mut S::SerializeStruct,
9071 ) -> Result<(), S::Error> {
9072 use serde::ser::SerializeStruct;
9073 s.serialize_field("members", &self.members)?;
9074 s.serialize_field("cursor", &self.cursor)?;
9075 s.serialize_field("has_more", &self.has_more)?;
9076 Ok(())
9077 }
9078}
9079
9080impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListResult {
9081 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9082 use serde::de::{MapAccess, Visitor};
9084 struct StructVisitor;
9085 impl<'de> Visitor<'de> for StructVisitor {
9086 type Value = GroupsMembersListResult;
9087 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9088 f.write_str("a GroupsMembersListResult struct")
9089 }
9090 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9091 GroupsMembersListResult::internal_deserialize(map)
9092 }
9093 }
9094 deserializer.deserialize_struct("GroupsMembersListResult", GROUPS_MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
9095 }
9096}
9097
9098impl ::serde::ser::Serialize for GroupsMembersListResult {
9099 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9100 use serde::ser::SerializeStruct;
9102 let mut s = serializer.serialize_struct("GroupsMembersListResult", 3)?;
9103 self.internal_serialize::<S>(&mut s)?;
9104 s.end()
9105 }
9106}
9107
9108#[derive(Debug, Clone, PartialEq, Eq)]
9109#[non_exhaustive] pub enum GroupsPollError {
9111 InvalidAsyncJobId,
9113 InternalError,
9116 AccessDenied,
9118 Other,
9121}
9122
9123impl<'de> ::serde::de::Deserialize<'de> for GroupsPollError {
9124 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9125 use serde::de::{self, MapAccess, Visitor};
9127 struct EnumVisitor;
9128 impl<'de> Visitor<'de> for EnumVisitor {
9129 type Value = GroupsPollError;
9130 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9131 f.write_str("a GroupsPollError structure")
9132 }
9133 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9134 let tag: &str = match map.next_key()? {
9135 Some(".tag") => map.next_value()?,
9136 _ => return Err(de::Error::missing_field(".tag"))
9137 };
9138 let value = match tag {
9139 "invalid_async_job_id" => GroupsPollError::InvalidAsyncJobId,
9140 "internal_error" => GroupsPollError::InternalError,
9141 "access_denied" => GroupsPollError::AccessDenied,
9142 _ => GroupsPollError::Other,
9143 };
9144 crate::eat_json_fields(&mut map)?;
9145 Ok(value)
9146 }
9147 }
9148 const VARIANTS: &[&str] = &["invalid_async_job_id",
9149 "internal_error",
9150 "other",
9151 "access_denied"];
9152 deserializer.deserialize_struct("GroupsPollError", VARIANTS, EnumVisitor)
9153 }
9154}
9155
9156impl ::serde::ser::Serialize for GroupsPollError {
9157 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9158 use serde::ser::SerializeStruct;
9160 match self {
9161 GroupsPollError::InvalidAsyncJobId => {
9162 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
9164 s.serialize_field(".tag", "invalid_async_job_id")?;
9165 s.end()
9166 }
9167 GroupsPollError::InternalError => {
9168 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
9170 s.serialize_field(".tag", "internal_error")?;
9171 s.end()
9172 }
9173 GroupsPollError::AccessDenied => {
9174 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
9176 s.serialize_field(".tag", "access_denied")?;
9177 s.end()
9178 }
9179 GroupsPollError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9180 }
9181 }
9182}
9183
9184impl ::std::error::Error for GroupsPollError {
9185}
9186
9187impl ::std::fmt::Display for GroupsPollError {
9188 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9189 match self {
9190 GroupsPollError::InvalidAsyncJobId => f.write_str("The job ID is invalid."),
9191 GroupsPollError::InternalError => f.write_str("Something went wrong with the job on Dropbox's end. You'll need to verify that the action you were taking succeeded, and if not, try again. This should happen very rarely."),
9192 GroupsPollError::AccessDenied => f.write_str("You are not allowed to poll this job."),
9193 _ => write!(f, "{:?}", *self),
9194 }
9195 }
9196}
9197
9198impl From<crate::types::dbx_async::PollError> for GroupsPollError {
9200 fn from(parent: crate::types::dbx_async::PollError) -> Self {
9201 match parent {
9202 crate::types::dbx_async::PollError::InvalidAsyncJobId => GroupsPollError::InvalidAsyncJobId,
9203 crate::types::dbx_async::PollError::InternalError => GroupsPollError::InternalError,
9204 crate::types::dbx_async::PollError::Other => GroupsPollError::Other,
9205 }
9206 }
9207}
9208#[derive(Debug, Clone, PartialEq, Eq)]
9210pub enum GroupsSelector {
9211 GroupIds(Vec<crate::types::team_common::GroupId>),
9213 GroupExternalIds(Vec<String>),
9215}
9216
9217impl<'de> ::serde::de::Deserialize<'de> for GroupsSelector {
9218 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9219 use serde::de::{self, MapAccess, Visitor};
9221 struct EnumVisitor;
9222 impl<'de> Visitor<'de> for EnumVisitor {
9223 type Value = GroupsSelector;
9224 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9225 f.write_str("a GroupsSelector structure")
9226 }
9227 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9228 let tag: &str = match map.next_key()? {
9229 Some(".tag") => map.next_value()?,
9230 _ => return Err(de::Error::missing_field(".tag"))
9231 };
9232 let value = match tag {
9233 "group_ids" => {
9234 match map.next_key()? {
9235 Some("group_ids") => GroupsSelector::GroupIds(map.next_value()?),
9236 None => return Err(de::Error::missing_field("group_ids")),
9237 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
9238 }
9239 }
9240 "group_external_ids" => {
9241 match map.next_key()? {
9242 Some("group_external_ids") => GroupsSelector::GroupExternalIds(map.next_value()?),
9243 None => return Err(de::Error::missing_field("group_external_ids")),
9244 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
9245 }
9246 }
9247 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
9248 };
9249 crate::eat_json_fields(&mut map)?;
9250 Ok(value)
9251 }
9252 }
9253 const VARIANTS: &[&str] = &["group_ids",
9254 "group_external_ids"];
9255 deserializer.deserialize_struct("GroupsSelector", VARIANTS, EnumVisitor)
9256 }
9257}
9258
9259impl ::serde::ser::Serialize for GroupsSelector {
9260 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9261 use serde::ser::SerializeStruct;
9263 match self {
9264 GroupsSelector::GroupIds(x) => {
9265 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
9267 s.serialize_field(".tag", "group_ids")?;
9268 s.serialize_field("group_ids", x)?;
9269 s.end()
9270 }
9271 GroupsSelector::GroupExternalIds(x) => {
9272 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
9274 s.serialize_field(".tag", "group_external_ids")?;
9275 s.serialize_field("group_external_ids", x)?;
9276 s.end()
9277 }
9278 }
9279 }
9280}
9281
9282#[derive(Debug, Clone, PartialEq, Eq)]
9284#[non_exhaustive] pub enum HasDistinctMemberHomesValue {
9286 HasDistinctMemberHomes(bool),
9288 Other,
9291}
9292
9293impl<'de> ::serde::de::Deserialize<'de> for HasDistinctMemberHomesValue {
9294 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9295 use serde::de::{self, MapAccess, Visitor};
9297 struct EnumVisitor;
9298 impl<'de> Visitor<'de> for EnumVisitor {
9299 type Value = HasDistinctMemberHomesValue;
9300 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9301 f.write_str("a HasDistinctMemberHomesValue structure")
9302 }
9303 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9304 let tag: &str = match map.next_key()? {
9305 Some(".tag") => map.next_value()?,
9306 _ => return Err(de::Error::missing_field(".tag"))
9307 };
9308 let value = match tag {
9309 "has_distinct_member_homes" => {
9310 match map.next_key()? {
9311 Some("has_distinct_member_homes") => HasDistinctMemberHomesValue::HasDistinctMemberHomes(map.next_value()?),
9312 None => return Err(de::Error::missing_field("has_distinct_member_homes")),
9313 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
9314 }
9315 }
9316 _ => HasDistinctMemberHomesValue::Other,
9317 };
9318 crate::eat_json_fields(&mut map)?;
9319 Ok(value)
9320 }
9321 }
9322 const VARIANTS: &[&str] = &["has_distinct_member_homes",
9323 "other"];
9324 deserializer.deserialize_struct("HasDistinctMemberHomesValue", VARIANTS, EnumVisitor)
9325 }
9326}
9327
9328impl ::serde::ser::Serialize for HasDistinctMemberHomesValue {
9329 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9330 use serde::ser::SerializeStruct;
9332 match self {
9333 HasDistinctMemberHomesValue::HasDistinctMemberHomes(x) => {
9334 let mut s = serializer.serialize_struct("HasDistinctMemberHomesValue", 2)?;
9336 s.serialize_field(".tag", "has_distinct_member_homes")?;
9337 s.serialize_field("has_distinct_member_homes", x)?;
9338 s.end()
9339 }
9340 HasDistinctMemberHomesValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9341 }
9342 }
9343}
9344
9345#[derive(Debug, Clone, PartialEq, Eq)]
9347#[non_exhaustive] pub enum HasTeamFileEventsValue {
9349 Enabled(bool),
9351 Other,
9354}
9355
9356impl<'de> ::serde::de::Deserialize<'de> for HasTeamFileEventsValue {
9357 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9358 use serde::de::{self, MapAccess, Visitor};
9360 struct EnumVisitor;
9361 impl<'de> Visitor<'de> for EnumVisitor {
9362 type Value = HasTeamFileEventsValue;
9363 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9364 f.write_str("a HasTeamFileEventsValue structure")
9365 }
9366 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9367 let tag: &str = match map.next_key()? {
9368 Some(".tag") => map.next_value()?,
9369 _ => return Err(de::Error::missing_field(".tag"))
9370 };
9371 let value = match tag {
9372 "enabled" => {
9373 match map.next_key()? {
9374 Some("enabled") => HasTeamFileEventsValue::Enabled(map.next_value()?),
9375 None => return Err(de::Error::missing_field("enabled")),
9376 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
9377 }
9378 }
9379 _ => HasTeamFileEventsValue::Other,
9380 };
9381 crate::eat_json_fields(&mut map)?;
9382 Ok(value)
9383 }
9384 }
9385 const VARIANTS: &[&str] = &["enabled",
9386 "other"];
9387 deserializer.deserialize_struct("HasTeamFileEventsValue", VARIANTS, EnumVisitor)
9388 }
9389}
9390
9391impl ::serde::ser::Serialize for HasTeamFileEventsValue {
9392 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9393 use serde::ser::SerializeStruct;
9395 match self {
9396 HasTeamFileEventsValue::Enabled(x) => {
9397 let mut s = serializer.serialize_struct("HasTeamFileEventsValue", 2)?;
9399 s.serialize_field(".tag", "enabled")?;
9400 s.serialize_field("enabled", x)?;
9401 s.end()
9402 }
9403 HasTeamFileEventsValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9404 }
9405 }
9406}
9407
9408#[derive(Debug, Clone, PartialEq, Eq)]
9410#[non_exhaustive] pub enum HasTeamSelectiveSyncValue {
9412 HasTeamSelectiveSync(bool),
9414 Other,
9417}
9418
9419impl<'de> ::serde::de::Deserialize<'de> for HasTeamSelectiveSyncValue {
9420 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9421 use serde::de::{self, MapAccess, Visitor};
9423 struct EnumVisitor;
9424 impl<'de> Visitor<'de> for EnumVisitor {
9425 type Value = HasTeamSelectiveSyncValue;
9426 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9427 f.write_str("a HasTeamSelectiveSyncValue structure")
9428 }
9429 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9430 let tag: &str = match map.next_key()? {
9431 Some(".tag") => map.next_value()?,
9432 _ => return Err(de::Error::missing_field(".tag"))
9433 };
9434 let value = match tag {
9435 "has_team_selective_sync" => {
9436 match map.next_key()? {
9437 Some("has_team_selective_sync") => HasTeamSelectiveSyncValue::HasTeamSelectiveSync(map.next_value()?),
9438 None => return Err(de::Error::missing_field("has_team_selective_sync")),
9439 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
9440 }
9441 }
9442 _ => HasTeamSelectiveSyncValue::Other,
9443 };
9444 crate::eat_json_fields(&mut map)?;
9445 Ok(value)
9446 }
9447 }
9448 const VARIANTS: &[&str] = &["has_team_selective_sync",
9449 "other"];
9450 deserializer.deserialize_struct("HasTeamSelectiveSyncValue", VARIANTS, EnumVisitor)
9451 }
9452}
9453
9454impl ::serde::ser::Serialize for HasTeamSelectiveSyncValue {
9455 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9456 use serde::ser::SerializeStruct;
9458 match self {
9459 HasTeamSelectiveSyncValue::HasTeamSelectiveSync(x) => {
9460 let mut s = serializer.serialize_struct("HasTeamSelectiveSyncValue", 2)?;
9462 s.serialize_field(".tag", "has_team_selective_sync")?;
9463 s.serialize_field("has_team_selective_sync", x)?;
9464 s.end()
9465 }
9466 HasTeamSelectiveSyncValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9467 }
9468 }
9469}
9470
9471#[derive(Debug, Clone, PartialEq, Eq)]
9473#[non_exhaustive] pub enum HasTeamSharedDropboxValue {
9475 HasTeamSharedDropbox(bool),
9477 Other,
9480}
9481
9482impl<'de> ::serde::de::Deserialize<'de> for HasTeamSharedDropboxValue {
9483 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9484 use serde::de::{self, MapAccess, Visitor};
9486 struct EnumVisitor;
9487 impl<'de> Visitor<'de> for EnumVisitor {
9488 type Value = HasTeamSharedDropboxValue;
9489 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9490 f.write_str("a HasTeamSharedDropboxValue structure")
9491 }
9492 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9493 let tag: &str = match map.next_key()? {
9494 Some(".tag") => map.next_value()?,
9495 _ => return Err(de::Error::missing_field(".tag"))
9496 };
9497 let value = match tag {
9498 "has_team_shared_dropbox" => {
9499 match map.next_key()? {
9500 Some("has_team_shared_dropbox") => HasTeamSharedDropboxValue::HasTeamSharedDropbox(map.next_value()?),
9501 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
9502 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
9503 }
9504 }
9505 _ => HasTeamSharedDropboxValue::Other,
9506 };
9507 crate::eat_json_fields(&mut map)?;
9508 Ok(value)
9509 }
9510 }
9511 const VARIANTS: &[&str] = &["has_team_shared_dropbox",
9512 "other"];
9513 deserializer.deserialize_struct("HasTeamSharedDropboxValue", VARIANTS, EnumVisitor)
9514 }
9515}
9516
9517impl ::serde::ser::Serialize for HasTeamSharedDropboxValue {
9518 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9519 use serde::ser::SerializeStruct;
9521 match self {
9522 HasTeamSharedDropboxValue::HasTeamSharedDropbox(x) => {
9523 let mut s = serializer.serialize_struct("HasTeamSharedDropboxValue", 2)?;
9525 s.serialize_field(".tag", "has_team_shared_dropbox")?;
9526 s.serialize_field("has_team_shared_dropbox", x)?;
9527 s.end()
9528 }
9529 HasTeamSharedDropboxValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9530 }
9531 }
9532}
9533
9534#[derive(Debug, Clone, PartialEq, Eq)]
9535#[non_exhaustive] pub struct IncludeMembersArg {
9537 pub return_members: bool,
9541}
9542
9543impl Default for IncludeMembersArg {
9544 fn default() -> Self {
9545 IncludeMembersArg {
9546 return_members: true,
9547 }
9548 }
9549}
9550
9551impl IncludeMembersArg {
9552 pub fn with_return_members(mut self, value: bool) -> Self {
9553 self.return_members = value;
9554 self
9555 }
9556}
9557
9558const INCLUDE_MEMBERS_ARG_FIELDS: &[&str] = &["return_members"];
9559impl IncludeMembersArg {
9560 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9562 mut map: V,
9563 ) -> Result<IncludeMembersArg, V::Error> {
9564 let mut field_return_members = None;
9565 while let Some(key) = map.next_key::<&str>()? {
9566 match key {
9567 "return_members" => {
9568 if field_return_members.is_some() {
9569 return Err(::serde::de::Error::duplicate_field("return_members"));
9570 }
9571 field_return_members = Some(map.next_value()?);
9572 }
9573 _ => {
9574 map.next_value::<::serde_json::Value>()?;
9576 }
9577 }
9578 }
9579 let result = IncludeMembersArg {
9580 return_members: field_return_members.unwrap_or(true),
9581 };
9582 Ok(result)
9583 }
9584
9585 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9586 &self,
9587 s: &mut S::SerializeStruct,
9588 ) -> Result<(), S::Error> {
9589 use serde::ser::SerializeStruct;
9590 if !self.return_members {
9591 s.serialize_field("return_members", &self.return_members)?;
9592 }
9593 Ok(())
9594 }
9595}
9596
9597impl<'de> ::serde::de::Deserialize<'de> for IncludeMembersArg {
9598 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9599 use serde::de::{MapAccess, Visitor};
9601 struct StructVisitor;
9602 impl<'de> Visitor<'de> for StructVisitor {
9603 type Value = IncludeMembersArg;
9604 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9605 f.write_str("a IncludeMembersArg struct")
9606 }
9607 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9608 IncludeMembersArg::internal_deserialize(map)
9609 }
9610 }
9611 deserializer.deserialize_struct("IncludeMembersArg", INCLUDE_MEMBERS_ARG_FIELDS, StructVisitor)
9612 }
9613}
9614
9615impl ::serde::ser::Serialize for IncludeMembersArg {
9616 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9617 use serde::ser::SerializeStruct;
9619 let mut s = serializer.serialize_struct("IncludeMembersArg", 1)?;
9620 self.internal_serialize::<S>(&mut s)?;
9621 s.end()
9622 }
9623}
9624
9625#[derive(Debug, Clone, PartialEq, Eq)]
9626#[non_exhaustive] pub struct LegalHoldHeldRevisionMetadata {
9628 pub new_filename: String,
9630 pub original_revision_id: crate::types::files::Rev,
9632 pub original_file_path: Path,
9634 pub server_modified: crate::types::common::DropboxTimestamp,
9636 pub author_member_id: crate::types::team_common::TeamMemberId,
9638 pub author_member_status: TeamMemberStatus,
9640 pub author_email: crate::types::common::EmailAddress,
9642 pub file_type: String,
9644 pub size: u64,
9646 pub content_hash: crate::types::files::Sha256HexHash,
9650}
9651
9652impl LegalHoldHeldRevisionMetadata {
9653 pub fn new(
9654 new_filename: String,
9655 original_revision_id: crate::types::files::Rev,
9656 original_file_path: Path,
9657 server_modified: crate::types::common::DropboxTimestamp,
9658 author_member_id: crate::types::team_common::TeamMemberId,
9659 author_member_status: TeamMemberStatus,
9660 author_email: crate::types::common::EmailAddress,
9661 file_type: String,
9662 size: u64,
9663 content_hash: crate::types::files::Sha256HexHash,
9664 ) -> Self {
9665 LegalHoldHeldRevisionMetadata {
9666 new_filename,
9667 original_revision_id,
9668 original_file_path,
9669 server_modified,
9670 author_member_id,
9671 author_member_status,
9672 author_email,
9673 file_type,
9674 size,
9675 content_hash,
9676 }
9677 }
9678}
9679
9680const LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS: &[&str] = &["new_filename",
9681 "original_revision_id",
9682 "original_file_path",
9683 "server_modified",
9684 "author_member_id",
9685 "author_member_status",
9686 "author_email",
9687 "file_type",
9688 "size",
9689 "content_hash"];
9690impl LegalHoldHeldRevisionMetadata {
9691 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9692 map: V,
9693 ) -> Result<LegalHoldHeldRevisionMetadata, V::Error> {
9694 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9695 }
9696
9697 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9698 mut map: V,
9699 optional: bool,
9700 ) -> Result<Option<LegalHoldHeldRevisionMetadata>, V::Error> {
9701 let mut field_new_filename = None;
9702 let mut field_original_revision_id = None;
9703 let mut field_original_file_path = None;
9704 let mut field_server_modified = None;
9705 let mut field_author_member_id = None;
9706 let mut field_author_member_status = None;
9707 let mut field_author_email = None;
9708 let mut field_file_type = None;
9709 let mut field_size = None;
9710 let mut field_content_hash = None;
9711 let mut nothing = true;
9712 while let Some(key) = map.next_key::<&str>()? {
9713 nothing = false;
9714 match key {
9715 "new_filename" => {
9716 if field_new_filename.is_some() {
9717 return Err(::serde::de::Error::duplicate_field("new_filename"));
9718 }
9719 field_new_filename = Some(map.next_value()?);
9720 }
9721 "original_revision_id" => {
9722 if field_original_revision_id.is_some() {
9723 return Err(::serde::de::Error::duplicate_field("original_revision_id"));
9724 }
9725 field_original_revision_id = Some(map.next_value()?);
9726 }
9727 "original_file_path" => {
9728 if field_original_file_path.is_some() {
9729 return Err(::serde::de::Error::duplicate_field("original_file_path"));
9730 }
9731 field_original_file_path = Some(map.next_value()?);
9732 }
9733 "server_modified" => {
9734 if field_server_modified.is_some() {
9735 return Err(::serde::de::Error::duplicate_field("server_modified"));
9736 }
9737 field_server_modified = Some(map.next_value()?);
9738 }
9739 "author_member_id" => {
9740 if field_author_member_id.is_some() {
9741 return Err(::serde::de::Error::duplicate_field("author_member_id"));
9742 }
9743 field_author_member_id = Some(map.next_value()?);
9744 }
9745 "author_member_status" => {
9746 if field_author_member_status.is_some() {
9747 return Err(::serde::de::Error::duplicate_field("author_member_status"));
9748 }
9749 field_author_member_status = Some(map.next_value()?);
9750 }
9751 "author_email" => {
9752 if field_author_email.is_some() {
9753 return Err(::serde::de::Error::duplicate_field("author_email"));
9754 }
9755 field_author_email = Some(map.next_value()?);
9756 }
9757 "file_type" => {
9758 if field_file_type.is_some() {
9759 return Err(::serde::de::Error::duplicate_field("file_type"));
9760 }
9761 field_file_type = Some(map.next_value()?);
9762 }
9763 "size" => {
9764 if field_size.is_some() {
9765 return Err(::serde::de::Error::duplicate_field("size"));
9766 }
9767 field_size = Some(map.next_value()?);
9768 }
9769 "content_hash" => {
9770 if field_content_hash.is_some() {
9771 return Err(::serde::de::Error::duplicate_field("content_hash"));
9772 }
9773 field_content_hash = Some(map.next_value()?);
9774 }
9775 _ => {
9776 map.next_value::<::serde_json::Value>()?;
9778 }
9779 }
9780 }
9781 if optional && nothing {
9782 return Ok(None);
9783 }
9784 let result = LegalHoldHeldRevisionMetadata {
9785 new_filename: field_new_filename.ok_or_else(|| ::serde::de::Error::missing_field("new_filename"))?,
9786 original_revision_id: field_original_revision_id.ok_or_else(|| ::serde::de::Error::missing_field("original_revision_id"))?,
9787 original_file_path: field_original_file_path.ok_or_else(|| ::serde::de::Error::missing_field("original_file_path"))?,
9788 server_modified: field_server_modified.ok_or_else(|| ::serde::de::Error::missing_field("server_modified"))?,
9789 author_member_id: field_author_member_id.ok_or_else(|| ::serde::de::Error::missing_field("author_member_id"))?,
9790 author_member_status: field_author_member_status.ok_or_else(|| ::serde::de::Error::missing_field("author_member_status"))?,
9791 author_email: field_author_email.ok_or_else(|| ::serde::de::Error::missing_field("author_email"))?,
9792 file_type: field_file_type.ok_or_else(|| ::serde::de::Error::missing_field("file_type"))?,
9793 size: field_size.ok_or_else(|| ::serde::de::Error::missing_field("size"))?,
9794 content_hash: field_content_hash.ok_or_else(|| ::serde::de::Error::missing_field("content_hash"))?,
9795 };
9796 Ok(Some(result))
9797 }
9798
9799 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9800 &self,
9801 s: &mut S::SerializeStruct,
9802 ) -> Result<(), S::Error> {
9803 use serde::ser::SerializeStruct;
9804 s.serialize_field("new_filename", &self.new_filename)?;
9805 s.serialize_field("original_revision_id", &self.original_revision_id)?;
9806 s.serialize_field("original_file_path", &self.original_file_path)?;
9807 s.serialize_field("server_modified", &self.server_modified)?;
9808 s.serialize_field("author_member_id", &self.author_member_id)?;
9809 s.serialize_field("author_member_status", &self.author_member_status)?;
9810 s.serialize_field("author_email", &self.author_email)?;
9811 s.serialize_field("file_type", &self.file_type)?;
9812 s.serialize_field("size", &self.size)?;
9813 s.serialize_field("content_hash", &self.content_hash)?;
9814 Ok(())
9815 }
9816}
9817
9818impl<'de> ::serde::de::Deserialize<'de> for LegalHoldHeldRevisionMetadata {
9819 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9820 use serde::de::{MapAccess, Visitor};
9822 struct StructVisitor;
9823 impl<'de> Visitor<'de> for StructVisitor {
9824 type Value = LegalHoldHeldRevisionMetadata;
9825 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9826 f.write_str("a LegalHoldHeldRevisionMetadata struct")
9827 }
9828 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9829 LegalHoldHeldRevisionMetadata::internal_deserialize(map)
9830 }
9831 }
9832 deserializer.deserialize_struct("LegalHoldHeldRevisionMetadata", LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS, StructVisitor)
9833 }
9834}
9835
9836impl ::serde::ser::Serialize for LegalHoldHeldRevisionMetadata {
9837 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9838 use serde::ser::SerializeStruct;
9840 let mut s = serializer.serialize_struct("LegalHoldHeldRevisionMetadata", 10)?;
9841 self.internal_serialize::<S>(&mut s)?;
9842 s.end()
9843 }
9844}
9845
9846#[derive(Debug, Clone, PartialEq, Eq)]
9847#[non_exhaustive] pub struct LegalHoldPolicy {
9849 pub id: LegalHoldId,
9851 pub name: LegalHoldPolicyName,
9853 pub members: MembersInfo,
9855 pub status: LegalHoldStatus,
9857 pub start_date: crate::types::common::DropboxTimestamp,
9859 pub description: Option<LegalHoldPolicyDescription>,
9861 pub activation_time: Option<crate::types::common::DropboxTimestamp>,
9863 pub end_date: Option<crate::types::common::DropboxTimestamp>,
9865}
9866
9867impl LegalHoldPolicy {
9868 pub fn new(
9869 id: LegalHoldId,
9870 name: LegalHoldPolicyName,
9871 members: MembersInfo,
9872 status: LegalHoldStatus,
9873 start_date: crate::types::common::DropboxTimestamp,
9874 ) -> Self {
9875 LegalHoldPolicy {
9876 id,
9877 name,
9878 members,
9879 status,
9880 start_date,
9881 description: None,
9882 activation_time: None,
9883 end_date: None,
9884 }
9885 }
9886
9887 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
9888 self.description = Some(value);
9889 self
9890 }
9891
9892 pub fn with_activation_time(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
9893 self.activation_time = Some(value);
9894 self
9895 }
9896
9897 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
9898 self.end_date = Some(value);
9899 self
9900 }
9901}
9902
9903const LEGAL_HOLD_POLICY_FIELDS: &[&str] = &["id",
9904 "name",
9905 "members",
9906 "status",
9907 "start_date",
9908 "description",
9909 "activation_time",
9910 "end_date"];
9911impl LegalHoldPolicy {
9912 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9913 map: V,
9914 ) -> Result<LegalHoldPolicy, V::Error> {
9915 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9916 }
9917
9918 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9919 mut map: V,
9920 optional: bool,
9921 ) -> Result<Option<LegalHoldPolicy>, V::Error> {
9922 let mut field_id = None;
9923 let mut field_name = None;
9924 let mut field_members = None;
9925 let mut field_status = None;
9926 let mut field_start_date = None;
9927 let mut field_description = None;
9928 let mut field_activation_time = None;
9929 let mut field_end_date = None;
9930 let mut nothing = true;
9931 while let Some(key) = map.next_key::<&str>()? {
9932 nothing = false;
9933 match key {
9934 "id" => {
9935 if field_id.is_some() {
9936 return Err(::serde::de::Error::duplicate_field("id"));
9937 }
9938 field_id = Some(map.next_value()?);
9939 }
9940 "name" => {
9941 if field_name.is_some() {
9942 return Err(::serde::de::Error::duplicate_field("name"));
9943 }
9944 field_name = Some(map.next_value()?);
9945 }
9946 "members" => {
9947 if field_members.is_some() {
9948 return Err(::serde::de::Error::duplicate_field("members"));
9949 }
9950 field_members = Some(map.next_value()?);
9951 }
9952 "status" => {
9953 if field_status.is_some() {
9954 return Err(::serde::de::Error::duplicate_field("status"));
9955 }
9956 field_status = Some(map.next_value()?);
9957 }
9958 "start_date" => {
9959 if field_start_date.is_some() {
9960 return Err(::serde::de::Error::duplicate_field("start_date"));
9961 }
9962 field_start_date = Some(map.next_value()?);
9963 }
9964 "description" => {
9965 if field_description.is_some() {
9966 return Err(::serde::de::Error::duplicate_field("description"));
9967 }
9968 field_description = Some(map.next_value()?);
9969 }
9970 "activation_time" => {
9971 if field_activation_time.is_some() {
9972 return Err(::serde::de::Error::duplicate_field("activation_time"));
9973 }
9974 field_activation_time = Some(map.next_value()?);
9975 }
9976 "end_date" => {
9977 if field_end_date.is_some() {
9978 return Err(::serde::de::Error::duplicate_field("end_date"));
9979 }
9980 field_end_date = Some(map.next_value()?);
9981 }
9982 _ => {
9983 map.next_value::<::serde_json::Value>()?;
9985 }
9986 }
9987 }
9988 if optional && nothing {
9989 return Ok(None);
9990 }
9991 let result = LegalHoldPolicy {
9992 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9993 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
9994 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
9995 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
9996 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
9997 description: field_description.and_then(Option::flatten),
9998 activation_time: field_activation_time.and_then(Option::flatten),
9999 end_date: field_end_date.and_then(Option::flatten),
10000 };
10001 Ok(Some(result))
10002 }
10003
10004 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10005 &self,
10006 s: &mut S::SerializeStruct,
10007 ) -> Result<(), S::Error> {
10008 use serde::ser::SerializeStruct;
10009 s.serialize_field("id", &self.id)?;
10010 s.serialize_field("name", &self.name)?;
10011 s.serialize_field("members", &self.members)?;
10012 s.serialize_field("status", &self.status)?;
10013 s.serialize_field("start_date", &self.start_date)?;
10014 if let Some(val) = &self.description {
10015 s.serialize_field("description", val)?;
10016 }
10017 if let Some(val) = &self.activation_time {
10018 s.serialize_field("activation_time", val)?;
10019 }
10020 if let Some(val) = &self.end_date {
10021 s.serialize_field("end_date", val)?;
10022 }
10023 Ok(())
10024 }
10025}
10026
10027impl<'de> ::serde::de::Deserialize<'de> for LegalHoldPolicy {
10028 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10029 use serde::de::{MapAccess, Visitor};
10031 struct StructVisitor;
10032 impl<'de> Visitor<'de> for StructVisitor {
10033 type Value = LegalHoldPolicy;
10034 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10035 f.write_str("a LegalHoldPolicy struct")
10036 }
10037 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10038 LegalHoldPolicy::internal_deserialize(map)
10039 }
10040 }
10041 deserializer.deserialize_struct("LegalHoldPolicy", LEGAL_HOLD_POLICY_FIELDS, StructVisitor)
10042 }
10043}
10044
10045impl ::serde::ser::Serialize for LegalHoldPolicy {
10046 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10047 use serde::ser::SerializeStruct;
10049 let mut s = serializer.serialize_struct("LegalHoldPolicy", 8)?;
10050 self.internal_serialize::<S>(&mut s)?;
10051 s.end()
10052 }
10053}
10054
10055#[derive(Debug, Clone, PartialEq, Eq)]
10056#[non_exhaustive] pub enum LegalHoldStatus {
10058 Active,
10060 Released,
10062 Activating,
10064 Updating,
10066 Exporting,
10068 Releasing,
10070 Other,
10073}
10074
10075impl<'de> ::serde::de::Deserialize<'de> for LegalHoldStatus {
10076 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10077 use serde::de::{self, MapAccess, Visitor};
10079 struct EnumVisitor;
10080 impl<'de> Visitor<'de> for EnumVisitor {
10081 type Value = LegalHoldStatus;
10082 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10083 f.write_str("a LegalHoldStatus structure")
10084 }
10085 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10086 let tag: &str = match map.next_key()? {
10087 Some(".tag") => map.next_value()?,
10088 _ => return Err(de::Error::missing_field(".tag"))
10089 };
10090 let value = match tag {
10091 "active" => LegalHoldStatus::Active,
10092 "released" => LegalHoldStatus::Released,
10093 "activating" => LegalHoldStatus::Activating,
10094 "updating" => LegalHoldStatus::Updating,
10095 "exporting" => LegalHoldStatus::Exporting,
10096 "releasing" => LegalHoldStatus::Releasing,
10097 _ => LegalHoldStatus::Other,
10098 };
10099 crate::eat_json_fields(&mut map)?;
10100 Ok(value)
10101 }
10102 }
10103 const VARIANTS: &[&str] = &["active",
10104 "released",
10105 "activating",
10106 "updating",
10107 "exporting",
10108 "releasing",
10109 "other"];
10110 deserializer.deserialize_struct("LegalHoldStatus", VARIANTS, EnumVisitor)
10111 }
10112}
10113
10114impl ::serde::ser::Serialize for LegalHoldStatus {
10115 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10116 use serde::ser::SerializeStruct;
10118 match self {
10119 LegalHoldStatus::Active => {
10120 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
10122 s.serialize_field(".tag", "active")?;
10123 s.end()
10124 }
10125 LegalHoldStatus::Released => {
10126 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
10128 s.serialize_field(".tag", "released")?;
10129 s.end()
10130 }
10131 LegalHoldStatus::Activating => {
10132 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
10134 s.serialize_field(".tag", "activating")?;
10135 s.end()
10136 }
10137 LegalHoldStatus::Updating => {
10138 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
10140 s.serialize_field(".tag", "updating")?;
10141 s.end()
10142 }
10143 LegalHoldStatus::Exporting => {
10144 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
10146 s.serialize_field(".tag", "exporting")?;
10147 s.end()
10148 }
10149 LegalHoldStatus::Releasing => {
10150 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
10152 s.serialize_field(".tag", "releasing")?;
10153 s.end()
10154 }
10155 LegalHoldStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10156 }
10157 }
10158}
10159
10160#[derive(Debug, Clone, PartialEq, Eq)]
10161#[non_exhaustive] pub enum LegalHoldsError {
10163 UnknownLegalHoldError,
10165 InsufficientPermissions,
10167 Other,
10170}
10171
10172impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsError {
10173 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10174 use serde::de::{self, MapAccess, Visitor};
10176 struct EnumVisitor;
10177 impl<'de> Visitor<'de> for EnumVisitor {
10178 type Value = LegalHoldsError;
10179 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10180 f.write_str("a LegalHoldsError structure")
10181 }
10182 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10183 let tag: &str = match map.next_key()? {
10184 Some(".tag") => map.next_value()?,
10185 _ => return Err(de::Error::missing_field(".tag"))
10186 };
10187 let value = match tag {
10188 "unknown_legal_hold_error" => LegalHoldsError::UnknownLegalHoldError,
10189 "insufficient_permissions" => LegalHoldsError::InsufficientPermissions,
10190 _ => LegalHoldsError::Other,
10191 };
10192 crate::eat_json_fields(&mut map)?;
10193 Ok(value)
10194 }
10195 }
10196 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10197 "insufficient_permissions",
10198 "other"];
10199 deserializer.deserialize_struct("LegalHoldsError", VARIANTS, EnumVisitor)
10200 }
10201}
10202
10203impl ::serde::ser::Serialize for LegalHoldsError {
10204 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10205 use serde::ser::SerializeStruct;
10207 match self {
10208 LegalHoldsError::UnknownLegalHoldError => {
10209 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
10211 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10212 s.end()
10213 }
10214 LegalHoldsError::InsufficientPermissions => {
10215 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
10217 s.serialize_field(".tag", "insufficient_permissions")?;
10218 s.end()
10219 }
10220 LegalHoldsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10221 }
10222 }
10223}
10224
10225impl ::std::error::Error for LegalHoldsError {
10226}
10227
10228impl ::std::fmt::Display for LegalHoldsError {
10229 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10230 match self {
10231 LegalHoldsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10232 LegalHoldsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10233 _ => write!(f, "{:?}", *self),
10234 }
10235 }
10236}
10237
10238#[derive(Debug, Clone, PartialEq, Eq)]
10239#[non_exhaustive] pub struct LegalHoldsGetPolicyArg {
10241 pub id: LegalHoldId,
10243}
10244
10245impl LegalHoldsGetPolicyArg {
10246 pub fn new(id: LegalHoldId) -> Self {
10247 LegalHoldsGetPolicyArg {
10248 id,
10249 }
10250 }
10251}
10252
10253const LEGAL_HOLDS_GET_POLICY_ARG_FIELDS: &[&str] = &["id"];
10254impl LegalHoldsGetPolicyArg {
10255 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10256 map: V,
10257 ) -> Result<LegalHoldsGetPolicyArg, V::Error> {
10258 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10259 }
10260
10261 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10262 mut map: V,
10263 optional: bool,
10264 ) -> Result<Option<LegalHoldsGetPolicyArg>, V::Error> {
10265 let mut field_id = None;
10266 let mut nothing = true;
10267 while let Some(key) = map.next_key::<&str>()? {
10268 nothing = false;
10269 match key {
10270 "id" => {
10271 if field_id.is_some() {
10272 return Err(::serde::de::Error::duplicate_field("id"));
10273 }
10274 field_id = Some(map.next_value()?);
10275 }
10276 _ => {
10277 map.next_value::<::serde_json::Value>()?;
10279 }
10280 }
10281 }
10282 if optional && nothing {
10283 return Ok(None);
10284 }
10285 let result = LegalHoldsGetPolicyArg {
10286 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10287 };
10288 Ok(Some(result))
10289 }
10290
10291 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10292 &self,
10293 s: &mut S::SerializeStruct,
10294 ) -> Result<(), S::Error> {
10295 use serde::ser::SerializeStruct;
10296 s.serialize_field("id", &self.id)?;
10297 Ok(())
10298 }
10299}
10300
10301impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyArg {
10302 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10303 use serde::de::{MapAccess, Visitor};
10305 struct StructVisitor;
10306 impl<'de> Visitor<'de> for StructVisitor {
10307 type Value = LegalHoldsGetPolicyArg;
10308 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10309 f.write_str("a LegalHoldsGetPolicyArg struct")
10310 }
10311 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10312 LegalHoldsGetPolicyArg::internal_deserialize(map)
10313 }
10314 }
10315 deserializer.deserialize_struct("LegalHoldsGetPolicyArg", LEGAL_HOLDS_GET_POLICY_ARG_FIELDS, StructVisitor)
10316 }
10317}
10318
10319impl ::serde::ser::Serialize for LegalHoldsGetPolicyArg {
10320 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10321 use serde::ser::SerializeStruct;
10323 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyArg", 1)?;
10324 self.internal_serialize::<S>(&mut s)?;
10325 s.end()
10326 }
10327}
10328
10329#[derive(Debug, Clone, PartialEq, Eq)]
10330#[non_exhaustive] pub enum LegalHoldsGetPolicyError {
10332 UnknownLegalHoldError,
10334 InsufficientPermissions,
10336 LegalHoldPolicyNotFound,
10338 Other,
10341}
10342
10343impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyError {
10344 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10345 use serde::de::{self, MapAccess, Visitor};
10347 struct EnumVisitor;
10348 impl<'de> Visitor<'de> for EnumVisitor {
10349 type Value = LegalHoldsGetPolicyError;
10350 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10351 f.write_str("a LegalHoldsGetPolicyError structure")
10352 }
10353 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10354 let tag: &str = match map.next_key()? {
10355 Some(".tag") => map.next_value()?,
10356 _ => return Err(de::Error::missing_field(".tag"))
10357 };
10358 let value = match tag {
10359 "unknown_legal_hold_error" => LegalHoldsGetPolicyError::UnknownLegalHoldError,
10360 "insufficient_permissions" => LegalHoldsGetPolicyError::InsufficientPermissions,
10361 "legal_hold_policy_not_found" => LegalHoldsGetPolicyError::LegalHoldPolicyNotFound,
10362 _ => LegalHoldsGetPolicyError::Other,
10363 };
10364 crate::eat_json_fields(&mut map)?;
10365 Ok(value)
10366 }
10367 }
10368 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10369 "insufficient_permissions",
10370 "other",
10371 "legal_hold_policy_not_found"];
10372 deserializer.deserialize_struct("LegalHoldsGetPolicyError", VARIANTS, EnumVisitor)
10373 }
10374}
10375
10376impl ::serde::ser::Serialize for LegalHoldsGetPolicyError {
10377 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10378 use serde::ser::SerializeStruct;
10380 match self {
10381 LegalHoldsGetPolicyError::UnknownLegalHoldError => {
10382 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
10384 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10385 s.end()
10386 }
10387 LegalHoldsGetPolicyError::InsufficientPermissions => {
10388 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
10390 s.serialize_field(".tag", "insufficient_permissions")?;
10391 s.end()
10392 }
10393 LegalHoldsGetPolicyError::LegalHoldPolicyNotFound => {
10394 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
10396 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
10397 s.end()
10398 }
10399 LegalHoldsGetPolicyError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10400 }
10401 }
10402}
10403
10404impl ::std::error::Error for LegalHoldsGetPolicyError {
10405}
10406
10407impl ::std::fmt::Display for LegalHoldsGetPolicyError {
10408 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10409 match self {
10410 LegalHoldsGetPolicyError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10411 LegalHoldsGetPolicyError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10412 _ => write!(f, "{:?}", *self),
10413 }
10414 }
10415}
10416
10417impl From<LegalHoldsError> for LegalHoldsGetPolicyError {
10419 fn from(parent: LegalHoldsError) -> Self {
10420 match parent {
10421 LegalHoldsError::UnknownLegalHoldError => LegalHoldsGetPolicyError::UnknownLegalHoldError,
10422 LegalHoldsError::InsufficientPermissions => LegalHoldsGetPolicyError::InsufficientPermissions,
10423 LegalHoldsError::Other => LegalHoldsGetPolicyError::Other,
10424 }
10425 }
10426}
10427#[derive(Debug, Clone, PartialEq, Eq)]
10428#[non_exhaustive] pub struct LegalHoldsListHeldRevisionResult {
10430 pub entries: Vec<LegalHoldHeldRevisionMetadata>,
10432 pub has_more: bool,
10435 pub cursor: Option<ListHeldRevisionCursor>,
10439}
10440
10441impl LegalHoldsListHeldRevisionResult {
10442 pub fn new(entries: Vec<LegalHoldHeldRevisionMetadata>, has_more: bool) -> Self {
10443 LegalHoldsListHeldRevisionResult {
10444 entries,
10445 has_more,
10446 cursor: None,
10447 }
10448 }
10449
10450 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
10451 self.cursor = Some(value);
10452 self
10453 }
10454}
10455
10456const LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS: &[&str] = &["entries",
10457 "has_more",
10458 "cursor"];
10459impl LegalHoldsListHeldRevisionResult {
10460 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10461 map: V,
10462 ) -> Result<LegalHoldsListHeldRevisionResult, V::Error> {
10463 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10464 }
10465
10466 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10467 mut map: V,
10468 optional: bool,
10469 ) -> Result<Option<LegalHoldsListHeldRevisionResult>, V::Error> {
10470 let mut field_entries = None;
10471 let mut field_has_more = None;
10472 let mut field_cursor = None;
10473 let mut nothing = true;
10474 while let Some(key) = map.next_key::<&str>()? {
10475 nothing = false;
10476 match key {
10477 "entries" => {
10478 if field_entries.is_some() {
10479 return Err(::serde::de::Error::duplicate_field("entries"));
10480 }
10481 field_entries = Some(map.next_value()?);
10482 }
10483 "has_more" => {
10484 if field_has_more.is_some() {
10485 return Err(::serde::de::Error::duplicate_field("has_more"));
10486 }
10487 field_has_more = Some(map.next_value()?);
10488 }
10489 "cursor" => {
10490 if field_cursor.is_some() {
10491 return Err(::serde::de::Error::duplicate_field("cursor"));
10492 }
10493 field_cursor = Some(map.next_value()?);
10494 }
10495 _ => {
10496 map.next_value::<::serde_json::Value>()?;
10498 }
10499 }
10500 }
10501 if optional && nothing {
10502 return Ok(None);
10503 }
10504 let result = LegalHoldsListHeldRevisionResult {
10505 entries: field_entries.ok_or_else(|| ::serde::de::Error::missing_field("entries"))?,
10506 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
10507 cursor: field_cursor.and_then(Option::flatten),
10508 };
10509 Ok(Some(result))
10510 }
10511
10512 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10513 &self,
10514 s: &mut S::SerializeStruct,
10515 ) -> Result<(), S::Error> {
10516 use serde::ser::SerializeStruct;
10517 s.serialize_field("entries", &self.entries)?;
10518 s.serialize_field("has_more", &self.has_more)?;
10519 if let Some(val) = &self.cursor {
10520 s.serialize_field("cursor", val)?;
10521 }
10522 Ok(())
10523 }
10524}
10525
10526impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionResult {
10527 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10528 use serde::de::{MapAccess, Visitor};
10530 struct StructVisitor;
10531 impl<'de> Visitor<'de> for StructVisitor {
10532 type Value = LegalHoldsListHeldRevisionResult;
10533 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10534 f.write_str("a LegalHoldsListHeldRevisionResult struct")
10535 }
10536 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10537 LegalHoldsListHeldRevisionResult::internal_deserialize(map)
10538 }
10539 }
10540 deserializer.deserialize_struct("LegalHoldsListHeldRevisionResult", LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS, StructVisitor)
10541 }
10542}
10543
10544impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionResult {
10545 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10546 use serde::ser::SerializeStruct;
10548 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionResult", 3)?;
10549 self.internal_serialize::<S>(&mut s)?;
10550 s.end()
10551 }
10552}
10553
10554#[derive(Debug, Clone, PartialEq, Eq)]
10555#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsArg {
10557 pub id: LegalHoldId,
10559}
10560
10561impl LegalHoldsListHeldRevisionsArg {
10562 pub fn new(id: LegalHoldId) -> Self {
10563 LegalHoldsListHeldRevisionsArg {
10564 id,
10565 }
10566 }
10567}
10568
10569const LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS: &[&str] = &["id"];
10570impl LegalHoldsListHeldRevisionsArg {
10571 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10572 map: V,
10573 ) -> Result<LegalHoldsListHeldRevisionsArg, V::Error> {
10574 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10575 }
10576
10577 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10578 mut map: V,
10579 optional: bool,
10580 ) -> Result<Option<LegalHoldsListHeldRevisionsArg>, V::Error> {
10581 let mut field_id = None;
10582 let mut nothing = true;
10583 while let Some(key) = map.next_key::<&str>()? {
10584 nothing = false;
10585 match key {
10586 "id" => {
10587 if field_id.is_some() {
10588 return Err(::serde::de::Error::duplicate_field("id"));
10589 }
10590 field_id = Some(map.next_value()?);
10591 }
10592 _ => {
10593 map.next_value::<::serde_json::Value>()?;
10595 }
10596 }
10597 }
10598 if optional && nothing {
10599 return Ok(None);
10600 }
10601 let result = LegalHoldsListHeldRevisionsArg {
10602 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10603 };
10604 Ok(Some(result))
10605 }
10606
10607 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10608 &self,
10609 s: &mut S::SerializeStruct,
10610 ) -> Result<(), S::Error> {
10611 use serde::ser::SerializeStruct;
10612 s.serialize_field("id", &self.id)?;
10613 Ok(())
10614 }
10615}
10616
10617impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsArg {
10618 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10619 use serde::de::{MapAccess, Visitor};
10621 struct StructVisitor;
10622 impl<'de> Visitor<'de> for StructVisitor {
10623 type Value = LegalHoldsListHeldRevisionsArg;
10624 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10625 f.write_str("a LegalHoldsListHeldRevisionsArg struct")
10626 }
10627 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10628 LegalHoldsListHeldRevisionsArg::internal_deserialize(map)
10629 }
10630 }
10631 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS, StructVisitor)
10632 }
10633}
10634
10635impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsArg {
10636 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10637 use serde::ser::SerializeStruct;
10639 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsArg", 1)?;
10640 self.internal_serialize::<S>(&mut s)?;
10641 s.end()
10642 }
10643}
10644
10645#[derive(Debug, Clone, PartialEq, Eq)]
10646#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsContinueArg {
10648 pub id: LegalHoldId,
10650 pub cursor: Option<ListHeldRevisionCursor>,
10653}
10654
10655impl LegalHoldsListHeldRevisionsContinueArg {
10656 pub fn new(id: LegalHoldId) -> Self {
10657 LegalHoldsListHeldRevisionsContinueArg {
10658 id,
10659 cursor: None,
10660 }
10661 }
10662
10663 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
10664 self.cursor = Some(value);
10665 self
10666 }
10667}
10668
10669const LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS: &[&str] = &["id",
10670 "cursor"];
10671impl LegalHoldsListHeldRevisionsContinueArg {
10672 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10673 map: V,
10674 ) -> Result<LegalHoldsListHeldRevisionsContinueArg, V::Error> {
10675 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10676 }
10677
10678 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10679 mut map: V,
10680 optional: bool,
10681 ) -> Result<Option<LegalHoldsListHeldRevisionsContinueArg>, V::Error> {
10682 let mut field_id = None;
10683 let mut field_cursor = None;
10684 let mut nothing = true;
10685 while let Some(key) = map.next_key::<&str>()? {
10686 nothing = false;
10687 match key {
10688 "id" => {
10689 if field_id.is_some() {
10690 return Err(::serde::de::Error::duplicate_field("id"));
10691 }
10692 field_id = Some(map.next_value()?);
10693 }
10694 "cursor" => {
10695 if field_cursor.is_some() {
10696 return Err(::serde::de::Error::duplicate_field("cursor"));
10697 }
10698 field_cursor = Some(map.next_value()?);
10699 }
10700 _ => {
10701 map.next_value::<::serde_json::Value>()?;
10703 }
10704 }
10705 }
10706 if optional && nothing {
10707 return Ok(None);
10708 }
10709 let result = LegalHoldsListHeldRevisionsContinueArg {
10710 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10711 cursor: field_cursor.and_then(Option::flatten),
10712 };
10713 Ok(Some(result))
10714 }
10715
10716 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10717 &self,
10718 s: &mut S::SerializeStruct,
10719 ) -> Result<(), S::Error> {
10720 use serde::ser::SerializeStruct;
10721 s.serialize_field("id", &self.id)?;
10722 if let Some(val) = &self.cursor {
10723 s.serialize_field("cursor", val)?;
10724 }
10725 Ok(())
10726 }
10727}
10728
10729impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueArg {
10730 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10731 use serde::de::{MapAccess, Visitor};
10733 struct StructVisitor;
10734 impl<'de> Visitor<'de> for StructVisitor {
10735 type Value = LegalHoldsListHeldRevisionsContinueArg;
10736 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10737 f.write_str("a LegalHoldsListHeldRevisionsContinueArg struct")
10738 }
10739 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10740 LegalHoldsListHeldRevisionsContinueArg::internal_deserialize(map)
10741 }
10742 }
10743 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS, StructVisitor)
10744 }
10745}
10746
10747impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueArg {
10748 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10749 use serde::ser::SerializeStruct;
10751 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueArg", 2)?;
10752 self.internal_serialize::<S>(&mut s)?;
10753 s.end()
10754 }
10755}
10756
10757#[derive(Debug, Clone, PartialEq, Eq)]
10758#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsContinueError {
10760 UnknownLegalHoldError,
10762 TransientError,
10764 Reset,
10768 Other,
10771}
10772
10773impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueError {
10774 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10775 use serde::de::{self, MapAccess, Visitor};
10777 struct EnumVisitor;
10778 impl<'de> Visitor<'de> for EnumVisitor {
10779 type Value = LegalHoldsListHeldRevisionsContinueError;
10780 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10781 f.write_str("a LegalHoldsListHeldRevisionsContinueError structure")
10782 }
10783 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10784 let tag: &str = match map.next_key()? {
10785 Some(".tag") => map.next_value()?,
10786 _ => return Err(de::Error::missing_field(".tag"))
10787 };
10788 let value = match tag {
10789 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError,
10790 "transient_error" => LegalHoldsListHeldRevisionsContinueError::TransientError,
10791 "reset" => LegalHoldsListHeldRevisionsContinueError::Reset,
10792 _ => LegalHoldsListHeldRevisionsContinueError::Other,
10793 };
10794 crate::eat_json_fields(&mut map)?;
10795 Ok(value)
10796 }
10797 }
10798 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10799 "transient_error",
10800 "reset",
10801 "other"];
10802 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueError", VARIANTS, EnumVisitor)
10803 }
10804}
10805
10806impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueError {
10807 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10808 use serde::ser::SerializeStruct;
10810 match self {
10811 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => {
10812 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
10814 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10815 s.end()
10816 }
10817 LegalHoldsListHeldRevisionsContinueError::TransientError => {
10818 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
10820 s.serialize_field(".tag", "transient_error")?;
10821 s.end()
10822 }
10823 LegalHoldsListHeldRevisionsContinueError::Reset => {
10824 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
10826 s.serialize_field(".tag", "reset")?;
10827 s.end()
10828 }
10829 LegalHoldsListHeldRevisionsContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10830 }
10831 }
10832}
10833
10834impl ::std::error::Error for LegalHoldsListHeldRevisionsContinueError {
10835}
10836
10837impl ::std::fmt::Display for LegalHoldsListHeldRevisionsContinueError {
10838 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10839 match self {
10840 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10841 LegalHoldsListHeldRevisionsContinueError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10842 _ => write!(f, "{:?}", *self),
10843 }
10844 }
10845}
10846
10847#[derive(Debug, Clone, PartialEq, Eq)]
10848#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsError {
10850 UnknownLegalHoldError,
10852 InsufficientPermissions,
10854 TransientError,
10856 LegalHoldStillEmpty,
10858 InactiveLegalHold,
10860 Other,
10863}
10864
10865impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsError {
10866 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10867 use serde::de::{self, MapAccess, Visitor};
10869 struct EnumVisitor;
10870 impl<'de> Visitor<'de> for EnumVisitor {
10871 type Value = LegalHoldsListHeldRevisionsError;
10872 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10873 f.write_str("a LegalHoldsListHeldRevisionsError structure")
10874 }
10875 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10876 let tag: &str = match map.next_key()? {
10877 Some(".tag") => map.next_value()?,
10878 _ => return Err(de::Error::missing_field(".tag"))
10879 };
10880 let value = match tag {
10881 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
10882 "insufficient_permissions" => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
10883 "transient_error" => LegalHoldsListHeldRevisionsError::TransientError,
10884 "legal_hold_still_empty" => LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty,
10885 "inactive_legal_hold" => LegalHoldsListHeldRevisionsError::InactiveLegalHold,
10886 _ => LegalHoldsListHeldRevisionsError::Other,
10887 };
10888 crate::eat_json_fields(&mut map)?;
10889 Ok(value)
10890 }
10891 }
10892 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10893 "insufficient_permissions",
10894 "other",
10895 "transient_error",
10896 "legal_hold_still_empty",
10897 "inactive_legal_hold"];
10898 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsError", VARIANTS, EnumVisitor)
10899 }
10900}
10901
10902impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsError {
10903 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10904 use serde::ser::SerializeStruct;
10906 match self {
10907 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => {
10908 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10910 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10911 s.end()
10912 }
10913 LegalHoldsListHeldRevisionsError::InsufficientPermissions => {
10914 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10916 s.serialize_field(".tag", "insufficient_permissions")?;
10917 s.end()
10918 }
10919 LegalHoldsListHeldRevisionsError::TransientError => {
10920 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10922 s.serialize_field(".tag", "transient_error")?;
10923 s.end()
10924 }
10925 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => {
10926 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10928 s.serialize_field(".tag", "legal_hold_still_empty")?;
10929 s.end()
10930 }
10931 LegalHoldsListHeldRevisionsError::InactiveLegalHold => {
10932 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10934 s.serialize_field(".tag", "inactive_legal_hold")?;
10935 s.end()
10936 }
10937 LegalHoldsListHeldRevisionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10938 }
10939 }
10940}
10941
10942impl ::std::error::Error for LegalHoldsListHeldRevisionsError {
10943}
10944
10945impl ::std::fmt::Display for LegalHoldsListHeldRevisionsError {
10946 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10947 match self {
10948 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10949 LegalHoldsListHeldRevisionsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10950 LegalHoldsListHeldRevisionsError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10951 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => f.write_str("The legal hold is not holding any revisions yet."),
10952 LegalHoldsListHeldRevisionsError::InactiveLegalHold => f.write_str("Trying to list revisions for an inactive legal hold."),
10953 _ => write!(f, "{:?}", *self),
10954 }
10955 }
10956}
10957
10958impl From<LegalHoldsError> for LegalHoldsListHeldRevisionsError {
10960 fn from(parent: LegalHoldsError) -> Self {
10961 match parent {
10962 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
10963 LegalHoldsError::InsufficientPermissions => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
10964 LegalHoldsError::Other => LegalHoldsListHeldRevisionsError::Other,
10965 }
10966 }
10967}
10968#[derive(Debug, Clone, PartialEq, Eq, Default)]
10969#[non_exhaustive] pub struct LegalHoldsListPoliciesArg {
10971 pub include_released: bool,
10973}
10974
10975impl LegalHoldsListPoliciesArg {
10976 pub fn with_include_released(mut self, value: bool) -> Self {
10977 self.include_released = value;
10978 self
10979 }
10980}
10981
10982const LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS: &[&str] = &["include_released"];
10983impl LegalHoldsListPoliciesArg {
10984 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10986 mut map: V,
10987 ) -> Result<LegalHoldsListPoliciesArg, V::Error> {
10988 let mut field_include_released = None;
10989 while let Some(key) = map.next_key::<&str>()? {
10990 match key {
10991 "include_released" => {
10992 if field_include_released.is_some() {
10993 return Err(::serde::de::Error::duplicate_field("include_released"));
10994 }
10995 field_include_released = Some(map.next_value()?);
10996 }
10997 _ => {
10998 map.next_value::<::serde_json::Value>()?;
11000 }
11001 }
11002 }
11003 let result = LegalHoldsListPoliciesArg {
11004 include_released: field_include_released.unwrap_or(false),
11005 };
11006 Ok(result)
11007 }
11008
11009 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11010 &self,
11011 s: &mut S::SerializeStruct,
11012 ) -> Result<(), S::Error> {
11013 use serde::ser::SerializeStruct;
11014 if self.include_released {
11015 s.serialize_field("include_released", &self.include_released)?;
11016 }
11017 Ok(())
11018 }
11019}
11020
11021impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesArg {
11022 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11023 use serde::de::{MapAccess, Visitor};
11025 struct StructVisitor;
11026 impl<'de> Visitor<'de> for StructVisitor {
11027 type Value = LegalHoldsListPoliciesArg;
11028 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11029 f.write_str("a LegalHoldsListPoliciesArg struct")
11030 }
11031 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11032 LegalHoldsListPoliciesArg::internal_deserialize(map)
11033 }
11034 }
11035 deserializer.deserialize_struct("LegalHoldsListPoliciesArg", LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS, StructVisitor)
11036 }
11037}
11038
11039impl ::serde::ser::Serialize for LegalHoldsListPoliciesArg {
11040 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11041 use serde::ser::SerializeStruct;
11043 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesArg", 1)?;
11044 self.internal_serialize::<S>(&mut s)?;
11045 s.end()
11046 }
11047}
11048
11049#[derive(Debug, Clone, PartialEq, Eq)]
11050#[non_exhaustive] pub enum LegalHoldsListPoliciesError {
11052 UnknownLegalHoldError,
11054 InsufficientPermissions,
11056 TransientError,
11058 Other,
11061}
11062
11063impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesError {
11064 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11065 use serde::de::{self, MapAccess, Visitor};
11067 struct EnumVisitor;
11068 impl<'de> Visitor<'de> for EnumVisitor {
11069 type Value = LegalHoldsListPoliciesError;
11070 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11071 f.write_str("a LegalHoldsListPoliciesError structure")
11072 }
11073 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11074 let tag: &str = match map.next_key()? {
11075 Some(".tag") => map.next_value()?,
11076 _ => return Err(de::Error::missing_field(".tag"))
11077 };
11078 let value = match tag {
11079 "unknown_legal_hold_error" => LegalHoldsListPoliciesError::UnknownLegalHoldError,
11080 "insufficient_permissions" => LegalHoldsListPoliciesError::InsufficientPermissions,
11081 "transient_error" => LegalHoldsListPoliciesError::TransientError,
11082 _ => LegalHoldsListPoliciesError::Other,
11083 };
11084 crate::eat_json_fields(&mut map)?;
11085 Ok(value)
11086 }
11087 }
11088 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
11089 "insufficient_permissions",
11090 "other",
11091 "transient_error"];
11092 deserializer.deserialize_struct("LegalHoldsListPoliciesError", VARIANTS, EnumVisitor)
11093 }
11094}
11095
11096impl ::serde::ser::Serialize for LegalHoldsListPoliciesError {
11097 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11098 use serde::ser::SerializeStruct;
11100 match self {
11101 LegalHoldsListPoliciesError::UnknownLegalHoldError => {
11102 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
11104 s.serialize_field(".tag", "unknown_legal_hold_error")?;
11105 s.end()
11106 }
11107 LegalHoldsListPoliciesError::InsufficientPermissions => {
11108 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
11110 s.serialize_field(".tag", "insufficient_permissions")?;
11111 s.end()
11112 }
11113 LegalHoldsListPoliciesError::TransientError => {
11114 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
11116 s.serialize_field(".tag", "transient_error")?;
11117 s.end()
11118 }
11119 LegalHoldsListPoliciesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11120 }
11121 }
11122}
11123
11124impl ::std::error::Error for LegalHoldsListPoliciesError {
11125}
11126
11127impl ::std::fmt::Display for LegalHoldsListPoliciesError {
11128 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11129 match self {
11130 LegalHoldsListPoliciesError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
11131 LegalHoldsListPoliciesError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
11132 LegalHoldsListPoliciesError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
11133 _ => write!(f, "{:?}", *self),
11134 }
11135 }
11136}
11137
11138impl From<LegalHoldsError> for LegalHoldsListPoliciesError {
11140 fn from(parent: LegalHoldsError) -> Self {
11141 match parent {
11142 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListPoliciesError::UnknownLegalHoldError,
11143 LegalHoldsError::InsufficientPermissions => LegalHoldsListPoliciesError::InsufficientPermissions,
11144 LegalHoldsError::Other => LegalHoldsListPoliciesError::Other,
11145 }
11146 }
11147}
11148#[derive(Debug, Clone, PartialEq, Eq)]
11149#[non_exhaustive] pub struct LegalHoldsListPoliciesResult {
11151 pub policies: Vec<LegalHoldPolicy>,
11152}
11153
11154impl LegalHoldsListPoliciesResult {
11155 pub fn new(policies: Vec<LegalHoldPolicy>) -> Self {
11156 LegalHoldsListPoliciesResult {
11157 policies,
11158 }
11159 }
11160}
11161
11162const LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS: &[&str] = &["policies"];
11163impl LegalHoldsListPoliciesResult {
11164 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11165 map: V,
11166 ) -> Result<LegalHoldsListPoliciesResult, V::Error> {
11167 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11168 }
11169
11170 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11171 mut map: V,
11172 optional: bool,
11173 ) -> Result<Option<LegalHoldsListPoliciesResult>, V::Error> {
11174 let mut field_policies = None;
11175 let mut nothing = true;
11176 while let Some(key) = map.next_key::<&str>()? {
11177 nothing = false;
11178 match key {
11179 "policies" => {
11180 if field_policies.is_some() {
11181 return Err(::serde::de::Error::duplicate_field("policies"));
11182 }
11183 field_policies = Some(map.next_value()?);
11184 }
11185 _ => {
11186 map.next_value::<::serde_json::Value>()?;
11188 }
11189 }
11190 }
11191 if optional && nothing {
11192 return Ok(None);
11193 }
11194 let result = LegalHoldsListPoliciesResult {
11195 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
11196 };
11197 Ok(Some(result))
11198 }
11199
11200 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11201 &self,
11202 s: &mut S::SerializeStruct,
11203 ) -> Result<(), S::Error> {
11204 use serde::ser::SerializeStruct;
11205 s.serialize_field("policies", &self.policies)?;
11206 Ok(())
11207 }
11208}
11209
11210impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesResult {
11211 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11212 use serde::de::{MapAccess, Visitor};
11214 struct StructVisitor;
11215 impl<'de> Visitor<'de> for StructVisitor {
11216 type Value = LegalHoldsListPoliciesResult;
11217 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11218 f.write_str("a LegalHoldsListPoliciesResult struct")
11219 }
11220 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11221 LegalHoldsListPoliciesResult::internal_deserialize(map)
11222 }
11223 }
11224 deserializer.deserialize_struct("LegalHoldsListPoliciesResult", LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS, StructVisitor)
11225 }
11226}
11227
11228impl ::serde::ser::Serialize for LegalHoldsListPoliciesResult {
11229 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11230 use serde::ser::SerializeStruct;
11232 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesResult", 1)?;
11233 self.internal_serialize::<S>(&mut s)?;
11234 s.end()
11235 }
11236}
11237
11238#[derive(Debug, Clone, PartialEq, Eq)]
11239#[non_exhaustive] pub struct LegalHoldsPolicyCreateArg {
11241 pub name: LegalHoldPolicyName,
11243 pub members: Vec<crate::types::team_common::TeamMemberId>,
11245 pub description: Option<LegalHoldPolicyDescription>,
11247 pub start_date: Option<crate::types::common::DropboxTimestamp>,
11249 pub end_date: Option<crate::types::common::DropboxTimestamp>,
11251}
11252
11253impl LegalHoldsPolicyCreateArg {
11254 pub fn new(
11255 name: LegalHoldPolicyName,
11256 members: Vec<crate::types::team_common::TeamMemberId>,
11257 ) -> Self {
11258 LegalHoldsPolicyCreateArg {
11259 name,
11260 members,
11261 description: None,
11262 start_date: None,
11263 end_date: None,
11264 }
11265 }
11266
11267 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
11268 self.description = Some(value);
11269 self
11270 }
11271
11272 pub fn with_start_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
11273 self.start_date = Some(value);
11274 self
11275 }
11276
11277 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
11278 self.end_date = Some(value);
11279 self
11280 }
11281}
11282
11283const LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS: &[&str] = &["name",
11284 "members",
11285 "description",
11286 "start_date",
11287 "end_date"];
11288impl LegalHoldsPolicyCreateArg {
11289 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11290 map: V,
11291 ) -> Result<LegalHoldsPolicyCreateArg, V::Error> {
11292 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11293 }
11294
11295 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11296 mut map: V,
11297 optional: bool,
11298 ) -> Result<Option<LegalHoldsPolicyCreateArg>, V::Error> {
11299 let mut field_name = None;
11300 let mut field_members = None;
11301 let mut field_description = None;
11302 let mut field_start_date = None;
11303 let mut field_end_date = None;
11304 let mut nothing = true;
11305 while let Some(key) = map.next_key::<&str>()? {
11306 nothing = false;
11307 match key {
11308 "name" => {
11309 if field_name.is_some() {
11310 return Err(::serde::de::Error::duplicate_field("name"));
11311 }
11312 field_name = Some(map.next_value()?);
11313 }
11314 "members" => {
11315 if field_members.is_some() {
11316 return Err(::serde::de::Error::duplicate_field("members"));
11317 }
11318 field_members = Some(map.next_value()?);
11319 }
11320 "description" => {
11321 if field_description.is_some() {
11322 return Err(::serde::de::Error::duplicate_field("description"));
11323 }
11324 field_description = Some(map.next_value()?);
11325 }
11326 "start_date" => {
11327 if field_start_date.is_some() {
11328 return Err(::serde::de::Error::duplicate_field("start_date"));
11329 }
11330 field_start_date = Some(map.next_value()?);
11331 }
11332 "end_date" => {
11333 if field_end_date.is_some() {
11334 return Err(::serde::de::Error::duplicate_field("end_date"));
11335 }
11336 field_end_date = Some(map.next_value()?);
11337 }
11338 _ => {
11339 map.next_value::<::serde_json::Value>()?;
11341 }
11342 }
11343 }
11344 if optional && nothing {
11345 return Ok(None);
11346 }
11347 let result = LegalHoldsPolicyCreateArg {
11348 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
11349 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
11350 description: field_description.and_then(Option::flatten),
11351 start_date: field_start_date.and_then(Option::flatten),
11352 end_date: field_end_date.and_then(Option::flatten),
11353 };
11354 Ok(Some(result))
11355 }
11356
11357 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11358 &self,
11359 s: &mut S::SerializeStruct,
11360 ) -> Result<(), S::Error> {
11361 use serde::ser::SerializeStruct;
11362 s.serialize_field("name", &self.name)?;
11363 s.serialize_field("members", &self.members)?;
11364 if let Some(val) = &self.description {
11365 s.serialize_field("description", val)?;
11366 }
11367 if let Some(val) = &self.start_date {
11368 s.serialize_field("start_date", val)?;
11369 }
11370 if let Some(val) = &self.end_date {
11371 s.serialize_field("end_date", val)?;
11372 }
11373 Ok(())
11374 }
11375}
11376
11377impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateArg {
11378 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11379 use serde::de::{MapAccess, Visitor};
11381 struct StructVisitor;
11382 impl<'de> Visitor<'de> for StructVisitor {
11383 type Value = LegalHoldsPolicyCreateArg;
11384 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11385 f.write_str("a LegalHoldsPolicyCreateArg struct")
11386 }
11387 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11388 LegalHoldsPolicyCreateArg::internal_deserialize(map)
11389 }
11390 }
11391 deserializer.deserialize_struct("LegalHoldsPolicyCreateArg", LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS, StructVisitor)
11392 }
11393}
11394
11395impl ::serde::ser::Serialize for LegalHoldsPolicyCreateArg {
11396 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11397 use serde::ser::SerializeStruct;
11399 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateArg", 5)?;
11400 self.internal_serialize::<S>(&mut s)?;
11401 s.end()
11402 }
11403}
11404
11405#[derive(Debug, Clone, PartialEq, Eq)]
11406#[non_exhaustive] pub enum LegalHoldsPolicyCreateError {
11408 UnknownLegalHoldError,
11410 InsufficientPermissions,
11412 StartDateIsLaterThanEndDate,
11414 EmptyMembersList,
11416 InvalidMembers,
11418 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11420 TransientError,
11422 NameMustBeUnique,
11424 TeamExceededLegalHoldQuota,
11426 InvalidDate,
11428 Other,
11431}
11432
11433impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateError {
11434 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11435 use serde::de::{self, MapAccess, Visitor};
11437 struct EnumVisitor;
11438 impl<'de> Visitor<'de> for EnumVisitor {
11439 type Value = LegalHoldsPolicyCreateError;
11440 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11441 f.write_str("a LegalHoldsPolicyCreateError structure")
11442 }
11443 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11444 let tag: &str = match map.next_key()? {
11445 Some(".tag") => map.next_value()?,
11446 _ => return Err(de::Error::missing_field(".tag"))
11447 };
11448 let value = match tag {
11449 "unknown_legal_hold_error" => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
11450 "insufficient_permissions" => LegalHoldsPolicyCreateError::InsufficientPermissions,
11451 "start_date_is_later_than_end_date" => LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate,
11452 "empty_members_list" => LegalHoldsPolicyCreateError::EmptyMembersList,
11453 "invalid_members" => LegalHoldsPolicyCreateError::InvalidMembers,
11454 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11455 "transient_error" => LegalHoldsPolicyCreateError::TransientError,
11456 "name_must_be_unique" => LegalHoldsPolicyCreateError::NameMustBeUnique,
11457 "team_exceeded_legal_hold_quota" => LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota,
11458 "invalid_date" => LegalHoldsPolicyCreateError::InvalidDate,
11459 _ => LegalHoldsPolicyCreateError::Other,
11460 };
11461 crate::eat_json_fields(&mut map)?;
11462 Ok(value)
11463 }
11464 }
11465 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
11466 "insufficient_permissions",
11467 "other",
11468 "start_date_is_later_than_end_date",
11469 "empty_members_list",
11470 "invalid_members",
11471 "number_of_users_on_hold_is_greater_than_hold_limitation",
11472 "transient_error",
11473 "name_must_be_unique",
11474 "team_exceeded_legal_hold_quota",
11475 "invalid_date"];
11476 deserializer.deserialize_struct("LegalHoldsPolicyCreateError", VARIANTS, EnumVisitor)
11477 }
11478}
11479
11480impl ::serde::ser::Serialize for LegalHoldsPolicyCreateError {
11481 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11482 use serde::ser::SerializeStruct;
11484 match self {
11485 LegalHoldsPolicyCreateError::UnknownLegalHoldError => {
11486 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11488 s.serialize_field(".tag", "unknown_legal_hold_error")?;
11489 s.end()
11490 }
11491 LegalHoldsPolicyCreateError::InsufficientPermissions => {
11492 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11494 s.serialize_field(".tag", "insufficient_permissions")?;
11495 s.end()
11496 }
11497 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => {
11498 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11500 s.serialize_field(".tag", "start_date_is_later_than_end_date")?;
11501 s.end()
11502 }
11503 LegalHoldsPolicyCreateError::EmptyMembersList => {
11504 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11506 s.serialize_field(".tag", "empty_members_list")?;
11507 s.end()
11508 }
11509 LegalHoldsPolicyCreateError::InvalidMembers => {
11510 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11512 s.serialize_field(".tag", "invalid_members")?;
11513 s.end()
11514 }
11515 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
11516 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11518 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
11519 s.end()
11520 }
11521 LegalHoldsPolicyCreateError::TransientError => {
11522 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11524 s.serialize_field(".tag", "transient_error")?;
11525 s.end()
11526 }
11527 LegalHoldsPolicyCreateError::NameMustBeUnique => {
11528 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11530 s.serialize_field(".tag", "name_must_be_unique")?;
11531 s.end()
11532 }
11533 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => {
11534 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11536 s.serialize_field(".tag", "team_exceeded_legal_hold_quota")?;
11537 s.end()
11538 }
11539 LegalHoldsPolicyCreateError::InvalidDate => {
11540 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
11542 s.serialize_field(".tag", "invalid_date")?;
11543 s.end()
11544 }
11545 LegalHoldsPolicyCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11546 }
11547 }
11548}
11549
11550impl ::std::error::Error for LegalHoldsPolicyCreateError {
11551}
11552
11553impl ::std::fmt::Display for LegalHoldsPolicyCreateError {
11554 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11555 match self {
11556 LegalHoldsPolicyCreateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
11557 LegalHoldsPolicyCreateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
11558 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => f.write_str("Start date must be earlier than end date."),
11559 LegalHoldsPolicyCreateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
11560 LegalHoldsPolicyCreateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
11561 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
11562 LegalHoldsPolicyCreateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
11563 LegalHoldsPolicyCreateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
11564 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => f.write_str("Team exceeded legal hold quota."),
11565 LegalHoldsPolicyCreateError::InvalidDate => f.write_str("The provided date is invalid."),
11566 _ => write!(f, "{:?}", *self),
11567 }
11568 }
11569}
11570
11571impl From<LegalHoldsError> for LegalHoldsPolicyCreateError {
11573 fn from(parent: LegalHoldsError) -> Self {
11574 match parent {
11575 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
11576 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyCreateError::InsufficientPermissions,
11577 LegalHoldsError::Other => LegalHoldsPolicyCreateError::Other,
11578 }
11579 }
11580}
11581#[derive(Debug, Clone, PartialEq, Eq)]
11582#[non_exhaustive] pub struct LegalHoldsPolicyReleaseArg {
11584 pub id: LegalHoldId,
11586}
11587
11588impl LegalHoldsPolicyReleaseArg {
11589 pub fn new(id: LegalHoldId) -> Self {
11590 LegalHoldsPolicyReleaseArg {
11591 id,
11592 }
11593 }
11594}
11595
11596const LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS: &[&str] = &["id"];
11597impl LegalHoldsPolicyReleaseArg {
11598 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11599 map: V,
11600 ) -> Result<LegalHoldsPolicyReleaseArg, V::Error> {
11601 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11602 }
11603
11604 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11605 mut map: V,
11606 optional: bool,
11607 ) -> Result<Option<LegalHoldsPolicyReleaseArg>, V::Error> {
11608 let mut field_id = None;
11609 let mut nothing = true;
11610 while let Some(key) = map.next_key::<&str>()? {
11611 nothing = false;
11612 match key {
11613 "id" => {
11614 if field_id.is_some() {
11615 return Err(::serde::de::Error::duplicate_field("id"));
11616 }
11617 field_id = Some(map.next_value()?);
11618 }
11619 _ => {
11620 map.next_value::<::serde_json::Value>()?;
11622 }
11623 }
11624 }
11625 if optional && nothing {
11626 return Ok(None);
11627 }
11628 let result = LegalHoldsPolicyReleaseArg {
11629 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
11630 };
11631 Ok(Some(result))
11632 }
11633
11634 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11635 &self,
11636 s: &mut S::SerializeStruct,
11637 ) -> Result<(), S::Error> {
11638 use serde::ser::SerializeStruct;
11639 s.serialize_field("id", &self.id)?;
11640 Ok(())
11641 }
11642}
11643
11644impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseArg {
11645 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11646 use serde::de::{MapAccess, Visitor};
11648 struct StructVisitor;
11649 impl<'de> Visitor<'de> for StructVisitor {
11650 type Value = LegalHoldsPolicyReleaseArg;
11651 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11652 f.write_str("a LegalHoldsPolicyReleaseArg struct")
11653 }
11654 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11655 LegalHoldsPolicyReleaseArg::internal_deserialize(map)
11656 }
11657 }
11658 deserializer.deserialize_struct("LegalHoldsPolicyReleaseArg", LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS, StructVisitor)
11659 }
11660}
11661
11662impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseArg {
11663 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11664 use serde::ser::SerializeStruct;
11666 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseArg", 1)?;
11667 self.internal_serialize::<S>(&mut s)?;
11668 s.end()
11669 }
11670}
11671
11672#[derive(Debug, Clone, PartialEq, Eq)]
11673#[non_exhaustive] pub enum LegalHoldsPolicyReleaseError {
11675 UnknownLegalHoldError,
11677 InsufficientPermissions,
11679 LegalHoldPerformingAnotherOperation,
11681 LegalHoldAlreadyReleasing,
11683 LegalHoldPolicyNotFound,
11686 Other,
11689}
11690
11691impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseError {
11692 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11693 use serde::de::{self, MapAccess, Visitor};
11695 struct EnumVisitor;
11696 impl<'de> Visitor<'de> for EnumVisitor {
11697 type Value = LegalHoldsPolicyReleaseError;
11698 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11699 f.write_str("a LegalHoldsPolicyReleaseError structure")
11700 }
11701 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11702 let tag: &str = match map.next_key()? {
11703 Some(".tag") => map.next_value()?,
11704 _ => return Err(de::Error::missing_field(".tag"))
11705 };
11706 let value = match tag {
11707 "unknown_legal_hold_error" => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
11708 "insufficient_permissions" => LegalHoldsPolicyReleaseError::InsufficientPermissions,
11709 "legal_hold_performing_another_operation" => LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation,
11710 "legal_hold_already_releasing" => LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing,
11711 "legal_hold_policy_not_found" => LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound,
11712 _ => LegalHoldsPolicyReleaseError::Other,
11713 };
11714 crate::eat_json_fields(&mut map)?;
11715 Ok(value)
11716 }
11717 }
11718 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
11719 "insufficient_permissions",
11720 "other",
11721 "legal_hold_performing_another_operation",
11722 "legal_hold_already_releasing",
11723 "legal_hold_policy_not_found"];
11724 deserializer.deserialize_struct("LegalHoldsPolicyReleaseError", VARIANTS, EnumVisitor)
11725 }
11726}
11727
11728impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseError {
11729 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11730 use serde::ser::SerializeStruct;
11732 match self {
11733 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => {
11734 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
11736 s.serialize_field(".tag", "unknown_legal_hold_error")?;
11737 s.end()
11738 }
11739 LegalHoldsPolicyReleaseError::InsufficientPermissions => {
11740 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
11742 s.serialize_field(".tag", "insufficient_permissions")?;
11743 s.end()
11744 }
11745 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => {
11746 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
11748 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
11749 s.end()
11750 }
11751 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => {
11752 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
11754 s.serialize_field(".tag", "legal_hold_already_releasing")?;
11755 s.end()
11756 }
11757 LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound => {
11758 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
11760 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
11761 s.end()
11762 }
11763 LegalHoldsPolicyReleaseError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11764 }
11765 }
11766}
11767
11768impl ::std::error::Error for LegalHoldsPolicyReleaseError {
11769}
11770
11771impl ::std::fmt::Display for LegalHoldsPolicyReleaseError {
11772 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11773 match self {
11774 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
11775 LegalHoldsPolicyReleaseError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
11776 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
11777 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => f.write_str("Legal hold is currently performing a release or is already released."),
11778 _ => write!(f, "{:?}", *self),
11779 }
11780 }
11781}
11782
11783impl From<LegalHoldsError> for LegalHoldsPolicyReleaseError {
11785 fn from(parent: LegalHoldsError) -> Self {
11786 match parent {
11787 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
11788 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyReleaseError::InsufficientPermissions,
11789 LegalHoldsError::Other => LegalHoldsPolicyReleaseError::Other,
11790 }
11791 }
11792}
11793#[derive(Debug, Clone, PartialEq, Eq)]
11794#[non_exhaustive] pub struct LegalHoldsPolicyUpdateArg {
11796 pub id: LegalHoldId,
11798 pub name: Option<LegalHoldPolicyName>,
11800 pub description: Option<LegalHoldPolicyDescription>,
11802 pub members: Option<Vec<crate::types::team_common::TeamMemberId>>,
11804}
11805
11806impl LegalHoldsPolicyUpdateArg {
11807 pub fn new(id: LegalHoldId) -> Self {
11808 LegalHoldsPolicyUpdateArg {
11809 id,
11810 name: None,
11811 description: None,
11812 members: None,
11813 }
11814 }
11815
11816 pub fn with_name(mut self, value: LegalHoldPolicyName) -> Self {
11817 self.name = Some(value);
11818 self
11819 }
11820
11821 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
11822 self.description = Some(value);
11823 self
11824 }
11825
11826 pub fn with_members(mut self, value: Vec<crate::types::team_common::TeamMemberId>) -> Self {
11827 self.members = Some(value);
11828 self
11829 }
11830}
11831
11832const LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS: &[&str] = &["id",
11833 "name",
11834 "description",
11835 "members"];
11836impl LegalHoldsPolicyUpdateArg {
11837 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11838 map: V,
11839 ) -> Result<LegalHoldsPolicyUpdateArg, V::Error> {
11840 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11841 }
11842
11843 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11844 mut map: V,
11845 optional: bool,
11846 ) -> Result<Option<LegalHoldsPolicyUpdateArg>, V::Error> {
11847 let mut field_id = None;
11848 let mut field_name = None;
11849 let mut field_description = None;
11850 let mut field_members = None;
11851 let mut nothing = true;
11852 while let Some(key) = map.next_key::<&str>()? {
11853 nothing = false;
11854 match key {
11855 "id" => {
11856 if field_id.is_some() {
11857 return Err(::serde::de::Error::duplicate_field("id"));
11858 }
11859 field_id = Some(map.next_value()?);
11860 }
11861 "name" => {
11862 if field_name.is_some() {
11863 return Err(::serde::de::Error::duplicate_field("name"));
11864 }
11865 field_name = Some(map.next_value()?);
11866 }
11867 "description" => {
11868 if field_description.is_some() {
11869 return Err(::serde::de::Error::duplicate_field("description"));
11870 }
11871 field_description = Some(map.next_value()?);
11872 }
11873 "members" => {
11874 if field_members.is_some() {
11875 return Err(::serde::de::Error::duplicate_field("members"));
11876 }
11877 field_members = Some(map.next_value()?);
11878 }
11879 _ => {
11880 map.next_value::<::serde_json::Value>()?;
11882 }
11883 }
11884 }
11885 if optional && nothing {
11886 return Ok(None);
11887 }
11888 let result = LegalHoldsPolicyUpdateArg {
11889 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
11890 name: field_name.and_then(Option::flatten),
11891 description: field_description.and_then(Option::flatten),
11892 members: field_members.and_then(Option::flatten),
11893 };
11894 Ok(Some(result))
11895 }
11896
11897 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11898 &self,
11899 s: &mut S::SerializeStruct,
11900 ) -> Result<(), S::Error> {
11901 use serde::ser::SerializeStruct;
11902 s.serialize_field("id", &self.id)?;
11903 if let Some(val) = &self.name {
11904 s.serialize_field("name", val)?;
11905 }
11906 if let Some(val) = &self.description {
11907 s.serialize_field("description", val)?;
11908 }
11909 if let Some(val) = &self.members {
11910 s.serialize_field("members", val)?;
11911 }
11912 Ok(())
11913 }
11914}
11915
11916impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateArg {
11917 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11918 use serde::de::{MapAccess, Visitor};
11920 struct StructVisitor;
11921 impl<'de> Visitor<'de> for StructVisitor {
11922 type Value = LegalHoldsPolicyUpdateArg;
11923 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11924 f.write_str("a LegalHoldsPolicyUpdateArg struct")
11925 }
11926 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11927 LegalHoldsPolicyUpdateArg::internal_deserialize(map)
11928 }
11929 }
11930 deserializer.deserialize_struct("LegalHoldsPolicyUpdateArg", LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS, StructVisitor)
11931 }
11932}
11933
11934impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateArg {
11935 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11936 use serde::ser::SerializeStruct;
11938 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateArg", 4)?;
11939 self.internal_serialize::<S>(&mut s)?;
11940 s.end()
11941 }
11942}
11943
11944#[derive(Debug, Clone, PartialEq, Eq)]
11945#[non_exhaustive] pub enum LegalHoldsPolicyUpdateError {
11947 UnknownLegalHoldError,
11949 InsufficientPermissions,
11951 TransientError,
11953 InactiveLegalHold,
11955 LegalHoldPerformingAnotherOperation,
11957 InvalidMembers,
11959 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11961 EmptyMembersList,
11963 NameMustBeUnique,
11965 LegalHoldPolicyNotFound,
11968 Other,
11971}
11972
11973impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateError {
11974 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11975 use serde::de::{self, MapAccess, Visitor};
11977 struct EnumVisitor;
11978 impl<'de> Visitor<'de> for EnumVisitor {
11979 type Value = LegalHoldsPolicyUpdateError;
11980 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11981 f.write_str("a LegalHoldsPolicyUpdateError structure")
11982 }
11983 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11984 let tag: &str = match map.next_key()? {
11985 Some(".tag") => map.next_value()?,
11986 _ => return Err(de::Error::missing_field(".tag"))
11987 };
11988 let value = match tag {
11989 "unknown_legal_hold_error" => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11990 "insufficient_permissions" => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11991 "transient_error" => LegalHoldsPolicyUpdateError::TransientError,
11992 "inactive_legal_hold" => LegalHoldsPolicyUpdateError::InactiveLegalHold,
11993 "legal_hold_performing_another_operation" => LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation,
11994 "invalid_members" => LegalHoldsPolicyUpdateError::InvalidMembers,
11995 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11996 "empty_members_list" => LegalHoldsPolicyUpdateError::EmptyMembersList,
11997 "name_must_be_unique" => LegalHoldsPolicyUpdateError::NameMustBeUnique,
11998 "legal_hold_policy_not_found" => LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound,
11999 _ => LegalHoldsPolicyUpdateError::Other,
12000 };
12001 crate::eat_json_fields(&mut map)?;
12002 Ok(value)
12003 }
12004 }
12005 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
12006 "insufficient_permissions",
12007 "other",
12008 "transient_error",
12009 "inactive_legal_hold",
12010 "legal_hold_performing_another_operation",
12011 "invalid_members",
12012 "number_of_users_on_hold_is_greater_than_hold_limitation",
12013 "empty_members_list",
12014 "name_must_be_unique",
12015 "legal_hold_policy_not_found"];
12016 deserializer.deserialize_struct("LegalHoldsPolicyUpdateError", VARIANTS, EnumVisitor)
12017 }
12018}
12019
12020impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateError {
12021 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12022 use serde::ser::SerializeStruct;
12024 match self {
12025 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => {
12026 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12028 s.serialize_field(".tag", "unknown_legal_hold_error")?;
12029 s.end()
12030 }
12031 LegalHoldsPolicyUpdateError::InsufficientPermissions => {
12032 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12034 s.serialize_field(".tag", "insufficient_permissions")?;
12035 s.end()
12036 }
12037 LegalHoldsPolicyUpdateError::TransientError => {
12038 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12040 s.serialize_field(".tag", "transient_error")?;
12041 s.end()
12042 }
12043 LegalHoldsPolicyUpdateError::InactiveLegalHold => {
12044 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12046 s.serialize_field(".tag", "inactive_legal_hold")?;
12047 s.end()
12048 }
12049 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => {
12050 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12052 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
12053 s.end()
12054 }
12055 LegalHoldsPolicyUpdateError::InvalidMembers => {
12056 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12058 s.serialize_field(".tag", "invalid_members")?;
12059 s.end()
12060 }
12061 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
12062 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12064 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
12065 s.end()
12066 }
12067 LegalHoldsPolicyUpdateError::EmptyMembersList => {
12068 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12070 s.serialize_field(".tag", "empty_members_list")?;
12071 s.end()
12072 }
12073 LegalHoldsPolicyUpdateError::NameMustBeUnique => {
12074 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12076 s.serialize_field(".tag", "name_must_be_unique")?;
12077 s.end()
12078 }
12079 LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound => {
12080 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
12082 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
12083 s.end()
12084 }
12085 LegalHoldsPolicyUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12086 }
12087 }
12088}
12089
12090impl ::std::error::Error for LegalHoldsPolicyUpdateError {
12091}
12092
12093impl ::std::fmt::Display for LegalHoldsPolicyUpdateError {
12094 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12095 match self {
12096 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
12097 LegalHoldsPolicyUpdateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
12098 LegalHoldsPolicyUpdateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
12099 LegalHoldsPolicyUpdateError::InactiveLegalHold => f.write_str("Trying to release an inactive legal hold."),
12100 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
12101 LegalHoldsPolicyUpdateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
12102 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
12103 LegalHoldsPolicyUpdateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
12104 LegalHoldsPolicyUpdateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
12105 _ => write!(f, "{:?}", *self),
12106 }
12107 }
12108}
12109
12110impl From<LegalHoldsError> for LegalHoldsPolicyUpdateError {
12112 fn from(parent: LegalHoldsError) -> Self {
12113 match parent {
12114 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
12115 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyUpdateError::InsufficientPermissions,
12116 LegalHoldsError::Other => LegalHoldsPolicyUpdateError::Other,
12117 }
12118 }
12119}
12120#[derive(Debug, Clone, PartialEq, Eq)]
12121#[non_exhaustive] pub struct ListMemberAppsArg {
12123 pub team_member_id: String,
12125}
12126
12127impl ListMemberAppsArg {
12128 pub fn new(team_member_id: String) -> Self {
12129 ListMemberAppsArg {
12130 team_member_id,
12131 }
12132 }
12133}
12134
12135const LIST_MEMBER_APPS_ARG_FIELDS: &[&str] = &["team_member_id"];
12136impl ListMemberAppsArg {
12137 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12138 map: V,
12139 ) -> Result<ListMemberAppsArg, V::Error> {
12140 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12141 }
12142
12143 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12144 mut map: V,
12145 optional: bool,
12146 ) -> Result<Option<ListMemberAppsArg>, V::Error> {
12147 let mut field_team_member_id = None;
12148 let mut nothing = true;
12149 while let Some(key) = map.next_key::<&str>()? {
12150 nothing = false;
12151 match key {
12152 "team_member_id" => {
12153 if field_team_member_id.is_some() {
12154 return Err(::serde::de::Error::duplicate_field("team_member_id"));
12155 }
12156 field_team_member_id = Some(map.next_value()?);
12157 }
12158 _ => {
12159 map.next_value::<::serde_json::Value>()?;
12161 }
12162 }
12163 }
12164 if optional && nothing {
12165 return Ok(None);
12166 }
12167 let result = ListMemberAppsArg {
12168 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
12169 };
12170 Ok(Some(result))
12171 }
12172
12173 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12174 &self,
12175 s: &mut S::SerializeStruct,
12176 ) -> Result<(), S::Error> {
12177 use serde::ser::SerializeStruct;
12178 s.serialize_field("team_member_id", &self.team_member_id)?;
12179 Ok(())
12180 }
12181}
12182
12183impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsArg {
12184 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12185 use serde::de::{MapAccess, Visitor};
12187 struct StructVisitor;
12188 impl<'de> Visitor<'de> for StructVisitor {
12189 type Value = ListMemberAppsArg;
12190 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12191 f.write_str("a ListMemberAppsArg struct")
12192 }
12193 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12194 ListMemberAppsArg::internal_deserialize(map)
12195 }
12196 }
12197 deserializer.deserialize_struct("ListMemberAppsArg", LIST_MEMBER_APPS_ARG_FIELDS, StructVisitor)
12198 }
12199}
12200
12201impl ::serde::ser::Serialize for ListMemberAppsArg {
12202 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12203 use serde::ser::SerializeStruct;
12205 let mut s = serializer.serialize_struct("ListMemberAppsArg", 1)?;
12206 self.internal_serialize::<S>(&mut s)?;
12207 s.end()
12208 }
12209}
12210
12211#[derive(Debug, Clone, PartialEq, Eq)]
12214#[non_exhaustive] pub enum ListMemberAppsError {
12216 MemberNotFound,
12218 Other,
12221}
12222
12223impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsError {
12224 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12225 use serde::de::{self, MapAccess, Visitor};
12227 struct EnumVisitor;
12228 impl<'de> Visitor<'de> for EnumVisitor {
12229 type Value = ListMemberAppsError;
12230 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12231 f.write_str("a ListMemberAppsError structure")
12232 }
12233 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12234 let tag: &str = match map.next_key()? {
12235 Some(".tag") => map.next_value()?,
12236 _ => return Err(de::Error::missing_field(".tag"))
12237 };
12238 let value = match tag {
12239 "member_not_found" => ListMemberAppsError::MemberNotFound,
12240 _ => ListMemberAppsError::Other,
12241 };
12242 crate::eat_json_fields(&mut map)?;
12243 Ok(value)
12244 }
12245 }
12246 const VARIANTS: &[&str] = &["member_not_found",
12247 "other"];
12248 deserializer.deserialize_struct("ListMemberAppsError", VARIANTS, EnumVisitor)
12249 }
12250}
12251
12252impl ::serde::ser::Serialize for ListMemberAppsError {
12253 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12254 use serde::ser::SerializeStruct;
12256 match self {
12257 ListMemberAppsError::MemberNotFound => {
12258 let mut s = serializer.serialize_struct("ListMemberAppsError", 1)?;
12260 s.serialize_field(".tag", "member_not_found")?;
12261 s.end()
12262 }
12263 ListMemberAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12264 }
12265 }
12266}
12267
12268impl ::std::error::Error for ListMemberAppsError {
12269}
12270
12271impl ::std::fmt::Display for ListMemberAppsError {
12272 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12273 match self {
12274 ListMemberAppsError::MemberNotFound => f.write_str("Member not found."),
12275 _ => write!(f, "{:?}", *self),
12276 }
12277 }
12278}
12279
12280#[derive(Debug, Clone, PartialEq, Eq)]
12281#[non_exhaustive] pub struct ListMemberAppsResult {
12283 pub linked_api_apps: Vec<ApiApp>,
12285}
12286
12287impl ListMemberAppsResult {
12288 pub fn new(linked_api_apps: Vec<ApiApp>) -> Self {
12289 ListMemberAppsResult {
12290 linked_api_apps,
12291 }
12292 }
12293}
12294
12295const LIST_MEMBER_APPS_RESULT_FIELDS: &[&str] = &["linked_api_apps"];
12296impl ListMemberAppsResult {
12297 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12298 map: V,
12299 ) -> Result<ListMemberAppsResult, V::Error> {
12300 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12301 }
12302
12303 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12304 mut map: V,
12305 optional: bool,
12306 ) -> Result<Option<ListMemberAppsResult>, V::Error> {
12307 let mut field_linked_api_apps = None;
12308 let mut nothing = true;
12309 while let Some(key) = map.next_key::<&str>()? {
12310 nothing = false;
12311 match key {
12312 "linked_api_apps" => {
12313 if field_linked_api_apps.is_some() {
12314 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
12315 }
12316 field_linked_api_apps = Some(map.next_value()?);
12317 }
12318 _ => {
12319 map.next_value::<::serde_json::Value>()?;
12321 }
12322 }
12323 }
12324 if optional && nothing {
12325 return Ok(None);
12326 }
12327 let result = ListMemberAppsResult {
12328 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
12329 };
12330 Ok(Some(result))
12331 }
12332
12333 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12334 &self,
12335 s: &mut S::SerializeStruct,
12336 ) -> Result<(), S::Error> {
12337 use serde::ser::SerializeStruct;
12338 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
12339 Ok(())
12340 }
12341}
12342
12343impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsResult {
12344 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12345 use serde::de::{MapAccess, Visitor};
12347 struct StructVisitor;
12348 impl<'de> Visitor<'de> for StructVisitor {
12349 type Value = ListMemberAppsResult;
12350 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12351 f.write_str("a ListMemberAppsResult struct")
12352 }
12353 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12354 ListMemberAppsResult::internal_deserialize(map)
12355 }
12356 }
12357 deserializer.deserialize_struct("ListMemberAppsResult", LIST_MEMBER_APPS_RESULT_FIELDS, StructVisitor)
12358 }
12359}
12360
12361impl ::serde::ser::Serialize for ListMemberAppsResult {
12362 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12363 use serde::ser::SerializeStruct;
12365 let mut s = serializer.serialize_struct("ListMemberAppsResult", 1)?;
12366 self.internal_serialize::<S>(&mut s)?;
12367 s.end()
12368 }
12369}
12370
12371#[derive(Debug, Clone, PartialEq, Eq)]
12372#[non_exhaustive] pub struct ListMemberDevicesArg {
12374 pub team_member_id: String,
12376 pub include_web_sessions: bool,
12378 pub include_desktop_clients: bool,
12380 pub include_mobile_clients: bool,
12382}
12383
12384impl ListMemberDevicesArg {
12385 pub fn new(team_member_id: String) -> Self {
12386 ListMemberDevicesArg {
12387 team_member_id,
12388 include_web_sessions: true,
12389 include_desktop_clients: true,
12390 include_mobile_clients: true,
12391 }
12392 }
12393
12394 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12395 self.include_web_sessions = value;
12396 self
12397 }
12398
12399 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12400 self.include_desktop_clients = value;
12401 self
12402 }
12403
12404 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12405 self.include_mobile_clients = value;
12406 self
12407 }
12408}
12409
12410const LIST_MEMBER_DEVICES_ARG_FIELDS: &[&str] = &["team_member_id",
12411 "include_web_sessions",
12412 "include_desktop_clients",
12413 "include_mobile_clients"];
12414impl ListMemberDevicesArg {
12415 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12416 map: V,
12417 ) -> Result<ListMemberDevicesArg, V::Error> {
12418 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12419 }
12420
12421 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12422 mut map: V,
12423 optional: bool,
12424 ) -> Result<Option<ListMemberDevicesArg>, V::Error> {
12425 let mut field_team_member_id = None;
12426 let mut field_include_web_sessions = None;
12427 let mut field_include_desktop_clients = None;
12428 let mut field_include_mobile_clients = None;
12429 let mut nothing = true;
12430 while let Some(key) = map.next_key::<&str>()? {
12431 nothing = false;
12432 match key {
12433 "team_member_id" => {
12434 if field_team_member_id.is_some() {
12435 return Err(::serde::de::Error::duplicate_field("team_member_id"));
12436 }
12437 field_team_member_id = Some(map.next_value()?);
12438 }
12439 "include_web_sessions" => {
12440 if field_include_web_sessions.is_some() {
12441 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12442 }
12443 field_include_web_sessions = Some(map.next_value()?);
12444 }
12445 "include_desktop_clients" => {
12446 if field_include_desktop_clients.is_some() {
12447 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12448 }
12449 field_include_desktop_clients = Some(map.next_value()?);
12450 }
12451 "include_mobile_clients" => {
12452 if field_include_mobile_clients.is_some() {
12453 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12454 }
12455 field_include_mobile_clients = Some(map.next_value()?);
12456 }
12457 _ => {
12458 map.next_value::<::serde_json::Value>()?;
12460 }
12461 }
12462 }
12463 if optional && nothing {
12464 return Ok(None);
12465 }
12466 let result = ListMemberDevicesArg {
12467 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
12468 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12469 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12470 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12471 };
12472 Ok(Some(result))
12473 }
12474
12475 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12476 &self,
12477 s: &mut S::SerializeStruct,
12478 ) -> Result<(), S::Error> {
12479 use serde::ser::SerializeStruct;
12480 s.serialize_field("team_member_id", &self.team_member_id)?;
12481 if !self.include_web_sessions {
12482 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12483 }
12484 if !self.include_desktop_clients {
12485 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12486 }
12487 if !self.include_mobile_clients {
12488 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12489 }
12490 Ok(())
12491 }
12492}
12493
12494impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesArg {
12495 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12496 use serde::de::{MapAccess, Visitor};
12498 struct StructVisitor;
12499 impl<'de> Visitor<'de> for StructVisitor {
12500 type Value = ListMemberDevicesArg;
12501 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12502 f.write_str("a ListMemberDevicesArg struct")
12503 }
12504 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12505 ListMemberDevicesArg::internal_deserialize(map)
12506 }
12507 }
12508 deserializer.deserialize_struct("ListMemberDevicesArg", LIST_MEMBER_DEVICES_ARG_FIELDS, StructVisitor)
12509 }
12510}
12511
12512impl ::serde::ser::Serialize for ListMemberDevicesArg {
12513 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12514 use serde::ser::SerializeStruct;
12516 let mut s = serializer.serialize_struct("ListMemberDevicesArg", 4)?;
12517 self.internal_serialize::<S>(&mut s)?;
12518 s.end()
12519 }
12520}
12521
12522#[derive(Debug, Clone, PartialEq, Eq)]
12523#[non_exhaustive] pub enum ListMemberDevicesError {
12525 MemberNotFound,
12527 Other,
12530}
12531
12532impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesError {
12533 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12534 use serde::de::{self, MapAccess, Visitor};
12536 struct EnumVisitor;
12537 impl<'de> Visitor<'de> for EnumVisitor {
12538 type Value = ListMemberDevicesError;
12539 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12540 f.write_str("a ListMemberDevicesError structure")
12541 }
12542 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12543 let tag: &str = match map.next_key()? {
12544 Some(".tag") => map.next_value()?,
12545 _ => return Err(de::Error::missing_field(".tag"))
12546 };
12547 let value = match tag {
12548 "member_not_found" => ListMemberDevicesError::MemberNotFound,
12549 _ => ListMemberDevicesError::Other,
12550 };
12551 crate::eat_json_fields(&mut map)?;
12552 Ok(value)
12553 }
12554 }
12555 const VARIANTS: &[&str] = &["member_not_found",
12556 "other"];
12557 deserializer.deserialize_struct("ListMemberDevicesError", VARIANTS, EnumVisitor)
12558 }
12559}
12560
12561impl ::serde::ser::Serialize for ListMemberDevicesError {
12562 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12563 use serde::ser::SerializeStruct;
12565 match self {
12566 ListMemberDevicesError::MemberNotFound => {
12567 let mut s = serializer.serialize_struct("ListMemberDevicesError", 1)?;
12569 s.serialize_field(".tag", "member_not_found")?;
12570 s.end()
12571 }
12572 ListMemberDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12573 }
12574 }
12575}
12576
12577impl ::std::error::Error for ListMemberDevicesError {
12578}
12579
12580impl ::std::fmt::Display for ListMemberDevicesError {
12581 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12582 match self {
12583 ListMemberDevicesError::MemberNotFound => f.write_str("Member not found."),
12584 _ => write!(f, "{:?}", *self),
12585 }
12586 }
12587}
12588
12589#[derive(Debug, Clone, PartialEq, Eq, Default)]
12590#[non_exhaustive] pub struct ListMemberDevicesResult {
12592 pub active_web_sessions: Option<Vec<ActiveWebSession>>,
12594 pub desktop_client_sessions: Option<Vec<DesktopClientSession>>,
12596 pub mobile_client_sessions: Option<Vec<MobileClientSession>>,
12598}
12599
12600impl ListMemberDevicesResult {
12601 pub fn with_active_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
12602 self.active_web_sessions = Some(value);
12603 self
12604 }
12605
12606 pub fn with_desktop_client_sessions(mut self, value: Vec<DesktopClientSession>) -> Self {
12607 self.desktop_client_sessions = Some(value);
12608 self
12609 }
12610
12611 pub fn with_mobile_client_sessions(mut self, value: Vec<MobileClientSession>) -> Self {
12612 self.mobile_client_sessions = Some(value);
12613 self
12614 }
12615}
12616
12617const LIST_MEMBER_DEVICES_RESULT_FIELDS: &[&str] = &["active_web_sessions",
12618 "desktop_client_sessions",
12619 "mobile_client_sessions"];
12620impl ListMemberDevicesResult {
12621 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12623 mut map: V,
12624 ) -> Result<ListMemberDevicesResult, V::Error> {
12625 let mut field_active_web_sessions = None;
12626 let mut field_desktop_client_sessions = None;
12627 let mut field_mobile_client_sessions = None;
12628 while let Some(key) = map.next_key::<&str>()? {
12629 match key {
12630 "active_web_sessions" => {
12631 if field_active_web_sessions.is_some() {
12632 return Err(::serde::de::Error::duplicate_field("active_web_sessions"));
12633 }
12634 field_active_web_sessions = Some(map.next_value()?);
12635 }
12636 "desktop_client_sessions" => {
12637 if field_desktop_client_sessions.is_some() {
12638 return Err(::serde::de::Error::duplicate_field("desktop_client_sessions"));
12639 }
12640 field_desktop_client_sessions = Some(map.next_value()?);
12641 }
12642 "mobile_client_sessions" => {
12643 if field_mobile_client_sessions.is_some() {
12644 return Err(::serde::de::Error::duplicate_field("mobile_client_sessions"));
12645 }
12646 field_mobile_client_sessions = Some(map.next_value()?);
12647 }
12648 _ => {
12649 map.next_value::<::serde_json::Value>()?;
12651 }
12652 }
12653 }
12654 let result = ListMemberDevicesResult {
12655 active_web_sessions: field_active_web_sessions.and_then(Option::flatten),
12656 desktop_client_sessions: field_desktop_client_sessions.and_then(Option::flatten),
12657 mobile_client_sessions: field_mobile_client_sessions.and_then(Option::flatten),
12658 };
12659 Ok(result)
12660 }
12661
12662 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12663 &self,
12664 s: &mut S::SerializeStruct,
12665 ) -> Result<(), S::Error> {
12666 use serde::ser::SerializeStruct;
12667 if let Some(val) = &self.active_web_sessions {
12668 s.serialize_field("active_web_sessions", val)?;
12669 }
12670 if let Some(val) = &self.desktop_client_sessions {
12671 s.serialize_field("desktop_client_sessions", val)?;
12672 }
12673 if let Some(val) = &self.mobile_client_sessions {
12674 s.serialize_field("mobile_client_sessions", val)?;
12675 }
12676 Ok(())
12677 }
12678}
12679
12680impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesResult {
12681 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12682 use serde::de::{MapAccess, Visitor};
12684 struct StructVisitor;
12685 impl<'de> Visitor<'de> for StructVisitor {
12686 type Value = ListMemberDevicesResult;
12687 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12688 f.write_str("a ListMemberDevicesResult struct")
12689 }
12690 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12691 ListMemberDevicesResult::internal_deserialize(map)
12692 }
12693 }
12694 deserializer.deserialize_struct("ListMemberDevicesResult", LIST_MEMBER_DEVICES_RESULT_FIELDS, StructVisitor)
12695 }
12696}
12697
12698impl ::serde::ser::Serialize for ListMemberDevicesResult {
12699 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12700 use serde::ser::SerializeStruct;
12702 let mut s = serializer.serialize_struct("ListMemberDevicesResult", 3)?;
12703 self.internal_serialize::<S>(&mut s)?;
12704 s.end()
12705 }
12706}
12707
12708#[derive(Debug, Clone, PartialEq, Eq, Default)]
12711#[non_exhaustive] pub struct ListMembersAppsArg {
12713 pub cursor: Option<String>,
12719}
12720
12721impl ListMembersAppsArg {
12722 pub fn with_cursor(mut self, value: String) -> Self {
12723 self.cursor = Some(value);
12724 self
12725 }
12726}
12727
12728const LIST_MEMBERS_APPS_ARG_FIELDS: &[&str] = &["cursor"];
12729impl ListMembersAppsArg {
12730 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12732 mut map: V,
12733 ) -> Result<ListMembersAppsArg, V::Error> {
12734 let mut field_cursor = None;
12735 while let Some(key) = map.next_key::<&str>()? {
12736 match key {
12737 "cursor" => {
12738 if field_cursor.is_some() {
12739 return Err(::serde::de::Error::duplicate_field("cursor"));
12740 }
12741 field_cursor = Some(map.next_value()?);
12742 }
12743 _ => {
12744 map.next_value::<::serde_json::Value>()?;
12746 }
12747 }
12748 }
12749 let result = ListMembersAppsArg {
12750 cursor: field_cursor.and_then(Option::flatten),
12751 };
12752 Ok(result)
12753 }
12754
12755 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12756 &self,
12757 s: &mut S::SerializeStruct,
12758 ) -> Result<(), S::Error> {
12759 use serde::ser::SerializeStruct;
12760 if let Some(val) = &self.cursor {
12761 s.serialize_field("cursor", val)?;
12762 }
12763 Ok(())
12764 }
12765}
12766
12767impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsArg {
12768 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12769 use serde::de::{MapAccess, Visitor};
12771 struct StructVisitor;
12772 impl<'de> Visitor<'de> for StructVisitor {
12773 type Value = ListMembersAppsArg;
12774 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12775 f.write_str("a ListMembersAppsArg struct")
12776 }
12777 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12778 ListMembersAppsArg::internal_deserialize(map)
12779 }
12780 }
12781 deserializer.deserialize_struct("ListMembersAppsArg", LIST_MEMBERS_APPS_ARG_FIELDS, StructVisitor)
12782 }
12783}
12784
12785impl ::serde::ser::Serialize for ListMembersAppsArg {
12786 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12787 use serde::ser::SerializeStruct;
12789 let mut s = serializer.serialize_struct("ListMembersAppsArg", 1)?;
12790 self.internal_serialize::<S>(&mut s)?;
12791 s.end()
12792 }
12793}
12794
12795#[derive(Debug, Clone, PartialEq, Eq)]
12798#[non_exhaustive] pub enum ListMembersAppsError {
12800 Reset,
12804 Other,
12807}
12808
12809impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsError {
12810 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12811 use serde::de::{self, MapAccess, Visitor};
12813 struct EnumVisitor;
12814 impl<'de> Visitor<'de> for EnumVisitor {
12815 type Value = ListMembersAppsError;
12816 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12817 f.write_str("a ListMembersAppsError structure")
12818 }
12819 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12820 let tag: &str = match map.next_key()? {
12821 Some(".tag") => map.next_value()?,
12822 _ => return Err(de::Error::missing_field(".tag"))
12823 };
12824 let value = match tag {
12825 "reset" => ListMembersAppsError::Reset,
12826 _ => ListMembersAppsError::Other,
12827 };
12828 crate::eat_json_fields(&mut map)?;
12829 Ok(value)
12830 }
12831 }
12832 const VARIANTS: &[&str] = &["reset",
12833 "other"];
12834 deserializer.deserialize_struct("ListMembersAppsError", VARIANTS, EnumVisitor)
12835 }
12836}
12837
12838impl ::serde::ser::Serialize for ListMembersAppsError {
12839 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12840 use serde::ser::SerializeStruct;
12842 match self {
12843 ListMembersAppsError::Reset => {
12844 let mut s = serializer.serialize_struct("ListMembersAppsError", 1)?;
12846 s.serialize_field(".tag", "reset")?;
12847 s.end()
12848 }
12849 ListMembersAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12850 }
12851 }
12852}
12853
12854impl ::std::error::Error for ListMembersAppsError {
12855}
12856
12857impl ::std::fmt::Display for ListMembersAppsError {
12858 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12859 write!(f, "{:?}", *self)
12860 }
12861}
12862
12863#[derive(Debug, Clone, PartialEq, Eq)]
12866#[non_exhaustive] pub struct ListMembersAppsResult {
12868 pub apps: Vec<MemberLinkedApps>,
12870 pub has_more: bool,
12874 pub cursor: Option<String>,
12878}
12879
12880impl ListMembersAppsResult {
12881 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
12882 ListMembersAppsResult {
12883 apps,
12884 has_more,
12885 cursor: None,
12886 }
12887 }
12888
12889 pub fn with_cursor(mut self, value: String) -> Self {
12890 self.cursor = Some(value);
12891 self
12892 }
12893}
12894
12895const LIST_MEMBERS_APPS_RESULT_FIELDS: &[&str] = &["apps",
12896 "has_more",
12897 "cursor"];
12898impl ListMembersAppsResult {
12899 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12900 map: V,
12901 ) -> Result<ListMembersAppsResult, V::Error> {
12902 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12903 }
12904
12905 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12906 mut map: V,
12907 optional: bool,
12908 ) -> Result<Option<ListMembersAppsResult>, V::Error> {
12909 let mut field_apps = None;
12910 let mut field_has_more = None;
12911 let mut field_cursor = None;
12912 let mut nothing = true;
12913 while let Some(key) = map.next_key::<&str>()? {
12914 nothing = false;
12915 match key {
12916 "apps" => {
12917 if field_apps.is_some() {
12918 return Err(::serde::de::Error::duplicate_field("apps"));
12919 }
12920 field_apps = Some(map.next_value()?);
12921 }
12922 "has_more" => {
12923 if field_has_more.is_some() {
12924 return Err(::serde::de::Error::duplicate_field("has_more"));
12925 }
12926 field_has_more = Some(map.next_value()?);
12927 }
12928 "cursor" => {
12929 if field_cursor.is_some() {
12930 return Err(::serde::de::Error::duplicate_field("cursor"));
12931 }
12932 field_cursor = Some(map.next_value()?);
12933 }
12934 _ => {
12935 map.next_value::<::serde_json::Value>()?;
12937 }
12938 }
12939 }
12940 if optional && nothing {
12941 return Ok(None);
12942 }
12943 let result = ListMembersAppsResult {
12944 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
12945 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12946 cursor: field_cursor.and_then(Option::flatten),
12947 };
12948 Ok(Some(result))
12949 }
12950
12951 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12952 &self,
12953 s: &mut S::SerializeStruct,
12954 ) -> Result<(), S::Error> {
12955 use serde::ser::SerializeStruct;
12956 s.serialize_field("apps", &self.apps)?;
12957 s.serialize_field("has_more", &self.has_more)?;
12958 if let Some(val) = &self.cursor {
12959 s.serialize_field("cursor", val)?;
12960 }
12961 Ok(())
12962 }
12963}
12964
12965impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsResult {
12966 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12967 use serde::de::{MapAccess, Visitor};
12969 struct StructVisitor;
12970 impl<'de> Visitor<'de> for StructVisitor {
12971 type Value = ListMembersAppsResult;
12972 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12973 f.write_str("a ListMembersAppsResult struct")
12974 }
12975 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12976 ListMembersAppsResult::internal_deserialize(map)
12977 }
12978 }
12979 deserializer.deserialize_struct("ListMembersAppsResult", LIST_MEMBERS_APPS_RESULT_FIELDS, StructVisitor)
12980 }
12981}
12982
12983impl ::serde::ser::Serialize for ListMembersAppsResult {
12984 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12985 use serde::ser::SerializeStruct;
12987 let mut s = serializer.serialize_struct("ListMembersAppsResult", 3)?;
12988 self.internal_serialize::<S>(&mut s)?;
12989 s.end()
12990 }
12991}
12992
12993#[derive(Debug, Clone, PartialEq, Eq)]
12994#[non_exhaustive] pub struct ListMembersDevicesArg {
12996 pub cursor: Option<String>,
13002 pub include_web_sessions: bool,
13004 pub include_desktop_clients: bool,
13006 pub include_mobile_clients: bool,
13008}
13009
13010impl Default for ListMembersDevicesArg {
13011 fn default() -> Self {
13012 ListMembersDevicesArg {
13013 cursor: None,
13014 include_web_sessions: true,
13015 include_desktop_clients: true,
13016 include_mobile_clients: true,
13017 }
13018 }
13019}
13020
13021impl ListMembersDevicesArg {
13022 pub fn with_cursor(mut self, value: String) -> Self {
13023 self.cursor = Some(value);
13024 self
13025 }
13026
13027 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
13028 self.include_web_sessions = value;
13029 self
13030 }
13031
13032 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
13033 self.include_desktop_clients = value;
13034 self
13035 }
13036
13037 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
13038 self.include_mobile_clients = value;
13039 self
13040 }
13041}
13042
13043const LIST_MEMBERS_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
13044 "include_web_sessions",
13045 "include_desktop_clients",
13046 "include_mobile_clients"];
13047impl ListMembersDevicesArg {
13048 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13050 mut map: V,
13051 ) -> Result<ListMembersDevicesArg, V::Error> {
13052 let mut field_cursor = None;
13053 let mut field_include_web_sessions = None;
13054 let mut field_include_desktop_clients = None;
13055 let mut field_include_mobile_clients = None;
13056 while let Some(key) = map.next_key::<&str>()? {
13057 match key {
13058 "cursor" => {
13059 if field_cursor.is_some() {
13060 return Err(::serde::de::Error::duplicate_field("cursor"));
13061 }
13062 field_cursor = Some(map.next_value()?);
13063 }
13064 "include_web_sessions" => {
13065 if field_include_web_sessions.is_some() {
13066 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
13067 }
13068 field_include_web_sessions = Some(map.next_value()?);
13069 }
13070 "include_desktop_clients" => {
13071 if field_include_desktop_clients.is_some() {
13072 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
13073 }
13074 field_include_desktop_clients = Some(map.next_value()?);
13075 }
13076 "include_mobile_clients" => {
13077 if field_include_mobile_clients.is_some() {
13078 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
13079 }
13080 field_include_mobile_clients = Some(map.next_value()?);
13081 }
13082 _ => {
13083 map.next_value::<::serde_json::Value>()?;
13085 }
13086 }
13087 }
13088 let result = ListMembersDevicesArg {
13089 cursor: field_cursor.and_then(Option::flatten),
13090 include_web_sessions: field_include_web_sessions.unwrap_or(true),
13091 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
13092 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
13093 };
13094 Ok(result)
13095 }
13096
13097 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13098 &self,
13099 s: &mut S::SerializeStruct,
13100 ) -> Result<(), S::Error> {
13101 use serde::ser::SerializeStruct;
13102 if let Some(val) = &self.cursor {
13103 s.serialize_field("cursor", val)?;
13104 }
13105 if !self.include_web_sessions {
13106 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
13107 }
13108 if !self.include_desktop_clients {
13109 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
13110 }
13111 if !self.include_mobile_clients {
13112 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
13113 }
13114 Ok(())
13115 }
13116}
13117
13118impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesArg {
13119 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13120 use serde::de::{MapAccess, Visitor};
13122 struct StructVisitor;
13123 impl<'de> Visitor<'de> for StructVisitor {
13124 type Value = ListMembersDevicesArg;
13125 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13126 f.write_str("a ListMembersDevicesArg struct")
13127 }
13128 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13129 ListMembersDevicesArg::internal_deserialize(map)
13130 }
13131 }
13132 deserializer.deserialize_struct("ListMembersDevicesArg", LIST_MEMBERS_DEVICES_ARG_FIELDS, StructVisitor)
13133 }
13134}
13135
13136impl ::serde::ser::Serialize for ListMembersDevicesArg {
13137 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13138 use serde::ser::SerializeStruct;
13140 let mut s = serializer.serialize_struct("ListMembersDevicesArg", 4)?;
13141 self.internal_serialize::<S>(&mut s)?;
13142 s.end()
13143 }
13144}
13145
13146#[derive(Debug, Clone, PartialEq, Eq)]
13147#[non_exhaustive] pub enum ListMembersDevicesError {
13149 Reset,
13153 Other,
13156}
13157
13158impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesError {
13159 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13160 use serde::de::{self, MapAccess, Visitor};
13162 struct EnumVisitor;
13163 impl<'de> Visitor<'de> for EnumVisitor {
13164 type Value = ListMembersDevicesError;
13165 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13166 f.write_str("a ListMembersDevicesError structure")
13167 }
13168 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13169 let tag: &str = match map.next_key()? {
13170 Some(".tag") => map.next_value()?,
13171 _ => return Err(de::Error::missing_field(".tag"))
13172 };
13173 let value = match tag {
13174 "reset" => ListMembersDevicesError::Reset,
13175 _ => ListMembersDevicesError::Other,
13176 };
13177 crate::eat_json_fields(&mut map)?;
13178 Ok(value)
13179 }
13180 }
13181 const VARIANTS: &[&str] = &["reset",
13182 "other"];
13183 deserializer.deserialize_struct("ListMembersDevicesError", VARIANTS, EnumVisitor)
13184 }
13185}
13186
13187impl ::serde::ser::Serialize for ListMembersDevicesError {
13188 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13189 use serde::ser::SerializeStruct;
13191 match self {
13192 ListMembersDevicesError::Reset => {
13193 let mut s = serializer.serialize_struct("ListMembersDevicesError", 1)?;
13195 s.serialize_field(".tag", "reset")?;
13196 s.end()
13197 }
13198 ListMembersDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
13199 }
13200 }
13201}
13202
13203impl ::std::error::Error for ListMembersDevicesError {
13204}
13205
13206impl ::std::fmt::Display for ListMembersDevicesError {
13207 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13208 write!(f, "{:?}", *self)
13209 }
13210}
13211
13212#[derive(Debug, Clone, PartialEq, Eq)]
13213#[non_exhaustive] pub struct ListMembersDevicesResult {
13215 pub devices: Vec<MemberDevices>,
13217 pub has_more: bool,
13221 pub cursor: Option<String>,
13225}
13226
13227impl ListMembersDevicesResult {
13228 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
13229 ListMembersDevicesResult {
13230 devices,
13231 has_more,
13232 cursor: None,
13233 }
13234 }
13235
13236 pub fn with_cursor(mut self, value: String) -> Self {
13237 self.cursor = Some(value);
13238 self
13239 }
13240}
13241
13242const LIST_MEMBERS_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
13243 "has_more",
13244 "cursor"];
13245impl ListMembersDevicesResult {
13246 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13247 map: V,
13248 ) -> Result<ListMembersDevicesResult, V::Error> {
13249 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13250 }
13251
13252 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13253 mut map: V,
13254 optional: bool,
13255 ) -> Result<Option<ListMembersDevicesResult>, V::Error> {
13256 let mut field_devices = None;
13257 let mut field_has_more = None;
13258 let mut field_cursor = None;
13259 let mut nothing = true;
13260 while let Some(key) = map.next_key::<&str>()? {
13261 nothing = false;
13262 match key {
13263 "devices" => {
13264 if field_devices.is_some() {
13265 return Err(::serde::de::Error::duplicate_field("devices"));
13266 }
13267 field_devices = Some(map.next_value()?);
13268 }
13269 "has_more" => {
13270 if field_has_more.is_some() {
13271 return Err(::serde::de::Error::duplicate_field("has_more"));
13272 }
13273 field_has_more = Some(map.next_value()?);
13274 }
13275 "cursor" => {
13276 if field_cursor.is_some() {
13277 return Err(::serde::de::Error::duplicate_field("cursor"));
13278 }
13279 field_cursor = Some(map.next_value()?);
13280 }
13281 _ => {
13282 map.next_value::<::serde_json::Value>()?;
13284 }
13285 }
13286 }
13287 if optional && nothing {
13288 return Ok(None);
13289 }
13290 let result = ListMembersDevicesResult {
13291 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
13292 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
13293 cursor: field_cursor.and_then(Option::flatten),
13294 };
13295 Ok(Some(result))
13296 }
13297
13298 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13299 &self,
13300 s: &mut S::SerializeStruct,
13301 ) -> Result<(), S::Error> {
13302 use serde::ser::SerializeStruct;
13303 s.serialize_field("devices", &self.devices)?;
13304 s.serialize_field("has_more", &self.has_more)?;
13305 if let Some(val) = &self.cursor {
13306 s.serialize_field("cursor", val)?;
13307 }
13308 Ok(())
13309 }
13310}
13311
13312impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesResult {
13313 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13314 use serde::de::{MapAccess, Visitor};
13316 struct StructVisitor;
13317 impl<'de> Visitor<'de> for StructVisitor {
13318 type Value = ListMembersDevicesResult;
13319 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13320 f.write_str("a ListMembersDevicesResult struct")
13321 }
13322 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13323 ListMembersDevicesResult::internal_deserialize(map)
13324 }
13325 }
13326 deserializer.deserialize_struct("ListMembersDevicesResult", LIST_MEMBERS_DEVICES_RESULT_FIELDS, StructVisitor)
13327 }
13328}
13329
13330impl ::serde::ser::Serialize for ListMembersDevicesResult {
13331 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13332 use serde::ser::SerializeStruct;
13334 let mut s = serializer.serialize_struct("ListMembersDevicesResult", 3)?;
13335 self.internal_serialize::<S>(&mut s)?;
13336 s.end()
13337 }
13338}
13339
13340#[derive(Debug, Clone, PartialEq, Eq, Default)]
13343#[non_exhaustive] pub struct ListTeamAppsArg {
13345 pub cursor: Option<String>,
13351}
13352
13353impl ListTeamAppsArg {
13354 pub fn with_cursor(mut self, value: String) -> Self {
13355 self.cursor = Some(value);
13356 self
13357 }
13358}
13359
13360const LIST_TEAM_APPS_ARG_FIELDS: &[&str] = &["cursor"];
13361impl ListTeamAppsArg {
13362 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13364 mut map: V,
13365 ) -> Result<ListTeamAppsArg, V::Error> {
13366 let mut field_cursor = None;
13367 while let Some(key) = map.next_key::<&str>()? {
13368 match key {
13369 "cursor" => {
13370 if field_cursor.is_some() {
13371 return Err(::serde::de::Error::duplicate_field("cursor"));
13372 }
13373 field_cursor = Some(map.next_value()?);
13374 }
13375 _ => {
13376 map.next_value::<::serde_json::Value>()?;
13378 }
13379 }
13380 }
13381 let result = ListTeamAppsArg {
13382 cursor: field_cursor.and_then(Option::flatten),
13383 };
13384 Ok(result)
13385 }
13386
13387 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13388 &self,
13389 s: &mut S::SerializeStruct,
13390 ) -> Result<(), S::Error> {
13391 use serde::ser::SerializeStruct;
13392 if let Some(val) = &self.cursor {
13393 s.serialize_field("cursor", val)?;
13394 }
13395 Ok(())
13396 }
13397}
13398
13399impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsArg {
13400 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13401 use serde::de::{MapAccess, Visitor};
13403 struct StructVisitor;
13404 impl<'de> Visitor<'de> for StructVisitor {
13405 type Value = ListTeamAppsArg;
13406 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13407 f.write_str("a ListTeamAppsArg struct")
13408 }
13409 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13410 ListTeamAppsArg::internal_deserialize(map)
13411 }
13412 }
13413 deserializer.deserialize_struct("ListTeamAppsArg", LIST_TEAM_APPS_ARG_FIELDS, StructVisitor)
13414 }
13415}
13416
13417impl ::serde::ser::Serialize for ListTeamAppsArg {
13418 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13419 use serde::ser::SerializeStruct;
13421 let mut s = serializer.serialize_struct("ListTeamAppsArg", 1)?;
13422 self.internal_serialize::<S>(&mut s)?;
13423 s.end()
13424 }
13425}
13426
13427#[derive(Debug, Clone, PartialEq, Eq)]
13430#[non_exhaustive] pub enum ListTeamAppsError {
13432 Reset,
13436 Other,
13439}
13440
13441impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsError {
13442 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13443 use serde::de::{self, MapAccess, Visitor};
13445 struct EnumVisitor;
13446 impl<'de> Visitor<'de> for EnumVisitor {
13447 type Value = ListTeamAppsError;
13448 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13449 f.write_str("a ListTeamAppsError structure")
13450 }
13451 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13452 let tag: &str = match map.next_key()? {
13453 Some(".tag") => map.next_value()?,
13454 _ => return Err(de::Error::missing_field(".tag"))
13455 };
13456 let value = match tag {
13457 "reset" => ListTeamAppsError::Reset,
13458 _ => ListTeamAppsError::Other,
13459 };
13460 crate::eat_json_fields(&mut map)?;
13461 Ok(value)
13462 }
13463 }
13464 const VARIANTS: &[&str] = &["reset",
13465 "other"];
13466 deserializer.deserialize_struct("ListTeamAppsError", VARIANTS, EnumVisitor)
13467 }
13468}
13469
13470impl ::serde::ser::Serialize for ListTeamAppsError {
13471 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13472 use serde::ser::SerializeStruct;
13474 match self {
13475 ListTeamAppsError::Reset => {
13476 let mut s = serializer.serialize_struct("ListTeamAppsError", 1)?;
13478 s.serialize_field(".tag", "reset")?;
13479 s.end()
13480 }
13481 ListTeamAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
13482 }
13483 }
13484}
13485
13486impl ::std::error::Error for ListTeamAppsError {
13487}
13488
13489impl ::std::fmt::Display for ListTeamAppsError {
13490 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13491 write!(f, "{:?}", *self)
13492 }
13493}
13494
13495#[derive(Debug, Clone, PartialEq, Eq)]
13498#[non_exhaustive] pub struct ListTeamAppsResult {
13500 pub apps: Vec<MemberLinkedApps>,
13502 pub has_more: bool,
13506 pub cursor: Option<String>,
13510}
13511
13512impl ListTeamAppsResult {
13513 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
13514 ListTeamAppsResult {
13515 apps,
13516 has_more,
13517 cursor: None,
13518 }
13519 }
13520
13521 pub fn with_cursor(mut self, value: String) -> Self {
13522 self.cursor = Some(value);
13523 self
13524 }
13525}
13526
13527const LIST_TEAM_APPS_RESULT_FIELDS: &[&str] = &["apps",
13528 "has_more",
13529 "cursor"];
13530impl ListTeamAppsResult {
13531 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13532 map: V,
13533 ) -> Result<ListTeamAppsResult, V::Error> {
13534 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13535 }
13536
13537 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13538 mut map: V,
13539 optional: bool,
13540 ) -> Result<Option<ListTeamAppsResult>, V::Error> {
13541 let mut field_apps = None;
13542 let mut field_has_more = None;
13543 let mut field_cursor = None;
13544 let mut nothing = true;
13545 while let Some(key) = map.next_key::<&str>()? {
13546 nothing = false;
13547 match key {
13548 "apps" => {
13549 if field_apps.is_some() {
13550 return Err(::serde::de::Error::duplicate_field("apps"));
13551 }
13552 field_apps = Some(map.next_value()?);
13553 }
13554 "has_more" => {
13555 if field_has_more.is_some() {
13556 return Err(::serde::de::Error::duplicate_field("has_more"));
13557 }
13558 field_has_more = Some(map.next_value()?);
13559 }
13560 "cursor" => {
13561 if field_cursor.is_some() {
13562 return Err(::serde::de::Error::duplicate_field("cursor"));
13563 }
13564 field_cursor = Some(map.next_value()?);
13565 }
13566 _ => {
13567 map.next_value::<::serde_json::Value>()?;
13569 }
13570 }
13571 }
13572 if optional && nothing {
13573 return Ok(None);
13574 }
13575 let result = ListTeamAppsResult {
13576 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
13577 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
13578 cursor: field_cursor.and_then(Option::flatten),
13579 };
13580 Ok(Some(result))
13581 }
13582
13583 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13584 &self,
13585 s: &mut S::SerializeStruct,
13586 ) -> Result<(), S::Error> {
13587 use serde::ser::SerializeStruct;
13588 s.serialize_field("apps", &self.apps)?;
13589 s.serialize_field("has_more", &self.has_more)?;
13590 if let Some(val) = &self.cursor {
13591 s.serialize_field("cursor", val)?;
13592 }
13593 Ok(())
13594 }
13595}
13596
13597impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsResult {
13598 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13599 use serde::de::{MapAccess, Visitor};
13601 struct StructVisitor;
13602 impl<'de> Visitor<'de> for StructVisitor {
13603 type Value = ListTeamAppsResult;
13604 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13605 f.write_str("a ListTeamAppsResult struct")
13606 }
13607 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13608 ListTeamAppsResult::internal_deserialize(map)
13609 }
13610 }
13611 deserializer.deserialize_struct("ListTeamAppsResult", LIST_TEAM_APPS_RESULT_FIELDS, StructVisitor)
13612 }
13613}
13614
13615impl ::serde::ser::Serialize for ListTeamAppsResult {
13616 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13617 use serde::ser::SerializeStruct;
13619 let mut s = serializer.serialize_struct("ListTeamAppsResult", 3)?;
13620 self.internal_serialize::<S>(&mut s)?;
13621 s.end()
13622 }
13623}
13624
13625#[derive(Debug, Clone, PartialEq, Eq)]
13626#[non_exhaustive] pub struct ListTeamDevicesArg {
13628 pub cursor: Option<String>,
13633 pub include_web_sessions: bool,
13635 pub include_desktop_clients: bool,
13637 pub include_mobile_clients: bool,
13639}
13640
13641impl Default for ListTeamDevicesArg {
13642 fn default() -> Self {
13643 ListTeamDevicesArg {
13644 cursor: None,
13645 include_web_sessions: true,
13646 include_desktop_clients: true,
13647 include_mobile_clients: true,
13648 }
13649 }
13650}
13651
13652impl ListTeamDevicesArg {
13653 pub fn with_cursor(mut self, value: String) -> Self {
13654 self.cursor = Some(value);
13655 self
13656 }
13657
13658 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
13659 self.include_web_sessions = value;
13660 self
13661 }
13662
13663 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
13664 self.include_desktop_clients = value;
13665 self
13666 }
13667
13668 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
13669 self.include_mobile_clients = value;
13670 self
13671 }
13672}
13673
13674const LIST_TEAM_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
13675 "include_web_sessions",
13676 "include_desktop_clients",
13677 "include_mobile_clients"];
13678impl ListTeamDevicesArg {
13679 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13681 mut map: V,
13682 ) -> Result<ListTeamDevicesArg, V::Error> {
13683 let mut field_cursor = None;
13684 let mut field_include_web_sessions = None;
13685 let mut field_include_desktop_clients = None;
13686 let mut field_include_mobile_clients = None;
13687 while let Some(key) = map.next_key::<&str>()? {
13688 match key {
13689 "cursor" => {
13690 if field_cursor.is_some() {
13691 return Err(::serde::de::Error::duplicate_field("cursor"));
13692 }
13693 field_cursor = Some(map.next_value()?);
13694 }
13695 "include_web_sessions" => {
13696 if field_include_web_sessions.is_some() {
13697 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
13698 }
13699 field_include_web_sessions = Some(map.next_value()?);
13700 }
13701 "include_desktop_clients" => {
13702 if field_include_desktop_clients.is_some() {
13703 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
13704 }
13705 field_include_desktop_clients = Some(map.next_value()?);
13706 }
13707 "include_mobile_clients" => {
13708 if field_include_mobile_clients.is_some() {
13709 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
13710 }
13711 field_include_mobile_clients = Some(map.next_value()?);
13712 }
13713 _ => {
13714 map.next_value::<::serde_json::Value>()?;
13716 }
13717 }
13718 }
13719 let result = ListTeamDevicesArg {
13720 cursor: field_cursor.and_then(Option::flatten),
13721 include_web_sessions: field_include_web_sessions.unwrap_or(true),
13722 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
13723 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
13724 };
13725 Ok(result)
13726 }
13727
13728 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13729 &self,
13730 s: &mut S::SerializeStruct,
13731 ) -> Result<(), S::Error> {
13732 use serde::ser::SerializeStruct;
13733 if let Some(val) = &self.cursor {
13734 s.serialize_field("cursor", val)?;
13735 }
13736 if !self.include_web_sessions {
13737 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
13738 }
13739 if !self.include_desktop_clients {
13740 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
13741 }
13742 if !self.include_mobile_clients {
13743 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
13744 }
13745 Ok(())
13746 }
13747}
13748
13749impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesArg {
13750 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13751 use serde::de::{MapAccess, Visitor};
13753 struct StructVisitor;
13754 impl<'de> Visitor<'de> for StructVisitor {
13755 type Value = ListTeamDevicesArg;
13756 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13757 f.write_str("a ListTeamDevicesArg struct")
13758 }
13759 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13760 ListTeamDevicesArg::internal_deserialize(map)
13761 }
13762 }
13763 deserializer.deserialize_struct("ListTeamDevicesArg", LIST_TEAM_DEVICES_ARG_FIELDS, StructVisitor)
13764 }
13765}
13766
13767impl ::serde::ser::Serialize for ListTeamDevicesArg {
13768 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13769 use serde::ser::SerializeStruct;
13771 let mut s = serializer.serialize_struct("ListTeamDevicesArg", 4)?;
13772 self.internal_serialize::<S>(&mut s)?;
13773 s.end()
13774 }
13775}
13776
13777#[derive(Debug, Clone, PartialEq, Eq)]
13778#[non_exhaustive] pub enum ListTeamDevicesError {
13780 Reset,
13784 Other,
13787}
13788
13789impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesError {
13790 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13791 use serde::de::{self, MapAccess, Visitor};
13793 struct EnumVisitor;
13794 impl<'de> Visitor<'de> for EnumVisitor {
13795 type Value = ListTeamDevicesError;
13796 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13797 f.write_str("a ListTeamDevicesError structure")
13798 }
13799 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13800 let tag: &str = match map.next_key()? {
13801 Some(".tag") => map.next_value()?,
13802 _ => return Err(de::Error::missing_field(".tag"))
13803 };
13804 let value = match tag {
13805 "reset" => ListTeamDevicesError::Reset,
13806 _ => ListTeamDevicesError::Other,
13807 };
13808 crate::eat_json_fields(&mut map)?;
13809 Ok(value)
13810 }
13811 }
13812 const VARIANTS: &[&str] = &["reset",
13813 "other"];
13814 deserializer.deserialize_struct("ListTeamDevicesError", VARIANTS, EnumVisitor)
13815 }
13816}
13817
13818impl ::serde::ser::Serialize for ListTeamDevicesError {
13819 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13820 use serde::ser::SerializeStruct;
13822 match self {
13823 ListTeamDevicesError::Reset => {
13824 let mut s = serializer.serialize_struct("ListTeamDevicesError", 1)?;
13826 s.serialize_field(".tag", "reset")?;
13827 s.end()
13828 }
13829 ListTeamDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
13830 }
13831 }
13832}
13833
13834impl ::std::error::Error for ListTeamDevicesError {
13835}
13836
13837impl ::std::fmt::Display for ListTeamDevicesError {
13838 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13839 write!(f, "{:?}", *self)
13840 }
13841}
13842
13843#[derive(Debug, Clone, PartialEq, Eq)]
13844#[non_exhaustive] pub struct ListTeamDevicesResult {
13846 pub devices: Vec<MemberDevices>,
13848 pub has_more: bool,
13852 pub cursor: Option<String>,
13855}
13856
13857impl ListTeamDevicesResult {
13858 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
13859 ListTeamDevicesResult {
13860 devices,
13861 has_more,
13862 cursor: None,
13863 }
13864 }
13865
13866 pub fn with_cursor(mut self, value: String) -> Self {
13867 self.cursor = Some(value);
13868 self
13869 }
13870}
13871
13872const LIST_TEAM_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
13873 "has_more",
13874 "cursor"];
13875impl ListTeamDevicesResult {
13876 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13877 map: V,
13878 ) -> Result<ListTeamDevicesResult, V::Error> {
13879 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13880 }
13881
13882 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13883 mut map: V,
13884 optional: bool,
13885 ) -> Result<Option<ListTeamDevicesResult>, V::Error> {
13886 let mut field_devices = None;
13887 let mut field_has_more = None;
13888 let mut field_cursor = None;
13889 let mut nothing = true;
13890 while let Some(key) = map.next_key::<&str>()? {
13891 nothing = false;
13892 match key {
13893 "devices" => {
13894 if field_devices.is_some() {
13895 return Err(::serde::de::Error::duplicate_field("devices"));
13896 }
13897 field_devices = Some(map.next_value()?);
13898 }
13899 "has_more" => {
13900 if field_has_more.is_some() {
13901 return Err(::serde::de::Error::duplicate_field("has_more"));
13902 }
13903 field_has_more = Some(map.next_value()?);
13904 }
13905 "cursor" => {
13906 if field_cursor.is_some() {
13907 return Err(::serde::de::Error::duplicate_field("cursor"));
13908 }
13909 field_cursor = Some(map.next_value()?);
13910 }
13911 _ => {
13912 map.next_value::<::serde_json::Value>()?;
13914 }
13915 }
13916 }
13917 if optional && nothing {
13918 return Ok(None);
13919 }
13920 let result = ListTeamDevicesResult {
13921 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
13922 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
13923 cursor: field_cursor.and_then(Option::flatten),
13924 };
13925 Ok(Some(result))
13926 }
13927
13928 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13929 &self,
13930 s: &mut S::SerializeStruct,
13931 ) -> Result<(), S::Error> {
13932 use serde::ser::SerializeStruct;
13933 s.serialize_field("devices", &self.devices)?;
13934 s.serialize_field("has_more", &self.has_more)?;
13935 if let Some(val) = &self.cursor {
13936 s.serialize_field("cursor", val)?;
13937 }
13938 Ok(())
13939 }
13940}
13941
13942impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesResult {
13943 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13944 use serde::de::{MapAccess, Visitor};
13946 struct StructVisitor;
13947 impl<'de> Visitor<'de> for StructVisitor {
13948 type Value = ListTeamDevicesResult;
13949 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13950 f.write_str("a ListTeamDevicesResult struct")
13951 }
13952 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13953 ListTeamDevicesResult::internal_deserialize(map)
13954 }
13955 }
13956 deserializer.deserialize_struct("ListTeamDevicesResult", LIST_TEAM_DEVICES_RESULT_FIELDS, StructVisitor)
13957 }
13958}
13959
13960impl ::serde::ser::Serialize for ListTeamDevicesResult {
13961 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13962 use serde::ser::SerializeStruct;
13964 let mut s = serializer.serialize_struct("ListTeamDevicesResult", 3)?;
13965 self.internal_serialize::<S>(&mut s)?;
13966 s.end()
13967 }
13968}
13969
13970#[derive(Debug, Clone, PartialEq, Eq)]
13972#[non_exhaustive] pub struct MemberAccess {
13974 pub user: UserSelectorArg,
13976 pub access_type: GroupAccessType,
13978}
13979
13980impl MemberAccess {
13981 pub fn new(user: UserSelectorArg, access_type: GroupAccessType) -> Self {
13982 MemberAccess {
13983 user,
13984 access_type,
13985 }
13986 }
13987}
13988
13989const MEMBER_ACCESS_FIELDS: &[&str] = &["user",
13990 "access_type"];
13991impl MemberAccess {
13992 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13993 map: V,
13994 ) -> Result<MemberAccess, V::Error> {
13995 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13996 }
13997
13998 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13999 mut map: V,
14000 optional: bool,
14001 ) -> Result<Option<MemberAccess>, V::Error> {
14002 let mut field_user = None;
14003 let mut field_access_type = None;
14004 let mut nothing = true;
14005 while let Some(key) = map.next_key::<&str>()? {
14006 nothing = false;
14007 match key {
14008 "user" => {
14009 if field_user.is_some() {
14010 return Err(::serde::de::Error::duplicate_field("user"));
14011 }
14012 field_user = Some(map.next_value()?);
14013 }
14014 "access_type" => {
14015 if field_access_type.is_some() {
14016 return Err(::serde::de::Error::duplicate_field("access_type"));
14017 }
14018 field_access_type = Some(map.next_value()?);
14019 }
14020 _ => {
14021 map.next_value::<::serde_json::Value>()?;
14023 }
14024 }
14025 }
14026 if optional && nothing {
14027 return Ok(None);
14028 }
14029 let result = MemberAccess {
14030 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
14031 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
14032 };
14033 Ok(Some(result))
14034 }
14035
14036 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14037 &self,
14038 s: &mut S::SerializeStruct,
14039 ) -> Result<(), S::Error> {
14040 use serde::ser::SerializeStruct;
14041 s.serialize_field("user", &self.user)?;
14042 s.serialize_field("access_type", &self.access_type)?;
14043 Ok(())
14044 }
14045}
14046
14047impl<'de> ::serde::de::Deserialize<'de> for MemberAccess {
14048 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14049 use serde::de::{MapAccess, Visitor};
14051 struct StructVisitor;
14052 impl<'de> Visitor<'de> for StructVisitor {
14053 type Value = MemberAccess;
14054 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14055 f.write_str("a MemberAccess struct")
14056 }
14057 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14058 MemberAccess::internal_deserialize(map)
14059 }
14060 }
14061 deserializer.deserialize_struct("MemberAccess", MEMBER_ACCESS_FIELDS, StructVisitor)
14062 }
14063}
14064
14065impl ::serde::ser::Serialize for MemberAccess {
14066 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14067 use serde::ser::SerializeStruct;
14069 let mut s = serializer.serialize_struct("MemberAccess", 2)?;
14070 self.internal_serialize::<S>(&mut s)?;
14071 s.end()
14072 }
14073}
14074
14075#[derive(Debug, Clone, PartialEq, Eq)]
14076#[non_exhaustive] pub struct MemberAddArg {
14078 pub member_email: crate::types::common::EmailAddress,
14079 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
14081 pub member_surname: Option<crate::types::common::OptionalNamePart>,
14083 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
14085 pub member_persistent_id: Option<String>,
14088 pub send_welcome_email: bool,
14092 pub is_directory_restricted: Option<bool>,
14094 pub role: AdminTier,
14095}
14096
14097impl MemberAddArg {
14098 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
14099 MemberAddArg {
14100 member_email,
14101 member_given_name: None,
14102 member_surname: None,
14103 member_external_id: None,
14104 member_persistent_id: None,
14105 send_welcome_email: true,
14106 is_directory_restricted: None,
14107 role: AdminTier::MemberOnly,
14108 }
14109 }
14110
14111 pub fn with_member_given_name(
14112 mut self,
14113 value: crate::types::common::OptionalNamePart,
14114 ) -> Self {
14115 self.member_given_name = Some(value);
14116 self
14117 }
14118
14119 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
14120 self.member_surname = Some(value);
14121 self
14122 }
14123
14124 pub fn with_member_external_id(
14125 mut self,
14126 value: crate::types::team_common::MemberExternalId,
14127 ) -> Self {
14128 self.member_external_id = Some(value);
14129 self
14130 }
14131
14132 pub fn with_member_persistent_id(mut self, value: String) -> Self {
14133 self.member_persistent_id = Some(value);
14134 self
14135 }
14136
14137 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
14138 self.send_welcome_email = value;
14139 self
14140 }
14141
14142 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14143 self.is_directory_restricted = Some(value);
14144 self
14145 }
14146
14147 pub fn with_role(mut self, value: AdminTier) -> Self {
14148 self.role = value;
14149 self
14150 }
14151}
14152
14153const MEMBER_ADD_ARG_FIELDS: &[&str] = &["member_email",
14154 "member_given_name",
14155 "member_surname",
14156 "member_external_id",
14157 "member_persistent_id",
14158 "send_welcome_email",
14159 "is_directory_restricted",
14160 "role"];
14161impl MemberAddArg {
14162 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14163 map: V,
14164 ) -> Result<MemberAddArg, V::Error> {
14165 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14166 }
14167
14168 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14169 mut map: V,
14170 optional: bool,
14171 ) -> Result<Option<MemberAddArg>, V::Error> {
14172 let mut field_member_email = None;
14173 let mut field_member_given_name = None;
14174 let mut field_member_surname = None;
14175 let mut field_member_external_id = None;
14176 let mut field_member_persistent_id = None;
14177 let mut field_send_welcome_email = None;
14178 let mut field_is_directory_restricted = None;
14179 let mut field_role = None;
14180 let mut nothing = true;
14181 while let Some(key) = map.next_key::<&str>()? {
14182 nothing = false;
14183 match key {
14184 "member_email" => {
14185 if field_member_email.is_some() {
14186 return Err(::serde::de::Error::duplicate_field("member_email"));
14187 }
14188 field_member_email = Some(map.next_value()?);
14189 }
14190 "member_given_name" => {
14191 if field_member_given_name.is_some() {
14192 return Err(::serde::de::Error::duplicate_field("member_given_name"));
14193 }
14194 field_member_given_name = Some(map.next_value()?);
14195 }
14196 "member_surname" => {
14197 if field_member_surname.is_some() {
14198 return Err(::serde::de::Error::duplicate_field("member_surname"));
14199 }
14200 field_member_surname = Some(map.next_value()?);
14201 }
14202 "member_external_id" => {
14203 if field_member_external_id.is_some() {
14204 return Err(::serde::de::Error::duplicate_field("member_external_id"));
14205 }
14206 field_member_external_id = Some(map.next_value()?);
14207 }
14208 "member_persistent_id" => {
14209 if field_member_persistent_id.is_some() {
14210 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
14211 }
14212 field_member_persistent_id = Some(map.next_value()?);
14213 }
14214 "send_welcome_email" => {
14215 if field_send_welcome_email.is_some() {
14216 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
14217 }
14218 field_send_welcome_email = Some(map.next_value()?);
14219 }
14220 "is_directory_restricted" => {
14221 if field_is_directory_restricted.is_some() {
14222 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
14223 }
14224 field_is_directory_restricted = Some(map.next_value()?);
14225 }
14226 "role" => {
14227 if field_role.is_some() {
14228 return Err(::serde::de::Error::duplicate_field("role"));
14229 }
14230 field_role = Some(map.next_value()?);
14231 }
14232 _ => {
14233 map.next_value::<::serde_json::Value>()?;
14235 }
14236 }
14237 }
14238 if optional && nothing {
14239 return Ok(None);
14240 }
14241 let result = MemberAddArg {
14242 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
14243 member_given_name: field_member_given_name.and_then(Option::flatten),
14244 member_surname: field_member_surname.and_then(Option::flatten),
14245 member_external_id: field_member_external_id.and_then(Option::flatten),
14246 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
14247 send_welcome_email: field_send_welcome_email.unwrap_or(true),
14248 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
14249 role: field_role.unwrap_or(AdminTier::MemberOnly),
14250 };
14251 Ok(Some(result))
14252 }
14253
14254 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14255 &self,
14256 s: &mut S::SerializeStruct,
14257 ) -> Result<(), S::Error> {
14258 use serde::ser::SerializeStruct;
14259 s.serialize_field("member_email", &self.member_email)?;
14260 if let Some(val) = &self.member_given_name {
14261 s.serialize_field("member_given_name", val)?;
14262 }
14263 if let Some(val) = &self.member_surname {
14264 s.serialize_field("member_surname", val)?;
14265 }
14266 if let Some(val) = &self.member_external_id {
14267 s.serialize_field("member_external_id", val)?;
14268 }
14269 if let Some(val) = &self.member_persistent_id {
14270 s.serialize_field("member_persistent_id", val)?;
14271 }
14272 if !self.send_welcome_email {
14273 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
14274 }
14275 if let Some(val) = &self.is_directory_restricted {
14276 s.serialize_field("is_directory_restricted", val)?;
14277 }
14278 if self.role != AdminTier::MemberOnly {
14279 s.serialize_field("role", &self.role)?;
14280 }
14281 Ok(())
14282 }
14283}
14284
14285impl<'de> ::serde::de::Deserialize<'de> for MemberAddArg {
14286 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14287 use serde::de::{MapAccess, Visitor};
14289 struct StructVisitor;
14290 impl<'de> Visitor<'de> for StructVisitor {
14291 type Value = MemberAddArg;
14292 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14293 f.write_str("a MemberAddArg struct")
14294 }
14295 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14296 MemberAddArg::internal_deserialize(map)
14297 }
14298 }
14299 deserializer.deserialize_struct("MemberAddArg", MEMBER_ADD_ARG_FIELDS, StructVisitor)
14300 }
14301}
14302
14303impl ::serde::ser::Serialize for MemberAddArg {
14304 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14305 use serde::ser::SerializeStruct;
14307 let mut s = serializer.serialize_struct("MemberAddArg", 8)?;
14308 self.internal_serialize::<S>(&mut s)?;
14309 s.end()
14310 }
14311}
14312
14313impl From<MemberAddArg> for MemberAddArgBase {
14315 fn from(subtype: MemberAddArg) -> Self {
14316 Self {
14317 member_email: subtype.member_email,
14318 member_given_name: subtype.member_given_name,
14319 member_surname: subtype.member_surname,
14320 member_external_id: subtype.member_external_id,
14321 member_persistent_id: subtype.member_persistent_id,
14322 send_welcome_email: subtype.send_welcome_email,
14323 is_directory_restricted: subtype.is_directory_restricted,
14324 }
14325 }
14326}
14327#[derive(Debug, Clone, PartialEq, Eq)]
14328#[non_exhaustive] pub struct MemberAddArgBase {
14330 pub member_email: crate::types::common::EmailAddress,
14331 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
14333 pub member_surname: Option<crate::types::common::OptionalNamePart>,
14335 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
14337 pub member_persistent_id: Option<String>,
14340 pub send_welcome_email: bool,
14344 pub is_directory_restricted: Option<bool>,
14346}
14347
14348impl MemberAddArgBase {
14349 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
14350 MemberAddArgBase {
14351 member_email,
14352 member_given_name: None,
14353 member_surname: None,
14354 member_external_id: None,
14355 member_persistent_id: None,
14356 send_welcome_email: true,
14357 is_directory_restricted: None,
14358 }
14359 }
14360
14361 pub fn with_member_given_name(
14362 mut self,
14363 value: crate::types::common::OptionalNamePart,
14364 ) -> Self {
14365 self.member_given_name = Some(value);
14366 self
14367 }
14368
14369 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
14370 self.member_surname = Some(value);
14371 self
14372 }
14373
14374 pub fn with_member_external_id(
14375 mut self,
14376 value: crate::types::team_common::MemberExternalId,
14377 ) -> Self {
14378 self.member_external_id = Some(value);
14379 self
14380 }
14381
14382 pub fn with_member_persistent_id(mut self, value: String) -> Self {
14383 self.member_persistent_id = Some(value);
14384 self
14385 }
14386
14387 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
14388 self.send_welcome_email = value;
14389 self
14390 }
14391
14392 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14393 self.is_directory_restricted = Some(value);
14394 self
14395 }
14396}
14397
14398const MEMBER_ADD_ARG_BASE_FIELDS: &[&str] = &["member_email",
14399 "member_given_name",
14400 "member_surname",
14401 "member_external_id",
14402 "member_persistent_id",
14403 "send_welcome_email",
14404 "is_directory_restricted"];
14405impl MemberAddArgBase {
14406 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14407 map: V,
14408 ) -> Result<MemberAddArgBase, V::Error> {
14409 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14410 }
14411
14412 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14413 mut map: V,
14414 optional: bool,
14415 ) -> Result<Option<MemberAddArgBase>, V::Error> {
14416 let mut field_member_email = None;
14417 let mut field_member_given_name = None;
14418 let mut field_member_surname = None;
14419 let mut field_member_external_id = None;
14420 let mut field_member_persistent_id = None;
14421 let mut field_send_welcome_email = None;
14422 let mut field_is_directory_restricted = None;
14423 let mut nothing = true;
14424 while let Some(key) = map.next_key::<&str>()? {
14425 nothing = false;
14426 match key {
14427 "member_email" => {
14428 if field_member_email.is_some() {
14429 return Err(::serde::de::Error::duplicate_field("member_email"));
14430 }
14431 field_member_email = Some(map.next_value()?);
14432 }
14433 "member_given_name" => {
14434 if field_member_given_name.is_some() {
14435 return Err(::serde::de::Error::duplicate_field("member_given_name"));
14436 }
14437 field_member_given_name = Some(map.next_value()?);
14438 }
14439 "member_surname" => {
14440 if field_member_surname.is_some() {
14441 return Err(::serde::de::Error::duplicate_field("member_surname"));
14442 }
14443 field_member_surname = Some(map.next_value()?);
14444 }
14445 "member_external_id" => {
14446 if field_member_external_id.is_some() {
14447 return Err(::serde::de::Error::duplicate_field("member_external_id"));
14448 }
14449 field_member_external_id = Some(map.next_value()?);
14450 }
14451 "member_persistent_id" => {
14452 if field_member_persistent_id.is_some() {
14453 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
14454 }
14455 field_member_persistent_id = Some(map.next_value()?);
14456 }
14457 "send_welcome_email" => {
14458 if field_send_welcome_email.is_some() {
14459 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
14460 }
14461 field_send_welcome_email = Some(map.next_value()?);
14462 }
14463 "is_directory_restricted" => {
14464 if field_is_directory_restricted.is_some() {
14465 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
14466 }
14467 field_is_directory_restricted = Some(map.next_value()?);
14468 }
14469 _ => {
14470 map.next_value::<::serde_json::Value>()?;
14472 }
14473 }
14474 }
14475 if optional && nothing {
14476 return Ok(None);
14477 }
14478 let result = MemberAddArgBase {
14479 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
14480 member_given_name: field_member_given_name.and_then(Option::flatten),
14481 member_surname: field_member_surname.and_then(Option::flatten),
14482 member_external_id: field_member_external_id.and_then(Option::flatten),
14483 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
14484 send_welcome_email: field_send_welcome_email.unwrap_or(true),
14485 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
14486 };
14487 Ok(Some(result))
14488 }
14489
14490 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14491 &self,
14492 s: &mut S::SerializeStruct,
14493 ) -> Result<(), S::Error> {
14494 use serde::ser::SerializeStruct;
14495 s.serialize_field("member_email", &self.member_email)?;
14496 if let Some(val) = &self.member_given_name {
14497 s.serialize_field("member_given_name", val)?;
14498 }
14499 if let Some(val) = &self.member_surname {
14500 s.serialize_field("member_surname", val)?;
14501 }
14502 if let Some(val) = &self.member_external_id {
14503 s.serialize_field("member_external_id", val)?;
14504 }
14505 if let Some(val) = &self.member_persistent_id {
14506 s.serialize_field("member_persistent_id", val)?;
14507 }
14508 if !self.send_welcome_email {
14509 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
14510 }
14511 if let Some(val) = &self.is_directory_restricted {
14512 s.serialize_field("is_directory_restricted", val)?;
14513 }
14514 Ok(())
14515 }
14516}
14517
14518impl<'de> ::serde::de::Deserialize<'de> for MemberAddArgBase {
14519 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14520 use serde::de::{MapAccess, Visitor};
14522 struct StructVisitor;
14523 impl<'de> Visitor<'de> for StructVisitor {
14524 type Value = MemberAddArgBase;
14525 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14526 f.write_str("a MemberAddArgBase struct")
14527 }
14528 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14529 MemberAddArgBase::internal_deserialize(map)
14530 }
14531 }
14532 deserializer.deserialize_struct("MemberAddArgBase", MEMBER_ADD_ARG_BASE_FIELDS, StructVisitor)
14533 }
14534}
14535
14536impl ::serde::ser::Serialize for MemberAddArgBase {
14537 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14538 use serde::ser::SerializeStruct;
14540 let mut s = serializer.serialize_struct("MemberAddArgBase", 7)?;
14541 self.internal_serialize::<S>(&mut s)?;
14542 s.end()
14543 }
14544}
14545
14546#[derive(Debug, Clone, PartialEq, Eq)]
14550pub enum MemberAddResult {
14551 TeamLicenseLimit(crate::types::common::EmailAddress),
14553 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
14555 UserAlreadyOnTeam(crate::types::common::EmailAddress),
14558 UserOnAnotherTeam(crate::types::common::EmailAddress),
14561 UserAlreadyPaired(crate::types::common::EmailAddress),
14563 UserMigrationFailed(crate::types::common::EmailAddress),
14565 DuplicateExternalMemberId(crate::types::common::EmailAddress),
14568 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
14571 PersistentIdDisabled(crate::types::common::EmailAddress),
14574 UserCreationFailed(crate::types::common::EmailAddress),
14576 Success(TeamMemberInfo),
14578}
14579
14580impl<'de> ::serde::de::Deserialize<'de> for MemberAddResult {
14581 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14582 use serde::de::{self, MapAccess, Visitor};
14584 struct EnumVisitor;
14585 impl<'de> Visitor<'de> for EnumVisitor {
14586 type Value = MemberAddResult;
14587 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14588 f.write_str("a MemberAddResult structure")
14589 }
14590 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
14591 let tag: &str = match map.next_key()? {
14592 Some(".tag") => map.next_value()?,
14593 _ => return Err(de::Error::missing_field(".tag"))
14594 };
14595 let value = match tag {
14596 "team_license_limit" => {
14597 match map.next_key()? {
14598 Some("team_license_limit") => MemberAddResult::TeamLicenseLimit(map.next_value()?),
14599 None => return Err(de::Error::missing_field("team_license_limit")),
14600 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14601 }
14602 }
14603 "free_team_member_limit_reached" => {
14604 match map.next_key()? {
14605 Some("free_team_member_limit_reached") => MemberAddResult::FreeTeamMemberLimitReached(map.next_value()?),
14606 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
14607 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14608 }
14609 }
14610 "user_already_on_team" => {
14611 match map.next_key()? {
14612 Some("user_already_on_team") => MemberAddResult::UserAlreadyOnTeam(map.next_value()?),
14613 None => return Err(de::Error::missing_field("user_already_on_team")),
14614 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14615 }
14616 }
14617 "user_on_another_team" => {
14618 match map.next_key()? {
14619 Some("user_on_another_team") => MemberAddResult::UserOnAnotherTeam(map.next_value()?),
14620 None => return Err(de::Error::missing_field("user_on_another_team")),
14621 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14622 }
14623 }
14624 "user_already_paired" => {
14625 match map.next_key()? {
14626 Some("user_already_paired") => MemberAddResult::UserAlreadyPaired(map.next_value()?),
14627 None => return Err(de::Error::missing_field("user_already_paired")),
14628 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14629 }
14630 }
14631 "user_migration_failed" => {
14632 match map.next_key()? {
14633 Some("user_migration_failed") => MemberAddResult::UserMigrationFailed(map.next_value()?),
14634 None => return Err(de::Error::missing_field("user_migration_failed")),
14635 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14636 }
14637 }
14638 "duplicate_external_member_id" => {
14639 match map.next_key()? {
14640 Some("duplicate_external_member_id") => MemberAddResult::DuplicateExternalMemberId(map.next_value()?),
14641 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
14642 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14643 }
14644 }
14645 "duplicate_member_persistent_id" => {
14646 match map.next_key()? {
14647 Some("duplicate_member_persistent_id") => MemberAddResult::DuplicateMemberPersistentId(map.next_value()?),
14648 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
14649 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14650 }
14651 }
14652 "persistent_id_disabled" => {
14653 match map.next_key()? {
14654 Some("persistent_id_disabled") => MemberAddResult::PersistentIdDisabled(map.next_value()?),
14655 None => return Err(de::Error::missing_field("persistent_id_disabled")),
14656 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14657 }
14658 }
14659 "user_creation_failed" => {
14660 match map.next_key()? {
14661 Some("user_creation_failed") => MemberAddResult::UserCreationFailed(map.next_value()?),
14662 None => return Err(de::Error::missing_field("user_creation_failed")),
14663 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14664 }
14665 }
14666 "success" => MemberAddResult::Success(TeamMemberInfo::internal_deserialize(&mut map)?),
14667 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
14668 };
14669 crate::eat_json_fields(&mut map)?;
14670 Ok(value)
14671 }
14672 }
14673 const VARIANTS: &[&str] = &["team_license_limit",
14674 "free_team_member_limit_reached",
14675 "user_already_on_team",
14676 "user_on_another_team",
14677 "user_already_paired",
14678 "user_migration_failed",
14679 "duplicate_external_member_id",
14680 "duplicate_member_persistent_id",
14681 "persistent_id_disabled",
14682 "user_creation_failed",
14683 "success"];
14684 deserializer.deserialize_struct("MemberAddResult", VARIANTS, EnumVisitor)
14685 }
14686}
14687
14688impl ::serde::ser::Serialize for MemberAddResult {
14689 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14690 use serde::ser::SerializeStruct;
14692 match self {
14693 MemberAddResult::TeamLicenseLimit(x) => {
14694 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14696 s.serialize_field(".tag", "team_license_limit")?;
14697 s.serialize_field("team_license_limit", x)?;
14698 s.end()
14699 }
14700 MemberAddResult::FreeTeamMemberLimitReached(x) => {
14701 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14703 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14704 s.serialize_field("free_team_member_limit_reached", x)?;
14705 s.end()
14706 }
14707 MemberAddResult::UserAlreadyOnTeam(x) => {
14708 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14710 s.serialize_field(".tag", "user_already_on_team")?;
14711 s.serialize_field("user_already_on_team", x)?;
14712 s.end()
14713 }
14714 MemberAddResult::UserOnAnotherTeam(x) => {
14715 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14717 s.serialize_field(".tag", "user_on_another_team")?;
14718 s.serialize_field("user_on_another_team", x)?;
14719 s.end()
14720 }
14721 MemberAddResult::UserAlreadyPaired(x) => {
14722 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14724 s.serialize_field(".tag", "user_already_paired")?;
14725 s.serialize_field("user_already_paired", x)?;
14726 s.end()
14727 }
14728 MemberAddResult::UserMigrationFailed(x) => {
14729 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14731 s.serialize_field(".tag", "user_migration_failed")?;
14732 s.serialize_field("user_migration_failed", x)?;
14733 s.end()
14734 }
14735 MemberAddResult::DuplicateExternalMemberId(x) => {
14736 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14738 s.serialize_field(".tag", "duplicate_external_member_id")?;
14739 s.serialize_field("duplicate_external_member_id", x)?;
14740 s.end()
14741 }
14742 MemberAddResult::DuplicateMemberPersistentId(x) => {
14743 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14745 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14746 s.serialize_field("duplicate_member_persistent_id", x)?;
14747 s.end()
14748 }
14749 MemberAddResult::PersistentIdDisabled(x) => {
14750 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14752 s.serialize_field(".tag", "persistent_id_disabled")?;
14753 s.serialize_field("persistent_id_disabled", x)?;
14754 s.end()
14755 }
14756 MemberAddResult::UserCreationFailed(x) => {
14757 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
14759 s.serialize_field(".tag", "user_creation_failed")?;
14760 s.serialize_field("user_creation_failed", x)?;
14761 s.end()
14762 }
14763 MemberAddResult::Success(x) => {
14764 let mut s = serializer.serialize_struct("MemberAddResult", 3)?;
14766 s.serialize_field(".tag", "success")?;
14767 x.internal_serialize::<S>(&mut s)?;
14768 s.end()
14769 }
14770 }
14771 }
14772}
14773
14774impl From<MemberAddResultBase> for MemberAddResult {
14776 fn from(parent: MemberAddResultBase) -> Self {
14777 match parent {
14778 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddResult::TeamLicenseLimit(x),
14779 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddResult::FreeTeamMemberLimitReached(x),
14780 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddResult::UserAlreadyOnTeam(x),
14781 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddResult::UserOnAnotherTeam(x),
14782 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddResult::UserAlreadyPaired(x),
14783 MemberAddResultBase::UserMigrationFailed(x) => MemberAddResult::UserMigrationFailed(x),
14784 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddResult::DuplicateExternalMemberId(x),
14785 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddResult::DuplicateMemberPersistentId(x),
14786 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddResult::PersistentIdDisabled(x),
14787 MemberAddResultBase::UserCreationFailed(x) => MemberAddResult::UserCreationFailed(x),
14788 }
14789 }
14790}
14791#[derive(Debug, Clone, PartialEq, Eq)]
14792pub enum MemberAddResultBase {
14793 TeamLicenseLimit(crate::types::common::EmailAddress),
14795 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
14797 UserAlreadyOnTeam(crate::types::common::EmailAddress),
14800 UserOnAnotherTeam(crate::types::common::EmailAddress),
14803 UserAlreadyPaired(crate::types::common::EmailAddress),
14805 UserMigrationFailed(crate::types::common::EmailAddress),
14807 DuplicateExternalMemberId(crate::types::common::EmailAddress),
14810 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
14813 PersistentIdDisabled(crate::types::common::EmailAddress),
14816 UserCreationFailed(crate::types::common::EmailAddress),
14818}
14819
14820impl<'de> ::serde::de::Deserialize<'de> for MemberAddResultBase {
14821 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14822 use serde::de::{self, MapAccess, Visitor};
14824 struct EnumVisitor;
14825 impl<'de> Visitor<'de> for EnumVisitor {
14826 type Value = MemberAddResultBase;
14827 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14828 f.write_str("a MemberAddResultBase structure")
14829 }
14830 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
14831 let tag: &str = match map.next_key()? {
14832 Some(".tag") => map.next_value()?,
14833 _ => return Err(de::Error::missing_field(".tag"))
14834 };
14835 let value = match tag {
14836 "team_license_limit" => {
14837 match map.next_key()? {
14838 Some("team_license_limit") => MemberAddResultBase::TeamLicenseLimit(map.next_value()?),
14839 None => return Err(de::Error::missing_field("team_license_limit")),
14840 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14841 }
14842 }
14843 "free_team_member_limit_reached" => {
14844 match map.next_key()? {
14845 Some("free_team_member_limit_reached") => MemberAddResultBase::FreeTeamMemberLimitReached(map.next_value()?),
14846 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
14847 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14848 }
14849 }
14850 "user_already_on_team" => {
14851 match map.next_key()? {
14852 Some("user_already_on_team") => MemberAddResultBase::UserAlreadyOnTeam(map.next_value()?),
14853 None => return Err(de::Error::missing_field("user_already_on_team")),
14854 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14855 }
14856 }
14857 "user_on_another_team" => {
14858 match map.next_key()? {
14859 Some("user_on_another_team") => MemberAddResultBase::UserOnAnotherTeam(map.next_value()?),
14860 None => return Err(de::Error::missing_field("user_on_another_team")),
14861 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14862 }
14863 }
14864 "user_already_paired" => {
14865 match map.next_key()? {
14866 Some("user_already_paired") => MemberAddResultBase::UserAlreadyPaired(map.next_value()?),
14867 None => return Err(de::Error::missing_field("user_already_paired")),
14868 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14869 }
14870 }
14871 "user_migration_failed" => {
14872 match map.next_key()? {
14873 Some("user_migration_failed") => MemberAddResultBase::UserMigrationFailed(map.next_value()?),
14874 None => return Err(de::Error::missing_field("user_migration_failed")),
14875 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14876 }
14877 }
14878 "duplicate_external_member_id" => {
14879 match map.next_key()? {
14880 Some("duplicate_external_member_id") => MemberAddResultBase::DuplicateExternalMemberId(map.next_value()?),
14881 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
14882 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14883 }
14884 }
14885 "duplicate_member_persistent_id" => {
14886 match map.next_key()? {
14887 Some("duplicate_member_persistent_id") => MemberAddResultBase::DuplicateMemberPersistentId(map.next_value()?),
14888 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
14889 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14890 }
14891 }
14892 "persistent_id_disabled" => {
14893 match map.next_key()? {
14894 Some("persistent_id_disabled") => MemberAddResultBase::PersistentIdDisabled(map.next_value()?),
14895 None => return Err(de::Error::missing_field("persistent_id_disabled")),
14896 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14897 }
14898 }
14899 "user_creation_failed" => {
14900 match map.next_key()? {
14901 Some("user_creation_failed") => MemberAddResultBase::UserCreationFailed(map.next_value()?),
14902 None => return Err(de::Error::missing_field("user_creation_failed")),
14903 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14904 }
14905 }
14906 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
14907 };
14908 crate::eat_json_fields(&mut map)?;
14909 Ok(value)
14910 }
14911 }
14912 const VARIANTS: &[&str] = &["team_license_limit",
14913 "free_team_member_limit_reached",
14914 "user_already_on_team",
14915 "user_on_another_team",
14916 "user_already_paired",
14917 "user_migration_failed",
14918 "duplicate_external_member_id",
14919 "duplicate_member_persistent_id",
14920 "persistent_id_disabled",
14921 "user_creation_failed"];
14922 deserializer.deserialize_struct("MemberAddResultBase", VARIANTS, EnumVisitor)
14923 }
14924}
14925
14926impl ::serde::ser::Serialize for MemberAddResultBase {
14927 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14928 use serde::ser::SerializeStruct;
14930 match self {
14931 MemberAddResultBase::TeamLicenseLimit(x) => {
14932 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14934 s.serialize_field(".tag", "team_license_limit")?;
14935 s.serialize_field("team_license_limit", x)?;
14936 s.end()
14937 }
14938 MemberAddResultBase::FreeTeamMemberLimitReached(x) => {
14939 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14941 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14942 s.serialize_field("free_team_member_limit_reached", x)?;
14943 s.end()
14944 }
14945 MemberAddResultBase::UserAlreadyOnTeam(x) => {
14946 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14948 s.serialize_field(".tag", "user_already_on_team")?;
14949 s.serialize_field("user_already_on_team", x)?;
14950 s.end()
14951 }
14952 MemberAddResultBase::UserOnAnotherTeam(x) => {
14953 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14955 s.serialize_field(".tag", "user_on_another_team")?;
14956 s.serialize_field("user_on_another_team", x)?;
14957 s.end()
14958 }
14959 MemberAddResultBase::UserAlreadyPaired(x) => {
14960 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14962 s.serialize_field(".tag", "user_already_paired")?;
14963 s.serialize_field("user_already_paired", x)?;
14964 s.end()
14965 }
14966 MemberAddResultBase::UserMigrationFailed(x) => {
14967 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14969 s.serialize_field(".tag", "user_migration_failed")?;
14970 s.serialize_field("user_migration_failed", x)?;
14971 s.end()
14972 }
14973 MemberAddResultBase::DuplicateExternalMemberId(x) => {
14974 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14976 s.serialize_field(".tag", "duplicate_external_member_id")?;
14977 s.serialize_field("duplicate_external_member_id", x)?;
14978 s.end()
14979 }
14980 MemberAddResultBase::DuplicateMemberPersistentId(x) => {
14981 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14983 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14984 s.serialize_field("duplicate_member_persistent_id", x)?;
14985 s.end()
14986 }
14987 MemberAddResultBase::PersistentIdDisabled(x) => {
14988 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14990 s.serialize_field(".tag", "persistent_id_disabled")?;
14991 s.serialize_field("persistent_id_disabled", x)?;
14992 s.end()
14993 }
14994 MemberAddResultBase::UserCreationFailed(x) => {
14995 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14997 s.serialize_field(".tag", "user_creation_failed")?;
14998 s.serialize_field("user_creation_failed", x)?;
14999 s.end()
15000 }
15001 }
15002 }
15003}
15004
15005#[derive(Debug, Clone, PartialEq, Eq)]
15006#[non_exhaustive] pub struct MemberAddV2Arg {
15008 pub member_email: crate::types::common::EmailAddress,
15009 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
15011 pub member_surname: Option<crate::types::common::OptionalNamePart>,
15013 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
15015 pub member_persistent_id: Option<String>,
15018 pub send_welcome_email: bool,
15022 pub is_directory_restricted: Option<bool>,
15024 pub role_ids: Option<Vec<TeamMemberRoleId>>,
15025}
15026
15027impl MemberAddV2Arg {
15028 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
15029 MemberAddV2Arg {
15030 member_email,
15031 member_given_name: None,
15032 member_surname: None,
15033 member_external_id: None,
15034 member_persistent_id: None,
15035 send_welcome_email: true,
15036 is_directory_restricted: None,
15037 role_ids: None,
15038 }
15039 }
15040
15041 pub fn with_member_given_name(
15042 mut self,
15043 value: crate::types::common::OptionalNamePart,
15044 ) -> Self {
15045 self.member_given_name = Some(value);
15046 self
15047 }
15048
15049 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
15050 self.member_surname = Some(value);
15051 self
15052 }
15053
15054 pub fn with_member_external_id(
15055 mut self,
15056 value: crate::types::team_common::MemberExternalId,
15057 ) -> Self {
15058 self.member_external_id = Some(value);
15059 self
15060 }
15061
15062 pub fn with_member_persistent_id(mut self, value: String) -> Self {
15063 self.member_persistent_id = Some(value);
15064 self
15065 }
15066
15067 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
15068 self.send_welcome_email = value;
15069 self
15070 }
15071
15072 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
15073 self.is_directory_restricted = Some(value);
15074 self
15075 }
15076
15077 pub fn with_role_ids(mut self, value: Vec<TeamMemberRoleId>) -> Self {
15078 self.role_ids = Some(value);
15079 self
15080 }
15081}
15082
15083const MEMBER_ADD_V2_ARG_FIELDS: &[&str] = &["member_email",
15084 "member_given_name",
15085 "member_surname",
15086 "member_external_id",
15087 "member_persistent_id",
15088 "send_welcome_email",
15089 "is_directory_restricted",
15090 "role_ids"];
15091impl MemberAddV2Arg {
15092 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15093 map: V,
15094 ) -> Result<MemberAddV2Arg, V::Error> {
15095 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15096 }
15097
15098 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15099 mut map: V,
15100 optional: bool,
15101 ) -> Result<Option<MemberAddV2Arg>, V::Error> {
15102 let mut field_member_email = None;
15103 let mut field_member_given_name = None;
15104 let mut field_member_surname = None;
15105 let mut field_member_external_id = None;
15106 let mut field_member_persistent_id = None;
15107 let mut field_send_welcome_email = None;
15108 let mut field_is_directory_restricted = None;
15109 let mut field_role_ids = None;
15110 let mut nothing = true;
15111 while let Some(key) = map.next_key::<&str>()? {
15112 nothing = false;
15113 match key {
15114 "member_email" => {
15115 if field_member_email.is_some() {
15116 return Err(::serde::de::Error::duplicate_field("member_email"));
15117 }
15118 field_member_email = Some(map.next_value()?);
15119 }
15120 "member_given_name" => {
15121 if field_member_given_name.is_some() {
15122 return Err(::serde::de::Error::duplicate_field("member_given_name"));
15123 }
15124 field_member_given_name = Some(map.next_value()?);
15125 }
15126 "member_surname" => {
15127 if field_member_surname.is_some() {
15128 return Err(::serde::de::Error::duplicate_field("member_surname"));
15129 }
15130 field_member_surname = Some(map.next_value()?);
15131 }
15132 "member_external_id" => {
15133 if field_member_external_id.is_some() {
15134 return Err(::serde::de::Error::duplicate_field("member_external_id"));
15135 }
15136 field_member_external_id = Some(map.next_value()?);
15137 }
15138 "member_persistent_id" => {
15139 if field_member_persistent_id.is_some() {
15140 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
15141 }
15142 field_member_persistent_id = Some(map.next_value()?);
15143 }
15144 "send_welcome_email" => {
15145 if field_send_welcome_email.is_some() {
15146 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
15147 }
15148 field_send_welcome_email = Some(map.next_value()?);
15149 }
15150 "is_directory_restricted" => {
15151 if field_is_directory_restricted.is_some() {
15152 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
15153 }
15154 field_is_directory_restricted = Some(map.next_value()?);
15155 }
15156 "role_ids" => {
15157 if field_role_ids.is_some() {
15158 return Err(::serde::de::Error::duplicate_field("role_ids"));
15159 }
15160 field_role_ids = Some(map.next_value()?);
15161 }
15162 _ => {
15163 map.next_value::<::serde_json::Value>()?;
15165 }
15166 }
15167 }
15168 if optional && nothing {
15169 return Ok(None);
15170 }
15171 let result = MemberAddV2Arg {
15172 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
15173 member_given_name: field_member_given_name.and_then(Option::flatten),
15174 member_surname: field_member_surname.and_then(Option::flatten),
15175 member_external_id: field_member_external_id.and_then(Option::flatten),
15176 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
15177 send_welcome_email: field_send_welcome_email.unwrap_or(true),
15178 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
15179 role_ids: field_role_ids.and_then(Option::flatten),
15180 };
15181 Ok(Some(result))
15182 }
15183
15184 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15185 &self,
15186 s: &mut S::SerializeStruct,
15187 ) -> Result<(), S::Error> {
15188 use serde::ser::SerializeStruct;
15189 s.serialize_field("member_email", &self.member_email)?;
15190 if let Some(val) = &self.member_given_name {
15191 s.serialize_field("member_given_name", val)?;
15192 }
15193 if let Some(val) = &self.member_surname {
15194 s.serialize_field("member_surname", val)?;
15195 }
15196 if let Some(val) = &self.member_external_id {
15197 s.serialize_field("member_external_id", val)?;
15198 }
15199 if let Some(val) = &self.member_persistent_id {
15200 s.serialize_field("member_persistent_id", val)?;
15201 }
15202 if !self.send_welcome_email {
15203 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
15204 }
15205 if let Some(val) = &self.is_directory_restricted {
15206 s.serialize_field("is_directory_restricted", val)?;
15207 }
15208 if let Some(val) = &self.role_ids {
15209 s.serialize_field("role_ids", val)?;
15210 }
15211 Ok(())
15212 }
15213}
15214
15215impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Arg {
15216 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15217 use serde::de::{MapAccess, Visitor};
15219 struct StructVisitor;
15220 impl<'de> Visitor<'de> for StructVisitor {
15221 type Value = MemberAddV2Arg;
15222 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15223 f.write_str("a MemberAddV2Arg struct")
15224 }
15225 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15226 MemberAddV2Arg::internal_deserialize(map)
15227 }
15228 }
15229 deserializer.deserialize_struct("MemberAddV2Arg", MEMBER_ADD_V2_ARG_FIELDS, StructVisitor)
15230 }
15231}
15232
15233impl ::serde::ser::Serialize for MemberAddV2Arg {
15234 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15235 use serde::ser::SerializeStruct;
15237 let mut s = serializer.serialize_struct("MemberAddV2Arg", 8)?;
15238 self.internal_serialize::<S>(&mut s)?;
15239 s.end()
15240 }
15241}
15242
15243impl From<MemberAddV2Arg> for MemberAddArgBase {
15245 fn from(subtype: MemberAddV2Arg) -> Self {
15246 Self {
15247 member_email: subtype.member_email,
15248 member_given_name: subtype.member_given_name,
15249 member_surname: subtype.member_surname,
15250 member_external_id: subtype.member_external_id,
15251 member_persistent_id: subtype.member_persistent_id,
15252 send_welcome_email: subtype.send_welcome_email,
15253 is_directory_restricted: subtype.is_directory_restricted,
15254 }
15255 }
15256}
15257#[derive(Debug, Clone, PartialEq, Eq)]
15261#[non_exhaustive] pub enum MemberAddV2Result {
15263 TeamLicenseLimit(crate::types::common::EmailAddress),
15265 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
15267 UserAlreadyOnTeam(crate::types::common::EmailAddress),
15270 UserOnAnotherTeam(crate::types::common::EmailAddress),
15273 UserAlreadyPaired(crate::types::common::EmailAddress),
15275 UserMigrationFailed(crate::types::common::EmailAddress),
15277 DuplicateExternalMemberId(crate::types::common::EmailAddress),
15280 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
15283 PersistentIdDisabled(crate::types::common::EmailAddress),
15286 UserCreationFailed(crate::types::common::EmailAddress),
15288 Success(TeamMemberInfoV2),
15290 Other,
15293}
15294
15295impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Result {
15296 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15297 use serde::de::{self, MapAccess, Visitor};
15299 struct EnumVisitor;
15300 impl<'de> Visitor<'de> for EnumVisitor {
15301 type Value = MemberAddV2Result;
15302 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15303 f.write_str("a MemberAddV2Result structure")
15304 }
15305 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15306 let tag: &str = match map.next_key()? {
15307 Some(".tag") => map.next_value()?,
15308 _ => return Err(de::Error::missing_field(".tag"))
15309 };
15310 let value = match tag {
15311 "team_license_limit" => {
15312 match map.next_key()? {
15313 Some("team_license_limit") => MemberAddV2Result::TeamLicenseLimit(map.next_value()?),
15314 None => return Err(de::Error::missing_field("team_license_limit")),
15315 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15316 }
15317 }
15318 "free_team_member_limit_reached" => {
15319 match map.next_key()? {
15320 Some("free_team_member_limit_reached") => MemberAddV2Result::FreeTeamMemberLimitReached(map.next_value()?),
15321 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
15322 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15323 }
15324 }
15325 "user_already_on_team" => {
15326 match map.next_key()? {
15327 Some("user_already_on_team") => MemberAddV2Result::UserAlreadyOnTeam(map.next_value()?),
15328 None => return Err(de::Error::missing_field("user_already_on_team")),
15329 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15330 }
15331 }
15332 "user_on_another_team" => {
15333 match map.next_key()? {
15334 Some("user_on_another_team") => MemberAddV2Result::UserOnAnotherTeam(map.next_value()?),
15335 None => return Err(de::Error::missing_field("user_on_another_team")),
15336 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15337 }
15338 }
15339 "user_already_paired" => {
15340 match map.next_key()? {
15341 Some("user_already_paired") => MemberAddV2Result::UserAlreadyPaired(map.next_value()?),
15342 None => return Err(de::Error::missing_field("user_already_paired")),
15343 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15344 }
15345 }
15346 "user_migration_failed" => {
15347 match map.next_key()? {
15348 Some("user_migration_failed") => MemberAddV2Result::UserMigrationFailed(map.next_value()?),
15349 None => return Err(de::Error::missing_field("user_migration_failed")),
15350 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15351 }
15352 }
15353 "duplicate_external_member_id" => {
15354 match map.next_key()? {
15355 Some("duplicate_external_member_id") => MemberAddV2Result::DuplicateExternalMemberId(map.next_value()?),
15356 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
15357 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15358 }
15359 }
15360 "duplicate_member_persistent_id" => {
15361 match map.next_key()? {
15362 Some("duplicate_member_persistent_id") => MemberAddV2Result::DuplicateMemberPersistentId(map.next_value()?),
15363 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
15364 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15365 }
15366 }
15367 "persistent_id_disabled" => {
15368 match map.next_key()? {
15369 Some("persistent_id_disabled") => MemberAddV2Result::PersistentIdDisabled(map.next_value()?),
15370 None => return Err(de::Error::missing_field("persistent_id_disabled")),
15371 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15372 }
15373 }
15374 "user_creation_failed" => {
15375 match map.next_key()? {
15376 Some("user_creation_failed") => MemberAddV2Result::UserCreationFailed(map.next_value()?),
15377 None => return Err(de::Error::missing_field("user_creation_failed")),
15378 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15379 }
15380 }
15381 "success" => MemberAddV2Result::Success(TeamMemberInfoV2::internal_deserialize(&mut map)?),
15382 _ => MemberAddV2Result::Other,
15383 };
15384 crate::eat_json_fields(&mut map)?;
15385 Ok(value)
15386 }
15387 }
15388 const VARIANTS: &[&str] = &["team_license_limit",
15389 "free_team_member_limit_reached",
15390 "user_already_on_team",
15391 "user_on_another_team",
15392 "user_already_paired",
15393 "user_migration_failed",
15394 "duplicate_external_member_id",
15395 "duplicate_member_persistent_id",
15396 "persistent_id_disabled",
15397 "user_creation_failed",
15398 "success",
15399 "other"];
15400 deserializer.deserialize_struct("MemberAddV2Result", VARIANTS, EnumVisitor)
15401 }
15402}
15403
15404impl ::serde::ser::Serialize for MemberAddV2Result {
15405 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15406 use serde::ser::SerializeStruct;
15408 match self {
15409 MemberAddV2Result::TeamLicenseLimit(x) => {
15410 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15412 s.serialize_field(".tag", "team_license_limit")?;
15413 s.serialize_field("team_license_limit", x)?;
15414 s.end()
15415 }
15416 MemberAddV2Result::FreeTeamMemberLimitReached(x) => {
15417 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15419 s.serialize_field(".tag", "free_team_member_limit_reached")?;
15420 s.serialize_field("free_team_member_limit_reached", x)?;
15421 s.end()
15422 }
15423 MemberAddV2Result::UserAlreadyOnTeam(x) => {
15424 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15426 s.serialize_field(".tag", "user_already_on_team")?;
15427 s.serialize_field("user_already_on_team", x)?;
15428 s.end()
15429 }
15430 MemberAddV2Result::UserOnAnotherTeam(x) => {
15431 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15433 s.serialize_field(".tag", "user_on_another_team")?;
15434 s.serialize_field("user_on_another_team", x)?;
15435 s.end()
15436 }
15437 MemberAddV2Result::UserAlreadyPaired(x) => {
15438 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15440 s.serialize_field(".tag", "user_already_paired")?;
15441 s.serialize_field("user_already_paired", x)?;
15442 s.end()
15443 }
15444 MemberAddV2Result::UserMigrationFailed(x) => {
15445 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15447 s.serialize_field(".tag", "user_migration_failed")?;
15448 s.serialize_field("user_migration_failed", x)?;
15449 s.end()
15450 }
15451 MemberAddV2Result::DuplicateExternalMemberId(x) => {
15452 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15454 s.serialize_field(".tag", "duplicate_external_member_id")?;
15455 s.serialize_field("duplicate_external_member_id", x)?;
15456 s.end()
15457 }
15458 MemberAddV2Result::DuplicateMemberPersistentId(x) => {
15459 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15461 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
15462 s.serialize_field("duplicate_member_persistent_id", x)?;
15463 s.end()
15464 }
15465 MemberAddV2Result::PersistentIdDisabled(x) => {
15466 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15468 s.serialize_field(".tag", "persistent_id_disabled")?;
15469 s.serialize_field("persistent_id_disabled", x)?;
15470 s.end()
15471 }
15472 MemberAddV2Result::UserCreationFailed(x) => {
15473 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
15475 s.serialize_field(".tag", "user_creation_failed")?;
15476 s.serialize_field("user_creation_failed", x)?;
15477 s.end()
15478 }
15479 MemberAddV2Result::Success(x) => {
15480 let mut s = serializer.serialize_struct("MemberAddV2Result", 3)?;
15482 s.serialize_field(".tag", "success")?;
15483 x.internal_serialize::<S>(&mut s)?;
15484 s.end()
15485 }
15486 MemberAddV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15487 }
15488 }
15489}
15490
15491impl From<MemberAddResultBase> for MemberAddV2Result {
15493 fn from(parent: MemberAddResultBase) -> Self {
15494 match parent {
15495 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddV2Result::TeamLicenseLimit(x),
15496 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddV2Result::FreeTeamMemberLimitReached(x),
15497 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddV2Result::UserAlreadyOnTeam(x),
15498 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddV2Result::UserOnAnotherTeam(x),
15499 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddV2Result::UserAlreadyPaired(x),
15500 MemberAddResultBase::UserMigrationFailed(x) => MemberAddV2Result::UserMigrationFailed(x),
15501 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddV2Result::DuplicateExternalMemberId(x),
15502 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddV2Result::DuplicateMemberPersistentId(x),
15503 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddV2Result::PersistentIdDisabled(x),
15504 MemberAddResultBase::UserCreationFailed(x) => MemberAddV2Result::UserCreationFailed(x),
15505 }
15506 }
15507}
15508#[derive(Debug, Clone, PartialEq, Eq)]
15510#[non_exhaustive] pub struct MemberDevices {
15512 pub team_member_id: String,
15514 pub web_sessions: Option<Vec<ActiveWebSession>>,
15516 pub desktop_clients: Option<Vec<DesktopClientSession>>,
15518 pub mobile_clients: Option<Vec<MobileClientSession>>,
15520}
15521
15522impl MemberDevices {
15523 pub fn new(team_member_id: String) -> Self {
15524 MemberDevices {
15525 team_member_id,
15526 web_sessions: None,
15527 desktop_clients: None,
15528 mobile_clients: None,
15529 }
15530 }
15531
15532 pub fn with_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
15533 self.web_sessions = Some(value);
15534 self
15535 }
15536
15537 pub fn with_desktop_clients(mut self, value: Vec<DesktopClientSession>) -> Self {
15538 self.desktop_clients = Some(value);
15539 self
15540 }
15541
15542 pub fn with_mobile_clients(mut self, value: Vec<MobileClientSession>) -> Self {
15543 self.mobile_clients = Some(value);
15544 self
15545 }
15546}
15547
15548const MEMBER_DEVICES_FIELDS: &[&str] = &["team_member_id",
15549 "web_sessions",
15550 "desktop_clients",
15551 "mobile_clients"];
15552impl MemberDevices {
15553 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15554 map: V,
15555 ) -> Result<MemberDevices, V::Error> {
15556 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15557 }
15558
15559 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15560 mut map: V,
15561 optional: bool,
15562 ) -> Result<Option<MemberDevices>, V::Error> {
15563 let mut field_team_member_id = None;
15564 let mut field_web_sessions = None;
15565 let mut field_desktop_clients = None;
15566 let mut field_mobile_clients = None;
15567 let mut nothing = true;
15568 while let Some(key) = map.next_key::<&str>()? {
15569 nothing = false;
15570 match key {
15571 "team_member_id" => {
15572 if field_team_member_id.is_some() {
15573 return Err(::serde::de::Error::duplicate_field("team_member_id"));
15574 }
15575 field_team_member_id = Some(map.next_value()?);
15576 }
15577 "web_sessions" => {
15578 if field_web_sessions.is_some() {
15579 return Err(::serde::de::Error::duplicate_field("web_sessions"));
15580 }
15581 field_web_sessions = Some(map.next_value()?);
15582 }
15583 "desktop_clients" => {
15584 if field_desktop_clients.is_some() {
15585 return Err(::serde::de::Error::duplicate_field("desktop_clients"));
15586 }
15587 field_desktop_clients = Some(map.next_value()?);
15588 }
15589 "mobile_clients" => {
15590 if field_mobile_clients.is_some() {
15591 return Err(::serde::de::Error::duplicate_field("mobile_clients"));
15592 }
15593 field_mobile_clients = Some(map.next_value()?);
15594 }
15595 _ => {
15596 map.next_value::<::serde_json::Value>()?;
15598 }
15599 }
15600 }
15601 if optional && nothing {
15602 return Ok(None);
15603 }
15604 let result = MemberDevices {
15605 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
15606 web_sessions: field_web_sessions.and_then(Option::flatten),
15607 desktop_clients: field_desktop_clients.and_then(Option::flatten),
15608 mobile_clients: field_mobile_clients.and_then(Option::flatten),
15609 };
15610 Ok(Some(result))
15611 }
15612
15613 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15614 &self,
15615 s: &mut S::SerializeStruct,
15616 ) -> Result<(), S::Error> {
15617 use serde::ser::SerializeStruct;
15618 s.serialize_field("team_member_id", &self.team_member_id)?;
15619 if let Some(val) = &self.web_sessions {
15620 s.serialize_field("web_sessions", val)?;
15621 }
15622 if let Some(val) = &self.desktop_clients {
15623 s.serialize_field("desktop_clients", val)?;
15624 }
15625 if let Some(val) = &self.mobile_clients {
15626 s.serialize_field("mobile_clients", val)?;
15627 }
15628 Ok(())
15629 }
15630}
15631
15632impl<'de> ::serde::de::Deserialize<'de> for MemberDevices {
15633 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15634 use serde::de::{MapAccess, Visitor};
15636 struct StructVisitor;
15637 impl<'de> Visitor<'de> for StructVisitor {
15638 type Value = MemberDevices;
15639 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15640 f.write_str("a MemberDevices struct")
15641 }
15642 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15643 MemberDevices::internal_deserialize(map)
15644 }
15645 }
15646 deserializer.deserialize_struct("MemberDevices", MEMBER_DEVICES_FIELDS, StructVisitor)
15647 }
15648}
15649
15650impl ::serde::ser::Serialize for MemberDevices {
15651 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15652 use serde::ser::SerializeStruct;
15654 let mut s = serializer.serialize_struct("MemberDevices", 4)?;
15655 self.internal_serialize::<S>(&mut s)?;
15656 s.end()
15657 }
15658}
15659
15660#[derive(Debug, Clone, PartialEq, Eq)]
15662#[non_exhaustive] pub struct MemberLinkedApps {
15664 pub team_member_id: String,
15666 pub linked_api_apps: Vec<ApiApp>,
15668}
15669
15670impl MemberLinkedApps {
15671 pub fn new(team_member_id: String, linked_api_apps: Vec<ApiApp>) -> Self {
15672 MemberLinkedApps {
15673 team_member_id,
15674 linked_api_apps,
15675 }
15676 }
15677}
15678
15679const MEMBER_LINKED_APPS_FIELDS: &[&str] = &["team_member_id",
15680 "linked_api_apps"];
15681impl MemberLinkedApps {
15682 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15683 map: V,
15684 ) -> Result<MemberLinkedApps, V::Error> {
15685 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15686 }
15687
15688 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15689 mut map: V,
15690 optional: bool,
15691 ) -> Result<Option<MemberLinkedApps>, V::Error> {
15692 let mut field_team_member_id = None;
15693 let mut field_linked_api_apps = None;
15694 let mut nothing = true;
15695 while let Some(key) = map.next_key::<&str>()? {
15696 nothing = false;
15697 match key {
15698 "team_member_id" => {
15699 if field_team_member_id.is_some() {
15700 return Err(::serde::de::Error::duplicate_field("team_member_id"));
15701 }
15702 field_team_member_id = Some(map.next_value()?);
15703 }
15704 "linked_api_apps" => {
15705 if field_linked_api_apps.is_some() {
15706 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
15707 }
15708 field_linked_api_apps = Some(map.next_value()?);
15709 }
15710 _ => {
15711 map.next_value::<::serde_json::Value>()?;
15713 }
15714 }
15715 }
15716 if optional && nothing {
15717 return Ok(None);
15718 }
15719 let result = MemberLinkedApps {
15720 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
15721 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
15722 };
15723 Ok(Some(result))
15724 }
15725
15726 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15727 &self,
15728 s: &mut S::SerializeStruct,
15729 ) -> Result<(), S::Error> {
15730 use serde::ser::SerializeStruct;
15731 s.serialize_field("team_member_id", &self.team_member_id)?;
15732 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
15733 Ok(())
15734 }
15735}
15736
15737impl<'de> ::serde::de::Deserialize<'de> for MemberLinkedApps {
15738 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15739 use serde::de::{MapAccess, Visitor};
15741 struct StructVisitor;
15742 impl<'de> Visitor<'de> for StructVisitor {
15743 type Value = MemberLinkedApps;
15744 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15745 f.write_str("a MemberLinkedApps struct")
15746 }
15747 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15748 MemberLinkedApps::internal_deserialize(map)
15749 }
15750 }
15751 deserializer.deserialize_struct("MemberLinkedApps", MEMBER_LINKED_APPS_FIELDS, StructVisitor)
15752 }
15753}
15754
15755impl ::serde::ser::Serialize for MemberLinkedApps {
15756 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15757 use serde::ser::SerializeStruct;
15759 let mut s = serializer.serialize_struct("MemberLinkedApps", 2)?;
15760 self.internal_serialize::<S>(&mut s)?;
15761 s.end()
15762 }
15763}
15764
15765#[derive(Debug, Clone, PartialEq, Eq)]
15767#[non_exhaustive] pub struct MemberProfile {
15769 pub team_member_id: crate::types::team_common::TeamMemberId,
15771 pub email: String,
15773 pub email_verified: bool,
15775 pub status: TeamMemberStatus,
15777 pub name: crate::types::users::Name,
15779 pub membership_type: TeamMembershipType,
15782 pub external_id: Option<String>,
15785 pub account_id: Option<crate::types::users_common::AccountId>,
15787 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
15789 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
15792 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
15794 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
15797 pub persistent_id: Option<String>,
15800 pub is_directory_restricted: Option<bool>,
15802 pub profile_photo_url: Option<String>,
15804}
15805
15806impl MemberProfile {
15807 pub fn new(
15808 team_member_id: crate::types::team_common::TeamMemberId,
15809 email: String,
15810 email_verified: bool,
15811 status: TeamMemberStatus,
15812 name: crate::types::users::Name,
15813 membership_type: TeamMembershipType,
15814 ) -> Self {
15815 MemberProfile {
15816 team_member_id,
15817 email,
15818 email_verified,
15819 status,
15820 name,
15821 membership_type,
15822 external_id: None,
15823 account_id: None,
15824 secondary_emails: None,
15825 invited_on: None,
15826 joined_on: None,
15827 suspended_on: None,
15828 persistent_id: None,
15829 is_directory_restricted: None,
15830 profile_photo_url: None,
15831 }
15832 }
15833
15834 pub fn with_external_id(mut self, value: String) -> Self {
15835 self.external_id = Some(value);
15836 self
15837 }
15838
15839 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
15840 self.account_id = Some(value);
15841 self
15842 }
15843
15844 pub fn with_secondary_emails(
15845 mut self,
15846 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
15847 ) -> Self {
15848 self.secondary_emails = Some(value);
15849 self
15850 }
15851
15852 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
15853 self.invited_on = Some(value);
15854 self
15855 }
15856
15857 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
15858 self.joined_on = Some(value);
15859 self
15860 }
15861
15862 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
15863 self.suspended_on = Some(value);
15864 self
15865 }
15866
15867 pub fn with_persistent_id(mut self, value: String) -> Self {
15868 self.persistent_id = Some(value);
15869 self
15870 }
15871
15872 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
15873 self.is_directory_restricted = Some(value);
15874 self
15875 }
15876
15877 pub fn with_profile_photo_url(mut self, value: String) -> Self {
15878 self.profile_photo_url = Some(value);
15879 self
15880 }
15881}
15882
15883const MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
15884 "email",
15885 "email_verified",
15886 "status",
15887 "name",
15888 "membership_type",
15889 "external_id",
15890 "account_id",
15891 "secondary_emails",
15892 "invited_on",
15893 "joined_on",
15894 "suspended_on",
15895 "persistent_id",
15896 "is_directory_restricted",
15897 "profile_photo_url"];
15898impl MemberProfile {
15899 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15900 map: V,
15901 ) -> Result<MemberProfile, V::Error> {
15902 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15903 }
15904
15905 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15906 mut map: V,
15907 optional: bool,
15908 ) -> Result<Option<MemberProfile>, V::Error> {
15909 let mut field_team_member_id = None;
15910 let mut field_email = None;
15911 let mut field_email_verified = None;
15912 let mut field_status = None;
15913 let mut field_name = None;
15914 let mut field_membership_type = None;
15915 let mut field_external_id = None;
15916 let mut field_account_id = None;
15917 let mut field_secondary_emails = None;
15918 let mut field_invited_on = None;
15919 let mut field_joined_on = None;
15920 let mut field_suspended_on = None;
15921 let mut field_persistent_id = None;
15922 let mut field_is_directory_restricted = None;
15923 let mut field_profile_photo_url = None;
15924 let mut nothing = true;
15925 while let Some(key) = map.next_key::<&str>()? {
15926 nothing = false;
15927 match key {
15928 "team_member_id" => {
15929 if field_team_member_id.is_some() {
15930 return Err(::serde::de::Error::duplicate_field("team_member_id"));
15931 }
15932 field_team_member_id = Some(map.next_value()?);
15933 }
15934 "email" => {
15935 if field_email.is_some() {
15936 return Err(::serde::de::Error::duplicate_field("email"));
15937 }
15938 field_email = Some(map.next_value()?);
15939 }
15940 "email_verified" => {
15941 if field_email_verified.is_some() {
15942 return Err(::serde::de::Error::duplicate_field("email_verified"));
15943 }
15944 field_email_verified = Some(map.next_value()?);
15945 }
15946 "status" => {
15947 if field_status.is_some() {
15948 return Err(::serde::de::Error::duplicate_field("status"));
15949 }
15950 field_status = Some(map.next_value()?);
15951 }
15952 "name" => {
15953 if field_name.is_some() {
15954 return Err(::serde::de::Error::duplicate_field("name"));
15955 }
15956 field_name = Some(map.next_value()?);
15957 }
15958 "membership_type" => {
15959 if field_membership_type.is_some() {
15960 return Err(::serde::de::Error::duplicate_field("membership_type"));
15961 }
15962 field_membership_type = Some(map.next_value()?);
15963 }
15964 "external_id" => {
15965 if field_external_id.is_some() {
15966 return Err(::serde::de::Error::duplicate_field("external_id"));
15967 }
15968 field_external_id = Some(map.next_value()?);
15969 }
15970 "account_id" => {
15971 if field_account_id.is_some() {
15972 return Err(::serde::de::Error::duplicate_field("account_id"));
15973 }
15974 field_account_id = Some(map.next_value()?);
15975 }
15976 "secondary_emails" => {
15977 if field_secondary_emails.is_some() {
15978 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
15979 }
15980 field_secondary_emails = Some(map.next_value()?);
15981 }
15982 "invited_on" => {
15983 if field_invited_on.is_some() {
15984 return Err(::serde::de::Error::duplicate_field("invited_on"));
15985 }
15986 field_invited_on = Some(map.next_value()?);
15987 }
15988 "joined_on" => {
15989 if field_joined_on.is_some() {
15990 return Err(::serde::de::Error::duplicate_field("joined_on"));
15991 }
15992 field_joined_on = Some(map.next_value()?);
15993 }
15994 "suspended_on" => {
15995 if field_suspended_on.is_some() {
15996 return Err(::serde::de::Error::duplicate_field("suspended_on"));
15997 }
15998 field_suspended_on = Some(map.next_value()?);
15999 }
16000 "persistent_id" => {
16001 if field_persistent_id.is_some() {
16002 return Err(::serde::de::Error::duplicate_field("persistent_id"));
16003 }
16004 field_persistent_id = Some(map.next_value()?);
16005 }
16006 "is_directory_restricted" => {
16007 if field_is_directory_restricted.is_some() {
16008 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
16009 }
16010 field_is_directory_restricted = Some(map.next_value()?);
16011 }
16012 "profile_photo_url" => {
16013 if field_profile_photo_url.is_some() {
16014 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
16015 }
16016 field_profile_photo_url = Some(map.next_value()?);
16017 }
16018 _ => {
16019 map.next_value::<::serde_json::Value>()?;
16021 }
16022 }
16023 }
16024 if optional && nothing {
16025 return Ok(None);
16026 }
16027 let result = MemberProfile {
16028 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
16029 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
16030 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
16031 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
16032 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
16033 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
16034 external_id: field_external_id.and_then(Option::flatten),
16035 account_id: field_account_id.and_then(Option::flatten),
16036 secondary_emails: field_secondary_emails.and_then(Option::flatten),
16037 invited_on: field_invited_on.and_then(Option::flatten),
16038 joined_on: field_joined_on.and_then(Option::flatten),
16039 suspended_on: field_suspended_on.and_then(Option::flatten),
16040 persistent_id: field_persistent_id.and_then(Option::flatten),
16041 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
16042 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
16043 };
16044 Ok(Some(result))
16045 }
16046
16047 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16048 &self,
16049 s: &mut S::SerializeStruct,
16050 ) -> Result<(), S::Error> {
16051 use serde::ser::SerializeStruct;
16052 s.serialize_field("team_member_id", &self.team_member_id)?;
16053 s.serialize_field("email", &self.email)?;
16054 s.serialize_field("email_verified", &self.email_verified)?;
16055 s.serialize_field("status", &self.status)?;
16056 s.serialize_field("name", &self.name)?;
16057 s.serialize_field("membership_type", &self.membership_type)?;
16058 if let Some(val) = &self.external_id {
16059 s.serialize_field("external_id", val)?;
16060 }
16061 if let Some(val) = &self.account_id {
16062 s.serialize_field("account_id", val)?;
16063 }
16064 if let Some(val) = &self.secondary_emails {
16065 s.serialize_field("secondary_emails", val)?;
16066 }
16067 if let Some(val) = &self.invited_on {
16068 s.serialize_field("invited_on", val)?;
16069 }
16070 if let Some(val) = &self.joined_on {
16071 s.serialize_field("joined_on", val)?;
16072 }
16073 if let Some(val) = &self.suspended_on {
16074 s.serialize_field("suspended_on", val)?;
16075 }
16076 if let Some(val) = &self.persistent_id {
16077 s.serialize_field("persistent_id", val)?;
16078 }
16079 if let Some(val) = &self.is_directory_restricted {
16080 s.serialize_field("is_directory_restricted", val)?;
16081 }
16082 if let Some(val) = &self.profile_photo_url {
16083 s.serialize_field("profile_photo_url", val)?;
16084 }
16085 Ok(())
16086 }
16087}
16088
16089impl<'de> ::serde::de::Deserialize<'de> for MemberProfile {
16090 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16091 use serde::de::{MapAccess, Visitor};
16093 struct StructVisitor;
16094 impl<'de> Visitor<'de> for StructVisitor {
16095 type Value = MemberProfile;
16096 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16097 f.write_str("a MemberProfile struct")
16098 }
16099 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16100 MemberProfile::internal_deserialize(map)
16101 }
16102 }
16103 deserializer.deserialize_struct("MemberProfile", MEMBER_PROFILE_FIELDS, StructVisitor)
16104 }
16105}
16106
16107impl ::serde::ser::Serialize for MemberProfile {
16108 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16109 use serde::ser::SerializeStruct;
16111 let mut s = serializer.serialize_struct("MemberProfile", 15)?;
16112 self.internal_serialize::<S>(&mut s)?;
16113 s.end()
16114 }
16115}
16116
16117#[derive(Debug, Clone, PartialEq, Eq)]
16118pub enum MemberSelectorError {
16119 UserNotFound,
16122 UserNotInTeam,
16124}
16125
16126impl<'de> ::serde::de::Deserialize<'de> for MemberSelectorError {
16127 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16128 use serde::de::{self, MapAccess, Visitor};
16130 struct EnumVisitor;
16131 impl<'de> Visitor<'de> for EnumVisitor {
16132 type Value = MemberSelectorError;
16133 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16134 f.write_str("a MemberSelectorError structure")
16135 }
16136 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16137 let tag: &str = match map.next_key()? {
16138 Some(".tag") => map.next_value()?,
16139 _ => return Err(de::Error::missing_field(".tag"))
16140 };
16141 let value = match tag {
16142 "user_not_found" => MemberSelectorError::UserNotFound,
16143 "user_not_in_team" => MemberSelectorError::UserNotInTeam,
16144 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
16145 };
16146 crate::eat_json_fields(&mut map)?;
16147 Ok(value)
16148 }
16149 }
16150 const VARIANTS: &[&str] = &["user_not_found",
16151 "user_not_in_team"];
16152 deserializer.deserialize_struct("MemberSelectorError", VARIANTS, EnumVisitor)
16153 }
16154}
16155
16156impl ::serde::ser::Serialize for MemberSelectorError {
16157 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16158 use serde::ser::SerializeStruct;
16160 match self {
16161 MemberSelectorError::UserNotFound => {
16162 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
16164 s.serialize_field(".tag", "user_not_found")?;
16165 s.end()
16166 }
16167 MemberSelectorError::UserNotInTeam => {
16168 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
16170 s.serialize_field(".tag", "user_not_in_team")?;
16171 s.end()
16172 }
16173 }
16174 }
16175}
16176
16177impl ::std::error::Error for MemberSelectorError {
16178}
16179
16180impl ::std::fmt::Display for MemberSelectorError {
16181 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16182 match self {
16183 MemberSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16184 MemberSelectorError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16185 }
16186 }
16187}
16188
16189impl From<UserSelectorError> for MemberSelectorError {
16191 fn from(parent: UserSelectorError) -> Self {
16192 match parent {
16193 UserSelectorError::UserNotFound => MemberSelectorError::UserNotFound,
16194 }
16195 }
16196}
16197#[derive(Debug, Clone, PartialEq, Eq)]
16198#[non_exhaustive] pub struct MembersAddArg {
16200 pub new_members: Vec<MemberAddArg>,
16202 pub force_async: bool,
16204}
16205
16206impl MembersAddArg {
16207 pub fn new(new_members: Vec<MemberAddArg>) -> Self {
16208 MembersAddArg {
16209 new_members,
16210 force_async: false,
16211 }
16212 }
16213
16214 pub fn with_force_async(mut self, value: bool) -> Self {
16215 self.force_async = value;
16216 self
16217 }
16218}
16219
16220const MEMBERS_ADD_ARG_FIELDS: &[&str] = &["new_members",
16221 "force_async"];
16222impl MembersAddArg {
16223 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16224 map: V,
16225 ) -> Result<MembersAddArg, V::Error> {
16226 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16227 }
16228
16229 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16230 mut map: V,
16231 optional: bool,
16232 ) -> Result<Option<MembersAddArg>, V::Error> {
16233 let mut field_new_members = None;
16234 let mut field_force_async = None;
16235 let mut nothing = true;
16236 while let Some(key) = map.next_key::<&str>()? {
16237 nothing = false;
16238 match key {
16239 "new_members" => {
16240 if field_new_members.is_some() {
16241 return Err(::serde::de::Error::duplicate_field("new_members"));
16242 }
16243 field_new_members = Some(map.next_value()?);
16244 }
16245 "force_async" => {
16246 if field_force_async.is_some() {
16247 return Err(::serde::de::Error::duplicate_field("force_async"));
16248 }
16249 field_force_async = Some(map.next_value()?);
16250 }
16251 _ => {
16252 map.next_value::<::serde_json::Value>()?;
16254 }
16255 }
16256 }
16257 if optional && nothing {
16258 return Ok(None);
16259 }
16260 let result = MembersAddArg {
16261 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
16262 force_async: field_force_async.unwrap_or(false),
16263 };
16264 Ok(Some(result))
16265 }
16266
16267 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16268 &self,
16269 s: &mut S::SerializeStruct,
16270 ) -> Result<(), S::Error> {
16271 use serde::ser::SerializeStruct;
16272 s.serialize_field("new_members", &self.new_members)?;
16273 if self.force_async {
16274 s.serialize_field("force_async", &self.force_async)?;
16275 }
16276 Ok(())
16277 }
16278}
16279
16280impl<'de> ::serde::de::Deserialize<'de> for MembersAddArg {
16281 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16282 use serde::de::{MapAccess, Visitor};
16284 struct StructVisitor;
16285 impl<'de> Visitor<'de> for StructVisitor {
16286 type Value = MembersAddArg;
16287 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16288 f.write_str("a MembersAddArg struct")
16289 }
16290 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16291 MembersAddArg::internal_deserialize(map)
16292 }
16293 }
16294 deserializer.deserialize_struct("MembersAddArg", MEMBERS_ADD_ARG_FIELDS, StructVisitor)
16295 }
16296}
16297
16298impl ::serde::ser::Serialize for MembersAddArg {
16299 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16300 use serde::ser::SerializeStruct;
16302 let mut s = serializer.serialize_struct("MembersAddArg", 2)?;
16303 self.internal_serialize::<S>(&mut s)?;
16304 s.end()
16305 }
16306}
16307
16308impl From<MembersAddArg> for MembersAddArgBase {
16310 fn from(subtype: MembersAddArg) -> Self {
16311 Self {
16312 force_async: subtype.force_async,
16313 }
16314 }
16315}
16316#[derive(Debug, Clone, PartialEq, Eq, Default)]
16317#[non_exhaustive] pub struct MembersAddArgBase {
16319 pub force_async: bool,
16321}
16322
16323impl MembersAddArgBase {
16324 pub fn with_force_async(mut self, value: bool) -> Self {
16325 self.force_async = value;
16326 self
16327 }
16328}
16329
16330const MEMBERS_ADD_ARG_BASE_FIELDS: &[&str] = &["force_async"];
16331impl MembersAddArgBase {
16332 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16334 mut map: V,
16335 ) -> Result<MembersAddArgBase, V::Error> {
16336 let mut field_force_async = None;
16337 while let Some(key) = map.next_key::<&str>()? {
16338 match key {
16339 "force_async" => {
16340 if field_force_async.is_some() {
16341 return Err(::serde::de::Error::duplicate_field("force_async"));
16342 }
16343 field_force_async = Some(map.next_value()?);
16344 }
16345 _ => {
16346 map.next_value::<::serde_json::Value>()?;
16348 }
16349 }
16350 }
16351 let result = MembersAddArgBase {
16352 force_async: field_force_async.unwrap_or(false),
16353 };
16354 Ok(result)
16355 }
16356
16357 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16358 &self,
16359 s: &mut S::SerializeStruct,
16360 ) -> Result<(), S::Error> {
16361 use serde::ser::SerializeStruct;
16362 if self.force_async {
16363 s.serialize_field("force_async", &self.force_async)?;
16364 }
16365 Ok(())
16366 }
16367}
16368
16369impl<'de> ::serde::de::Deserialize<'de> for MembersAddArgBase {
16370 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16371 use serde::de::{MapAccess, Visitor};
16373 struct StructVisitor;
16374 impl<'de> Visitor<'de> for StructVisitor {
16375 type Value = MembersAddArgBase;
16376 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16377 f.write_str("a MembersAddArgBase struct")
16378 }
16379 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16380 MembersAddArgBase::internal_deserialize(map)
16381 }
16382 }
16383 deserializer.deserialize_struct("MembersAddArgBase", MEMBERS_ADD_ARG_BASE_FIELDS, StructVisitor)
16384 }
16385}
16386
16387impl ::serde::ser::Serialize for MembersAddArgBase {
16388 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16389 use serde::ser::SerializeStruct;
16391 let mut s = serializer.serialize_struct("MembersAddArgBase", 1)?;
16392 self.internal_serialize::<S>(&mut s)?;
16393 s.end()
16394 }
16395}
16396
16397#[derive(Debug, Clone, PartialEq, Eq)]
16398pub enum MembersAddJobStatus {
16399 InProgress,
16401 Complete(Vec<MemberAddResult>),
16405 Failed(String),
16407}
16408
16409impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatus {
16410 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16411 use serde::de::{self, MapAccess, Visitor};
16413 struct EnumVisitor;
16414 impl<'de> Visitor<'de> for EnumVisitor {
16415 type Value = MembersAddJobStatus;
16416 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16417 f.write_str("a MembersAddJobStatus structure")
16418 }
16419 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16420 let tag: &str = match map.next_key()? {
16421 Some(".tag") => map.next_value()?,
16422 _ => return Err(de::Error::missing_field(".tag"))
16423 };
16424 let value = match tag {
16425 "in_progress" => MembersAddJobStatus::InProgress,
16426 "complete" => {
16427 match map.next_key()? {
16428 Some("complete") => MembersAddJobStatus::Complete(map.next_value()?),
16429 None => return Err(de::Error::missing_field("complete")),
16430 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16431 }
16432 }
16433 "failed" => {
16434 match map.next_key()? {
16435 Some("failed") => MembersAddJobStatus::Failed(map.next_value()?),
16436 None => return Err(de::Error::missing_field("failed")),
16437 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16438 }
16439 }
16440 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
16441 };
16442 crate::eat_json_fields(&mut map)?;
16443 Ok(value)
16444 }
16445 }
16446 const VARIANTS: &[&str] = &["in_progress",
16447 "complete",
16448 "failed"];
16449 deserializer.deserialize_struct("MembersAddJobStatus", VARIANTS, EnumVisitor)
16450 }
16451}
16452
16453impl ::serde::ser::Serialize for MembersAddJobStatus {
16454 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16455 use serde::ser::SerializeStruct;
16457 match self {
16458 MembersAddJobStatus::InProgress => {
16459 let mut s = serializer.serialize_struct("MembersAddJobStatus", 1)?;
16461 s.serialize_field(".tag", "in_progress")?;
16462 s.end()
16463 }
16464 MembersAddJobStatus::Complete(x) => {
16465 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
16467 s.serialize_field(".tag", "complete")?;
16468 s.serialize_field("complete", x)?;
16469 s.end()
16470 }
16471 MembersAddJobStatus::Failed(x) => {
16472 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
16474 s.serialize_field(".tag", "failed")?;
16475 s.serialize_field("failed", x)?;
16476 s.end()
16477 }
16478 }
16479 }
16480}
16481
16482impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatus {
16484 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
16485 match parent {
16486 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatus::InProgress,
16487 }
16488 }
16489}
16490#[derive(Debug, Clone, PartialEq, Eq)]
16491#[non_exhaustive] pub enum MembersAddJobStatusV2Result {
16493 InProgress,
16495 Complete(Vec<MemberAddV2Result>),
16499 Failed(String),
16501 Other,
16504}
16505
16506impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatusV2Result {
16507 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16508 use serde::de::{self, MapAccess, Visitor};
16510 struct EnumVisitor;
16511 impl<'de> Visitor<'de> for EnumVisitor {
16512 type Value = MembersAddJobStatusV2Result;
16513 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16514 f.write_str("a MembersAddJobStatusV2Result structure")
16515 }
16516 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16517 let tag: &str = match map.next_key()? {
16518 Some(".tag") => map.next_value()?,
16519 _ => return Err(de::Error::missing_field(".tag"))
16520 };
16521 let value = match tag {
16522 "in_progress" => MembersAddJobStatusV2Result::InProgress,
16523 "complete" => {
16524 match map.next_key()? {
16525 Some("complete") => MembersAddJobStatusV2Result::Complete(map.next_value()?),
16526 None => return Err(de::Error::missing_field("complete")),
16527 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16528 }
16529 }
16530 "failed" => {
16531 match map.next_key()? {
16532 Some("failed") => MembersAddJobStatusV2Result::Failed(map.next_value()?),
16533 None => return Err(de::Error::missing_field("failed")),
16534 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16535 }
16536 }
16537 _ => MembersAddJobStatusV2Result::Other,
16538 };
16539 crate::eat_json_fields(&mut map)?;
16540 Ok(value)
16541 }
16542 }
16543 const VARIANTS: &[&str] = &["in_progress",
16544 "complete",
16545 "failed",
16546 "other"];
16547 deserializer.deserialize_struct("MembersAddJobStatusV2Result", VARIANTS, EnumVisitor)
16548 }
16549}
16550
16551impl ::serde::ser::Serialize for MembersAddJobStatusV2Result {
16552 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16553 use serde::ser::SerializeStruct;
16555 match self {
16556 MembersAddJobStatusV2Result::InProgress => {
16557 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 1)?;
16559 s.serialize_field(".tag", "in_progress")?;
16560 s.end()
16561 }
16562 MembersAddJobStatusV2Result::Complete(x) => {
16563 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
16565 s.serialize_field(".tag", "complete")?;
16566 s.serialize_field("complete", x)?;
16567 s.end()
16568 }
16569 MembersAddJobStatusV2Result::Failed(x) => {
16570 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
16572 s.serialize_field(".tag", "failed")?;
16573 s.serialize_field("failed", x)?;
16574 s.end()
16575 }
16576 MembersAddJobStatusV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16577 }
16578 }
16579}
16580
16581impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatusV2Result {
16583 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
16584 match parent {
16585 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatusV2Result::InProgress,
16586 }
16587 }
16588}
16589#[derive(Debug, Clone, PartialEq, Eq)]
16590pub enum MembersAddLaunch {
16591 AsyncJobId(crate::types::dbx_async::AsyncJobId),
16594 Complete(Vec<MemberAddResult>),
16595}
16596
16597impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunch {
16598 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16599 use serde::de::{self, MapAccess, Visitor};
16601 struct EnumVisitor;
16602 impl<'de> Visitor<'de> for EnumVisitor {
16603 type Value = MembersAddLaunch;
16604 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16605 f.write_str("a MembersAddLaunch structure")
16606 }
16607 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16608 let tag: &str = match map.next_key()? {
16609 Some(".tag") => map.next_value()?,
16610 _ => return Err(de::Error::missing_field(".tag"))
16611 };
16612 let value = match tag {
16613 "async_job_id" => {
16614 match map.next_key()? {
16615 Some("async_job_id") => MembersAddLaunch::AsyncJobId(map.next_value()?),
16616 None => return Err(de::Error::missing_field("async_job_id")),
16617 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16618 }
16619 }
16620 "complete" => {
16621 match map.next_key()? {
16622 Some("complete") => MembersAddLaunch::Complete(map.next_value()?),
16623 None => return Err(de::Error::missing_field("complete")),
16624 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16625 }
16626 }
16627 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
16628 };
16629 crate::eat_json_fields(&mut map)?;
16630 Ok(value)
16631 }
16632 }
16633 const VARIANTS: &[&str] = &["async_job_id",
16634 "complete"];
16635 deserializer.deserialize_struct("MembersAddLaunch", VARIANTS, EnumVisitor)
16636 }
16637}
16638
16639impl ::serde::ser::Serialize for MembersAddLaunch {
16640 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16641 use serde::ser::SerializeStruct;
16643 match self {
16644 MembersAddLaunch::AsyncJobId(x) => {
16645 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
16647 s.serialize_field(".tag", "async_job_id")?;
16648 s.serialize_field("async_job_id", x)?;
16649 s.end()
16650 }
16651 MembersAddLaunch::Complete(x) => {
16652 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
16654 s.serialize_field(".tag", "complete")?;
16655 s.serialize_field("complete", x)?;
16656 s.end()
16657 }
16658 }
16659 }
16660}
16661
16662impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunch {
16664 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
16665 match parent {
16666 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunch::AsyncJobId(x),
16667 }
16668 }
16669}
16670#[derive(Debug, Clone, PartialEq, Eq)]
16671#[non_exhaustive] pub enum MembersAddLaunchV2Result {
16673 AsyncJobId(crate::types::dbx_async::AsyncJobId),
16676 Complete(Vec<MemberAddV2Result>),
16677 Other,
16680}
16681
16682impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunchV2Result {
16683 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16684 use serde::de::{self, MapAccess, Visitor};
16686 struct EnumVisitor;
16687 impl<'de> Visitor<'de> for EnumVisitor {
16688 type Value = MembersAddLaunchV2Result;
16689 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16690 f.write_str("a MembersAddLaunchV2Result structure")
16691 }
16692 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16693 let tag: &str = match map.next_key()? {
16694 Some(".tag") => map.next_value()?,
16695 _ => return Err(de::Error::missing_field(".tag"))
16696 };
16697 let value = match tag {
16698 "async_job_id" => {
16699 match map.next_key()? {
16700 Some("async_job_id") => MembersAddLaunchV2Result::AsyncJobId(map.next_value()?),
16701 None => return Err(de::Error::missing_field("async_job_id")),
16702 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16703 }
16704 }
16705 "complete" => {
16706 match map.next_key()? {
16707 Some("complete") => MembersAddLaunchV2Result::Complete(map.next_value()?),
16708 None => return Err(de::Error::missing_field("complete")),
16709 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16710 }
16711 }
16712 _ => MembersAddLaunchV2Result::Other,
16713 };
16714 crate::eat_json_fields(&mut map)?;
16715 Ok(value)
16716 }
16717 }
16718 const VARIANTS: &[&str] = &["async_job_id",
16719 "complete",
16720 "other"];
16721 deserializer.deserialize_struct("MembersAddLaunchV2Result", VARIANTS, EnumVisitor)
16722 }
16723}
16724
16725impl ::serde::ser::Serialize for MembersAddLaunchV2Result {
16726 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16727 use serde::ser::SerializeStruct;
16729 match self {
16730 MembersAddLaunchV2Result::AsyncJobId(x) => {
16731 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
16733 s.serialize_field(".tag", "async_job_id")?;
16734 s.serialize_field("async_job_id", x)?;
16735 s.end()
16736 }
16737 MembersAddLaunchV2Result::Complete(x) => {
16738 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
16740 s.serialize_field(".tag", "complete")?;
16741 s.serialize_field("complete", x)?;
16742 s.end()
16743 }
16744 MembersAddLaunchV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16745 }
16746 }
16747}
16748
16749impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunchV2Result {
16751 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
16752 match parent {
16753 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunchV2Result::AsyncJobId(x),
16754 }
16755 }
16756}
16757#[derive(Debug, Clone, PartialEq, Eq)]
16758#[non_exhaustive] pub struct MembersAddV2Arg {
16760 pub new_members: Vec<MemberAddV2Arg>,
16762 pub force_async: bool,
16764}
16765
16766impl MembersAddV2Arg {
16767 pub fn new(new_members: Vec<MemberAddV2Arg>) -> Self {
16768 MembersAddV2Arg {
16769 new_members,
16770 force_async: false,
16771 }
16772 }
16773
16774 pub fn with_force_async(mut self, value: bool) -> Self {
16775 self.force_async = value;
16776 self
16777 }
16778}
16779
16780const MEMBERS_ADD_V2_ARG_FIELDS: &[&str] = &["new_members",
16781 "force_async"];
16782impl MembersAddV2Arg {
16783 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16784 map: V,
16785 ) -> Result<MembersAddV2Arg, V::Error> {
16786 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16787 }
16788
16789 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16790 mut map: V,
16791 optional: bool,
16792 ) -> Result<Option<MembersAddV2Arg>, V::Error> {
16793 let mut field_new_members = None;
16794 let mut field_force_async = None;
16795 let mut nothing = true;
16796 while let Some(key) = map.next_key::<&str>()? {
16797 nothing = false;
16798 match key {
16799 "new_members" => {
16800 if field_new_members.is_some() {
16801 return Err(::serde::de::Error::duplicate_field("new_members"));
16802 }
16803 field_new_members = Some(map.next_value()?);
16804 }
16805 "force_async" => {
16806 if field_force_async.is_some() {
16807 return Err(::serde::de::Error::duplicate_field("force_async"));
16808 }
16809 field_force_async = Some(map.next_value()?);
16810 }
16811 _ => {
16812 map.next_value::<::serde_json::Value>()?;
16814 }
16815 }
16816 }
16817 if optional && nothing {
16818 return Ok(None);
16819 }
16820 let result = MembersAddV2Arg {
16821 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
16822 force_async: field_force_async.unwrap_or(false),
16823 };
16824 Ok(Some(result))
16825 }
16826
16827 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16828 &self,
16829 s: &mut S::SerializeStruct,
16830 ) -> Result<(), S::Error> {
16831 use serde::ser::SerializeStruct;
16832 s.serialize_field("new_members", &self.new_members)?;
16833 if self.force_async {
16834 s.serialize_field("force_async", &self.force_async)?;
16835 }
16836 Ok(())
16837 }
16838}
16839
16840impl<'de> ::serde::de::Deserialize<'de> for MembersAddV2Arg {
16841 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16842 use serde::de::{MapAccess, Visitor};
16844 struct StructVisitor;
16845 impl<'de> Visitor<'de> for StructVisitor {
16846 type Value = MembersAddV2Arg;
16847 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16848 f.write_str("a MembersAddV2Arg struct")
16849 }
16850 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16851 MembersAddV2Arg::internal_deserialize(map)
16852 }
16853 }
16854 deserializer.deserialize_struct("MembersAddV2Arg", MEMBERS_ADD_V2_ARG_FIELDS, StructVisitor)
16855 }
16856}
16857
16858impl ::serde::ser::Serialize for MembersAddV2Arg {
16859 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16860 use serde::ser::SerializeStruct;
16862 let mut s = serializer.serialize_struct("MembersAddV2Arg", 2)?;
16863 self.internal_serialize::<S>(&mut s)?;
16864 s.end()
16865 }
16866}
16867
16868impl From<MembersAddV2Arg> for MembersAddArgBase {
16870 fn from(subtype: MembersAddV2Arg) -> Self {
16871 Self {
16872 force_async: subtype.force_async,
16873 }
16874 }
16875}
16876#[derive(Debug, Clone, PartialEq, Eq)]
16877#[non_exhaustive] pub struct MembersDataTransferArg {
16879 pub user: UserSelectorArg,
16881 pub transfer_dest_id: UserSelectorArg,
16883 pub transfer_admin_id: UserSelectorArg,
16885}
16886
16887impl MembersDataTransferArg {
16888 pub fn new(
16889 user: UserSelectorArg,
16890 transfer_dest_id: UserSelectorArg,
16891 transfer_admin_id: UserSelectorArg,
16892 ) -> Self {
16893 MembersDataTransferArg {
16894 user,
16895 transfer_dest_id,
16896 transfer_admin_id,
16897 }
16898 }
16899}
16900
16901const MEMBERS_DATA_TRANSFER_ARG_FIELDS: &[&str] = &["user",
16902 "transfer_dest_id",
16903 "transfer_admin_id"];
16904impl MembersDataTransferArg {
16905 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16906 map: V,
16907 ) -> Result<MembersDataTransferArg, V::Error> {
16908 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16909 }
16910
16911 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16912 mut map: V,
16913 optional: bool,
16914 ) -> Result<Option<MembersDataTransferArg>, V::Error> {
16915 let mut field_user = None;
16916 let mut field_transfer_dest_id = None;
16917 let mut field_transfer_admin_id = None;
16918 let mut nothing = true;
16919 while let Some(key) = map.next_key::<&str>()? {
16920 nothing = false;
16921 match key {
16922 "user" => {
16923 if field_user.is_some() {
16924 return Err(::serde::de::Error::duplicate_field("user"));
16925 }
16926 field_user = Some(map.next_value()?);
16927 }
16928 "transfer_dest_id" => {
16929 if field_transfer_dest_id.is_some() {
16930 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
16931 }
16932 field_transfer_dest_id = Some(map.next_value()?);
16933 }
16934 "transfer_admin_id" => {
16935 if field_transfer_admin_id.is_some() {
16936 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
16937 }
16938 field_transfer_admin_id = Some(map.next_value()?);
16939 }
16940 _ => {
16941 map.next_value::<::serde_json::Value>()?;
16943 }
16944 }
16945 }
16946 if optional && nothing {
16947 return Ok(None);
16948 }
16949 let result = MembersDataTransferArg {
16950 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16951 transfer_dest_id: field_transfer_dest_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_dest_id"))?,
16952 transfer_admin_id: field_transfer_admin_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_admin_id"))?,
16953 };
16954 Ok(Some(result))
16955 }
16956
16957 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16958 &self,
16959 s: &mut S::SerializeStruct,
16960 ) -> Result<(), S::Error> {
16961 use serde::ser::SerializeStruct;
16962 s.serialize_field("user", &self.user)?;
16963 s.serialize_field("transfer_dest_id", &self.transfer_dest_id)?;
16964 s.serialize_field("transfer_admin_id", &self.transfer_admin_id)?;
16965 Ok(())
16966 }
16967}
16968
16969impl<'de> ::serde::de::Deserialize<'de> for MembersDataTransferArg {
16970 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16971 use serde::de::{MapAccess, Visitor};
16973 struct StructVisitor;
16974 impl<'de> Visitor<'de> for StructVisitor {
16975 type Value = MembersDataTransferArg;
16976 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16977 f.write_str("a MembersDataTransferArg struct")
16978 }
16979 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16980 MembersDataTransferArg::internal_deserialize(map)
16981 }
16982 }
16983 deserializer.deserialize_struct("MembersDataTransferArg", MEMBERS_DATA_TRANSFER_ARG_FIELDS, StructVisitor)
16984 }
16985}
16986
16987impl ::serde::ser::Serialize for MembersDataTransferArg {
16988 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16989 use serde::ser::SerializeStruct;
16991 let mut s = serializer.serialize_struct("MembersDataTransferArg", 3)?;
16992 self.internal_serialize::<S>(&mut s)?;
16993 s.end()
16994 }
16995}
16996
16997impl From<MembersDataTransferArg> for MembersDeactivateBaseArg {
16999 fn from(subtype: MembersDataTransferArg) -> Self {
17000 Self {
17001 user: subtype.user,
17002 }
17003 }
17004}
17005#[derive(Debug, Clone, PartialEq, Eq)]
17006#[non_exhaustive] pub struct MembersDeactivateArg {
17008 pub user: UserSelectorArg,
17010 pub wipe_data: bool,
17012}
17013
17014impl MembersDeactivateArg {
17015 pub fn new(user: UserSelectorArg) -> Self {
17016 MembersDeactivateArg {
17017 user,
17018 wipe_data: true,
17019 }
17020 }
17021
17022 pub fn with_wipe_data(mut self, value: bool) -> Self {
17023 self.wipe_data = value;
17024 self
17025 }
17026}
17027
17028const MEMBERS_DEACTIVATE_ARG_FIELDS: &[&str] = &["user",
17029 "wipe_data"];
17030impl MembersDeactivateArg {
17031 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17032 map: V,
17033 ) -> Result<MembersDeactivateArg, V::Error> {
17034 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17035 }
17036
17037 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17038 mut map: V,
17039 optional: bool,
17040 ) -> Result<Option<MembersDeactivateArg>, V::Error> {
17041 let mut field_user = None;
17042 let mut field_wipe_data = None;
17043 let mut nothing = true;
17044 while let Some(key) = map.next_key::<&str>()? {
17045 nothing = false;
17046 match key {
17047 "user" => {
17048 if field_user.is_some() {
17049 return Err(::serde::de::Error::duplicate_field("user"));
17050 }
17051 field_user = Some(map.next_value()?);
17052 }
17053 "wipe_data" => {
17054 if field_wipe_data.is_some() {
17055 return Err(::serde::de::Error::duplicate_field("wipe_data"));
17056 }
17057 field_wipe_data = Some(map.next_value()?);
17058 }
17059 _ => {
17060 map.next_value::<::serde_json::Value>()?;
17062 }
17063 }
17064 }
17065 if optional && nothing {
17066 return Ok(None);
17067 }
17068 let result = MembersDeactivateArg {
17069 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
17070 wipe_data: field_wipe_data.unwrap_or(true),
17071 };
17072 Ok(Some(result))
17073 }
17074
17075 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17076 &self,
17077 s: &mut S::SerializeStruct,
17078 ) -> Result<(), S::Error> {
17079 use serde::ser::SerializeStruct;
17080 s.serialize_field("user", &self.user)?;
17081 if !self.wipe_data {
17082 s.serialize_field("wipe_data", &self.wipe_data)?;
17083 }
17084 Ok(())
17085 }
17086}
17087
17088impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateArg {
17089 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17090 use serde::de::{MapAccess, Visitor};
17092 struct StructVisitor;
17093 impl<'de> Visitor<'de> for StructVisitor {
17094 type Value = MembersDeactivateArg;
17095 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17096 f.write_str("a MembersDeactivateArg struct")
17097 }
17098 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17099 MembersDeactivateArg::internal_deserialize(map)
17100 }
17101 }
17102 deserializer.deserialize_struct("MembersDeactivateArg", MEMBERS_DEACTIVATE_ARG_FIELDS, StructVisitor)
17103 }
17104}
17105
17106impl ::serde::ser::Serialize for MembersDeactivateArg {
17107 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17108 use serde::ser::SerializeStruct;
17110 let mut s = serializer.serialize_struct("MembersDeactivateArg", 2)?;
17111 self.internal_serialize::<S>(&mut s)?;
17112 s.end()
17113 }
17114}
17115
17116impl From<MembersDeactivateArg> for MembersDeactivateBaseArg {
17118 fn from(subtype: MembersDeactivateArg) -> Self {
17119 Self {
17120 user: subtype.user,
17121 }
17122 }
17123}
17124#[derive(Debug, Clone, PartialEq, Eq)]
17127#[non_exhaustive] pub struct MembersDeactivateBaseArg {
17129 pub user: UserSelectorArg,
17131}
17132
17133impl MembersDeactivateBaseArg {
17134 pub fn new(user: UserSelectorArg) -> Self {
17135 MembersDeactivateBaseArg {
17136 user,
17137 }
17138 }
17139}
17140
17141const MEMBERS_DEACTIVATE_BASE_ARG_FIELDS: &[&str] = &["user"];
17142impl MembersDeactivateBaseArg {
17143 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17144 map: V,
17145 ) -> Result<MembersDeactivateBaseArg, V::Error> {
17146 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17147 }
17148
17149 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17150 mut map: V,
17151 optional: bool,
17152 ) -> Result<Option<MembersDeactivateBaseArg>, V::Error> {
17153 let mut field_user = None;
17154 let mut nothing = true;
17155 while let Some(key) = map.next_key::<&str>()? {
17156 nothing = false;
17157 match key {
17158 "user" => {
17159 if field_user.is_some() {
17160 return Err(::serde::de::Error::duplicate_field("user"));
17161 }
17162 field_user = Some(map.next_value()?);
17163 }
17164 _ => {
17165 map.next_value::<::serde_json::Value>()?;
17167 }
17168 }
17169 }
17170 if optional && nothing {
17171 return Ok(None);
17172 }
17173 let result = MembersDeactivateBaseArg {
17174 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
17175 };
17176 Ok(Some(result))
17177 }
17178
17179 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17180 &self,
17181 s: &mut S::SerializeStruct,
17182 ) -> Result<(), S::Error> {
17183 use serde::ser::SerializeStruct;
17184 s.serialize_field("user", &self.user)?;
17185 Ok(())
17186 }
17187}
17188
17189impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateBaseArg {
17190 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17191 use serde::de::{MapAccess, Visitor};
17193 struct StructVisitor;
17194 impl<'de> Visitor<'de> for StructVisitor {
17195 type Value = MembersDeactivateBaseArg;
17196 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17197 f.write_str("a MembersDeactivateBaseArg struct")
17198 }
17199 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17200 MembersDeactivateBaseArg::internal_deserialize(map)
17201 }
17202 }
17203 deserializer.deserialize_struct("MembersDeactivateBaseArg", MEMBERS_DEACTIVATE_BASE_ARG_FIELDS, StructVisitor)
17204 }
17205}
17206
17207impl ::serde::ser::Serialize for MembersDeactivateBaseArg {
17208 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17209 use serde::ser::SerializeStruct;
17211 let mut s = serializer.serialize_struct("MembersDeactivateBaseArg", 1)?;
17212 self.internal_serialize::<S>(&mut s)?;
17213 s.end()
17214 }
17215}
17216
17217#[derive(Debug, Clone, PartialEq, Eq)]
17218#[non_exhaustive] pub enum MembersDeactivateError {
17220 UserNotFound,
17223 UserNotInTeam,
17225 Other,
17228}
17229
17230impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateError {
17231 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17232 use serde::de::{self, MapAccess, Visitor};
17234 struct EnumVisitor;
17235 impl<'de> Visitor<'de> for EnumVisitor {
17236 type Value = MembersDeactivateError;
17237 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17238 f.write_str("a MembersDeactivateError structure")
17239 }
17240 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17241 let tag: &str = match map.next_key()? {
17242 Some(".tag") => map.next_value()?,
17243 _ => return Err(de::Error::missing_field(".tag"))
17244 };
17245 let value = match tag {
17246 "user_not_found" => MembersDeactivateError::UserNotFound,
17247 "user_not_in_team" => MembersDeactivateError::UserNotInTeam,
17248 _ => MembersDeactivateError::Other,
17249 };
17250 crate::eat_json_fields(&mut map)?;
17251 Ok(value)
17252 }
17253 }
17254 const VARIANTS: &[&str] = &["user_not_found",
17255 "user_not_in_team",
17256 "other"];
17257 deserializer.deserialize_struct("MembersDeactivateError", VARIANTS, EnumVisitor)
17258 }
17259}
17260
17261impl ::serde::ser::Serialize for MembersDeactivateError {
17262 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17263 use serde::ser::SerializeStruct;
17265 match self {
17266 MembersDeactivateError::UserNotFound => {
17267 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
17269 s.serialize_field(".tag", "user_not_found")?;
17270 s.end()
17271 }
17272 MembersDeactivateError::UserNotInTeam => {
17273 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
17275 s.serialize_field(".tag", "user_not_in_team")?;
17276 s.end()
17277 }
17278 MembersDeactivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17279 }
17280 }
17281}
17282
17283impl ::std::error::Error for MembersDeactivateError {
17284}
17285
17286impl ::std::fmt::Display for MembersDeactivateError {
17287 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17288 match self {
17289 MembersDeactivateError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
17290 MembersDeactivateError::UserNotInTeam => f.write_str("The user is not a member of the team."),
17291 _ => write!(f, "{:?}", *self),
17292 }
17293 }
17294}
17295
17296impl From<UserSelectorError> for MembersDeactivateError {
17298 fn from(parent: UserSelectorError) -> Self {
17299 match parent {
17300 UserSelectorError::UserNotFound => MembersDeactivateError::UserNotFound,
17301 }
17302 }
17303}
17304#[derive(Debug, Clone, PartialEq, Eq)]
17305#[non_exhaustive] pub enum MembersDeleteFormerMemberFilesError {
17307 UserNotFound,
17310 UserNotInTeam,
17312 TransferInProgress,
17314 AlreadyTransferred,
17316 AlreadyTransferredOrDeleted,
17318 UserNotRemoved,
17320 Other,
17323}
17324
17325impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteFormerMemberFilesError {
17326 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17327 use serde::de::{self, MapAccess, Visitor};
17329 struct EnumVisitor;
17330 impl<'de> Visitor<'de> for EnumVisitor {
17331 type Value = MembersDeleteFormerMemberFilesError;
17332 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17333 f.write_str("a MembersDeleteFormerMemberFilesError structure")
17334 }
17335 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17336 let tag: &str = match map.next_key()? {
17337 Some(".tag") => map.next_value()?,
17338 _ => return Err(de::Error::missing_field(".tag"))
17339 };
17340 let value = match tag {
17341 "user_not_found" => MembersDeleteFormerMemberFilesError::UserNotFound,
17342 "user_not_in_team" => MembersDeleteFormerMemberFilesError::UserNotInTeam,
17343 "transfer_in_progress" => MembersDeleteFormerMemberFilesError::TransferInProgress,
17344 "already_transferred" => MembersDeleteFormerMemberFilesError::AlreadyTransferred,
17345 "already_transferred_or_deleted" => MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted,
17346 "user_not_removed" => MembersDeleteFormerMemberFilesError::UserNotRemoved,
17347 _ => MembersDeleteFormerMemberFilesError::Other,
17348 };
17349 crate::eat_json_fields(&mut map)?;
17350 Ok(value)
17351 }
17352 }
17353 const VARIANTS: &[&str] = &["user_not_found",
17354 "user_not_in_team",
17355 "other",
17356 "transfer_in_progress",
17357 "already_transferred",
17358 "already_transferred_or_deleted",
17359 "user_not_removed"];
17360 deserializer.deserialize_struct("MembersDeleteFormerMemberFilesError", VARIANTS, EnumVisitor)
17361 }
17362}
17363
17364impl ::serde::ser::Serialize for MembersDeleteFormerMemberFilesError {
17365 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17366 use serde::ser::SerializeStruct;
17368 match self {
17369 MembersDeleteFormerMemberFilesError::UserNotFound => {
17370 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
17372 s.serialize_field(".tag", "user_not_found")?;
17373 s.end()
17374 }
17375 MembersDeleteFormerMemberFilesError::UserNotInTeam => {
17376 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
17378 s.serialize_field(".tag", "user_not_in_team")?;
17379 s.end()
17380 }
17381 MembersDeleteFormerMemberFilesError::TransferInProgress => {
17382 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
17384 s.serialize_field(".tag", "transfer_in_progress")?;
17385 s.end()
17386 }
17387 MembersDeleteFormerMemberFilesError::AlreadyTransferred => {
17388 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
17390 s.serialize_field(".tag", "already_transferred")?;
17391 s.end()
17392 }
17393 MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted => {
17394 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
17396 s.serialize_field(".tag", "already_transferred_or_deleted")?;
17397 s.end()
17398 }
17399 MembersDeleteFormerMemberFilesError::UserNotRemoved => {
17400 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
17402 s.serialize_field(".tag", "user_not_removed")?;
17403 s.end()
17404 }
17405 MembersDeleteFormerMemberFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17406 }
17407 }
17408}
17409
17410impl ::std::error::Error for MembersDeleteFormerMemberFilesError {
17411}
17412
17413impl ::std::fmt::Display for MembersDeleteFormerMemberFilesError {
17414 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17415 match self {
17416 MembersDeleteFormerMemberFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
17417 MembersDeleteFormerMemberFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
17418 MembersDeleteFormerMemberFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
17419 MembersDeleteFormerMemberFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
17420 MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
17421 MembersDeleteFormerMemberFilesError::UserNotRemoved => f.write_str("User has not been removed from the team."),
17422 _ => write!(f, "{:?}", *self),
17423 }
17424 }
17425}
17426
17427impl From<MembersPermanentlyDeleteFilesError> for MembersDeleteFormerMemberFilesError {
17429 fn from(parent: MembersPermanentlyDeleteFilesError) -> Self {
17430 match parent {
17431 MembersPermanentlyDeleteFilesError::UserNotFound => MembersDeleteFormerMemberFilesError::UserNotFound,
17432 MembersPermanentlyDeleteFilesError::UserNotInTeam => MembersDeleteFormerMemberFilesError::UserNotInTeam,
17433 MembersPermanentlyDeleteFilesError::Other => MembersDeleteFormerMemberFilesError::Other,
17434 MembersPermanentlyDeleteFilesError::TransferInProgress => MembersDeleteFormerMemberFilesError::TransferInProgress,
17435 MembersPermanentlyDeleteFilesError::AlreadyTransferred => MembersDeleteFormerMemberFilesError::AlreadyTransferred,
17436 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted,
17437 }
17438 }
17439}
17440#[derive(Debug, Clone, PartialEq, Eq)]
17441#[non_exhaustive] pub struct MembersDeleteProfilePhotoArg {
17443 pub user: UserSelectorArg,
17445}
17446
17447impl MembersDeleteProfilePhotoArg {
17448 pub fn new(user: UserSelectorArg) -> Self {
17449 MembersDeleteProfilePhotoArg {
17450 user,
17451 }
17452 }
17453}
17454
17455const MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user"];
17456impl MembersDeleteProfilePhotoArg {
17457 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17458 map: V,
17459 ) -> Result<MembersDeleteProfilePhotoArg, V::Error> {
17460 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17461 }
17462
17463 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17464 mut map: V,
17465 optional: bool,
17466 ) -> Result<Option<MembersDeleteProfilePhotoArg>, V::Error> {
17467 let mut field_user = None;
17468 let mut nothing = true;
17469 while let Some(key) = map.next_key::<&str>()? {
17470 nothing = false;
17471 match key {
17472 "user" => {
17473 if field_user.is_some() {
17474 return Err(::serde::de::Error::duplicate_field("user"));
17475 }
17476 field_user = Some(map.next_value()?);
17477 }
17478 _ => {
17479 map.next_value::<::serde_json::Value>()?;
17481 }
17482 }
17483 }
17484 if optional && nothing {
17485 return Ok(None);
17486 }
17487 let result = MembersDeleteProfilePhotoArg {
17488 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
17489 };
17490 Ok(Some(result))
17491 }
17492
17493 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17494 &self,
17495 s: &mut S::SerializeStruct,
17496 ) -> Result<(), S::Error> {
17497 use serde::ser::SerializeStruct;
17498 s.serialize_field("user", &self.user)?;
17499 Ok(())
17500 }
17501}
17502
17503impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoArg {
17504 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17505 use serde::de::{MapAccess, Visitor};
17507 struct StructVisitor;
17508 impl<'de> Visitor<'de> for StructVisitor {
17509 type Value = MembersDeleteProfilePhotoArg;
17510 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17511 f.write_str("a MembersDeleteProfilePhotoArg struct")
17512 }
17513 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17514 MembersDeleteProfilePhotoArg::internal_deserialize(map)
17515 }
17516 }
17517 deserializer.deserialize_struct("MembersDeleteProfilePhotoArg", MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
17518 }
17519}
17520
17521impl ::serde::ser::Serialize for MembersDeleteProfilePhotoArg {
17522 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17523 use serde::ser::SerializeStruct;
17525 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoArg", 1)?;
17526 self.internal_serialize::<S>(&mut s)?;
17527 s.end()
17528 }
17529}
17530
17531#[derive(Debug, Clone, PartialEq, Eq)]
17532#[non_exhaustive] pub enum MembersDeleteProfilePhotoError {
17534 UserNotFound,
17537 UserNotInTeam,
17539 SetProfileDisallowed,
17541 Other,
17544}
17545
17546impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoError {
17547 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17548 use serde::de::{self, MapAccess, Visitor};
17550 struct EnumVisitor;
17551 impl<'de> Visitor<'de> for EnumVisitor {
17552 type Value = MembersDeleteProfilePhotoError;
17553 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17554 f.write_str("a MembersDeleteProfilePhotoError structure")
17555 }
17556 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17557 let tag: &str = match map.next_key()? {
17558 Some(".tag") => map.next_value()?,
17559 _ => return Err(de::Error::missing_field(".tag"))
17560 };
17561 let value = match tag {
17562 "user_not_found" => MembersDeleteProfilePhotoError::UserNotFound,
17563 "user_not_in_team" => MembersDeleteProfilePhotoError::UserNotInTeam,
17564 "set_profile_disallowed" => MembersDeleteProfilePhotoError::SetProfileDisallowed,
17565 _ => MembersDeleteProfilePhotoError::Other,
17566 };
17567 crate::eat_json_fields(&mut map)?;
17568 Ok(value)
17569 }
17570 }
17571 const VARIANTS: &[&str] = &["user_not_found",
17572 "user_not_in_team",
17573 "set_profile_disallowed",
17574 "other"];
17575 deserializer.deserialize_struct("MembersDeleteProfilePhotoError", VARIANTS, EnumVisitor)
17576 }
17577}
17578
17579impl ::serde::ser::Serialize for MembersDeleteProfilePhotoError {
17580 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17581 use serde::ser::SerializeStruct;
17583 match self {
17584 MembersDeleteProfilePhotoError::UserNotFound => {
17585 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
17587 s.serialize_field(".tag", "user_not_found")?;
17588 s.end()
17589 }
17590 MembersDeleteProfilePhotoError::UserNotInTeam => {
17591 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
17593 s.serialize_field(".tag", "user_not_in_team")?;
17594 s.end()
17595 }
17596 MembersDeleteProfilePhotoError::SetProfileDisallowed => {
17597 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
17599 s.serialize_field(".tag", "set_profile_disallowed")?;
17600 s.end()
17601 }
17602 MembersDeleteProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17603 }
17604 }
17605}
17606
17607impl ::std::error::Error for MembersDeleteProfilePhotoError {
17608}
17609
17610impl ::std::fmt::Display for MembersDeleteProfilePhotoError {
17611 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17612 match self {
17613 MembersDeleteProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
17614 MembersDeleteProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
17615 MembersDeleteProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
17616 _ => write!(f, "{:?}", *self),
17617 }
17618 }
17619}
17620
17621impl From<MemberSelectorError> for MembersDeleteProfilePhotoError {
17623 fn from(parent: MemberSelectorError) -> Self {
17624 match parent {
17625 MemberSelectorError::UserNotFound => MembersDeleteProfilePhotoError::UserNotFound,
17626 MemberSelectorError::UserNotInTeam => MembersDeleteProfilePhotoError::UserNotInTeam,
17627 }
17628 }
17629}
17630#[derive(Debug, Clone, PartialEq, Eq)]
17633#[non_exhaustive] pub struct MembersFormerMemberArg {
17635 pub user: UserSelectorArg,
17637}
17638
17639impl MembersFormerMemberArg {
17640 pub fn new(user: UserSelectorArg) -> Self {
17641 MembersFormerMemberArg {
17642 user,
17643 }
17644 }
17645}
17646
17647const MEMBERS_FORMER_MEMBER_ARG_FIELDS: &[&str] = &["user"];
17648impl MembersFormerMemberArg {
17649 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17650 map: V,
17651 ) -> Result<MembersFormerMemberArg, V::Error> {
17652 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17653 }
17654
17655 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17656 mut map: V,
17657 optional: bool,
17658 ) -> Result<Option<MembersFormerMemberArg>, V::Error> {
17659 let mut field_user = None;
17660 let mut nothing = true;
17661 while let Some(key) = map.next_key::<&str>()? {
17662 nothing = false;
17663 match key {
17664 "user" => {
17665 if field_user.is_some() {
17666 return Err(::serde::de::Error::duplicate_field("user"));
17667 }
17668 field_user = Some(map.next_value()?);
17669 }
17670 _ => {
17671 map.next_value::<::serde_json::Value>()?;
17673 }
17674 }
17675 }
17676 if optional && nothing {
17677 return Ok(None);
17678 }
17679 let result = MembersFormerMemberArg {
17680 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
17681 };
17682 Ok(Some(result))
17683 }
17684
17685 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17686 &self,
17687 s: &mut S::SerializeStruct,
17688 ) -> Result<(), S::Error> {
17689 use serde::ser::SerializeStruct;
17690 s.serialize_field("user", &self.user)?;
17691 Ok(())
17692 }
17693}
17694
17695impl<'de> ::serde::de::Deserialize<'de> for MembersFormerMemberArg {
17696 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17697 use serde::de::{MapAccess, Visitor};
17699 struct StructVisitor;
17700 impl<'de> Visitor<'de> for StructVisitor {
17701 type Value = MembersFormerMemberArg;
17702 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17703 f.write_str("a MembersFormerMemberArg struct")
17704 }
17705 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17706 MembersFormerMemberArg::internal_deserialize(map)
17707 }
17708 }
17709 deserializer.deserialize_struct("MembersFormerMemberArg", MEMBERS_FORMER_MEMBER_ARG_FIELDS, StructVisitor)
17710 }
17711}
17712
17713impl ::serde::ser::Serialize for MembersFormerMemberArg {
17714 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17715 use serde::ser::SerializeStruct;
17717 let mut s = serializer.serialize_struct("MembersFormerMemberArg", 1)?;
17718 self.internal_serialize::<S>(&mut s)?;
17719 s.end()
17720 }
17721}
17722
17723#[derive(Debug, Clone, PartialEq, Eq)]
17726#[non_exhaustive] pub struct MembersGetAvailableTeamMemberRolesResult {
17728 pub roles: Vec<TeamMemberRole>,
17730}
17731
17732impl MembersGetAvailableTeamMemberRolesResult {
17733 pub fn new(roles: Vec<TeamMemberRole>) -> Self {
17734 MembersGetAvailableTeamMemberRolesResult {
17735 roles,
17736 }
17737 }
17738}
17739
17740const MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS: &[&str] = &["roles"];
17741impl MembersGetAvailableTeamMemberRolesResult {
17742 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17743 map: V,
17744 ) -> Result<MembersGetAvailableTeamMemberRolesResult, V::Error> {
17745 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17746 }
17747
17748 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17749 mut map: V,
17750 optional: bool,
17751 ) -> Result<Option<MembersGetAvailableTeamMemberRolesResult>, V::Error> {
17752 let mut field_roles = None;
17753 let mut nothing = true;
17754 while let Some(key) = map.next_key::<&str>()? {
17755 nothing = false;
17756 match key {
17757 "roles" => {
17758 if field_roles.is_some() {
17759 return Err(::serde::de::Error::duplicate_field("roles"));
17760 }
17761 field_roles = Some(map.next_value()?);
17762 }
17763 _ => {
17764 map.next_value::<::serde_json::Value>()?;
17766 }
17767 }
17768 }
17769 if optional && nothing {
17770 return Ok(None);
17771 }
17772 let result = MembersGetAvailableTeamMemberRolesResult {
17773 roles: field_roles.ok_or_else(|| ::serde::de::Error::missing_field("roles"))?,
17774 };
17775 Ok(Some(result))
17776 }
17777
17778 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17779 &self,
17780 s: &mut S::SerializeStruct,
17781 ) -> Result<(), S::Error> {
17782 use serde::ser::SerializeStruct;
17783 s.serialize_field("roles", &self.roles)?;
17784 Ok(())
17785 }
17786}
17787
17788impl<'de> ::serde::de::Deserialize<'de> for MembersGetAvailableTeamMemberRolesResult {
17789 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17790 use serde::de::{MapAccess, Visitor};
17792 struct StructVisitor;
17793 impl<'de> Visitor<'de> for StructVisitor {
17794 type Value = MembersGetAvailableTeamMemberRolesResult;
17795 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17796 f.write_str("a MembersGetAvailableTeamMemberRolesResult struct")
17797 }
17798 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17799 MembersGetAvailableTeamMemberRolesResult::internal_deserialize(map)
17800 }
17801 }
17802 deserializer.deserialize_struct("MembersGetAvailableTeamMemberRolesResult", MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS, StructVisitor)
17803 }
17804}
17805
17806impl ::serde::ser::Serialize for MembersGetAvailableTeamMemberRolesResult {
17807 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17808 use serde::ser::SerializeStruct;
17810 let mut s = serializer.serialize_struct("MembersGetAvailableTeamMemberRolesResult", 1)?;
17811 self.internal_serialize::<S>(&mut s)?;
17812 s.end()
17813 }
17814}
17815
17816#[derive(Debug, Clone, PartialEq, Eq)]
17817#[non_exhaustive] pub struct MembersGetInfoArgs {
17819 pub members: Vec<UserSelectorArg>,
17821}
17822
17823impl MembersGetInfoArgs {
17824 pub fn new(members: Vec<UserSelectorArg>) -> Self {
17825 MembersGetInfoArgs {
17826 members,
17827 }
17828 }
17829}
17830
17831const MEMBERS_GET_INFO_ARGS_FIELDS: &[&str] = &["members"];
17832impl MembersGetInfoArgs {
17833 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17834 map: V,
17835 ) -> Result<MembersGetInfoArgs, V::Error> {
17836 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17837 }
17838
17839 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17840 mut map: V,
17841 optional: bool,
17842 ) -> Result<Option<MembersGetInfoArgs>, V::Error> {
17843 let mut field_members = None;
17844 let mut nothing = true;
17845 while let Some(key) = map.next_key::<&str>()? {
17846 nothing = false;
17847 match key {
17848 "members" => {
17849 if field_members.is_some() {
17850 return Err(::serde::de::Error::duplicate_field("members"));
17851 }
17852 field_members = Some(map.next_value()?);
17853 }
17854 _ => {
17855 map.next_value::<::serde_json::Value>()?;
17857 }
17858 }
17859 }
17860 if optional && nothing {
17861 return Ok(None);
17862 }
17863 let result = MembersGetInfoArgs {
17864 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17865 };
17866 Ok(Some(result))
17867 }
17868
17869 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17870 &self,
17871 s: &mut S::SerializeStruct,
17872 ) -> Result<(), S::Error> {
17873 use serde::ser::SerializeStruct;
17874 s.serialize_field("members", &self.members)?;
17875 Ok(())
17876 }
17877}
17878
17879impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoArgs {
17880 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17881 use serde::de::{MapAccess, Visitor};
17883 struct StructVisitor;
17884 impl<'de> Visitor<'de> for StructVisitor {
17885 type Value = MembersGetInfoArgs;
17886 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17887 f.write_str("a MembersGetInfoArgs struct")
17888 }
17889 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17890 MembersGetInfoArgs::internal_deserialize(map)
17891 }
17892 }
17893 deserializer.deserialize_struct("MembersGetInfoArgs", MEMBERS_GET_INFO_ARGS_FIELDS, StructVisitor)
17894 }
17895}
17896
17897impl ::serde::ser::Serialize for MembersGetInfoArgs {
17898 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17899 use serde::ser::SerializeStruct;
17901 let mut s = serializer.serialize_struct("MembersGetInfoArgs", 1)?;
17902 self.internal_serialize::<S>(&mut s)?;
17903 s.end()
17904 }
17905}
17906
17907
17908#[derive(Debug, Clone, PartialEq, Eq)]
17909#[non_exhaustive] pub enum MembersGetInfoError {
17911 Other,
17914}
17915
17916impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoError {
17917 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17918 use serde::de::{self, MapAccess, Visitor};
17920 struct EnumVisitor;
17921 impl<'de> Visitor<'de> for EnumVisitor {
17922 type Value = MembersGetInfoError;
17923 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17924 f.write_str("a MembersGetInfoError structure")
17925 }
17926 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17927 let tag: &str = match map.next_key()? {
17928 Some(".tag") => map.next_value()?,
17929 _ => return Err(de::Error::missing_field(".tag"))
17930 };
17931 let _ = tag;
17933 crate::eat_json_fields(&mut map)?;
17934 Ok(MembersGetInfoError::Other)
17935 }
17936 }
17937 const VARIANTS: &[&str] = &["other"];
17938 deserializer.deserialize_struct("MembersGetInfoError", VARIANTS, EnumVisitor)
17939 }
17940}
17941
17942impl ::serde::ser::Serialize for MembersGetInfoError {
17943 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17944 #![allow(unused_variables)]
17946 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
17947 }
17948}
17949
17950impl ::std::error::Error for MembersGetInfoError {
17951}
17952
17953impl ::std::fmt::Display for MembersGetInfoError {
17954 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17955 write!(f, "{:?}", *self)
17956 }
17957}
17958
17959#[derive(Debug, Clone, PartialEq, Eq)]
17962pub enum MembersGetInfoItem {
17963 IdNotFound(String),
17969 MemberInfo(TeamMemberInfo),
17971}
17972
17973impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItem {
17974 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17975 use serde::de::{self, MapAccess, Visitor};
17977 struct EnumVisitor;
17978 impl<'de> Visitor<'de> for EnumVisitor {
17979 type Value = MembersGetInfoItem;
17980 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17981 f.write_str("a MembersGetInfoItem structure")
17982 }
17983 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17984 let tag: &str = match map.next_key()? {
17985 Some(".tag") => map.next_value()?,
17986 _ => return Err(de::Error::missing_field(".tag"))
17987 };
17988 let value = match tag {
17989 "id_not_found" => {
17990 match map.next_key()? {
17991 Some("id_not_found") => MembersGetInfoItem::IdNotFound(map.next_value()?),
17992 None => return Err(de::Error::missing_field("id_not_found")),
17993 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17994 }
17995 }
17996 "member_info" => MembersGetInfoItem::MemberInfo(TeamMemberInfo::internal_deserialize(&mut map)?),
17997 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
17998 };
17999 crate::eat_json_fields(&mut map)?;
18000 Ok(value)
18001 }
18002 }
18003 const VARIANTS: &[&str] = &["id_not_found",
18004 "member_info"];
18005 deserializer.deserialize_struct("MembersGetInfoItem", VARIANTS, EnumVisitor)
18006 }
18007}
18008
18009impl ::serde::ser::Serialize for MembersGetInfoItem {
18010 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18011 use serde::ser::SerializeStruct;
18013 match self {
18014 MembersGetInfoItem::IdNotFound(x) => {
18015 let mut s = serializer.serialize_struct("MembersGetInfoItem", 2)?;
18017 s.serialize_field(".tag", "id_not_found")?;
18018 s.serialize_field("id_not_found", x)?;
18019 s.end()
18020 }
18021 MembersGetInfoItem::MemberInfo(x) => {
18022 let mut s = serializer.serialize_struct("MembersGetInfoItem", 3)?;
18024 s.serialize_field(".tag", "member_info")?;
18025 x.internal_serialize::<S>(&mut s)?;
18026 s.end()
18027 }
18028 }
18029 }
18030}
18031
18032impl From<MembersGetInfoItemBase> for MembersGetInfoItem {
18034 fn from(parent: MembersGetInfoItemBase) -> Self {
18035 match parent {
18036 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItem::IdNotFound(x),
18037 }
18038 }
18039}
18040#[derive(Debug, Clone, PartialEq, Eq)]
18041pub enum MembersGetInfoItemBase {
18042 IdNotFound(String),
18048}
18049
18050impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemBase {
18051 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18052 use serde::de::{self, MapAccess, Visitor};
18054 struct EnumVisitor;
18055 impl<'de> Visitor<'de> for EnumVisitor {
18056 type Value = MembersGetInfoItemBase;
18057 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18058 f.write_str("a MembersGetInfoItemBase structure")
18059 }
18060 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18061 let tag: &str = match map.next_key()? {
18062 Some(".tag") => map.next_value()?,
18063 _ => return Err(de::Error::missing_field(".tag"))
18064 };
18065 let value = match tag {
18066 "id_not_found" => {
18067 match map.next_key()? {
18068 Some("id_not_found") => MembersGetInfoItemBase::IdNotFound(map.next_value()?),
18069 None => return Err(de::Error::missing_field("id_not_found")),
18070 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
18071 }
18072 }
18073 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
18074 };
18075 crate::eat_json_fields(&mut map)?;
18076 Ok(value)
18077 }
18078 }
18079 const VARIANTS: &[&str] = &["id_not_found"];
18080 deserializer.deserialize_struct("MembersGetInfoItemBase", VARIANTS, EnumVisitor)
18081 }
18082}
18083
18084impl ::serde::ser::Serialize for MembersGetInfoItemBase {
18085 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18086 use serde::ser::SerializeStruct;
18088 match self {
18089 MembersGetInfoItemBase::IdNotFound(x) => {
18090 let mut s = serializer.serialize_struct("MembersGetInfoItemBase", 2)?;
18092 s.serialize_field(".tag", "id_not_found")?;
18093 s.serialize_field("id_not_found", x)?;
18094 s.end()
18095 }
18096 }
18097 }
18098}
18099
18100#[derive(Debug, Clone, PartialEq, Eq)]
18103#[non_exhaustive] pub enum MembersGetInfoItemV2 {
18105 IdNotFound(String),
18111 MemberInfo(TeamMemberInfoV2),
18113 Other,
18116}
18117
18118impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemV2 {
18119 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18120 use serde::de::{self, MapAccess, Visitor};
18122 struct EnumVisitor;
18123 impl<'de> Visitor<'de> for EnumVisitor {
18124 type Value = MembersGetInfoItemV2;
18125 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18126 f.write_str("a MembersGetInfoItemV2 structure")
18127 }
18128 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18129 let tag: &str = match map.next_key()? {
18130 Some(".tag") => map.next_value()?,
18131 _ => return Err(de::Error::missing_field(".tag"))
18132 };
18133 let value = match tag {
18134 "id_not_found" => {
18135 match map.next_key()? {
18136 Some("id_not_found") => MembersGetInfoItemV2::IdNotFound(map.next_value()?),
18137 None => return Err(de::Error::missing_field("id_not_found")),
18138 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
18139 }
18140 }
18141 "member_info" => MembersGetInfoItemV2::MemberInfo(TeamMemberInfoV2::internal_deserialize(&mut map)?),
18142 _ => MembersGetInfoItemV2::Other,
18143 };
18144 crate::eat_json_fields(&mut map)?;
18145 Ok(value)
18146 }
18147 }
18148 const VARIANTS: &[&str] = &["id_not_found",
18149 "member_info",
18150 "other"];
18151 deserializer.deserialize_struct("MembersGetInfoItemV2", VARIANTS, EnumVisitor)
18152 }
18153}
18154
18155impl ::serde::ser::Serialize for MembersGetInfoItemV2 {
18156 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18157 use serde::ser::SerializeStruct;
18159 match self {
18160 MembersGetInfoItemV2::IdNotFound(x) => {
18161 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 2)?;
18163 s.serialize_field(".tag", "id_not_found")?;
18164 s.serialize_field("id_not_found", x)?;
18165 s.end()
18166 }
18167 MembersGetInfoItemV2::MemberInfo(x) => {
18168 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 3)?;
18170 s.serialize_field(".tag", "member_info")?;
18171 x.internal_serialize::<S>(&mut s)?;
18172 s.end()
18173 }
18174 MembersGetInfoItemV2::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18175 }
18176 }
18177}
18178
18179impl From<MembersGetInfoItemBase> for MembersGetInfoItemV2 {
18181 fn from(parent: MembersGetInfoItemBase) -> Self {
18182 match parent {
18183 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItemV2::IdNotFound(x),
18184 }
18185 }
18186}
18187#[derive(Debug, Clone, PartialEq, Eq)]
18188#[non_exhaustive] pub struct MembersGetInfoV2Arg {
18190 pub members: Vec<UserSelectorArg>,
18192}
18193
18194impl MembersGetInfoV2Arg {
18195 pub fn new(members: Vec<UserSelectorArg>) -> Self {
18196 MembersGetInfoV2Arg {
18197 members,
18198 }
18199 }
18200}
18201
18202const MEMBERS_GET_INFO_V2_ARG_FIELDS: &[&str] = &["members"];
18203impl MembersGetInfoV2Arg {
18204 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18205 map: V,
18206 ) -> Result<MembersGetInfoV2Arg, V::Error> {
18207 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18208 }
18209
18210 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18211 mut map: V,
18212 optional: bool,
18213 ) -> Result<Option<MembersGetInfoV2Arg>, V::Error> {
18214 let mut field_members = None;
18215 let mut nothing = true;
18216 while let Some(key) = map.next_key::<&str>()? {
18217 nothing = false;
18218 match key {
18219 "members" => {
18220 if field_members.is_some() {
18221 return Err(::serde::de::Error::duplicate_field("members"));
18222 }
18223 field_members = Some(map.next_value()?);
18224 }
18225 _ => {
18226 map.next_value::<::serde_json::Value>()?;
18228 }
18229 }
18230 }
18231 if optional && nothing {
18232 return Ok(None);
18233 }
18234 let result = MembersGetInfoV2Arg {
18235 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
18236 };
18237 Ok(Some(result))
18238 }
18239
18240 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18241 &self,
18242 s: &mut S::SerializeStruct,
18243 ) -> Result<(), S::Error> {
18244 use serde::ser::SerializeStruct;
18245 s.serialize_field("members", &self.members)?;
18246 Ok(())
18247 }
18248}
18249
18250impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Arg {
18251 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18252 use serde::de::{MapAccess, Visitor};
18254 struct StructVisitor;
18255 impl<'de> Visitor<'de> for StructVisitor {
18256 type Value = MembersGetInfoV2Arg;
18257 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18258 f.write_str("a MembersGetInfoV2Arg struct")
18259 }
18260 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18261 MembersGetInfoV2Arg::internal_deserialize(map)
18262 }
18263 }
18264 deserializer.deserialize_struct("MembersGetInfoV2Arg", MEMBERS_GET_INFO_V2_ARG_FIELDS, StructVisitor)
18265 }
18266}
18267
18268impl ::serde::ser::Serialize for MembersGetInfoV2Arg {
18269 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18270 use serde::ser::SerializeStruct;
18272 let mut s = serializer.serialize_struct("MembersGetInfoV2Arg", 1)?;
18273 self.internal_serialize::<S>(&mut s)?;
18274 s.end()
18275 }
18276}
18277
18278#[derive(Debug, Clone, PartialEq, Eq)]
18279#[non_exhaustive] pub struct MembersGetInfoV2Result {
18281 pub members_info: Vec<MembersGetInfoItemV2>,
18283}
18284
18285impl MembersGetInfoV2Result {
18286 pub fn new(members_info: Vec<MembersGetInfoItemV2>) -> Self {
18287 MembersGetInfoV2Result {
18288 members_info,
18289 }
18290 }
18291}
18292
18293const MEMBERS_GET_INFO_V2_RESULT_FIELDS: &[&str] = &["members_info"];
18294impl MembersGetInfoV2Result {
18295 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18296 map: V,
18297 ) -> Result<MembersGetInfoV2Result, V::Error> {
18298 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18299 }
18300
18301 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18302 mut map: V,
18303 optional: bool,
18304 ) -> Result<Option<MembersGetInfoV2Result>, V::Error> {
18305 let mut field_members_info = None;
18306 let mut nothing = true;
18307 while let Some(key) = map.next_key::<&str>()? {
18308 nothing = false;
18309 match key {
18310 "members_info" => {
18311 if field_members_info.is_some() {
18312 return Err(::serde::de::Error::duplicate_field("members_info"));
18313 }
18314 field_members_info = Some(map.next_value()?);
18315 }
18316 _ => {
18317 map.next_value::<::serde_json::Value>()?;
18319 }
18320 }
18321 }
18322 if optional && nothing {
18323 return Ok(None);
18324 }
18325 let result = MembersGetInfoV2Result {
18326 members_info: field_members_info.ok_or_else(|| ::serde::de::Error::missing_field("members_info"))?,
18327 };
18328 Ok(Some(result))
18329 }
18330
18331 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18332 &self,
18333 s: &mut S::SerializeStruct,
18334 ) -> Result<(), S::Error> {
18335 use serde::ser::SerializeStruct;
18336 s.serialize_field("members_info", &self.members_info)?;
18337 Ok(())
18338 }
18339}
18340
18341impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Result {
18342 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18343 use serde::de::{MapAccess, Visitor};
18345 struct StructVisitor;
18346 impl<'de> Visitor<'de> for StructVisitor {
18347 type Value = MembersGetInfoV2Result;
18348 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18349 f.write_str("a MembersGetInfoV2Result struct")
18350 }
18351 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18352 MembersGetInfoV2Result::internal_deserialize(map)
18353 }
18354 }
18355 deserializer.deserialize_struct("MembersGetInfoV2Result", MEMBERS_GET_INFO_V2_RESULT_FIELDS, StructVisitor)
18356 }
18357}
18358
18359impl ::serde::ser::Serialize for MembersGetInfoV2Result {
18360 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18361 use serde::ser::SerializeStruct;
18363 let mut s = serializer.serialize_struct("MembersGetInfoV2Result", 1)?;
18364 self.internal_serialize::<S>(&mut s)?;
18365 s.end()
18366 }
18367}
18368
18369#[derive(Debug, Clone, PartialEq, Eq)]
18370#[non_exhaustive] pub struct MembersInfo {
18372 pub team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
18374 pub permanently_deleted_users: u64,
18376}
18377
18378impl MembersInfo {
18379 pub fn new(
18380 team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
18381 permanently_deleted_users: u64,
18382 ) -> Self {
18383 MembersInfo {
18384 team_member_ids,
18385 permanently_deleted_users,
18386 }
18387 }
18388}
18389
18390const MEMBERS_INFO_FIELDS: &[&str] = &["team_member_ids",
18391 "permanently_deleted_users"];
18392impl MembersInfo {
18393 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18394 map: V,
18395 ) -> Result<MembersInfo, V::Error> {
18396 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18397 }
18398
18399 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18400 mut map: V,
18401 optional: bool,
18402 ) -> Result<Option<MembersInfo>, V::Error> {
18403 let mut field_team_member_ids = None;
18404 let mut field_permanently_deleted_users = None;
18405 let mut nothing = true;
18406 while let Some(key) = map.next_key::<&str>()? {
18407 nothing = false;
18408 match key {
18409 "team_member_ids" => {
18410 if field_team_member_ids.is_some() {
18411 return Err(::serde::de::Error::duplicate_field("team_member_ids"));
18412 }
18413 field_team_member_ids = Some(map.next_value()?);
18414 }
18415 "permanently_deleted_users" => {
18416 if field_permanently_deleted_users.is_some() {
18417 return Err(::serde::de::Error::duplicate_field("permanently_deleted_users"));
18418 }
18419 field_permanently_deleted_users = Some(map.next_value()?);
18420 }
18421 _ => {
18422 map.next_value::<::serde_json::Value>()?;
18424 }
18425 }
18426 }
18427 if optional && nothing {
18428 return Ok(None);
18429 }
18430 let result = MembersInfo {
18431 team_member_ids: field_team_member_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_member_ids"))?,
18432 permanently_deleted_users: field_permanently_deleted_users.ok_or_else(|| ::serde::de::Error::missing_field("permanently_deleted_users"))?,
18433 };
18434 Ok(Some(result))
18435 }
18436
18437 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18438 &self,
18439 s: &mut S::SerializeStruct,
18440 ) -> Result<(), S::Error> {
18441 use serde::ser::SerializeStruct;
18442 s.serialize_field("team_member_ids", &self.team_member_ids)?;
18443 s.serialize_field("permanently_deleted_users", &self.permanently_deleted_users)?;
18444 Ok(())
18445 }
18446}
18447
18448impl<'de> ::serde::de::Deserialize<'de> for MembersInfo {
18449 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18450 use serde::de::{MapAccess, Visitor};
18452 struct StructVisitor;
18453 impl<'de> Visitor<'de> for StructVisitor {
18454 type Value = MembersInfo;
18455 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18456 f.write_str("a MembersInfo struct")
18457 }
18458 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18459 MembersInfo::internal_deserialize(map)
18460 }
18461 }
18462 deserializer.deserialize_struct("MembersInfo", MEMBERS_INFO_FIELDS, StructVisitor)
18463 }
18464}
18465
18466impl ::serde::ser::Serialize for MembersInfo {
18467 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18468 use serde::ser::SerializeStruct;
18470 let mut s = serializer.serialize_struct("MembersInfo", 2)?;
18471 self.internal_serialize::<S>(&mut s)?;
18472 s.end()
18473 }
18474}
18475
18476#[derive(Debug, Clone, PartialEq, Eq)]
18477#[non_exhaustive] pub struct MembersListArg {
18479 pub limit: u32,
18481 pub include_removed: bool,
18483}
18484
18485impl Default for MembersListArg {
18486 fn default() -> Self {
18487 MembersListArg {
18488 limit: 1000,
18489 include_removed: false,
18490 }
18491 }
18492}
18493
18494impl MembersListArg {
18495 pub fn with_limit(mut self, value: u32) -> Self {
18496 self.limit = value;
18497 self
18498 }
18499
18500 pub fn with_include_removed(mut self, value: bool) -> Self {
18501 self.include_removed = value;
18502 self
18503 }
18504}
18505
18506const MEMBERS_LIST_ARG_FIELDS: &[&str] = &["limit",
18507 "include_removed"];
18508impl MembersListArg {
18509 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18511 mut map: V,
18512 ) -> Result<MembersListArg, V::Error> {
18513 let mut field_limit = None;
18514 let mut field_include_removed = None;
18515 while let Some(key) = map.next_key::<&str>()? {
18516 match key {
18517 "limit" => {
18518 if field_limit.is_some() {
18519 return Err(::serde::de::Error::duplicate_field("limit"));
18520 }
18521 field_limit = Some(map.next_value()?);
18522 }
18523 "include_removed" => {
18524 if field_include_removed.is_some() {
18525 return Err(::serde::de::Error::duplicate_field("include_removed"));
18526 }
18527 field_include_removed = Some(map.next_value()?);
18528 }
18529 _ => {
18530 map.next_value::<::serde_json::Value>()?;
18532 }
18533 }
18534 }
18535 let result = MembersListArg {
18536 limit: field_limit.unwrap_or(1000),
18537 include_removed: field_include_removed.unwrap_or(false),
18538 };
18539 Ok(result)
18540 }
18541
18542 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18543 &self,
18544 s: &mut S::SerializeStruct,
18545 ) -> Result<(), S::Error> {
18546 use serde::ser::SerializeStruct;
18547 if self.limit != 1000 {
18548 s.serialize_field("limit", &self.limit)?;
18549 }
18550 if self.include_removed {
18551 s.serialize_field("include_removed", &self.include_removed)?;
18552 }
18553 Ok(())
18554 }
18555}
18556
18557impl<'de> ::serde::de::Deserialize<'de> for MembersListArg {
18558 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18559 use serde::de::{MapAccess, Visitor};
18561 struct StructVisitor;
18562 impl<'de> Visitor<'de> for StructVisitor {
18563 type Value = MembersListArg;
18564 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18565 f.write_str("a MembersListArg struct")
18566 }
18567 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18568 MembersListArg::internal_deserialize(map)
18569 }
18570 }
18571 deserializer.deserialize_struct("MembersListArg", MEMBERS_LIST_ARG_FIELDS, StructVisitor)
18572 }
18573}
18574
18575impl ::serde::ser::Serialize for MembersListArg {
18576 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18577 use serde::ser::SerializeStruct;
18579 let mut s = serializer.serialize_struct("MembersListArg", 2)?;
18580 self.internal_serialize::<S>(&mut s)?;
18581 s.end()
18582 }
18583}
18584
18585#[derive(Debug, Clone, PartialEq, Eq)]
18586#[non_exhaustive] pub struct MembersListContinueArg {
18588 pub cursor: String,
18590}
18591
18592impl MembersListContinueArg {
18593 pub fn new(cursor: String) -> Self {
18594 MembersListContinueArg {
18595 cursor,
18596 }
18597 }
18598}
18599
18600const MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
18601impl MembersListContinueArg {
18602 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18603 map: V,
18604 ) -> Result<MembersListContinueArg, V::Error> {
18605 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18606 }
18607
18608 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18609 mut map: V,
18610 optional: bool,
18611 ) -> Result<Option<MembersListContinueArg>, V::Error> {
18612 let mut field_cursor = None;
18613 let mut nothing = true;
18614 while let Some(key) = map.next_key::<&str>()? {
18615 nothing = false;
18616 match key {
18617 "cursor" => {
18618 if field_cursor.is_some() {
18619 return Err(::serde::de::Error::duplicate_field("cursor"));
18620 }
18621 field_cursor = Some(map.next_value()?);
18622 }
18623 _ => {
18624 map.next_value::<::serde_json::Value>()?;
18626 }
18627 }
18628 }
18629 if optional && nothing {
18630 return Ok(None);
18631 }
18632 let result = MembersListContinueArg {
18633 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
18634 };
18635 Ok(Some(result))
18636 }
18637
18638 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18639 &self,
18640 s: &mut S::SerializeStruct,
18641 ) -> Result<(), S::Error> {
18642 use serde::ser::SerializeStruct;
18643 s.serialize_field("cursor", &self.cursor)?;
18644 Ok(())
18645 }
18646}
18647
18648impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueArg {
18649 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18650 use serde::de::{MapAccess, Visitor};
18652 struct StructVisitor;
18653 impl<'de> Visitor<'de> for StructVisitor {
18654 type Value = MembersListContinueArg;
18655 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18656 f.write_str("a MembersListContinueArg struct")
18657 }
18658 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18659 MembersListContinueArg::internal_deserialize(map)
18660 }
18661 }
18662 deserializer.deserialize_struct("MembersListContinueArg", MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
18663 }
18664}
18665
18666impl ::serde::ser::Serialize for MembersListContinueArg {
18667 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18668 use serde::ser::SerializeStruct;
18670 let mut s = serializer.serialize_struct("MembersListContinueArg", 1)?;
18671 self.internal_serialize::<S>(&mut s)?;
18672 s.end()
18673 }
18674}
18675
18676#[derive(Debug, Clone, PartialEq, Eq)]
18677#[non_exhaustive] pub enum MembersListContinueError {
18679 InvalidCursor,
18681 Other,
18684}
18685
18686impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueError {
18687 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18688 use serde::de::{self, MapAccess, Visitor};
18690 struct EnumVisitor;
18691 impl<'de> Visitor<'de> for EnumVisitor {
18692 type Value = MembersListContinueError;
18693 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18694 f.write_str("a MembersListContinueError structure")
18695 }
18696 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18697 let tag: &str = match map.next_key()? {
18698 Some(".tag") => map.next_value()?,
18699 _ => return Err(de::Error::missing_field(".tag"))
18700 };
18701 let value = match tag {
18702 "invalid_cursor" => MembersListContinueError::InvalidCursor,
18703 _ => MembersListContinueError::Other,
18704 };
18705 crate::eat_json_fields(&mut map)?;
18706 Ok(value)
18707 }
18708 }
18709 const VARIANTS: &[&str] = &["invalid_cursor",
18710 "other"];
18711 deserializer.deserialize_struct("MembersListContinueError", VARIANTS, EnumVisitor)
18712 }
18713}
18714
18715impl ::serde::ser::Serialize for MembersListContinueError {
18716 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18717 use serde::ser::SerializeStruct;
18719 match self {
18720 MembersListContinueError::InvalidCursor => {
18721 let mut s = serializer.serialize_struct("MembersListContinueError", 1)?;
18723 s.serialize_field(".tag", "invalid_cursor")?;
18724 s.end()
18725 }
18726 MembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18727 }
18728 }
18729}
18730
18731impl ::std::error::Error for MembersListContinueError {
18732}
18733
18734impl ::std::fmt::Display for MembersListContinueError {
18735 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18736 match self {
18737 MembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
18738 _ => write!(f, "{:?}", *self),
18739 }
18740 }
18741}
18742
18743
18744#[derive(Debug, Clone, PartialEq, Eq)]
18745#[non_exhaustive] pub enum MembersListError {
18747 Other,
18750}
18751
18752impl<'de> ::serde::de::Deserialize<'de> for MembersListError {
18753 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18754 use serde::de::{self, MapAccess, Visitor};
18756 struct EnumVisitor;
18757 impl<'de> Visitor<'de> for EnumVisitor {
18758 type Value = MembersListError;
18759 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18760 f.write_str("a MembersListError structure")
18761 }
18762 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18763 let tag: &str = match map.next_key()? {
18764 Some(".tag") => map.next_value()?,
18765 _ => return Err(de::Error::missing_field(".tag"))
18766 };
18767 let _ = tag;
18769 crate::eat_json_fields(&mut map)?;
18770 Ok(MembersListError::Other)
18771 }
18772 }
18773 const VARIANTS: &[&str] = &["other"];
18774 deserializer.deserialize_struct("MembersListError", VARIANTS, EnumVisitor)
18775 }
18776}
18777
18778impl ::serde::ser::Serialize for MembersListError {
18779 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18780 #![allow(unused_variables)]
18782 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
18783 }
18784}
18785
18786impl ::std::error::Error for MembersListError {
18787}
18788
18789impl ::std::fmt::Display for MembersListError {
18790 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18791 write!(f, "{:?}", *self)
18792 }
18793}
18794
18795#[derive(Debug, Clone, PartialEq, Eq)]
18796#[non_exhaustive] pub struct MembersListResult {
18798 pub members: Vec<TeamMemberInfo>,
18800 pub cursor: String,
18803 pub has_more: bool,
18806}
18807
18808impl MembersListResult {
18809 pub fn new(members: Vec<TeamMemberInfo>, cursor: String, has_more: bool) -> Self {
18810 MembersListResult {
18811 members,
18812 cursor,
18813 has_more,
18814 }
18815 }
18816}
18817
18818const MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
18819 "cursor",
18820 "has_more"];
18821impl MembersListResult {
18822 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18823 map: V,
18824 ) -> Result<MembersListResult, V::Error> {
18825 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18826 }
18827
18828 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18829 mut map: V,
18830 optional: bool,
18831 ) -> Result<Option<MembersListResult>, V::Error> {
18832 let mut field_members = None;
18833 let mut field_cursor = None;
18834 let mut field_has_more = None;
18835 let mut nothing = true;
18836 while let Some(key) = map.next_key::<&str>()? {
18837 nothing = false;
18838 match key {
18839 "members" => {
18840 if field_members.is_some() {
18841 return Err(::serde::de::Error::duplicate_field("members"));
18842 }
18843 field_members = Some(map.next_value()?);
18844 }
18845 "cursor" => {
18846 if field_cursor.is_some() {
18847 return Err(::serde::de::Error::duplicate_field("cursor"));
18848 }
18849 field_cursor = Some(map.next_value()?);
18850 }
18851 "has_more" => {
18852 if field_has_more.is_some() {
18853 return Err(::serde::de::Error::duplicate_field("has_more"));
18854 }
18855 field_has_more = Some(map.next_value()?);
18856 }
18857 _ => {
18858 map.next_value::<::serde_json::Value>()?;
18860 }
18861 }
18862 }
18863 if optional && nothing {
18864 return Ok(None);
18865 }
18866 let result = MembersListResult {
18867 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
18868 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
18869 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
18870 };
18871 Ok(Some(result))
18872 }
18873
18874 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18875 &self,
18876 s: &mut S::SerializeStruct,
18877 ) -> Result<(), S::Error> {
18878 use serde::ser::SerializeStruct;
18879 s.serialize_field("members", &self.members)?;
18880 s.serialize_field("cursor", &self.cursor)?;
18881 s.serialize_field("has_more", &self.has_more)?;
18882 Ok(())
18883 }
18884}
18885
18886impl<'de> ::serde::de::Deserialize<'de> for MembersListResult {
18887 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18888 use serde::de::{MapAccess, Visitor};
18890 struct StructVisitor;
18891 impl<'de> Visitor<'de> for StructVisitor {
18892 type Value = MembersListResult;
18893 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18894 f.write_str("a MembersListResult struct")
18895 }
18896 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18897 MembersListResult::internal_deserialize(map)
18898 }
18899 }
18900 deserializer.deserialize_struct("MembersListResult", MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
18901 }
18902}
18903
18904impl ::serde::ser::Serialize for MembersListResult {
18905 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18906 use serde::ser::SerializeStruct;
18908 let mut s = serializer.serialize_struct("MembersListResult", 3)?;
18909 self.internal_serialize::<S>(&mut s)?;
18910 s.end()
18911 }
18912}
18913
18914#[derive(Debug, Clone, PartialEq, Eq)]
18915#[non_exhaustive] pub struct MembersListV2Result {
18917 pub members: Vec<TeamMemberInfoV2>,
18919 pub cursor: String,
18922 pub has_more: bool,
18926}
18927
18928impl MembersListV2Result {
18929 pub fn new(members: Vec<TeamMemberInfoV2>, cursor: String, has_more: bool) -> Self {
18930 MembersListV2Result {
18931 members,
18932 cursor,
18933 has_more,
18934 }
18935 }
18936}
18937
18938const MEMBERS_LIST_V2_RESULT_FIELDS: &[&str] = &["members",
18939 "cursor",
18940 "has_more"];
18941impl MembersListV2Result {
18942 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18943 map: V,
18944 ) -> Result<MembersListV2Result, V::Error> {
18945 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18946 }
18947
18948 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18949 mut map: V,
18950 optional: bool,
18951 ) -> Result<Option<MembersListV2Result>, V::Error> {
18952 let mut field_members = None;
18953 let mut field_cursor = None;
18954 let mut field_has_more = None;
18955 let mut nothing = true;
18956 while let Some(key) = map.next_key::<&str>()? {
18957 nothing = false;
18958 match key {
18959 "members" => {
18960 if field_members.is_some() {
18961 return Err(::serde::de::Error::duplicate_field("members"));
18962 }
18963 field_members = Some(map.next_value()?);
18964 }
18965 "cursor" => {
18966 if field_cursor.is_some() {
18967 return Err(::serde::de::Error::duplicate_field("cursor"));
18968 }
18969 field_cursor = Some(map.next_value()?);
18970 }
18971 "has_more" => {
18972 if field_has_more.is_some() {
18973 return Err(::serde::de::Error::duplicate_field("has_more"));
18974 }
18975 field_has_more = Some(map.next_value()?);
18976 }
18977 _ => {
18978 map.next_value::<::serde_json::Value>()?;
18980 }
18981 }
18982 }
18983 if optional && nothing {
18984 return Ok(None);
18985 }
18986 let result = MembersListV2Result {
18987 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
18988 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
18989 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
18990 };
18991 Ok(Some(result))
18992 }
18993
18994 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18995 &self,
18996 s: &mut S::SerializeStruct,
18997 ) -> Result<(), S::Error> {
18998 use serde::ser::SerializeStruct;
18999 s.serialize_field("members", &self.members)?;
19000 s.serialize_field("cursor", &self.cursor)?;
19001 s.serialize_field("has_more", &self.has_more)?;
19002 Ok(())
19003 }
19004}
19005
19006impl<'de> ::serde::de::Deserialize<'de> for MembersListV2Result {
19007 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19008 use serde::de::{MapAccess, Visitor};
19010 struct StructVisitor;
19011 impl<'de> Visitor<'de> for StructVisitor {
19012 type Value = MembersListV2Result;
19013 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19014 f.write_str("a MembersListV2Result struct")
19015 }
19016 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19017 MembersListV2Result::internal_deserialize(map)
19018 }
19019 }
19020 deserializer.deserialize_struct("MembersListV2Result", MEMBERS_LIST_V2_RESULT_FIELDS, StructVisitor)
19021 }
19022}
19023
19024impl ::serde::ser::Serialize for MembersListV2Result {
19025 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19026 use serde::ser::SerializeStruct;
19028 let mut s = serializer.serialize_struct("MembersListV2Result", 3)?;
19029 self.internal_serialize::<S>(&mut s)?;
19030 s.end()
19031 }
19032}
19033
19034#[derive(Debug, Clone, PartialEq, Eq)]
19035#[non_exhaustive] pub enum MembersPermanentlyDeleteFilesError {
19037 UserNotFound,
19040 UserNotInTeam,
19042 TransferInProgress,
19044 AlreadyTransferred,
19046 AlreadyTransferredOrDeleted,
19048 Other,
19051}
19052
19053impl<'de> ::serde::de::Deserialize<'de> for MembersPermanentlyDeleteFilesError {
19054 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19055 use serde::de::{self, MapAccess, Visitor};
19057 struct EnumVisitor;
19058 impl<'de> Visitor<'de> for EnumVisitor {
19059 type Value = MembersPermanentlyDeleteFilesError;
19060 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19061 f.write_str("a MembersPermanentlyDeleteFilesError structure")
19062 }
19063 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19064 let tag: &str = match map.next_key()? {
19065 Some(".tag") => map.next_value()?,
19066 _ => return Err(de::Error::missing_field(".tag"))
19067 };
19068 let value = match tag {
19069 "user_not_found" => MembersPermanentlyDeleteFilesError::UserNotFound,
19070 "user_not_in_team" => MembersPermanentlyDeleteFilesError::UserNotInTeam,
19071 "transfer_in_progress" => MembersPermanentlyDeleteFilesError::TransferInProgress,
19072 "already_transferred" => MembersPermanentlyDeleteFilesError::AlreadyTransferred,
19073 "already_transferred_or_deleted" => MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted,
19074 _ => MembersPermanentlyDeleteFilesError::Other,
19075 };
19076 crate::eat_json_fields(&mut map)?;
19077 Ok(value)
19078 }
19079 }
19080 const VARIANTS: &[&str] = &["user_not_found",
19081 "user_not_in_team",
19082 "other",
19083 "transfer_in_progress",
19084 "already_transferred",
19085 "already_transferred_or_deleted"];
19086 deserializer.deserialize_struct("MembersPermanentlyDeleteFilesError", VARIANTS, EnumVisitor)
19087 }
19088}
19089
19090impl ::serde::ser::Serialize for MembersPermanentlyDeleteFilesError {
19091 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19092 use serde::ser::SerializeStruct;
19094 match self {
19095 MembersPermanentlyDeleteFilesError::UserNotFound => {
19096 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
19098 s.serialize_field(".tag", "user_not_found")?;
19099 s.end()
19100 }
19101 MembersPermanentlyDeleteFilesError::UserNotInTeam => {
19102 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
19104 s.serialize_field(".tag", "user_not_in_team")?;
19105 s.end()
19106 }
19107 MembersPermanentlyDeleteFilesError::TransferInProgress => {
19108 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
19110 s.serialize_field(".tag", "transfer_in_progress")?;
19111 s.end()
19112 }
19113 MembersPermanentlyDeleteFilesError::AlreadyTransferred => {
19114 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
19116 s.serialize_field(".tag", "already_transferred")?;
19117 s.end()
19118 }
19119 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => {
19120 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
19122 s.serialize_field(".tag", "already_transferred_or_deleted")?;
19123 s.end()
19124 }
19125 MembersPermanentlyDeleteFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19126 }
19127 }
19128}
19129
19130impl ::std::error::Error for MembersPermanentlyDeleteFilesError {
19131}
19132
19133impl ::std::fmt::Display for MembersPermanentlyDeleteFilesError {
19134 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19135 match self {
19136 MembersPermanentlyDeleteFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19137 MembersPermanentlyDeleteFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19138 MembersPermanentlyDeleteFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
19139 MembersPermanentlyDeleteFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
19140 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
19141 _ => write!(f, "{:?}", *self),
19142 }
19143 }
19144}
19145
19146impl From<MembersDeactivateError> for MembersPermanentlyDeleteFilesError {
19148 fn from(parent: MembersDeactivateError) -> Self {
19149 match parent {
19150 MembersDeactivateError::UserNotFound => MembersPermanentlyDeleteFilesError::UserNotFound,
19151 MembersDeactivateError::UserNotInTeam => MembersPermanentlyDeleteFilesError::UserNotInTeam,
19152 MembersDeactivateError::Other => MembersPermanentlyDeleteFilesError::Other,
19153 }
19154 }
19155}
19156#[derive(Debug, Clone, PartialEq, Eq)]
19159#[non_exhaustive] pub struct MembersRecoverArg {
19161 pub user: UserSelectorArg,
19163}
19164
19165impl MembersRecoverArg {
19166 pub fn new(user: UserSelectorArg) -> Self {
19167 MembersRecoverArg {
19168 user,
19169 }
19170 }
19171}
19172
19173const MEMBERS_RECOVER_ARG_FIELDS: &[&str] = &["user"];
19174impl MembersRecoverArg {
19175 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19176 map: V,
19177 ) -> Result<MembersRecoverArg, V::Error> {
19178 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19179 }
19180
19181 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19182 mut map: V,
19183 optional: bool,
19184 ) -> Result<Option<MembersRecoverArg>, V::Error> {
19185 let mut field_user = None;
19186 let mut nothing = true;
19187 while let Some(key) = map.next_key::<&str>()? {
19188 nothing = false;
19189 match key {
19190 "user" => {
19191 if field_user.is_some() {
19192 return Err(::serde::de::Error::duplicate_field("user"));
19193 }
19194 field_user = Some(map.next_value()?);
19195 }
19196 _ => {
19197 map.next_value::<::serde_json::Value>()?;
19199 }
19200 }
19201 }
19202 if optional && nothing {
19203 return Ok(None);
19204 }
19205 let result = MembersRecoverArg {
19206 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19207 };
19208 Ok(Some(result))
19209 }
19210
19211 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19212 &self,
19213 s: &mut S::SerializeStruct,
19214 ) -> Result<(), S::Error> {
19215 use serde::ser::SerializeStruct;
19216 s.serialize_field("user", &self.user)?;
19217 Ok(())
19218 }
19219}
19220
19221impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverArg {
19222 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19223 use serde::de::{MapAccess, Visitor};
19225 struct StructVisitor;
19226 impl<'de> Visitor<'de> for StructVisitor {
19227 type Value = MembersRecoverArg;
19228 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19229 f.write_str("a MembersRecoverArg struct")
19230 }
19231 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19232 MembersRecoverArg::internal_deserialize(map)
19233 }
19234 }
19235 deserializer.deserialize_struct("MembersRecoverArg", MEMBERS_RECOVER_ARG_FIELDS, StructVisitor)
19236 }
19237}
19238
19239impl ::serde::ser::Serialize for MembersRecoverArg {
19240 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19241 use serde::ser::SerializeStruct;
19243 let mut s = serializer.serialize_struct("MembersRecoverArg", 1)?;
19244 self.internal_serialize::<S>(&mut s)?;
19245 s.end()
19246 }
19247}
19248
19249#[derive(Debug, Clone, PartialEq, Eq)]
19250#[non_exhaustive] pub enum MembersRecoverError {
19252 UserNotFound,
19255 UserUnrecoverable,
19257 UserNotInTeam,
19259 TeamLicenseLimit,
19261 Other,
19264}
19265
19266impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverError {
19267 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19268 use serde::de::{self, MapAccess, Visitor};
19270 struct EnumVisitor;
19271 impl<'de> Visitor<'de> for EnumVisitor {
19272 type Value = MembersRecoverError;
19273 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19274 f.write_str("a MembersRecoverError structure")
19275 }
19276 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19277 let tag: &str = match map.next_key()? {
19278 Some(".tag") => map.next_value()?,
19279 _ => return Err(de::Error::missing_field(".tag"))
19280 };
19281 let value = match tag {
19282 "user_not_found" => MembersRecoverError::UserNotFound,
19283 "user_unrecoverable" => MembersRecoverError::UserUnrecoverable,
19284 "user_not_in_team" => MembersRecoverError::UserNotInTeam,
19285 "team_license_limit" => MembersRecoverError::TeamLicenseLimit,
19286 _ => MembersRecoverError::Other,
19287 };
19288 crate::eat_json_fields(&mut map)?;
19289 Ok(value)
19290 }
19291 }
19292 const VARIANTS: &[&str] = &["user_not_found",
19293 "user_unrecoverable",
19294 "user_not_in_team",
19295 "team_license_limit",
19296 "other"];
19297 deserializer.deserialize_struct("MembersRecoverError", VARIANTS, EnumVisitor)
19298 }
19299}
19300
19301impl ::serde::ser::Serialize for MembersRecoverError {
19302 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19303 use serde::ser::SerializeStruct;
19305 match self {
19306 MembersRecoverError::UserNotFound => {
19307 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
19309 s.serialize_field(".tag", "user_not_found")?;
19310 s.end()
19311 }
19312 MembersRecoverError::UserUnrecoverable => {
19313 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
19315 s.serialize_field(".tag", "user_unrecoverable")?;
19316 s.end()
19317 }
19318 MembersRecoverError::UserNotInTeam => {
19319 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
19321 s.serialize_field(".tag", "user_not_in_team")?;
19322 s.end()
19323 }
19324 MembersRecoverError::TeamLicenseLimit => {
19325 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
19327 s.serialize_field(".tag", "team_license_limit")?;
19328 s.end()
19329 }
19330 MembersRecoverError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19331 }
19332 }
19333}
19334
19335impl ::std::error::Error for MembersRecoverError {
19336}
19337
19338impl ::std::fmt::Display for MembersRecoverError {
19339 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19340 match self {
19341 MembersRecoverError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19342 MembersRecoverError::UserUnrecoverable => f.write_str("The user is not recoverable."),
19343 MembersRecoverError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19344 MembersRecoverError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
19345 _ => write!(f, "{:?}", *self),
19346 }
19347 }
19348}
19349
19350impl From<UserSelectorError> for MembersRecoverError {
19352 fn from(parent: UserSelectorError) -> Self {
19353 match parent {
19354 UserSelectorError::UserNotFound => MembersRecoverError::UserNotFound,
19355 }
19356 }
19357}
19358#[derive(Debug, Clone, PartialEq, Eq)]
19359#[non_exhaustive] pub struct MembersRemoveArg {
19361 pub user: UserSelectorArg,
19363 pub wipe_data: bool,
19365 pub transfer_dest_id: Option<UserSelectorArg>,
19367 pub transfer_admin_id: Option<UserSelectorArg>,
19370 pub keep_account: bool,
19374 pub retain_team_shares: bool,
19380 pub permanently_delete_files: bool,
19383}
19384
19385impl MembersRemoveArg {
19386 pub fn new(user: UserSelectorArg) -> Self {
19387 MembersRemoveArg {
19388 user,
19389 wipe_data: true,
19390 transfer_dest_id: None,
19391 transfer_admin_id: None,
19392 keep_account: false,
19393 retain_team_shares: false,
19394 permanently_delete_files: false,
19395 }
19396 }
19397
19398 pub fn with_wipe_data(mut self, value: bool) -> Self {
19399 self.wipe_data = value;
19400 self
19401 }
19402
19403 pub fn with_transfer_dest_id(mut self, value: UserSelectorArg) -> Self {
19404 self.transfer_dest_id = Some(value);
19405 self
19406 }
19407
19408 pub fn with_transfer_admin_id(mut self, value: UserSelectorArg) -> Self {
19409 self.transfer_admin_id = Some(value);
19410 self
19411 }
19412
19413 pub fn with_keep_account(mut self, value: bool) -> Self {
19414 self.keep_account = value;
19415 self
19416 }
19417
19418 pub fn with_retain_team_shares(mut self, value: bool) -> Self {
19419 self.retain_team_shares = value;
19420 self
19421 }
19422
19423 pub fn with_permanently_delete_files(mut self, value: bool) -> Self {
19424 self.permanently_delete_files = value;
19425 self
19426 }
19427}
19428
19429const MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["user",
19430 "wipe_data",
19431 "transfer_dest_id",
19432 "transfer_admin_id",
19433 "keep_account",
19434 "retain_team_shares",
19435 "permanently_delete_files"];
19436impl MembersRemoveArg {
19437 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19438 map: V,
19439 ) -> Result<MembersRemoveArg, V::Error> {
19440 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19441 }
19442
19443 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19444 mut map: V,
19445 optional: bool,
19446 ) -> Result<Option<MembersRemoveArg>, V::Error> {
19447 let mut field_user = None;
19448 let mut field_wipe_data = None;
19449 let mut field_transfer_dest_id = None;
19450 let mut field_transfer_admin_id = None;
19451 let mut field_keep_account = None;
19452 let mut field_retain_team_shares = None;
19453 let mut field_permanently_delete_files = None;
19454 let mut nothing = true;
19455 while let Some(key) = map.next_key::<&str>()? {
19456 nothing = false;
19457 match key {
19458 "user" => {
19459 if field_user.is_some() {
19460 return Err(::serde::de::Error::duplicate_field("user"));
19461 }
19462 field_user = Some(map.next_value()?);
19463 }
19464 "wipe_data" => {
19465 if field_wipe_data.is_some() {
19466 return Err(::serde::de::Error::duplicate_field("wipe_data"));
19467 }
19468 field_wipe_data = Some(map.next_value()?);
19469 }
19470 "transfer_dest_id" => {
19471 if field_transfer_dest_id.is_some() {
19472 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
19473 }
19474 field_transfer_dest_id = Some(map.next_value()?);
19475 }
19476 "transfer_admin_id" => {
19477 if field_transfer_admin_id.is_some() {
19478 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
19479 }
19480 field_transfer_admin_id = Some(map.next_value()?);
19481 }
19482 "keep_account" => {
19483 if field_keep_account.is_some() {
19484 return Err(::serde::de::Error::duplicate_field("keep_account"));
19485 }
19486 field_keep_account = Some(map.next_value()?);
19487 }
19488 "retain_team_shares" => {
19489 if field_retain_team_shares.is_some() {
19490 return Err(::serde::de::Error::duplicate_field("retain_team_shares"));
19491 }
19492 field_retain_team_shares = Some(map.next_value()?);
19493 }
19494 "permanently_delete_files" => {
19495 if field_permanently_delete_files.is_some() {
19496 return Err(::serde::de::Error::duplicate_field("permanently_delete_files"));
19497 }
19498 field_permanently_delete_files = Some(map.next_value()?);
19499 }
19500 _ => {
19501 map.next_value::<::serde_json::Value>()?;
19503 }
19504 }
19505 }
19506 if optional && nothing {
19507 return Ok(None);
19508 }
19509 let result = MembersRemoveArg {
19510 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19511 wipe_data: field_wipe_data.unwrap_or(true),
19512 transfer_dest_id: field_transfer_dest_id.and_then(Option::flatten),
19513 transfer_admin_id: field_transfer_admin_id.and_then(Option::flatten),
19514 keep_account: field_keep_account.unwrap_or(false),
19515 retain_team_shares: field_retain_team_shares.unwrap_or(false),
19516 permanently_delete_files: field_permanently_delete_files.unwrap_or(false),
19517 };
19518 Ok(Some(result))
19519 }
19520
19521 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19522 &self,
19523 s: &mut S::SerializeStruct,
19524 ) -> Result<(), S::Error> {
19525 use serde::ser::SerializeStruct;
19526 s.serialize_field("user", &self.user)?;
19527 if !self.wipe_data {
19528 s.serialize_field("wipe_data", &self.wipe_data)?;
19529 }
19530 if let Some(val) = &self.transfer_dest_id {
19531 s.serialize_field("transfer_dest_id", val)?;
19532 }
19533 if let Some(val) = &self.transfer_admin_id {
19534 s.serialize_field("transfer_admin_id", val)?;
19535 }
19536 if self.keep_account {
19537 s.serialize_field("keep_account", &self.keep_account)?;
19538 }
19539 if self.retain_team_shares {
19540 s.serialize_field("retain_team_shares", &self.retain_team_shares)?;
19541 }
19542 if self.permanently_delete_files {
19543 s.serialize_field("permanently_delete_files", &self.permanently_delete_files)?;
19544 }
19545 Ok(())
19546 }
19547}
19548
19549impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveArg {
19550 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19551 use serde::de::{MapAccess, Visitor};
19553 struct StructVisitor;
19554 impl<'de> Visitor<'de> for StructVisitor {
19555 type Value = MembersRemoveArg;
19556 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19557 f.write_str("a MembersRemoveArg struct")
19558 }
19559 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19560 MembersRemoveArg::internal_deserialize(map)
19561 }
19562 }
19563 deserializer.deserialize_struct("MembersRemoveArg", MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
19564 }
19565}
19566
19567impl ::serde::ser::Serialize for MembersRemoveArg {
19568 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19569 use serde::ser::SerializeStruct;
19571 let mut s = serializer.serialize_struct("MembersRemoveArg", 7)?;
19572 self.internal_serialize::<S>(&mut s)?;
19573 s.end()
19574 }
19575}
19576
19577impl From<MembersRemoveArg> for MembersDeactivateArg {
19579 fn from(subtype: MembersRemoveArg) -> Self {
19580 Self {
19581 user: subtype.user,
19582 wipe_data: subtype.wipe_data,
19583 }
19584 }
19585}
19586#[derive(Debug, Clone, PartialEq, Eq)]
19587#[non_exhaustive] pub enum MembersRemoveError {
19589 UserNotFound,
19592 UserNotInTeam,
19594 TransferInProgress,
19596 AlreadyTransferred,
19598 AlreadyTransferredOrDeleted,
19600 RemovedAndTransferDestShouldDiffer,
19602 RemovedAndTransferAdminShouldDiffer,
19604 TransferDestUserNotFound,
19606 TransferDestUserNotInTeam,
19608 TransferAdminUserNotInTeam,
19610 TransferAdminUserNotFound,
19612 UnspecifiedTransferAdminId,
19614 TransferAdminIsNotAdmin,
19616 RecipientNotVerified,
19618 RemoveLastAdmin,
19620 CannotKeepAccountAndTransfer,
19622 CannotKeepAccountAndDeleteData,
19625 CannotKeepAccountAndPermanentlyDelete,
19628 EmailAddressTooLongToBeDisabled,
19630 CannotKeepInvitedUserAccount,
19632 CannotRetainSharesWhenDataWiped,
19635 CannotRetainSharesWhenNoAccountKept,
19638 CannotRetainSharesWhenTeamExternalSharingOff,
19641 CannotKeepAccount,
19643 CannotKeepAccountUnderLegalHold,
19646 CannotKeepAccountRequiredToSignTos,
19649 CannotPermanentlyDeleteAndTransfer,
19651 MemberIsTransferDestination,
19654 Other,
19657}
19658
19659impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveError {
19660 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19661 use serde::de::{self, MapAccess, Visitor};
19663 struct EnumVisitor;
19664 impl<'de> Visitor<'de> for EnumVisitor {
19665 type Value = MembersRemoveError;
19666 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19667 f.write_str("a MembersRemoveError structure")
19668 }
19669 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19670 let tag: &str = match map.next_key()? {
19671 Some(".tag") => map.next_value()?,
19672 _ => return Err(de::Error::missing_field(".tag"))
19673 };
19674 let value = match tag {
19675 "user_not_found" => MembersRemoveError::UserNotFound,
19676 "user_not_in_team" => MembersRemoveError::UserNotInTeam,
19677 "transfer_in_progress" => MembersRemoveError::TransferInProgress,
19678 "already_transferred" => MembersRemoveError::AlreadyTransferred,
19679 "already_transferred_or_deleted" => MembersRemoveError::AlreadyTransferredOrDeleted,
19680 "removed_and_transfer_dest_should_differ" => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
19681 "removed_and_transfer_admin_should_differ" => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
19682 "transfer_dest_user_not_found" => MembersRemoveError::TransferDestUserNotFound,
19683 "transfer_dest_user_not_in_team" => MembersRemoveError::TransferDestUserNotInTeam,
19684 "transfer_admin_user_not_in_team" => MembersRemoveError::TransferAdminUserNotInTeam,
19685 "transfer_admin_user_not_found" => MembersRemoveError::TransferAdminUserNotFound,
19686 "unspecified_transfer_admin_id" => MembersRemoveError::UnspecifiedTransferAdminId,
19687 "transfer_admin_is_not_admin" => MembersRemoveError::TransferAdminIsNotAdmin,
19688 "recipient_not_verified" => MembersRemoveError::RecipientNotVerified,
19689 "remove_last_admin" => MembersRemoveError::RemoveLastAdmin,
19690 "cannot_keep_account_and_transfer" => MembersRemoveError::CannotKeepAccountAndTransfer,
19691 "cannot_keep_account_and_delete_data" => MembersRemoveError::CannotKeepAccountAndDeleteData,
19692 "cannot_keep_account_and_permanently_delete" => MembersRemoveError::CannotKeepAccountAndPermanentlyDelete,
19693 "email_address_too_long_to_be_disabled" => MembersRemoveError::EmailAddressTooLongToBeDisabled,
19694 "cannot_keep_invited_user_account" => MembersRemoveError::CannotKeepInvitedUserAccount,
19695 "cannot_retain_shares_when_data_wiped" => MembersRemoveError::CannotRetainSharesWhenDataWiped,
19696 "cannot_retain_shares_when_no_account_kept" => MembersRemoveError::CannotRetainSharesWhenNoAccountKept,
19697 "cannot_retain_shares_when_team_external_sharing_off" => MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff,
19698 "cannot_keep_account" => MembersRemoveError::CannotKeepAccount,
19699 "cannot_keep_account_under_legal_hold" => MembersRemoveError::CannotKeepAccountUnderLegalHold,
19700 "cannot_keep_account_required_to_sign_tos" => MembersRemoveError::CannotKeepAccountRequiredToSignTos,
19701 "cannot_permanently_delete_and_transfer" => MembersRemoveError::CannotPermanentlyDeleteAndTransfer,
19702 "member_is_transfer_destination" => MembersRemoveError::MemberIsTransferDestination,
19703 _ => MembersRemoveError::Other,
19704 };
19705 crate::eat_json_fields(&mut map)?;
19706 Ok(value)
19707 }
19708 }
19709 const VARIANTS: &[&str] = &["user_not_found",
19710 "user_not_in_team",
19711 "other",
19712 "transfer_in_progress",
19713 "already_transferred",
19714 "already_transferred_or_deleted",
19715 "removed_and_transfer_dest_should_differ",
19716 "removed_and_transfer_admin_should_differ",
19717 "transfer_dest_user_not_found",
19718 "transfer_dest_user_not_in_team",
19719 "transfer_admin_user_not_in_team",
19720 "transfer_admin_user_not_found",
19721 "unspecified_transfer_admin_id",
19722 "transfer_admin_is_not_admin",
19723 "recipient_not_verified",
19724 "remove_last_admin",
19725 "cannot_keep_account_and_transfer",
19726 "cannot_keep_account_and_delete_data",
19727 "cannot_keep_account_and_permanently_delete",
19728 "email_address_too_long_to_be_disabled",
19729 "cannot_keep_invited_user_account",
19730 "cannot_retain_shares_when_data_wiped",
19731 "cannot_retain_shares_when_no_account_kept",
19732 "cannot_retain_shares_when_team_external_sharing_off",
19733 "cannot_keep_account",
19734 "cannot_keep_account_under_legal_hold",
19735 "cannot_keep_account_required_to_sign_tos",
19736 "cannot_permanently_delete_and_transfer",
19737 "member_is_transfer_destination"];
19738 deserializer.deserialize_struct("MembersRemoveError", VARIANTS, EnumVisitor)
19739 }
19740}
19741
19742impl ::serde::ser::Serialize for MembersRemoveError {
19743 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19744 use serde::ser::SerializeStruct;
19746 match self {
19747 MembersRemoveError::UserNotFound => {
19748 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19750 s.serialize_field(".tag", "user_not_found")?;
19751 s.end()
19752 }
19753 MembersRemoveError::UserNotInTeam => {
19754 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19756 s.serialize_field(".tag", "user_not_in_team")?;
19757 s.end()
19758 }
19759 MembersRemoveError::TransferInProgress => {
19760 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19762 s.serialize_field(".tag", "transfer_in_progress")?;
19763 s.end()
19764 }
19765 MembersRemoveError::AlreadyTransferred => {
19766 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19768 s.serialize_field(".tag", "already_transferred")?;
19769 s.end()
19770 }
19771 MembersRemoveError::AlreadyTransferredOrDeleted => {
19772 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19774 s.serialize_field(".tag", "already_transferred_or_deleted")?;
19775 s.end()
19776 }
19777 MembersRemoveError::RemovedAndTransferDestShouldDiffer => {
19778 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19780 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
19781 s.end()
19782 }
19783 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => {
19784 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19786 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
19787 s.end()
19788 }
19789 MembersRemoveError::TransferDestUserNotFound => {
19790 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19792 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
19793 s.end()
19794 }
19795 MembersRemoveError::TransferDestUserNotInTeam => {
19796 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19798 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
19799 s.end()
19800 }
19801 MembersRemoveError::TransferAdminUserNotInTeam => {
19802 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19804 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
19805 s.end()
19806 }
19807 MembersRemoveError::TransferAdminUserNotFound => {
19808 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19810 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
19811 s.end()
19812 }
19813 MembersRemoveError::UnspecifiedTransferAdminId => {
19814 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19816 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
19817 s.end()
19818 }
19819 MembersRemoveError::TransferAdminIsNotAdmin => {
19820 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19822 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
19823 s.end()
19824 }
19825 MembersRemoveError::RecipientNotVerified => {
19826 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19828 s.serialize_field(".tag", "recipient_not_verified")?;
19829 s.end()
19830 }
19831 MembersRemoveError::RemoveLastAdmin => {
19832 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19834 s.serialize_field(".tag", "remove_last_admin")?;
19835 s.end()
19836 }
19837 MembersRemoveError::CannotKeepAccountAndTransfer => {
19838 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19840 s.serialize_field(".tag", "cannot_keep_account_and_transfer")?;
19841 s.end()
19842 }
19843 MembersRemoveError::CannotKeepAccountAndDeleteData => {
19844 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19846 s.serialize_field(".tag", "cannot_keep_account_and_delete_data")?;
19847 s.end()
19848 }
19849 MembersRemoveError::CannotKeepAccountAndPermanentlyDelete => {
19850 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19852 s.serialize_field(".tag", "cannot_keep_account_and_permanently_delete")?;
19853 s.end()
19854 }
19855 MembersRemoveError::EmailAddressTooLongToBeDisabled => {
19856 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19858 s.serialize_field(".tag", "email_address_too_long_to_be_disabled")?;
19859 s.end()
19860 }
19861 MembersRemoveError::CannotKeepInvitedUserAccount => {
19862 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19864 s.serialize_field(".tag", "cannot_keep_invited_user_account")?;
19865 s.end()
19866 }
19867 MembersRemoveError::CannotRetainSharesWhenDataWiped => {
19868 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19870 s.serialize_field(".tag", "cannot_retain_shares_when_data_wiped")?;
19871 s.end()
19872 }
19873 MembersRemoveError::CannotRetainSharesWhenNoAccountKept => {
19874 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19876 s.serialize_field(".tag", "cannot_retain_shares_when_no_account_kept")?;
19877 s.end()
19878 }
19879 MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff => {
19880 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19882 s.serialize_field(".tag", "cannot_retain_shares_when_team_external_sharing_off")?;
19883 s.end()
19884 }
19885 MembersRemoveError::CannotKeepAccount => {
19886 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19888 s.serialize_field(".tag", "cannot_keep_account")?;
19889 s.end()
19890 }
19891 MembersRemoveError::CannotKeepAccountUnderLegalHold => {
19892 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19894 s.serialize_field(".tag", "cannot_keep_account_under_legal_hold")?;
19895 s.end()
19896 }
19897 MembersRemoveError::CannotKeepAccountRequiredToSignTos => {
19898 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19900 s.serialize_field(".tag", "cannot_keep_account_required_to_sign_tos")?;
19901 s.end()
19902 }
19903 MembersRemoveError::CannotPermanentlyDeleteAndTransfer => {
19904 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19906 s.serialize_field(".tag", "cannot_permanently_delete_and_transfer")?;
19907 s.end()
19908 }
19909 MembersRemoveError::MemberIsTransferDestination => {
19910 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19912 s.serialize_field(".tag", "member_is_transfer_destination")?;
19913 s.end()
19914 }
19915 MembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19916 }
19917 }
19918}
19919
19920impl ::std::error::Error for MembersRemoveError {
19921}
19922
19923impl ::std::fmt::Display for MembersRemoveError {
19924 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19925 match self {
19926 MembersRemoveError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19927 MembersRemoveError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19928 MembersRemoveError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
19929 MembersRemoveError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
19930 MembersRemoveError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
19931 MembersRemoveError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
19932 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
19933 MembersRemoveError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
19934 MembersRemoveError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
19935 MembersRemoveError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
19936 MembersRemoveError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
19937 MembersRemoveError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
19938 MembersRemoveError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
19939 MembersRemoveError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
19940 MembersRemoveError::RemoveLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be removed from it."),
19941 MembersRemoveError::CannotKeepAccountAndTransfer => f.write_str("Cannot keep account and transfer the data to another user at the same time."),
19942 MembersRemoveError::EmailAddressTooLongToBeDisabled => f.write_str("The email address of the user is too long to be disabled."),
19943 MembersRemoveError::CannotKeepInvitedUserAccount => f.write_str("Cannot keep account of an invited user."),
19944 MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff => f.write_str("Externally sharing files, folders, and links must be enabled in team settings in order to retain team shares for the user."),
19945 MembersRemoveError::CannotKeepAccount => f.write_str("Only a team admin, can convert this account to a Basic account."),
19946 MembersRemoveError::CannotKeepAccountUnderLegalHold => f.write_str("This user content is currently being held. To convert this member's account to a Basic account, you'll first need to remove them from the hold."),
19947 MembersRemoveError::CannotKeepAccountRequiredToSignTos => f.write_str("To convert this member to a Basic account, they'll first need to sign in to Dropbox and agree to the terms of service."),
19948 MembersRemoveError::CannotPermanentlyDeleteAndTransfer => f.write_str("Cannot permanently delete files and transfer the data to another user at the same time."),
19949 MembersRemoveError::MemberIsTransferDestination => f.write_str("This user is the active destination of an in-progress file transfer. Wait for the transfer to complete before removing this member."),
19950 _ => write!(f, "{:?}", *self),
19951 }
19952 }
19953}
19954
19955impl From<MembersTransferFilesError> for MembersRemoveError {
19957 fn from(parent: MembersTransferFilesError) -> Self {
19958 match parent {
19959 MembersTransferFilesError::UserNotFound => MembersRemoveError::UserNotFound,
19960 MembersTransferFilesError::UserNotInTeam => MembersRemoveError::UserNotInTeam,
19961 MembersTransferFilesError::Other => MembersRemoveError::Other,
19962 MembersTransferFilesError::TransferInProgress => MembersRemoveError::TransferInProgress,
19963 MembersTransferFilesError::AlreadyTransferred => MembersRemoveError::AlreadyTransferred,
19964 MembersTransferFilesError::AlreadyTransferredOrDeleted => MembersRemoveError::AlreadyTransferredOrDeleted,
19965 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
19966 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
19967 MembersTransferFilesError::TransferDestUserNotFound => MembersRemoveError::TransferDestUserNotFound,
19968 MembersTransferFilesError::TransferDestUserNotInTeam => MembersRemoveError::TransferDestUserNotInTeam,
19969 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersRemoveError::TransferAdminUserNotInTeam,
19970 MembersTransferFilesError::TransferAdminUserNotFound => MembersRemoveError::TransferAdminUserNotFound,
19971 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersRemoveError::UnspecifiedTransferAdminId,
19972 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersRemoveError::TransferAdminIsNotAdmin,
19973 MembersTransferFilesError::RecipientNotVerified => MembersRemoveError::RecipientNotVerified,
19974 }
19975 }
19976}
19977
19978#[derive(Debug, Clone, PartialEq, Eq)]
19979#[non_exhaustive] pub enum MembersSendWelcomeError {
19981 UserNotFound,
19984 UserNotInTeam,
19986 Other,
19989}
19990
19991impl<'de> ::serde::de::Deserialize<'de> for MembersSendWelcomeError {
19992 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19993 use serde::de::{self, MapAccess, Visitor};
19995 struct EnumVisitor;
19996 impl<'de> Visitor<'de> for EnumVisitor {
19997 type Value = MembersSendWelcomeError;
19998 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19999 f.write_str("a MembersSendWelcomeError structure")
20000 }
20001 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20002 let tag: &str = match map.next_key()? {
20003 Some(".tag") => map.next_value()?,
20004 _ => return Err(de::Error::missing_field(".tag"))
20005 };
20006 let value = match tag {
20007 "user_not_found" => MembersSendWelcomeError::UserNotFound,
20008 "user_not_in_team" => MembersSendWelcomeError::UserNotInTeam,
20009 _ => MembersSendWelcomeError::Other,
20010 };
20011 crate::eat_json_fields(&mut map)?;
20012 Ok(value)
20013 }
20014 }
20015 const VARIANTS: &[&str] = &["user_not_found",
20016 "user_not_in_team",
20017 "other"];
20018 deserializer.deserialize_struct("MembersSendWelcomeError", VARIANTS, EnumVisitor)
20019 }
20020}
20021
20022impl ::serde::ser::Serialize for MembersSendWelcomeError {
20023 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20024 use serde::ser::SerializeStruct;
20026 match self {
20027 MembersSendWelcomeError::UserNotFound => {
20028 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
20030 s.serialize_field(".tag", "user_not_found")?;
20031 s.end()
20032 }
20033 MembersSendWelcomeError::UserNotInTeam => {
20034 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
20036 s.serialize_field(".tag", "user_not_in_team")?;
20037 s.end()
20038 }
20039 MembersSendWelcomeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20040 }
20041 }
20042}
20043
20044impl ::std::error::Error for MembersSendWelcomeError {
20045}
20046
20047impl ::std::fmt::Display for MembersSendWelcomeError {
20048 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20049 match self {
20050 MembersSendWelcomeError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20051 MembersSendWelcomeError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20052 _ => write!(f, "{:?}", *self),
20053 }
20054 }
20055}
20056
20057impl From<MemberSelectorError> for MembersSendWelcomeError {
20059 fn from(parent: MemberSelectorError) -> Self {
20060 match parent {
20061 MemberSelectorError::UserNotFound => MembersSendWelcomeError::UserNotFound,
20062 MemberSelectorError::UserNotInTeam => MembersSendWelcomeError::UserNotInTeam,
20063 }
20064 }
20065}
20066#[derive(Debug, Clone, PartialEq, Eq)]
20069#[non_exhaustive] pub struct MembersSetPermissions2Arg {
20071 pub user: UserSelectorArg,
20073 pub new_roles: Option<Vec<TeamMemberRoleId>>,
20076}
20077
20078impl MembersSetPermissions2Arg {
20079 pub fn new(user: UserSelectorArg) -> Self {
20080 MembersSetPermissions2Arg {
20081 user,
20082 new_roles: None,
20083 }
20084 }
20085
20086 pub fn with_new_roles(mut self, value: Vec<TeamMemberRoleId>) -> Self {
20087 self.new_roles = Some(value);
20088 self
20089 }
20090}
20091
20092const MEMBERS_SET_PERMISSIONS2_ARG_FIELDS: &[&str] = &["user",
20093 "new_roles"];
20094impl MembersSetPermissions2Arg {
20095 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20096 map: V,
20097 ) -> Result<MembersSetPermissions2Arg, V::Error> {
20098 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20099 }
20100
20101 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20102 mut map: V,
20103 optional: bool,
20104 ) -> Result<Option<MembersSetPermissions2Arg>, V::Error> {
20105 let mut field_user = None;
20106 let mut field_new_roles = None;
20107 let mut nothing = true;
20108 while let Some(key) = map.next_key::<&str>()? {
20109 nothing = false;
20110 match key {
20111 "user" => {
20112 if field_user.is_some() {
20113 return Err(::serde::de::Error::duplicate_field("user"));
20114 }
20115 field_user = Some(map.next_value()?);
20116 }
20117 "new_roles" => {
20118 if field_new_roles.is_some() {
20119 return Err(::serde::de::Error::duplicate_field("new_roles"));
20120 }
20121 field_new_roles = Some(map.next_value()?);
20122 }
20123 _ => {
20124 map.next_value::<::serde_json::Value>()?;
20126 }
20127 }
20128 }
20129 if optional && nothing {
20130 return Ok(None);
20131 }
20132 let result = MembersSetPermissions2Arg {
20133 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
20134 new_roles: field_new_roles.and_then(Option::flatten),
20135 };
20136 Ok(Some(result))
20137 }
20138
20139 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20140 &self,
20141 s: &mut S::SerializeStruct,
20142 ) -> Result<(), S::Error> {
20143 use serde::ser::SerializeStruct;
20144 s.serialize_field("user", &self.user)?;
20145 if let Some(val) = &self.new_roles {
20146 s.serialize_field("new_roles", val)?;
20147 }
20148 Ok(())
20149 }
20150}
20151
20152impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Arg {
20153 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20154 use serde::de::{MapAccess, Visitor};
20156 struct StructVisitor;
20157 impl<'de> Visitor<'de> for StructVisitor {
20158 type Value = MembersSetPermissions2Arg;
20159 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20160 f.write_str("a MembersSetPermissions2Arg struct")
20161 }
20162 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20163 MembersSetPermissions2Arg::internal_deserialize(map)
20164 }
20165 }
20166 deserializer.deserialize_struct("MembersSetPermissions2Arg", MEMBERS_SET_PERMISSIONS2_ARG_FIELDS, StructVisitor)
20167 }
20168}
20169
20170impl ::serde::ser::Serialize for MembersSetPermissions2Arg {
20171 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20172 use serde::ser::SerializeStruct;
20174 let mut s = serializer.serialize_struct("MembersSetPermissions2Arg", 2)?;
20175 self.internal_serialize::<S>(&mut s)?;
20176 s.end()
20177 }
20178}
20179
20180#[derive(Debug, Clone, PartialEq, Eq)]
20181#[non_exhaustive] pub enum MembersSetPermissions2Error {
20183 UserNotFound,
20186 LastAdmin,
20188 UserNotInTeam,
20190 CannotSetPermissions,
20192 RoleNotFound,
20194 Other,
20197}
20198
20199impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Error {
20200 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20201 use serde::de::{self, MapAccess, Visitor};
20203 struct EnumVisitor;
20204 impl<'de> Visitor<'de> for EnumVisitor {
20205 type Value = MembersSetPermissions2Error;
20206 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20207 f.write_str("a MembersSetPermissions2Error structure")
20208 }
20209 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20210 let tag: &str = match map.next_key()? {
20211 Some(".tag") => map.next_value()?,
20212 _ => return Err(de::Error::missing_field(".tag"))
20213 };
20214 let value = match tag {
20215 "user_not_found" => MembersSetPermissions2Error::UserNotFound,
20216 "last_admin" => MembersSetPermissions2Error::LastAdmin,
20217 "user_not_in_team" => MembersSetPermissions2Error::UserNotInTeam,
20218 "cannot_set_permissions" => MembersSetPermissions2Error::CannotSetPermissions,
20219 "role_not_found" => MembersSetPermissions2Error::RoleNotFound,
20220 _ => MembersSetPermissions2Error::Other,
20221 };
20222 crate::eat_json_fields(&mut map)?;
20223 Ok(value)
20224 }
20225 }
20226 const VARIANTS: &[&str] = &["user_not_found",
20227 "last_admin",
20228 "user_not_in_team",
20229 "cannot_set_permissions",
20230 "role_not_found",
20231 "other"];
20232 deserializer.deserialize_struct("MembersSetPermissions2Error", VARIANTS, EnumVisitor)
20233 }
20234}
20235
20236impl ::serde::ser::Serialize for MembersSetPermissions2Error {
20237 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20238 use serde::ser::SerializeStruct;
20240 match self {
20241 MembersSetPermissions2Error::UserNotFound => {
20242 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
20244 s.serialize_field(".tag", "user_not_found")?;
20245 s.end()
20246 }
20247 MembersSetPermissions2Error::LastAdmin => {
20248 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
20250 s.serialize_field(".tag", "last_admin")?;
20251 s.end()
20252 }
20253 MembersSetPermissions2Error::UserNotInTeam => {
20254 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
20256 s.serialize_field(".tag", "user_not_in_team")?;
20257 s.end()
20258 }
20259 MembersSetPermissions2Error::CannotSetPermissions => {
20260 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
20262 s.serialize_field(".tag", "cannot_set_permissions")?;
20263 s.end()
20264 }
20265 MembersSetPermissions2Error::RoleNotFound => {
20266 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
20268 s.serialize_field(".tag", "role_not_found")?;
20269 s.end()
20270 }
20271 MembersSetPermissions2Error::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20272 }
20273 }
20274}
20275
20276impl ::std::error::Error for MembersSetPermissions2Error {
20277}
20278
20279impl ::std::fmt::Display for MembersSetPermissions2Error {
20280 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20281 match self {
20282 MembersSetPermissions2Error::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20283 MembersSetPermissions2Error::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
20284 MembersSetPermissions2Error::UserNotInTeam => f.write_str("The user is not a member of the team."),
20285 MembersSetPermissions2Error::CannotSetPermissions => f.write_str("Cannot remove/grant permissions. This can happen if the team member is suspended."),
20286 MembersSetPermissions2Error::RoleNotFound => f.write_str("No matching role found. At least one of the provided new_roles does not exist on this team."),
20287 _ => write!(f, "{:?}", *self),
20288 }
20289 }
20290}
20291
20292impl From<UserSelectorError> for MembersSetPermissions2Error {
20294 fn from(parent: UserSelectorError) -> Self {
20295 match parent {
20296 UserSelectorError::UserNotFound => MembersSetPermissions2Error::UserNotFound,
20297 }
20298 }
20299}
20300#[derive(Debug, Clone, PartialEq, Eq)]
20301#[non_exhaustive] pub struct MembersSetPermissions2Result {
20303 pub team_member_id: crate::types::team_common::TeamMemberId,
20305 pub roles: Option<Vec<TeamMemberRole>>,
20307}
20308
20309impl MembersSetPermissions2Result {
20310 pub fn new(team_member_id: crate::types::team_common::TeamMemberId) -> Self {
20311 MembersSetPermissions2Result {
20312 team_member_id,
20313 roles: None,
20314 }
20315 }
20316
20317 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
20318 self.roles = Some(value);
20319 self
20320 }
20321}
20322
20323const MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS: &[&str] = &["team_member_id",
20324 "roles"];
20325impl MembersSetPermissions2Result {
20326 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20327 map: V,
20328 ) -> Result<MembersSetPermissions2Result, V::Error> {
20329 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20330 }
20331
20332 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20333 mut map: V,
20334 optional: bool,
20335 ) -> Result<Option<MembersSetPermissions2Result>, V::Error> {
20336 let mut field_team_member_id = None;
20337 let mut field_roles = None;
20338 let mut nothing = true;
20339 while let Some(key) = map.next_key::<&str>()? {
20340 nothing = false;
20341 match key {
20342 "team_member_id" => {
20343 if field_team_member_id.is_some() {
20344 return Err(::serde::de::Error::duplicate_field("team_member_id"));
20345 }
20346 field_team_member_id = Some(map.next_value()?);
20347 }
20348 "roles" => {
20349 if field_roles.is_some() {
20350 return Err(::serde::de::Error::duplicate_field("roles"));
20351 }
20352 field_roles = Some(map.next_value()?);
20353 }
20354 _ => {
20355 map.next_value::<::serde_json::Value>()?;
20357 }
20358 }
20359 }
20360 if optional && nothing {
20361 return Ok(None);
20362 }
20363 let result = MembersSetPermissions2Result {
20364 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
20365 roles: field_roles.and_then(Option::flatten),
20366 };
20367 Ok(Some(result))
20368 }
20369
20370 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20371 &self,
20372 s: &mut S::SerializeStruct,
20373 ) -> Result<(), S::Error> {
20374 use serde::ser::SerializeStruct;
20375 s.serialize_field("team_member_id", &self.team_member_id)?;
20376 if let Some(val) = &self.roles {
20377 s.serialize_field("roles", val)?;
20378 }
20379 Ok(())
20380 }
20381}
20382
20383impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Result {
20384 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20385 use serde::de::{MapAccess, Visitor};
20387 struct StructVisitor;
20388 impl<'de> Visitor<'de> for StructVisitor {
20389 type Value = MembersSetPermissions2Result;
20390 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20391 f.write_str("a MembersSetPermissions2Result struct")
20392 }
20393 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20394 MembersSetPermissions2Result::internal_deserialize(map)
20395 }
20396 }
20397 deserializer.deserialize_struct("MembersSetPermissions2Result", MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS, StructVisitor)
20398 }
20399}
20400
20401impl ::serde::ser::Serialize for MembersSetPermissions2Result {
20402 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20403 use serde::ser::SerializeStruct;
20405 let mut s = serializer.serialize_struct("MembersSetPermissions2Result", 2)?;
20406 self.internal_serialize::<S>(&mut s)?;
20407 s.end()
20408 }
20409}
20410
20411#[derive(Debug, Clone, PartialEq, Eq)]
20414#[non_exhaustive] pub struct MembersSetPermissionsArg {
20416 pub user: UserSelectorArg,
20418 pub new_role: AdminTier,
20420}
20421
20422impl MembersSetPermissionsArg {
20423 pub fn new(user: UserSelectorArg, new_role: AdminTier) -> Self {
20424 MembersSetPermissionsArg {
20425 user,
20426 new_role,
20427 }
20428 }
20429}
20430
20431const MEMBERS_SET_PERMISSIONS_ARG_FIELDS: &[&str] = &["user",
20432 "new_role"];
20433impl MembersSetPermissionsArg {
20434 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20435 map: V,
20436 ) -> Result<MembersSetPermissionsArg, V::Error> {
20437 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20438 }
20439
20440 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20441 mut map: V,
20442 optional: bool,
20443 ) -> Result<Option<MembersSetPermissionsArg>, V::Error> {
20444 let mut field_user = None;
20445 let mut field_new_role = None;
20446 let mut nothing = true;
20447 while let Some(key) = map.next_key::<&str>()? {
20448 nothing = false;
20449 match key {
20450 "user" => {
20451 if field_user.is_some() {
20452 return Err(::serde::de::Error::duplicate_field("user"));
20453 }
20454 field_user = Some(map.next_value()?);
20455 }
20456 "new_role" => {
20457 if field_new_role.is_some() {
20458 return Err(::serde::de::Error::duplicate_field("new_role"));
20459 }
20460 field_new_role = Some(map.next_value()?);
20461 }
20462 _ => {
20463 map.next_value::<::serde_json::Value>()?;
20465 }
20466 }
20467 }
20468 if optional && nothing {
20469 return Ok(None);
20470 }
20471 let result = MembersSetPermissionsArg {
20472 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
20473 new_role: field_new_role.ok_or_else(|| ::serde::de::Error::missing_field("new_role"))?,
20474 };
20475 Ok(Some(result))
20476 }
20477
20478 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20479 &self,
20480 s: &mut S::SerializeStruct,
20481 ) -> Result<(), S::Error> {
20482 use serde::ser::SerializeStruct;
20483 s.serialize_field("user", &self.user)?;
20484 s.serialize_field("new_role", &self.new_role)?;
20485 Ok(())
20486 }
20487}
20488
20489impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsArg {
20490 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20491 use serde::de::{MapAccess, Visitor};
20493 struct StructVisitor;
20494 impl<'de> Visitor<'de> for StructVisitor {
20495 type Value = MembersSetPermissionsArg;
20496 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20497 f.write_str("a MembersSetPermissionsArg struct")
20498 }
20499 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20500 MembersSetPermissionsArg::internal_deserialize(map)
20501 }
20502 }
20503 deserializer.deserialize_struct("MembersSetPermissionsArg", MEMBERS_SET_PERMISSIONS_ARG_FIELDS, StructVisitor)
20504 }
20505}
20506
20507impl ::serde::ser::Serialize for MembersSetPermissionsArg {
20508 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20509 use serde::ser::SerializeStruct;
20511 let mut s = serializer.serialize_struct("MembersSetPermissionsArg", 2)?;
20512 self.internal_serialize::<S>(&mut s)?;
20513 s.end()
20514 }
20515}
20516
20517#[derive(Debug, Clone, PartialEq, Eq)]
20518#[non_exhaustive] pub enum MembersSetPermissionsError {
20520 UserNotFound,
20523 LastAdmin,
20525 UserNotInTeam,
20527 CannotSetPermissions,
20529 TeamLicenseLimit,
20531 Other,
20534}
20535
20536impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsError {
20537 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20538 use serde::de::{self, MapAccess, Visitor};
20540 struct EnumVisitor;
20541 impl<'de> Visitor<'de> for EnumVisitor {
20542 type Value = MembersSetPermissionsError;
20543 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20544 f.write_str("a MembersSetPermissionsError structure")
20545 }
20546 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20547 let tag: &str = match map.next_key()? {
20548 Some(".tag") => map.next_value()?,
20549 _ => return Err(de::Error::missing_field(".tag"))
20550 };
20551 let value = match tag {
20552 "user_not_found" => MembersSetPermissionsError::UserNotFound,
20553 "last_admin" => MembersSetPermissionsError::LastAdmin,
20554 "user_not_in_team" => MembersSetPermissionsError::UserNotInTeam,
20555 "cannot_set_permissions" => MembersSetPermissionsError::CannotSetPermissions,
20556 "team_license_limit" => MembersSetPermissionsError::TeamLicenseLimit,
20557 _ => MembersSetPermissionsError::Other,
20558 };
20559 crate::eat_json_fields(&mut map)?;
20560 Ok(value)
20561 }
20562 }
20563 const VARIANTS: &[&str] = &["user_not_found",
20564 "last_admin",
20565 "user_not_in_team",
20566 "cannot_set_permissions",
20567 "team_license_limit",
20568 "other"];
20569 deserializer.deserialize_struct("MembersSetPermissionsError", VARIANTS, EnumVisitor)
20570 }
20571}
20572
20573impl ::serde::ser::Serialize for MembersSetPermissionsError {
20574 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20575 use serde::ser::SerializeStruct;
20577 match self {
20578 MembersSetPermissionsError::UserNotFound => {
20579 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
20581 s.serialize_field(".tag", "user_not_found")?;
20582 s.end()
20583 }
20584 MembersSetPermissionsError::LastAdmin => {
20585 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
20587 s.serialize_field(".tag", "last_admin")?;
20588 s.end()
20589 }
20590 MembersSetPermissionsError::UserNotInTeam => {
20591 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
20593 s.serialize_field(".tag", "user_not_in_team")?;
20594 s.end()
20595 }
20596 MembersSetPermissionsError::CannotSetPermissions => {
20597 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
20599 s.serialize_field(".tag", "cannot_set_permissions")?;
20600 s.end()
20601 }
20602 MembersSetPermissionsError::TeamLicenseLimit => {
20603 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
20605 s.serialize_field(".tag", "team_license_limit")?;
20606 s.end()
20607 }
20608 MembersSetPermissionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20609 }
20610 }
20611}
20612
20613impl ::std::error::Error for MembersSetPermissionsError {
20614}
20615
20616impl ::std::fmt::Display for MembersSetPermissionsError {
20617 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20618 match self {
20619 MembersSetPermissionsError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20620 MembersSetPermissionsError::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
20621 MembersSetPermissionsError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20622 MembersSetPermissionsError::CannotSetPermissions => f.write_str("Cannot remove/grant permissions."),
20623 MembersSetPermissionsError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
20624 _ => write!(f, "{:?}", *self),
20625 }
20626 }
20627}
20628
20629impl From<UserSelectorError> for MembersSetPermissionsError {
20631 fn from(parent: UserSelectorError) -> Self {
20632 match parent {
20633 UserSelectorError::UserNotFound => MembersSetPermissionsError::UserNotFound,
20634 }
20635 }
20636}
20637#[derive(Debug, Clone, PartialEq, Eq)]
20638#[non_exhaustive] pub struct MembersSetPermissionsResult {
20640 pub team_member_id: crate::types::team_common::TeamMemberId,
20642 pub role: AdminTier,
20644}
20645
20646impl MembersSetPermissionsResult {
20647 pub fn new(team_member_id: crate::types::team_common::TeamMemberId, role: AdminTier) -> Self {
20648 MembersSetPermissionsResult {
20649 team_member_id,
20650 role,
20651 }
20652 }
20653}
20654
20655const MEMBERS_SET_PERMISSIONS_RESULT_FIELDS: &[&str] = &["team_member_id",
20656 "role"];
20657impl MembersSetPermissionsResult {
20658 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20659 map: V,
20660 ) -> Result<MembersSetPermissionsResult, V::Error> {
20661 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20662 }
20663
20664 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20665 mut map: V,
20666 optional: bool,
20667 ) -> Result<Option<MembersSetPermissionsResult>, V::Error> {
20668 let mut field_team_member_id = None;
20669 let mut field_role = None;
20670 let mut nothing = true;
20671 while let Some(key) = map.next_key::<&str>()? {
20672 nothing = false;
20673 match key {
20674 "team_member_id" => {
20675 if field_team_member_id.is_some() {
20676 return Err(::serde::de::Error::duplicate_field("team_member_id"));
20677 }
20678 field_team_member_id = Some(map.next_value()?);
20679 }
20680 "role" => {
20681 if field_role.is_some() {
20682 return Err(::serde::de::Error::duplicate_field("role"));
20683 }
20684 field_role = Some(map.next_value()?);
20685 }
20686 _ => {
20687 map.next_value::<::serde_json::Value>()?;
20689 }
20690 }
20691 }
20692 if optional && nothing {
20693 return Ok(None);
20694 }
20695 let result = MembersSetPermissionsResult {
20696 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
20697 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
20698 };
20699 Ok(Some(result))
20700 }
20701
20702 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20703 &self,
20704 s: &mut S::SerializeStruct,
20705 ) -> Result<(), S::Error> {
20706 use serde::ser::SerializeStruct;
20707 s.serialize_field("team_member_id", &self.team_member_id)?;
20708 s.serialize_field("role", &self.role)?;
20709 Ok(())
20710 }
20711}
20712
20713impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsResult {
20714 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20715 use serde::de::{MapAccess, Visitor};
20717 struct StructVisitor;
20718 impl<'de> Visitor<'de> for StructVisitor {
20719 type Value = MembersSetPermissionsResult;
20720 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20721 f.write_str("a MembersSetPermissionsResult struct")
20722 }
20723 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20724 MembersSetPermissionsResult::internal_deserialize(map)
20725 }
20726 }
20727 deserializer.deserialize_struct("MembersSetPermissionsResult", MEMBERS_SET_PERMISSIONS_RESULT_FIELDS, StructVisitor)
20728 }
20729}
20730
20731impl ::serde::ser::Serialize for MembersSetPermissionsResult {
20732 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20733 use serde::ser::SerializeStruct;
20735 let mut s = serializer.serialize_struct("MembersSetPermissionsResult", 2)?;
20736 self.internal_serialize::<S>(&mut s)?;
20737 s.end()
20738 }
20739}
20740
20741#[derive(Debug, Clone, PartialEq, Eq)]
20745#[non_exhaustive] pub struct MembersSetProfileArg {
20747 pub user: UserSelectorArg,
20749 pub new_email: Option<crate::types::common::EmailAddress>,
20751 pub new_external_id: Option<crate::types::team_common::MemberExternalId>,
20753 pub new_given_name: Option<crate::types::common::OptionalNamePart>,
20755 pub new_surname: Option<crate::types::common::OptionalNamePart>,
20757 pub new_persistent_id: Option<String>,
20760 pub new_is_directory_restricted: Option<bool>,
20762}
20763
20764impl MembersSetProfileArg {
20765 pub fn new(user: UserSelectorArg) -> Self {
20766 MembersSetProfileArg {
20767 user,
20768 new_email: None,
20769 new_external_id: None,
20770 new_given_name: None,
20771 new_surname: None,
20772 new_persistent_id: None,
20773 new_is_directory_restricted: None,
20774 }
20775 }
20776
20777 pub fn with_new_email(mut self, value: crate::types::common::EmailAddress) -> Self {
20778 self.new_email = Some(value);
20779 self
20780 }
20781
20782 pub fn with_new_external_id(
20783 mut self,
20784 value: crate::types::team_common::MemberExternalId,
20785 ) -> Self {
20786 self.new_external_id = Some(value);
20787 self
20788 }
20789
20790 pub fn with_new_given_name(mut self, value: crate::types::common::OptionalNamePart) -> Self {
20791 self.new_given_name = Some(value);
20792 self
20793 }
20794
20795 pub fn with_new_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
20796 self.new_surname = Some(value);
20797 self
20798 }
20799
20800 pub fn with_new_persistent_id(mut self, value: String) -> Self {
20801 self.new_persistent_id = Some(value);
20802 self
20803 }
20804
20805 pub fn with_new_is_directory_restricted(mut self, value: bool) -> Self {
20806 self.new_is_directory_restricted = Some(value);
20807 self
20808 }
20809}
20810
20811const MEMBERS_SET_PROFILE_ARG_FIELDS: &[&str] = &["user",
20812 "new_email",
20813 "new_external_id",
20814 "new_given_name",
20815 "new_surname",
20816 "new_persistent_id",
20817 "new_is_directory_restricted"];
20818impl MembersSetProfileArg {
20819 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20820 map: V,
20821 ) -> Result<MembersSetProfileArg, V::Error> {
20822 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20823 }
20824
20825 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20826 mut map: V,
20827 optional: bool,
20828 ) -> Result<Option<MembersSetProfileArg>, V::Error> {
20829 let mut field_user = None;
20830 let mut field_new_email = None;
20831 let mut field_new_external_id = None;
20832 let mut field_new_given_name = None;
20833 let mut field_new_surname = None;
20834 let mut field_new_persistent_id = None;
20835 let mut field_new_is_directory_restricted = None;
20836 let mut nothing = true;
20837 while let Some(key) = map.next_key::<&str>()? {
20838 nothing = false;
20839 match key {
20840 "user" => {
20841 if field_user.is_some() {
20842 return Err(::serde::de::Error::duplicate_field("user"));
20843 }
20844 field_user = Some(map.next_value()?);
20845 }
20846 "new_email" => {
20847 if field_new_email.is_some() {
20848 return Err(::serde::de::Error::duplicate_field("new_email"));
20849 }
20850 field_new_email = Some(map.next_value()?);
20851 }
20852 "new_external_id" => {
20853 if field_new_external_id.is_some() {
20854 return Err(::serde::de::Error::duplicate_field("new_external_id"));
20855 }
20856 field_new_external_id = Some(map.next_value()?);
20857 }
20858 "new_given_name" => {
20859 if field_new_given_name.is_some() {
20860 return Err(::serde::de::Error::duplicate_field("new_given_name"));
20861 }
20862 field_new_given_name = Some(map.next_value()?);
20863 }
20864 "new_surname" => {
20865 if field_new_surname.is_some() {
20866 return Err(::serde::de::Error::duplicate_field("new_surname"));
20867 }
20868 field_new_surname = Some(map.next_value()?);
20869 }
20870 "new_persistent_id" => {
20871 if field_new_persistent_id.is_some() {
20872 return Err(::serde::de::Error::duplicate_field("new_persistent_id"));
20873 }
20874 field_new_persistent_id = Some(map.next_value()?);
20875 }
20876 "new_is_directory_restricted" => {
20877 if field_new_is_directory_restricted.is_some() {
20878 return Err(::serde::de::Error::duplicate_field("new_is_directory_restricted"));
20879 }
20880 field_new_is_directory_restricted = Some(map.next_value()?);
20881 }
20882 _ => {
20883 map.next_value::<::serde_json::Value>()?;
20885 }
20886 }
20887 }
20888 if optional && nothing {
20889 return Ok(None);
20890 }
20891 let result = MembersSetProfileArg {
20892 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
20893 new_email: field_new_email.and_then(Option::flatten),
20894 new_external_id: field_new_external_id.and_then(Option::flatten),
20895 new_given_name: field_new_given_name.and_then(Option::flatten),
20896 new_surname: field_new_surname.and_then(Option::flatten),
20897 new_persistent_id: field_new_persistent_id.and_then(Option::flatten),
20898 new_is_directory_restricted: field_new_is_directory_restricted.and_then(Option::flatten),
20899 };
20900 Ok(Some(result))
20901 }
20902
20903 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20904 &self,
20905 s: &mut S::SerializeStruct,
20906 ) -> Result<(), S::Error> {
20907 use serde::ser::SerializeStruct;
20908 s.serialize_field("user", &self.user)?;
20909 if let Some(val) = &self.new_email {
20910 s.serialize_field("new_email", val)?;
20911 }
20912 if let Some(val) = &self.new_external_id {
20913 s.serialize_field("new_external_id", val)?;
20914 }
20915 if let Some(val) = &self.new_given_name {
20916 s.serialize_field("new_given_name", val)?;
20917 }
20918 if let Some(val) = &self.new_surname {
20919 s.serialize_field("new_surname", val)?;
20920 }
20921 if let Some(val) = &self.new_persistent_id {
20922 s.serialize_field("new_persistent_id", val)?;
20923 }
20924 if let Some(val) = &self.new_is_directory_restricted {
20925 s.serialize_field("new_is_directory_restricted", val)?;
20926 }
20927 Ok(())
20928 }
20929}
20930
20931impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileArg {
20932 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20933 use serde::de::{MapAccess, Visitor};
20935 struct StructVisitor;
20936 impl<'de> Visitor<'de> for StructVisitor {
20937 type Value = MembersSetProfileArg;
20938 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20939 f.write_str("a MembersSetProfileArg struct")
20940 }
20941 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20942 MembersSetProfileArg::internal_deserialize(map)
20943 }
20944 }
20945 deserializer.deserialize_struct("MembersSetProfileArg", MEMBERS_SET_PROFILE_ARG_FIELDS, StructVisitor)
20946 }
20947}
20948
20949impl ::serde::ser::Serialize for MembersSetProfileArg {
20950 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20951 use serde::ser::SerializeStruct;
20953 let mut s = serializer.serialize_struct("MembersSetProfileArg", 7)?;
20954 self.internal_serialize::<S>(&mut s)?;
20955 s.end()
20956 }
20957}
20958
20959#[derive(Debug, Clone, PartialEq, Eq)]
20960#[non_exhaustive] pub enum MembersSetProfileError {
20962 UserNotFound,
20965 UserNotInTeam,
20967 ExternalIdAndNewExternalIdUnsafe,
20969 NoNewDataSpecified,
20971 EmailReservedForOtherUser,
20973 ExternalIdUsedByOtherUser,
20975 SetProfileDisallowed,
20977 ParamCannotBeEmpty,
20979 PersistentIdDisabled,
20982 PersistentIdUsedByOtherUser,
20984 DirectoryRestrictedOff,
20986 Other,
20989}
20990
20991impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileError {
20992 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20993 use serde::de::{self, MapAccess, Visitor};
20995 struct EnumVisitor;
20996 impl<'de> Visitor<'de> for EnumVisitor {
20997 type Value = MembersSetProfileError;
20998 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20999 f.write_str("a MembersSetProfileError structure")
21000 }
21001 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21002 let tag: &str = match map.next_key()? {
21003 Some(".tag") => map.next_value()?,
21004 _ => return Err(de::Error::missing_field(".tag"))
21005 };
21006 let value = match tag {
21007 "user_not_found" => MembersSetProfileError::UserNotFound,
21008 "user_not_in_team" => MembersSetProfileError::UserNotInTeam,
21009 "external_id_and_new_external_id_unsafe" => MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe,
21010 "no_new_data_specified" => MembersSetProfileError::NoNewDataSpecified,
21011 "email_reserved_for_other_user" => MembersSetProfileError::EmailReservedForOtherUser,
21012 "external_id_used_by_other_user" => MembersSetProfileError::ExternalIdUsedByOtherUser,
21013 "set_profile_disallowed" => MembersSetProfileError::SetProfileDisallowed,
21014 "param_cannot_be_empty" => MembersSetProfileError::ParamCannotBeEmpty,
21015 "persistent_id_disabled" => MembersSetProfileError::PersistentIdDisabled,
21016 "persistent_id_used_by_other_user" => MembersSetProfileError::PersistentIdUsedByOtherUser,
21017 "directory_restricted_off" => MembersSetProfileError::DirectoryRestrictedOff,
21018 _ => MembersSetProfileError::Other,
21019 };
21020 crate::eat_json_fields(&mut map)?;
21021 Ok(value)
21022 }
21023 }
21024 const VARIANTS: &[&str] = &["user_not_found",
21025 "user_not_in_team",
21026 "external_id_and_new_external_id_unsafe",
21027 "no_new_data_specified",
21028 "email_reserved_for_other_user",
21029 "external_id_used_by_other_user",
21030 "set_profile_disallowed",
21031 "param_cannot_be_empty",
21032 "persistent_id_disabled",
21033 "persistent_id_used_by_other_user",
21034 "directory_restricted_off",
21035 "other"];
21036 deserializer.deserialize_struct("MembersSetProfileError", VARIANTS, EnumVisitor)
21037 }
21038}
21039
21040impl ::serde::ser::Serialize for MembersSetProfileError {
21041 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21042 use serde::ser::SerializeStruct;
21044 match self {
21045 MembersSetProfileError::UserNotFound => {
21046 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21048 s.serialize_field(".tag", "user_not_found")?;
21049 s.end()
21050 }
21051 MembersSetProfileError::UserNotInTeam => {
21052 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21054 s.serialize_field(".tag", "user_not_in_team")?;
21055 s.end()
21056 }
21057 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => {
21058 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21060 s.serialize_field(".tag", "external_id_and_new_external_id_unsafe")?;
21061 s.end()
21062 }
21063 MembersSetProfileError::NoNewDataSpecified => {
21064 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21066 s.serialize_field(".tag", "no_new_data_specified")?;
21067 s.end()
21068 }
21069 MembersSetProfileError::EmailReservedForOtherUser => {
21070 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21072 s.serialize_field(".tag", "email_reserved_for_other_user")?;
21073 s.end()
21074 }
21075 MembersSetProfileError::ExternalIdUsedByOtherUser => {
21076 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21078 s.serialize_field(".tag", "external_id_used_by_other_user")?;
21079 s.end()
21080 }
21081 MembersSetProfileError::SetProfileDisallowed => {
21082 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21084 s.serialize_field(".tag", "set_profile_disallowed")?;
21085 s.end()
21086 }
21087 MembersSetProfileError::ParamCannotBeEmpty => {
21088 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21090 s.serialize_field(".tag", "param_cannot_be_empty")?;
21091 s.end()
21092 }
21093 MembersSetProfileError::PersistentIdDisabled => {
21094 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21096 s.serialize_field(".tag", "persistent_id_disabled")?;
21097 s.end()
21098 }
21099 MembersSetProfileError::PersistentIdUsedByOtherUser => {
21100 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21102 s.serialize_field(".tag", "persistent_id_used_by_other_user")?;
21103 s.end()
21104 }
21105 MembersSetProfileError::DirectoryRestrictedOff => {
21106 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
21108 s.serialize_field(".tag", "directory_restricted_off")?;
21109 s.end()
21110 }
21111 MembersSetProfileError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21112 }
21113 }
21114}
21115
21116impl ::std::error::Error for MembersSetProfileError {
21117}
21118
21119impl ::std::fmt::Display for MembersSetProfileError {
21120 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21121 match self {
21122 MembersSetProfileError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21123 MembersSetProfileError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21124 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => f.write_str("It is unsafe to use both external_id and new_external_id."),
21125 MembersSetProfileError::NoNewDataSpecified => f.write_str("None of new_email, new_given_name, new_surname, or new_external_id are specified."),
21126 MembersSetProfileError::EmailReservedForOtherUser => f.write_str("Email is already reserved for another user."),
21127 MembersSetProfileError::ExternalIdUsedByOtherUser => f.write_str("The external ID is already in use by another team member."),
21128 MembersSetProfileError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
21129 MembersSetProfileError::ParamCannotBeEmpty => f.write_str("Parameter new_email cannot be empty."),
21130 MembersSetProfileError::PersistentIdDisabled => f.write_str("Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information."),
21131 MembersSetProfileError::PersistentIdUsedByOtherUser => f.write_str("The persistent ID is already in use by another team member."),
21132 MembersSetProfileError::DirectoryRestrictedOff => f.write_str("Directory Restrictions option is not available."),
21133 _ => write!(f, "{:?}", *self),
21134 }
21135 }
21136}
21137
21138impl From<MemberSelectorError> for MembersSetProfileError {
21140 fn from(parent: MemberSelectorError) -> Self {
21141 match parent {
21142 MemberSelectorError::UserNotFound => MembersSetProfileError::UserNotFound,
21143 MemberSelectorError::UserNotInTeam => MembersSetProfileError::UserNotInTeam,
21144 }
21145 }
21146}
21147#[derive(Debug, Clone, PartialEq, Eq)]
21148#[non_exhaustive] pub struct MembersSetProfilePhotoArg {
21150 pub user: UserSelectorArg,
21152 pub photo: crate::types::account::PhotoSourceArg,
21154}
21155
21156impl MembersSetProfilePhotoArg {
21157 pub fn new(user: UserSelectorArg, photo: crate::types::account::PhotoSourceArg) -> Self {
21158 MembersSetProfilePhotoArg {
21159 user,
21160 photo,
21161 }
21162 }
21163}
21164
21165const MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user",
21166 "photo"];
21167impl MembersSetProfilePhotoArg {
21168 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21169 map: V,
21170 ) -> Result<MembersSetProfilePhotoArg, V::Error> {
21171 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21172 }
21173
21174 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21175 mut map: V,
21176 optional: bool,
21177 ) -> Result<Option<MembersSetProfilePhotoArg>, V::Error> {
21178 let mut field_user = None;
21179 let mut field_photo = None;
21180 let mut nothing = true;
21181 while let Some(key) = map.next_key::<&str>()? {
21182 nothing = false;
21183 match key {
21184 "user" => {
21185 if field_user.is_some() {
21186 return Err(::serde::de::Error::duplicate_field("user"));
21187 }
21188 field_user = Some(map.next_value()?);
21189 }
21190 "photo" => {
21191 if field_photo.is_some() {
21192 return Err(::serde::de::Error::duplicate_field("photo"));
21193 }
21194 field_photo = Some(map.next_value()?);
21195 }
21196 _ => {
21197 map.next_value::<::serde_json::Value>()?;
21199 }
21200 }
21201 }
21202 if optional && nothing {
21203 return Ok(None);
21204 }
21205 let result = MembersSetProfilePhotoArg {
21206 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
21207 photo: field_photo.ok_or_else(|| ::serde::de::Error::missing_field("photo"))?,
21208 };
21209 Ok(Some(result))
21210 }
21211
21212 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21213 &self,
21214 s: &mut S::SerializeStruct,
21215 ) -> Result<(), S::Error> {
21216 use serde::ser::SerializeStruct;
21217 s.serialize_field("user", &self.user)?;
21218 s.serialize_field("photo", &self.photo)?;
21219 Ok(())
21220 }
21221}
21222
21223impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoArg {
21224 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21225 use serde::de::{MapAccess, Visitor};
21227 struct StructVisitor;
21228 impl<'de> Visitor<'de> for StructVisitor {
21229 type Value = MembersSetProfilePhotoArg;
21230 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21231 f.write_str("a MembersSetProfilePhotoArg struct")
21232 }
21233 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21234 MembersSetProfilePhotoArg::internal_deserialize(map)
21235 }
21236 }
21237 deserializer.deserialize_struct("MembersSetProfilePhotoArg", MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
21238 }
21239}
21240
21241impl ::serde::ser::Serialize for MembersSetProfilePhotoArg {
21242 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21243 use serde::ser::SerializeStruct;
21245 let mut s = serializer.serialize_struct("MembersSetProfilePhotoArg", 2)?;
21246 self.internal_serialize::<S>(&mut s)?;
21247 s.end()
21248 }
21249}
21250
21251#[derive(Debug, Clone, PartialEq, Eq)]
21252#[non_exhaustive] pub enum MembersSetProfilePhotoError {
21254 UserNotFound,
21257 UserNotInTeam,
21259 SetProfileDisallowed,
21261 PhotoError(crate::types::account::SetProfilePhotoError),
21262 Other,
21265}
21266
21267impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoError {
21268 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21269 use serde::de::{self, MapAccess, Visitor};
21271 struct EnumVisitor;
21272 impl<'de> Visitor<'de> for EnumVisitor {
21273 type Value = MembersSetProfilePhotoError;
21274 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21275 f.write_str("a MembersSetProfilePhotoError structure")
21276 }
21277 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21278 let tag: &str = match map.next_key()? {
21279 Some(".tag") => map.next_value()?,
21280 _ => return Err(de::Error::missing_field(".tag"))
21281 };
21282 let value = match tag {
21283 "user_not_found" => MembersSetProfilePhotoError::UserNotFound,
21284 "user_not_in_team" => MembersSetProfilePhotoError::UserNotInTeam,
21285 "set_profile_disallowed" => MembersSetProfilePhotoError::SetProfileDisallowed,
21286 "photo_error" => {
21287 match map.next_key()? {
21288 Some("photo_error") => MembersSetProfilePhotoError::PhotoError(map.next_value()?),
21289 None => return Err(de::Error::missing_field("photo_error")),
21290 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21291 }
21292 }
21293 _ => MembersSetProfilePhotoError::Other,
21294 };
21295 crate::eat_json_fields(&mut map)?;
21296 Ok(value)
21297 }
21298 }
21299 const VARIANTS: &[&str] = &["user_not_found",
21300 "user_not_in_team",
21301 "set_profile_disallowed",
21302 "photo_error",
21303 "other"];
21304 deserializer.deserialize_struct("MembersSetProfilePhotoError", VARIANTS, EnumVisitor)
21305 }
21306}
21307
21308impl ::serde::ser::Serialize for MembersSetProfilePhotoError {
21309 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21310 use serde::ser::SerializeStruct;
21312 match self {
21313 MembersSetProfilePhotoError::UserNotFound => {
21314 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
21316 s.serialize_field(".tag", "user_not_found")?;
21317 s.end()
21318 }
21319 MembersSetProfilePhotoError::UserNotInTeam => {
21320 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
21322 s.serialize_field(".tag", "user_not_in_team")?;
21323 s.end()
21324 }
21325 MembersSetProfilePhotoError::SetProfileDisallowed => {
21326 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
21328 s.serialize_field(".tag", "set_profile_disallowed")?;
21329 s.end()
21330 }
21331 MembersSetProfilePhotoError::PhotoError(x) => {
21332 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 2)?;
21334 s.serialize_field(".tag", "photo_error")?;
21335 s.serialize_field("photo_error", x)?;
21336 s.end()
21337 }
21338 MembersSetProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21339 }
21340 }
21341}
21342
21343impl ::std::error::Error for MembersSetProfilePhotoError {
21344 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
21345 match self {
21346 MembersSetProfilePhotoError::PhotoError(inner) => Some(inner),
21347 _ => None,
21348 }
21349 }
21350}
21351
21352impl ::std::fmt::Display for MembersSetProfilePhotoError {
21353 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21354 match self {
21355 MembersSetProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21356 MembersSetProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21357 MembersSetProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
21358 MembersSetProfilePhotoError::PhotoError(inner) => write!(f, "MembersSetProfilePhotoError: {}", inner),
21359 _ => write!(f, "{:?}", *self),
21360 }
21361 }
21362}
21363
21364impl From<MemberSelectorError> for MembersSetProfilePhotoError {
21366 fn from(parent: MemberSelectorError) -> Self {
21367 match parent {
21368 MemberSelectorError::UserNotFound => MembersSetProfilePhotoError::UserNotFound,
21369 MemberSelectorError::UserNotInTeam => MembersSetProfilePhotoError::UserNotInTeam,
21370 }
21371 }
21372}
21373#[derive(Debug, Clone, PartialEq, Eq)]
21374#[non_exhaustive] pub enum MembersSuspendError {
21376 UserNotFound,
21379 UserNotInTeam,
21381 SuspendInactiveUser,
21383 SuspendLastAdmin,
21385 TeamLicenseLimit,
21387 Other,
21390}
21391
21392impl<'de> ::serde::de::Deserialize<'de> for MembersSuspendError {
21393 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21394 use serde::de::{self, MapAccess, Visitor};
21396 struct EnumVisitor;
21397 impl<'de> Visitor<'de> for EnumVisitor {
21398 type Value = MembersSuspendError;
21399 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21400 f.write_str("a MembersSuspendError structure")
21401 }
21402 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21403 let tag: &str = match map.next_key()? {
21404 Some(".tag") => map.next_value()?,
21405 _ => return Err(de::Error::missing_field(".tag"))
21406 };
21407 let value = match tag {
21408 "user_not_found" => MembersSuspendError::UserNotFound,
21409 "user_not_in_team" => MembersSuspendError::UserNotInTeam,
21410 "suspend_inactive_user" => MembersSuspendError::SuspendInactiveUser,
21411 "suspend_last_admin" => MembersSuspendError::SuspendLastAdmin,
21412 "team_license_limit" => MembersSuspendError::TeamLicenseLimit,
21413 _ => MembersSuspendError::Other,
21414 };
21415 crate::eat_json_fields(&mut map)?;
21416 Ok(value)
21417 }
21418 }
21419 const VARIANTS: &[&str] = &["user_not_found",
21420 "user_not_in_team",
21421 "other",
21422 "suspend_inactive_user",
21423 "suspend_last_admin",
21424 "team_license_limit"];
21425 deserializer.deserialize_struct("MembersSuspendError", VARIANTS, EnumVisitor)
21426 }
21427}
21428
21429impl ::serde::ser::Serialize for MembersSuspendError {
21430 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21431 use serde::ser::SerializeStruct;
21433 match self {
21434 MembersSuspendError::UserNotFound => {
21435 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
21437 s.serialize_field(".tag", "user_not_found")?;
21438 s.end()
21439 }
21440 MembersSuspendError::UserNotInTeam => {
21441 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
21443 s.serialize_field(".tag", "user_not_in_team")?;
21444 s.end()
21445 }
21446 MembersSuspendError::SuspendInactiveUser => {
21447 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
21449 s.serialize_field(".tag", "suspend_inactive_user")?;
21450 s.end()
21451 }
21452 MembersSuspendError::SuspendLastAdmin => {
21453 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
21455 s.serialize_field(".tag", "suspend_last_admin")?;
21456 s.end()
21457 }
21458 MembersSuspendError::TeamLicenseLimit => {
21459 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
21461 s.serialize_field(".tag", "team_license_limit")?;
21462 s.end()
21463 }
21464 MembersSuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21465 }
21466 }
21467}
21468
21469impl ::std::error::Error for MembersSuspendError {
21470}
21471
21472impl ::std::fmt::Display for MembersSuspendError {
21473 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21474 match self {
21475 MembersSuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21476 MembersSuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21477 MembersSuspendError::SuspendInactiveUser => f.write_str("The user is not active, so it cannot be suspended."),
21478 MembersSuspendError::SuspendLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be suspended."),
21479 MembersSuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
21480 _ => write!(f, "{:?}", *self),
21481 }
21482 }
21483}
21484
21485impl From<MembersDeactivateError> for MembersSuspendError {
21487 fn from(parent: MembersDeactivateError) -> Self {
21488 match parent {
21489 MembersDeactivateError::UserNotFound => MembersSuspendError::UserNotFound,
21490 MembersDeactivateError::UserNotInTeam => MembersSuspendError::UserNotInTeam,
21491 MembersDeactivateError::Other => MembersSuspendError::Other,
21492 }
21493 }
21494}
21495#[derive(Debug, Clone, PartialEq, Eq)]
21496#[non_exhaustive] pub enum MembersTransferFilesError {
21498 UserNotFound,
21501 UserNotInTeam,
21503 TransferInProgress,
21505 AlreadyTransferred,
21507 AlreadyTransferredOrDeleted,
21509 RemovedAndTransferDestShouldDiffer,
21511 RemovedAndTransferAdminShouldDiffer,
21513 TransferDestUserNotFound,
21515 TransferDestUserNotInTeam,
21517 TransferAdminUserNotInTeam,
21519 TransferAdminUserNotFound,
21521 UnspecifiedTransferAdminId,
21523 TransferAdminIsNotAdmin,
21525 RecipientNotVerified,
21527 Other,
21530}
21531
21532impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFilesError {
21533 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21534 use serde::de::{self, MapAccess, Visitor};
21536 struct EnumVisitor;
21537 impl<'de> Visitor<'de> for EnumVisitor {
21538 type Value = MembersTransferFilesError;
21539 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21540 f.write_str("a MembersTransferFilesError structure")
21541 }
21542 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21543 let tag: &str = match map.next_key()? {
21544 Some(".tag") => map.next_value()?,
21545 _ => return Err(de::Error::missing_field(".tag"))
21546 };
21547 let value = match tag {
21548 "user_not_found" => MembersTransferFilesError::UserNotFound,
21549 "user_not_in_team" => MembersTransferFilesError::UserNotInTeam,
21550 "transfer_in_progress" => MembersTransferFilesError::TransferInProgress,
21551 "already_transferred" => MembersTransferFilesError::AlreadyTransferred,
21552 "already_transferred_or_deleted" => MembersTransferFilesError::AlreadyTransferredOrDeleted,
21553 "removed_and_transfer_dest_should_differ" => MembersTransferFilesError::RemovedAndTransferDestShouldDiffer,
21554 "removed_and_transfer_admin_should_differ" => MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer,
21555 "transfer_dest_user_not_found" => MembersTransferFilesError::TransferDestUserNotFound,
21556 "transfer_dest_user_not_in_team" => MembersTransferFilesError::TransferDestUserNotInTeam,
21557 "transfer_admin_user_not_in_team" => MembersTransferFilesError::TransferAdminUserNotInTeam,
21558 "transfer_admin_user_not_found" => MembersTransferFilesError::TransferAdminUserNotFound,
21559 "unspecified_transfer_admin_id" => MembersTransferFilesError::UnspecifiedTransferAdminId,
21560 "transfer_admin_is_not_admin" => MembersTransferFilesError::TransferAdminIsNotAdmin,
21561 "recipient_not_verified" => MembersTransferFilesError::RecipientNotVerified,
21562 _ => MembersTransferFilesError::Other,
21563 };
21564 crate::eat_json_fields(&mut map)?;
21565 Ok(value)
21566 }
21567 }
21568 const VARIANTS: &[&str] = &["user_not_found",
21569 "user_not_in_team",
21570 "other",
21571 "transfer_in_progress",
21572 "already_transferred",
21573 "already_transferred_or_deleted",
21574 "removed_and_transfer_dest_should_differ",
21575 "removed_and_transfer_admin_should_differ",
21576 "transfer_dest_user_not_found",
21577 "transfer_dest_user_not_in_team",
21578 "transfer_admin_user_not_in_team",
21579 "transfer_admin_user_not_found",
21580 "unspecified_transfer_admin_id",
21581 "transfer_admin_is_not_admin",
21582 "recipient_not_verified"];
21583 deserializer.deserialize_struct("MembersTransferFilesError", VARIANTS, EnumVisitor)
21584 }
21585}
21586
21587impl ::serde::ser::Serialize for MembersTransferFilesError {
21588 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21589 use serde::ser::SerializeStruct;
21591 match self {
21592 MembersTransferFilesError::UserNotFound => {
21593 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21595 s.serialize_field(".tag", "user_not_found")?;
21596 s.end()
21597 }
21598 MembersTransferFilesError::UserNotInTeam => {
21599 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21601 s.serialize_field(".tag", "user_not_in_team")?;
21602 s.end()
21603 }
21604 MembersTransferFilesError::TransferInProgress => {
21605 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21607 s.serialize_field(".tag", "transfer_in_progress")?;
21608 s.end()
21609 }
21610 MembersTransferFilesError::AlreadyTransferred => {
21611 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21613 s.serialize_field(".tag", "already_transferred")?;
21614 s.end()
21615 }
21616 MembersTransferFilesError::AlreadyTransferredOrDeleted => {
21617 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21619 s.serialize_field(".tag", "already_transferred_or_deleted")?;
21620 s.end()
21621 }
21622 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => {
21623 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21625 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
21626 s.end()
21627 }
21628 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => {
21629 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21631 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
21632 s.end()
21633 }
21634 MembersTransferFilesError::TransferDestUserNotFound => {
21635 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21637 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
21638 s.end()
21639 }
21640 MembersTransferFilesError::TransferDestUserNotInTeam => {
21641 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21643 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
21644 s.end()
21645 }
21646 MembersTransferFilesError::TransferAdminUserNotInTeam => {
21647 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21649 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
21650 s.end()
21651 }
21652 MembersTransferFilesError::TransferAdminUserNotFound => {
21653 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21655 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
21656 s.end()
21657 }
21658 MembersTransferFilesError::UnspecifiedTransferAdminId => {
21659 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21661 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
21662 s.end()
21663 }
21664 MembersTransferFilesError::TransferAdminIsNotAdmin => {
21665 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21667 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
21668 s.end()
21669 }
21670 MembersTransferFilesError::RecipientNotVerified => {
21671 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
21673 s.serialize_field(".tag", "recipient_not_verified")?;
21674 s.end()
21675 }
21676 MembersTransferFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21677 }
21678 }
21679}
21680
21681impl ::std::error::Error for MembersTransferFilesError {
21682}
21683
21684impl ::std::fmt::Display for MembersTransferFilesError {
21685 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21686 match self {
21687 MembersTransferFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21688 MembersTransferFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21689 MembersTransferFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
21690 MembersTransferFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
21691 MembersTransferFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
21692 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
21693 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
21694 MembersTransferFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
21695 MembersTransferFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
21696 MembersTransferFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
21697 MembersTransferFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
21698 MembersTransferFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
21699 MembersTransferFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
21700 MembersTransferFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
21701 _ => write!(f, "{:?}", *self),
21702 }
21703 }
21704}
21705
21706impl From<MembersPermanentlyDeleteFilesError> for MembersTransferFilesError {
21708 fn from(parent: MembersPermanentlyDeleteFilesError) -> Self {
21709 match parent {
21710 MembersPermanentlyDeleteFilesError::UserNotFound => MembersTransferFilesError::UserNotFound,
21711 MembersPermanentlyDeleteFilesError::UserNotInTeam => MembersTransferFilesError::UserNotInTeam,
21712 MembersPermanentlyDeleteFilesError::Other => MembersTransferFilesError::Other,
21713 MembersPermanentlyDeleteFilesError::TransferInProgress => MembersTransferFilesError::TransferInProgress,
21714 MembersPermanentlyDeleteFilesError::AlreadyTransferred => MembersTransferFilesError::AlreadyTransferred,
21715 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => MembersTransferFilesError::AlreadyTransferredOrDeleted,
21716 }
21717 }
21718}
21719#[derive(Debug, Clone, PartialEq, Eq)]
21720#[non_exhaustive] pub enum MembersTransferFormerMembersFilesError {
21722 UserNotFound,
21725 UserNotInTeam,
21727 TransferInProgress,
21729 AlreadyTransferred,
21731 AlreadyTransferredOrDeleted,
21733 RemovedAndTransferDestShouldDiffer,
21735 RemovedAndTransferAdminShouldDiffer,
21737 TransferDestUserNotFound,
21739 TransferDestUserNotInTeam,
21741 TransferAdminUserNotInTeam,
21743 TransferAdminUserNotFound,
21745 UnspecifiedTransferAdminId,
21747 TransferAdminIsNotAdmin,
21749 RecipientNotVerified,
21751 UserDataIsBeingTransferred,
21753 UserNotRemoved,
21755 UserDataCannotBeTransferred,
21757 UserDataAlreadyTransferred,
21759 Other,
21762}
21763
21764impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFormerMembersFilesError {
21765 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21766 use serde::de::{self, MapAccess, Visitor};
21768 struct EnumVisitor;
21769 impl<'de> Visitor<'de> for EnumVisitor {
21770 type Value = MembersTransferFormerMembersFilesError;
21771 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21772 f.write_str("a MembersTransferFormerMembersFilesError structure")
21773 }
21774 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21775 let tag: &str = match map.next_key()? {
21776 Some(".tag") => map.next_value()?,
21777 _ => return Err(de::Error::missing_field(".tag"))
21778 };
21779 let value = match tag {
21780 "user_not_found" => MembersTransferFormerMembersFilesError::UserNotFound,
21781 "user_not_in_team" => MembersTransferFormerMembersFilesError::UserNotInTeam,
21782 "transfer_in_progress" => MembersTransferFormerMembersFilesError::TransferInProgress,
21783 "already_transferred" => MembersTransferFormerMembersFilesError::AlreadyTransferred,
21784 "already_transferred_or_deleted" => MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted,
21785 "removed_and_transfer_dest_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
21786 "removed_and_transfer_admin_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
21787 "transfer_dest_user_not_found" => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
21788 "transfer_dest_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
21789 "transfer_admin_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
21790 "transfer_admin_user_not_found" => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
21791 "unspecified_transfer_admin_id" => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
21792 "transfer_admin_is_not_admin" => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
21793 "recipient_not_verified" => MembersTransferFormerMembersFilesError::RecipientNotVerified,
21794 "user_data_is_being_transferred" => MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred,
21795 "user_not_removed" => MembersTransferFormerMembersFilesError::UserNotRemoved,
21796 "user_data_cannot_be_transferred" => MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred,
21797 "user_data_already_transferred" => MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred,
21798 _ => MembersTransferFormerMembersFilesError::Other,
21799 };
21800 crate::eat_json_fields(&mut map)?;
21801 Ok(value)
21802 }
21803 }
21804 const VARIANTS: &[&str] = &["user_not_found",
21805 "user_not_in_team",
21806 "other",
21807 "transfer_in_progress",
21808 "already_transferred",
21809 "already_transferred_or_deleted",
21810 "removed_and_transfer_dest_should_differ",
21811 "removed_and_transfer_admin_should_differ",
21812 "transfer_dest_user_not_found",
21813 "transfer_dest_user_not_in_team",
21814 "transfer_admin_user_not_in_team",
21815 "transfer_admin_user_not_found",
21816 "unspecified_transfer_admin_id",
21817 "transfer_admin_is_not_admin",
21818 "recipient_not_verified",
21819 "user_data_is_being_transferred",
21820 "user_not_removed",
21821 "user_data_cannot_be_transferred",
21822 "user_data_already_transferred"];
21823 deserializer.deserialize_struct("MembersTransferFormerMembersFilesError", VARIANTS, EnumVisitor)
21824 }
21825}
21826
21827impl ::serde::ser::Serialize for MembersTransferFormerMembersFilesError {
21828 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21829 use serde::ser::SerializeStruct;
21831 match self {
21832 MembersTransferFormerMembersFilesError::UserNotFound => {
21833 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21835 s.serialize_field(".tag", "user_not_found")?;
21836 s.end()
21837 }
21838 MembersTransferFormerMembersFilesError::UserNotInTeam => {
21839 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21841 s.serialize_field(".tag", "user_not_in_team")?;
21842 s.end()
21843 }
21844 MembersTransferFormerMembersFilesError::TransferInProgress => {
21845 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21847 s.serialize_field(".tag", "transfer_in_progress")?;
21848 s.end()
21849 }
21850 MembersTransferFormerMembersFilesError::AlreadyTransferred => {
21851 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21853 s.serialize_field(".tag", "already_transferred")?;
21854 s.end()
21855 }
21856 MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted => {
21857 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21859 s.serialize_field(".tag", "already_transferred_or_deleted")?;
21860 s.end()
21861 }
21862 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => {
21863 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21865 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
21866 s.end()
21867 }
21868 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => {
21869 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21871 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
21872 s.end()
21873 }
21874 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => {
21875 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21877 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
21878 s.end()
21879 }
21880 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => {
21881 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21883 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
21884 s.end()
21885 }
21886 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => {
21887 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21889 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
21890 s.end()
21891 }
21892 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => {
21893 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21895 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
21896 s.end()
21897 }
21898 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => {
21899 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21901 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
21902 s.end()
21903 }
21904 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => {
21905 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21907 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
21908 s.end()
21909 }
21910 MembersTransferFormerMembersFilesError::RecipientNotVerified => {
21911 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21913 s.serialize_field(".tag", "recipient_not_verified")?;
21914 s.end()
21915 }
21916 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => {
21917 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21919 s.serialize_field(".tag", "user_data_is_being_transferred")?;
21920 s.end()
21921 }
21922 MembersTransferFormerMembersFilesError::UserNotRemoved => {
21923 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21925 s.serialize_field(".tag", "user_not_removed")?;
21926 s.end()
21927 }
21928 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => {
21929 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21931 s.serialize_field(".tag", "user_data_cannot_be_transferred")?;
21932 s.end()
21933 }
21934 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => {
21935 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21937 s.serialize_field(".tag", "user_data_already_transferred")?;
21938 s.end()
21939 }
21940 MembersTransferFormerMembersFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21941 }
21942 }
21943}
21944
21945impl ::std::error::Error for MembersTransferFormerMembersFilesError {
21946}
21947
21948impl ::std::fmt::Display for MembersTransferFormerMembersFilesError {
21949 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21950 match self {
21951 MembersTransferFormerMembersFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21952 MembersTransferFormerMembersFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21953 MembersTransferFormerMembersFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
21954 MembersTransferFormerMembersFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
21955 MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
21956 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
21957 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
21958 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
21959 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
21960 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
21961 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
21962 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
21963 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
21964 MembersTransferFormerMembersFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
21965 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => f.write_str("The user's data is being transferred. Please wait some time before retrying."),
21966 MembersTransferFormerMembersFilesError::UserNotRemoved => f.write_str("No matching removed user found for the argument user."),
21967 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => f.write_str("User files aren't transferable anymore."),
21968 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => f.write_str("User's data has already been transferred to another user."),
21969 _ => write!(f, "{:?}", *self),
21970 }
21971 }
21972}
21973
21974impl From<MembersTransferFilesError> for MembersTransferFormerMembersFilesError {
21976 fn from(parent: MembersTransferFilesError) -> Self {
21977 match parent {
21978 MembersTransferFilesError::UserNotFound => MembersTransferFormerMembersFilesError::UserNotFound,
21979 MembersTransferFilesError::UserNotInTeam => MembersTransferFormerMembersFilesError::UserNotInTeam,
21980 MembersTransferFilesError::Other => MembersTransferFormerMembersFilesError::Other,
21981 MembersTransferFilesError::TransferInProgress => MembersTransferFormerMembersFilesError::TransferInProgress,
21982 MembersTransferFilesError::AlreadyTransferred => MembersTransferFormerMembersFilesError::AlreadyTransferred,
21983 MembersTransferFilesError::AlreadyTransferredOrDeleted => MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted,
21984 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
21985 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
21986 MembersTransferFilesError::TransferDestUserNotFound => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
21987 MembersTransferFilesError::TransferDestUserNotInTeam => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
21988 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
21989 MembersTransferFilesError::TransferAdminUserNotFound => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
21990 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
21991 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
21992 MembersTransferFilesError::RecipientNotVerified => MembersTransferFormerMembersFilesError::RecipientNotVerified,
21993 }
21994 }
21995}
21996#[derive(Debug, Clone, PartialEq, Eq)]
21999#[non_exhaustive] pub struct MembersUnsuspendArg {
22001 pub user: UserSelectorArg,
22003}
22004
22005impl MembersUnsuspendArg {
22006 pub fn new(user: UserSelectorArg) -> Self {
22007 MembersUnsuspendArg {
22008 user,
22009 }
22010 }
22011}
22012
22013const MEMBERS_UNSUSPEND_ARG_FIELDS: &[&str] = &["user"];
22014impl MembersUnsuspendArg {
22015 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22016 map: V,
22017 ) -> Result<MembersUnsuspendArg, V::Error> {
22018 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22019 }
22020
22021 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22022 mut map: V,
22023 optional: bool,
22024 ) -> Result<Option<MembersUnsuspendArg>, V::Error> {
22025 let mut field_user = None;
22026 let mut nothing = true;
22027 while let Some(key) = map.next_key::<&str>()? {
22028 nothing = false;
22029 match key {
22030 "user" => {
22031 if field_user.is_some() {
22032 return Err(::serde::de::Error::duplicate_field("user"));
22033 }
22034 field_user = Some(map.next_value()?);
22035 }
22036 _ => {
22037 map.next_value::<::serde_json::Value>()?;
22039 }
22040 }
22041 }
22042 if optional && nothing {
22043 return Ok(None);
22044 }
22045 let result = MembersUnsuspendArg {
22046 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
22047 };
22048 Ok(Some(result))
22049 }
22050
22051 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22052 &self,
22053 s: &mut S::SerializeStruct,
22054 ) -> Result<(), S::Error> {
22055 use serde::ser::SerializeStruct;
22056 s.serialize_field("user", &self.user)?;
22057 Ok(())
22058 }
22059}
22060
22061impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendArg {
22062 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22063 use serde::de::{MapAccess, Visitor};
22065 struct StructVisitor;
22066 impl<'de> Visitor<'de> for StructVisitor {
22067 type Value = MembersUnsuspendArg;
22068 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22069 f.write_str("a MembersUnsuspendArg struct")
22070 }
22071 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22072 MembersUnsuspendArg::internal_deserialize(map)
22073 }
22074 }
22075 deserializer.deserialize_struct("MembersUnsuspendArg", MEMBERS_UNSUSPEND_ARG_FIELDS, StructVisitor)
22076 }
22077}
22078
22079impl ::serde::ser::Serialize for MembersUnsuspendArg {
22080 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22081 use serde::ser::SerializeStruct;
22083 let mut s = serializer.serialize_struct("MembersUnsuspendArg", 1)?;
22084 self.internal_serialize::<S>(&mut s)?;
22085 s.end()
22086 }
22087}
22088
22089#[derive(Debug, Clone, PartialEq, Eq)]
22090#[non_exhaustive] pub enum MembersUnsuspendError {
22092 UserNotFound,
22095 UserNotInTeam,
22097 UnsuspendNonSuspendedMember,
22099 TeamLicenseLimit,
22101 Other,
22104}
22105
22106impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendError {
22107 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22108 use serde::de::{self, MapAccess, Visitor};
22110 struct EnumVisitor;
22111 impl<'de> Visitor<'de> for EnumVisitor {
22112 type Value = MembersUnsuspendError;
22113 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22114 f.write_str("a MembersUnsuspendError structure")
22115 }
22116 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22117 let tag: &str = match map.next_key()? {
22118 Some(".tag") => map.next_value()?,
22119 _ => return Err(de::Error::missing_field(".tag"))
22120 };
22121 let value = match tag {
22122 "user_not_found" => MembersUnsuspendError::UserNotFound,
22123 "user_not_in_team" => MembersUnsuspendError::UserNotInTeam,
22124 "unsuspend_non_suspended_member" => MembersUnsuspendError::UnsuspendNonSuspendedMember,
22125 "team_license_limit" => MembersUnsuspendError::TeamLicenseLimit,
22126 _ => MembersUnsuspendError::Other,
22127 };
22128 crate::eat_json_fields(&mut map)?;
22129 Ok(value)
22130 }
22131 }
22132 const VARIANTS: &[&str] = &["user_not_found",
22133 "user_not_in_team",
22134 "other",
22135 "unsuspend_non_suspended_member",
22136 "team_license_limit"];
22137 deserializer.deserialize_struct("MembersUnsuspendError", VARIANTS, EnumVisitor)
22138 }
22139}
22140
22141impl ::serde::ser::Serialize for MembersUnsuspendError {
22142 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22143 use serde::ser::SerializeStruct;
22145 match self {
22146 MembersUnsuspendError::UserNotFound => {
22147 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
22149 s.serialize_field(".tag", "user_not_found")?;
22150 s.end()
22151 }
22152 MembersUnsuspendError::UserNotInTeam => {
22153 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
22155 s.serialize_field(".tag", "user_not_in_team")?;
22156 s.end()
22157 }
22158 MembersUnsuspendError::UnsuspendNonSuspendedMember => {
22159 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
22161 s.serialize_field(".tag", "unsuspend_non_suspended_member")?;
22162 s.end()
22163 }
22164 MembersUnsuspendError::TeamLicenseLimit => {
22165 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
22167 s.serialize_field(".tag", "team_license_limit")?;
22168 s.end()
22169 }
22170 MembersUnsuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22171 }
22172 }
22173}
22174
22175impl ::std::error::Error for MembersUnsuspendError {
22176}
22177
22178impl ::std::fmt::Display for MembersUnsuspendError {
22179 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22180 match self {
22181 MembersUnsuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
22182 MembersUnsuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
22183 MembersUnsuspendError::UnsuspendNonSuspendedMember => f.write_str("The user is unsuspended, so it cannot be unsuspended again."),
22184 MembersUnsuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
22185 _ => write!(f, "{:?}", *self),
22186 }
22187 }
22188}
22189
22190impl From<MembersDeactivateError> for MembersUnsuspendError {
22192 fn from(parent: MembersDeactivateError) -> Self {
22193 match parent {
22194 MembersDeactivateError::UserNotFound => MembersUnsuspendError::UserNotFound,
22195 MembersDeactivateError::UserNotInTeam => MembersUnsuspendError::UserNotInTeam,
22196 MembersDeactivateError::Other => MembersUnsuspendError::Other,
22197 }
22198 }
22199}
22200#[derive(Debug, Clone, PartialEq, Eq)]
22201#[non_exhaustive] pub enum MobileClientPlatform {
22203 Iphone,
22205 Ipad,
22207 Android,
22209 WindowsPhone,
22211 Blackberry,
22213 Other,
22216}
22217
22218impl<'de> ::serde::de::Deserialize<'de> for MobileClientPlatform {
22219 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22220 use serde::de::{self, MapAccess, Visitor};
22222 struct EnumVisitor;
22223 impl<'de> Visitor<'de> for EnumVisitor {
22224 type Value = MobileClientPlatform;
22225 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22226 f.write_str("a MobileClientPlatform structure")
22227 }
22228 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22229 let tag: &str = match map.next_key()? {
22230 Some(".tag") => map.next_value()?,
22231 _ => return Err(de::Error::missing_field(".tag"))
22232 };
22233 let value = match tag {
22234 "iphone" => MobileClientPlatform::Iphone,
22235 "ipad" => MobileClientPlatform::Ipad,
22236 "android" => MobileClientPlatform::Android,
22237 "windows_phone" => MobileClientPlatform::WindowsPhone,
22238 "blackberry" => MobileClientPlatform::Blackberry,
22239 _ => MobileClientPlatform::Other,
22240 };
22241 crate::eat_json_fields(&mut map)?;
22242 Ok(value)
22243 }
22244 }
22245 const VARIANTS: &[&str] = &["iphone",
22246 "ipad",
22247 "android",
22248 "windows_phone",
22249 "blackberry",
22250 "other"];
22251 deserializer.deserialize_struct("MobileClientPlatform", VARIANTS, EnumVisitor)
22252 }
22253}
22254
22255impl ::serde::ser::Serialize for MobileClientPlatform {
22256 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22257 use serde::ser::SerializeStruct;
22259 match self {
22260 MobileClientPlatform::Iphone => {
22261 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
22263 s.serialize_field(".tag", "iphone")?;
22264 s.end()
22265 }
22266 MobileClientPlatform::Ipad => {
22267 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
22269 s.serialize_field(".tag", "ipad")?;
22270 s.end()
22271 }
22272 MobileClientPlatform::Android => {
22273 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
22275 s.serialize_field(".tag", "android")?;
22276 s.end()
22277 }
22278 MobileClientPlatform::WindowsPhone => {
22279 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
22281 s.serialize_field(".tag", "windows_phone")?;
22282 s.end()
22283 }
22284 MobileClientPlatform::Blackberry => {
22285 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
22287 s.serialize_field(".tag", "blackberry")?;
22288 s.end()
22289 }
22290 MobileClientPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22291 }
22292 }
22293}
22294
22295#[derive(Debug, Clone, PartialEq, Eq)]
22297#[non_exhaustive] pub struct MobileClientSession {
22299 pub session_id: String,
22301 pub device_name: String,
22303 pub client_type: MobileClientPlatform,
22305 pub ip_address: Option<String>,
22307 pub country: Option<String>,
22309 pub created: Option<crate::types::common::DropboxTimestamp>,
22311 pub updated: Option<crate::types::common::DropboxTimestamp>,
22313 pub client_version: Option<String>,
22315 pub os_version: Option<String>,
22317 pub last_carrier: Option<String>,
22319}
22320
22321impl MobileClientSession {
22322 pub fn new(
22323 session_id: String,
22324 device_name: String,
22325 client_type: MobileClientPlatform,
22326 ) -> Self {
22327 MobileClientSession {
22328 session_id,
22329 device_name,
22330 client_type,
22331 ip_address: None,
22332 country: None,
22333 created: None,
22334 updated: None,
22335 client_version: None,
22336 os_version: None,
22337 last_carrier: None,
22338 }
22339 }
22340
22341 pub fn with_ip_address(mut self, value: String) -> Self {
22342 self.ip_address = Some(value);
22343 self
22344 }
22345
22346 pub fn with_country(mut self, value: String) -> Self {
22347 self.country = Some(value);
22348 self
22349 }
22350
22351 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
22352 self.created = Some(value);
22353 self
22354 }
22355
22356 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
22357 self.updated = Some(value);
22358 self
22359 }
22360
22361 pub fn with_client_version(mut self, value: String) -> Self {
22362 self.client_version = Some(value);
22363 self
22364 }
22365
22366 pub fn with_os_version(mut self, value: String) -> Self {
22367 self.os_version = Some(value);
22368 self
22369 }
22370
22371 pub fn with_last_carrier(mut self, value: String) -> Self {
22372 self.last_carrier = Some(value);
22373 self
22374 }
22375}
22376
22377const MOBILE_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
22378 "device_name",
22379 "client_type",
22380 "ip_address",
22381 "country",
22382 "created",
22383 "updated",
22384 "client_version",
22385 "os_version",
22386 "last_carrier"];
22387impl MobileClientSession {
22388 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22389 map: V,
22390 ) -> Result<MobileClientSession, V::Error> {
22391 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22392 }
22393
22394 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22395 mut map: V,
22396 optional: bool,
22397 ) -> Result<Option<MobileClientSession>, V::Error> {
22398 let mut field_session_id = None;
22399 let mut field_device_name = None;
22400 let mut field_client_type = None;
22401 let mut field_ip_address = None;
22402 let mut field_country = None;
22403 let mut field_created = None;
22404 let mut field_updated = None;
22405 let mut field_client_version = None;
22406 let mut field_os_version = None;
22407 let mut field_last_carrier = None;
22408 let mut nothing = true;
22409 while let Some(key) = map.next_key::<&str>()? {
22410 nothing = false;
22411 match key {
22412 "session_id" => {
22413 if field_session_id.is_some() {
22414 return Err(::serde::de::Error::duplicate_field("session_id"));
22415 }
22416 field_session_id = Some(map.next_value()?);
22417 }
22418 "device_name" => {
22419 if field_device_name.is_some() {
22420 return Err(::serde::de::Error::duplicate_field("device_name"));
22421 }
22422 field_device_name = Some(map.next_value()?);
22423 }
22424 "client_type" => {
22425 if field_client_type.is_some() {
22426 return Err(::serde::de::Error::duplicate_field("client_type"));
22427 }
22428 field_client_type = Some(map.next_value()?);
22429 }
22430 "ip_address" => {
22431 if field_ip_address.is_some() {
22432 return Err(::serde::de::Error::duplicate_field("ip_address"));
22433 }
22434 field_ip_address = Some(map.next_value()?);
22435 }
22436 "country" => {
22437 if field_country.is_some() {
22438 return Err(::serde::de::Error::duplicate_field("country"));
22439 }
22440 field_country = Some(map.next_value()?);
22441 }
22442 "created" => {
22443 if field_created.is_some() {
22444 return Err(::serde::de::Error::duplicate_field("created"));
22445 }
22446 field_created = Some(map.next_value()?);
22447 }
22448 "updated" => {
22449 if field_updated.is_some() {
22450 return Err(::serde::de::Error::duplicate_field("updated"));
22451 }
22452 field_updated = Some(map.next_value()?);
22453 }
22454 "client_version" => {
22455 if field_client_version.is_some() {
22456 return Err(::serde::de::Error::duplicate_field("client_version"));
22457 }
22458 field_client_version = Some(map.next_value()?);
22459 }
22460 "os_version" => {
22461 if field_os_version.is_some() {
22462 return Err(::serde::de::Error::duplicate_field("os_version"));
22463 }
22464 field_os_version = Some(map.next_value()?);
22465 }
22466 "last_carrier" => {
22467 if field_last_carrier.is_some() {
22468 return Err(::serde::de::Error::duplicate_field("last_carrier"));
22469 }
22470 field_last_carrier = Some(map.next_value()?);
22471 }
22472 _ => {
22473 map.next_value::<::serde_json::Value>()?;
22475 }
22476 }
22477 }
22478 if optional && nothing {
22479 return Ok(None);
22480 }
22481 let result = MobileClientSession {
22482 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
22483 device_name: field_device_name.ok_or_else(|| ::serde::de::Error::missing_field("device_name"))?,
22484 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
22485 ip_address: field_ip_address.and_then(Option::flatten),
22486 country: field_country.and_then(Option::flatten),
22487 created: field_created.and_then(Option::flatten),
22488 updated: field_updated.and_then(Option::flatten),
22489 client_version: field_client_version.and_then(Option::flatten),
22490 os_version: field_os_version.and_then(Option::flatten),
22491 last_carrier: field_last_carrier.and_then(Option::flatten),
22492 };
22493 Ok(Some(result))
22494 }
22495
22496 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22497 &self,
22498 s: &mut S::SerializeStruct,
22499 ) -> Result<(), S::Error> {
22500 use serde::ser::SerializeStruct;
22501 s.serialize_field("session_id", &self.session_id)?;
22502 s.serialize_field("device_name", &self.device_name)?;
22503 s.serialize_field("client_type", &self.client_type)?;
22504 if let Some(val) = &self.ip_address {
22505 s.serialize_field("ip_address", val)?;
22506 }
22507 if let Some(val) = &self.country {
22508 s.serialize_field("country", val)?;
22509 }
22510 if let Some(val) = &self.created {
22511 s.serialize_field("created", val)?;
22512 }
22513 if let Some(val) = &self.updated {
22514 s.serialize_field("updated", val)?;
22515 }
22516 if let Some(val) = &self.client_version {
22517 s.serialize_field("client_version", val)?;
22518 }
22519 if let Some(val) = &self.os_version {
22520 s.serialize_field("os_version", val)?;
22521 }
22522 if let Some(val) = &self.last_carrier {
22523 s.serialize_field("last_carrier", val)?;
22524 }
22525 Ok(())
22526 }
22527}
22528
22529impl<'de> ::serde::de::Deserialize<'de> for MobileClientSession {
22530 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22531 use serde::de::{MapAccess, Visitor};
22533 struct StructVisitor;
22534 impl<'de> Visitor<'de> for StructVisitor {
22535 type Value = MobileClientSession;
22536 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22537 f.write_str("a MobileClientSession struct")
22538 }
22539 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22540 MobileClientSession::internal_deserialize(map)
22541 }
22542 }
22543 deserializer.deserialize_struct("MobileClientSession", MOBILE_CLIENT_SESSION_FIELDS, StructVisitor)
22544 }
22545}
22546
22547impl ::serde::ser::Serialize for MobileClientSession {
22548 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22549 use serde::ser::SerializeStruct;
22551 let mut s = serializer.serialize_struct("MobileClientSession", 10)?;
22552 self.internal_serialize::<S>(&mut s)?;
22553 s.end()
22554 }
22555}
22556
22557impl From<MobileClientSession> for DeviceSession {
22559 fn from(subtype: MobileClientSession) -> Self {
22560 Self {
22561 session_id: subtype.session_id,
22562 ip_address: subtype.ip_address,
22563 country: subtype.country,
22564 created: subtype.created,
22565 updated: subtype.updated,
22566 }
22567 }
22568}
22569#[derive(Debug, Clone, PartialEq, Eq)]
22571#[non_exhaustive] pub struct NamespaceMetadata {
22573 pub name: String,
22575 pub namespace_id: crate::types::common::SharedFolderId,
22577 pub namespace_type: NamespaceType,
22579 pub team_member_id: Option<crate::types::team_common::TeamMemberId>,
22582 pub quota_limit: i64,
22584}
22585
22586impl NamespaceMetadata {
22587 pub fn new(
22588 name: String,
22589 namespace_id: crate::types::common::SharedFolderId,
22590 namespace_type: NamespaceType,
22591 ) -> Self {
22592 NamespaceMetadata {
22593 name,
22594 namespace_id,
22595 namespace_type,
22596 team_member_id: None,
22597 quota_limit: 0,
22598 }
22599 }
22600
22601 pub fn with_team_member_id(mut self, value: crate::types::team_common::TeamMemberId) -> Self {
22602 self.team_member_id = Some(value);
22603 self
22604 }
22605
22606 pub fn with_quota_limit(mut self, value: i64) -> Self {
22607 self.quota_limit = value;
22608 self
22609 }
22610}
22611
22612const NAMESPACE_METADATA_FIELDS: &[&str] = &["name",
22613 "namespace_id",
22614 "namespace_type",
22615 "team_member_id",
22616 "quota_limit"];
22617impl NamespaceMetadata {
22618 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22619 map: V,
22620 ) -> Result<NamespaceMetadata, V::Error> {
22621 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22622 }
22623
22624 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22625 mut map: V,
22626 optional: bool,
22627 ) -> Result<Option<NamespaceMetadata>, V::Error> {
22628 let mut field_name = None;
22629 let mut field_namespace_id = None;
22630 let mut field_namespace_type = None;
22631 let mut field_team_member_id = None;
22632 let mut field_quota_limit = None;
22633 let mut nothing = true;
22634 while let Some(key) = map.next_key::<&str>()? {
22635 nothing = false;
22636 match key {
22637 "name" => {
22638 if field_name.is_some() {
22639 return Err(::serde::de::Error::duplicate_field("name"));
22640 }
22641 field_name = Some(map.next_value()?);
22642 }
22643 "namespace_id" => {
22644 if field_namespace_id.is_some() {
22645 return Err(::serde::de::Error::duplicate_field("namespace_id"));
22646 }
22647 field_namespace_id = Some(map.next_value()?);
22648 }
22649 "namespace_type" => {
22650 if field_namespace_type.is_some() {
22651 return Err(::serde::de::Error::duplicate_field("namespace_type"));
22652 }
22653 field_namespace_type = Some(map.next_value()?);
22654 }
22655 "team_member_id" => {
22656 if field_team_member_id.is_some() {
22657 return Err(::serde::de::Error::duplicate_field("team_member_id"));
22658 }
22659 field_team_member_id = Some(map.next_value()?);
22660 }
22661 "quota_limit" => {
22662 if field_quota_limit.is_some() {
22663 return Err(::serde::de::Error::duplicate_field("quota_limit"));
22664 }
22665 field_quota_limit = Some(map.next_value()?);
22666 }
22667 _ => {
22668 map.next_value::<::serde_json::Value>()?;
22670 }
22671 }
22672 }
22673 if optional && nothing {
22674 return Ok(None);
22675 }
22676 let result = NamespaceMetadata {
22677 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
22678 namespace_id: field_namespace_id.ok_or_else(|| ::serde::de::Error::missing_field("namespace_id"))?,
22679 namespace_type: field_namespace_type.ok_or_else(|| ::serde::de::Error::missing_field("namespace_type"))?,
22680 team_member_id: field_team_member_id.and_then(Option::flatten),
22681 quota_limit: field_quota_limit.unwrap_or(0),
22682 };
22683 Ok(Some(result))
22684 }
22685
22686 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22687 &self,
22688 s: &mut S::SerializeStruct,
22689 ) -> Result<(), S::Error> {
22690 use serde::ser::SerializeStruct;
22691 s.serialize_field("name", &self.name)?;
22692 s.serialize_field("namespace_id", &self.namespace_id)?;
22693 s.serialize_field("namespace_type", &self.namespace_type)?;
22694 if let Some(val) = &self.team_member_id {
22695 s.serialize_field("team_member_id", val)?;
22696 }
22697 if self.quota_limit != 0 {
22698 s.serialize_field("quota_limit", &self.quota_limit)?;
22699 }
22700 Ok(())
22701 }
22702}
22703
22704impl<'de> ::serde::de::Deserialize<'de> for NamespaceMetadata {
22705 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22706 use serde::de::{MapAccess, Visitor};
22708 struct StructVisitor;
22709 impl<'de> Visitor<'de> for StructVisitor {
22710 type Value = NamespaceMetadata;
22711 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22712 f.write_str("a NamespaceMetadata struct")
22713 }
22714 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22715 NamespaceMetadata::internal_deserialize(map)
22716 }
22717 }
22718 deserializer.deserialize_struct("NamespaceMetadata", NAMESPACE_METADATA_FIELDS, StructVisitor)
22719 }
22720}
22721
22722impl ::serde::ser::Serialize for NamespaceMetadata {
22723 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22724 use serde::ser::SerializeStruct;
22726 let mut s = serializer.serialize_struct("NamespaceMetadata", 5)?;
22727 self.internal_serialize::<S>(&mut s)?;
22728 s.end()
22729 }
22730}
22731
22732#[derive(Debug, Clone, PartialEq, Eq)]
22733#[non_exhaustive] pub enum NamespaceType {
22735 AppFolder,
22737 SharedFolder,
22739 TeamFolder,
22741 TeamMemberFolder,
22743 TeamMemberRoot,
22745 Other,
22748}
22749
22750impl<'de> ::serde::de::Deserialize<'de> for NamespaceType {
22751 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22752 use serde::de::{self, MapAccess, Visitor};
22754 struct EnumVisitor;
22755 impl<'de> Visitor<'de> for EnumVisitor {
22756 type Value = NamespaceType;
22757 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22758 f.write_str("a NamespaceType structure")
22759 }
22760 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22761 let tag: &str = match map.next_key()? {
22762 Some(".tag") => map.next_value()?,
22763 _ => return Err(de::Error::missing_field(".tag"))
22764 };
22765 let value = match tag {
22766 "app_folder" => NamespaceType::AppFolder,
22767 "shared_folder" => NamespaceType::SharedFolder,
22768 "team_folder" => NamespaceType::TeamFolder,
22769 "team_member_folder" => NamespaceType::TeamMemberFolder,
22770 "team_member_root" => NamespaceType::TeamMemberRoot,
22771 _ => NamespaceType::Other,
22772 };
22773 crate::eat_json_fields(&mut map)?;
22774 Ok(value)
22775 }
22776 }
22777 const VARIANTS: &[&str] = &["app_folder",
22778 "shared_folder",
22779 "team_folder",
22780 "team_member_folder",
22781 "team_member_root",
22782 "other"];
22783 deserializer.deserialize_struct("NamespaceType", VARIANTS, EnumVisitor)
22784 }
22785}
22786
22787impl ::serde::ser::Serialize for NamespaceType {
22788 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22789 use serde::ser::SerializeStruct;
22791 match self {
22792 NamespaceType::AppFolder => {
22793 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
22795 s.serialize_field(".tag", "app_folder")?;
22796 s.end()
22797 }
22798 NamespaceType::SharedFolder => {
22799 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
22801 s.serialize_field(".tag", "shared_folder")?;
22802 s.end()
22803 }
22804 NamespaceType::TeamFolder => {
22805 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
22807 s.serialize_field(".tag", "team_folder")?;
22808 s.end()
22809 }
22810 NamespaceType::TeamMemberFolder => {
22811 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
22813 s.serialize_field(".tag", "team_member_folder")?;
22814 s.end()
22815 }
22816 NamespaceType::TeamMemberRoot => {
22817 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
22819 s.serialize_field(".tag", "team_member_root")?;
22820 s.end()
22821 }
22822 NamespaceType::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22823 }
22824 }
22825}
22826
22827#[derive(Debug, Clone, PartialEq, Eq)]
22829#[non_exhaustive] pub enum RemoveCustomQuotaResult {
22831 Success(UserSelectorArg),
22833 InvalidUser(UserSelectorArg),
22835 Other,
22838}
22839
22840impl<'de> ::serde::de::Deserialize<'de> for RemoveCustomQuotaResult {
22841 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22842 use serde::de::{self, MapAccess, Visitor};
22844 struct EnumVisitor;
22845 impl<'de> Visitor<'de> for EnumVisitor {
22846 type Value = RemoveCustomQuotaResult;
22847 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22848 f.write_str("a RemoveCustomQuotaResult structure")
22849 }
22850 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22851 let tag: &str = match map.next_key()? {
22852 Some(".tag") => map.next_value()?,
22853 _ => return Err(de::Error::missing_field(".tag"))
22854 };
22855 let value = match tag {
22856 "success" => {
22857 match map.next_key()? {
22858 Some("success") => RemoveCustomQuotaResult::Success(map.next_value()?),
22859 None => return Err(de::Error::missing_field("success")),
22860 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22861 }
22862 }
22863 "invalid_user" => {
22864 match map.next_key()? {
22865 Some("invalid_user") => RemoveCustomQuotaResult::InvalidUser(map.next_value()?),
22866 None => return Err(de::Error::missing_field("invalid_user")),
22867 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22868 }
22869 }
22870 _ => RemoveCustomQuotaResult::Other,
22871 };
22872 crate::eat_json_fields(&mut map)?;
22873 Ok(value)
22874 }
22875 }
22876 const VARIANTS: &[&str] = &["success",
22877 "invalid_user",
22878 "other"];
22879 deserializer.deserialize_struct("RemoveCustomQuotaResult", VARIANTS, EnumVisitor)
22880 }
22881}
22882
22883impl ::serde::ser::Serialize for RemoveCustomQuotaResult {
22884 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22885 use serde::ser::SerializeStruct;
22887 match self {
22888 RemoveCustomQuotaResult::Success(x) => {
22889 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
22891 s.serialize_field(".tag", "success")?;
22892 s.serialize_field("success", x)?;
22893 s.end()
22894 }
22895 RemoveCustomQuotaResult::InvalidUser(x) => {
22896 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
22898 s.serialize_field(".tag", "invalid_user")?;
22899 s.serialize_field("invalid_user", x)?;
22900 s.end()
22901 }
22902 RemoveCustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22903 }
22904 }
22905}
22906
22907#[derive(Debug, Clone, PartialEq, Eq)]
22908#[non_exhaustive] pub struct RemovedStatus {
22910 pub is_recoverable: bool,
22912 pub is_disconnected: bool,
22914}
22915
22916impl RemovedStatus {
22917 pub fn new(is_recoverable: bool, is_disconnected: bool) -> Self {
22918 RemovedStatus {
22919 is_recoverable,
22920 is_disconnected,
22921 }
22922 }
22923}
22924
22925const REMOVED_STATUS_FIELDS: &[&str] = &["is_recoverable",
22926 "is_disconnected"];
22927impl RemovedStatus {
22928 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22929 map: V,
22930 ) -> Result<RemovedStatus, V::Error> {
22931 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22932 }
22933
22934 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22935 mut map: V,
22936 optional: bool,
22937 ) -> Result<Option<RemovedStatus>, V::Error> {
22938 let mut field_is_recoverable = None;
22939 let mut field_is_disconnected = None;
22940 let mut nothing = true;
22941 while let Some(key) = map.next_key::<&str>()? {
22942 nothing = false;
22943 match key {
22944 "is_recoverable" => {
22945 if field_is_recoverable.is_some() {
22946 return Err(::serde::de::Error::duplicate_field("is_recoverable"));
22947 }
22948 field_is_recoverable = Some(map.next_value()?);
22949 }
22950 "is_disconnected" => {
22951 if field_is_disconnected.is_some() {
22952 return Err(::serde::de::Error::duplicate_field("is_disconnected"));
22953 }
22954 field_is_disconnected = Some(map.next_value()?);
22955 }
22956 _ => {
22957 map.next_value::<::serde_json::Value>()?;
22959 }
22960 }
22961 }
22962 if optional && nothing {
22963 return Ok(None);
22964 }
22965 let result = RemovedStatus {
22966 is_recoverable: field_is_recoverable.ok_or_else(|| ::serde::de::Error::missing_field("is_recoverable"))?,
22967 is_disconnected: field_is_disconnected.ok_or_else(|| ::serde::de::Error::missing_field("is_disconnected"))?,
22968 };
22969 Ok(Some(result))
22970 }
22971
22972 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22973 &self,
22974 s: &mut S::SerializeStruct,
22975 ) -> Result<(), S::Error> {
22976 use serde::ser::SerializeStruct;
22977 s.serialize_field("is_recoverable", &self.is_recoverable)?;
22978 s.serialize_field("is_disconnected", &self.is_disconnected)?;
22979 Ok(())
22980 }
22981}
22982
22983impl<'de> ::serde::de::Deserialize<'de> for RemovedStatus {
22984 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22985 use serde::de::{MapAccess, Visitor};
22987 struct StructVisitor;
22988 impl<'de> Visitor<'de> for StructVisitor {
22989 type Value = RemovedStatus;
22990 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22991 f.write_str("a RemovedStatus struct")
22992 }
22993 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22994 RemovedStatus::internal_deserialize(map)
22995 }
22996 }
22997 deserializer.deserialize_struct("RemovedStatus", REMOVED_STATUS_FIELDS, StructVisitor)
22998 }
22999}
23000
23001impl ::serde::ser::Serialize for RemovedStatus {
23002 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23003 use serde::ser::SerializeStruct;
23005 let mut s = serializer.serialize_struct("RemovedStatus", 2)?;
23006 self.internal_serialize::<S>(&mut s)?;
23007 s.end()
23008 }
23009}
23010
23011#[derive(Debug, Clone, PartialEq, Eq)]
23015#[non_exhaustive] pub enum ResendSecondaryEmailResult {
23017 Success(crate::types::common::EmailAddress),
23019 NotPending(crate::types::common::EmailAddress),
23021 RateLimited(crate::types::common::EmailAddress),
23023 Other,
23026}
23027
23028impl<'de> ::serde::de::Deserialize<'de> for ResendSecondaryEmailResult {
23029 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23030 use serde::de::{self, MapAccess, Visitor};
23032 struct EnumVisitor;
23033 impl<'de> Visitor<'de> for EnumVisitor {
23034 type Value = ResendSecondaryEmailResult;
23035 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23036 f.write_str("a ResendSecondaryEmailResult structure")
23037 }
23038 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23039 let tag: &str = match map.next_key()? {
23040 Some(".tag") => map.next_value()?,
23041 _ => return Err(de::Error::missing_field(".tag"))
23042 };
23043 let value = match tag {
23044 "success" => {
23045 match map.next_key()? {
23046 Some("success") => ResendSecondaryEmailResult::Success(map.next_value()?),
23047 None => return Err(de::Error::missing_field("success")),
23048 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23049 }
23050 }
23051 "not_pending" => {
23052 match map.next_key()? {
23053 Some("not_pending") => ResendSecondaryEmailResult::NotPending(map.next_value()?),
23054 None => return Err(de::Error::missing_field("not_pending")),
23055 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23056 }
23057 }
23058 "rate_limited" => {
23059 match map.next_key()? {
23060 Some("rate_limited") => ResendSecondaryEmailResult::RateLimited(map.next_value()?),
23061 None => return Err(de::Error::missing_field("rate_limited")),
23062 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23063 }
23064 }
23065 _ => ResendSecondaryEmailResult::Other,
23066 };
23067 crate::eat_json_fields(&mut map)?;
23068 Ok(value)
23069 }
23070 }
23071 const VARIANTS: &[&str] = &["success",
23072 "not_pending",
23073 "rate_limited",
23074 "other"];
23075 deserializer.deserialize_struct("ResendSecondaryEmailResult", VARIANTS, EnumVisitor)
23076 }
23077}
23078
23079impl ::serde::ser::Serialize for ResendSecondaryEmailResult {
23080 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23081 use serde::ser::SerializeStruct;
23083 match self {
23084 ResendSecondaryEmailResult::Success(x) => {
23085 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
23087 s.serialize_field(".tag", "success")?;
23088 s.serialize_field("success", x)?;
23089 s.end()
23090 }
23091 ResendSecondaryEmailResult::NotPending(x) => {
23092 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
23094 s.serialize_field(".tag", "not_pending")?;
23095 s.serialize_field("not_pending", x)?;
23096 s.end()
23097 }
23098 ResendSecondaryEmailResult::RateLimited(x) => {
23099 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
23101 s.serialize_field(".tag", "rate_limited")?;
23102 s.serialize_field("rate_limited", x)?;
23103 s.end()
23104 }
23105 ResendSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23106 }
23107 }
23108}
23109
23110#[derive(Debug, Clone, PartialEq, Eq)]
23111#[non_exhaustive] pub struct ResendVerificationEmailArg {
23113 pub emails_to_resend: Vec<UserSecondaryEmailsArg>,
23115}
23116
23117impl ResendVerificationEmailArg {
23118 pub fn new(emails_to_resend: Vec<UserSecondaryEmailsArg>) -> Self {
23119 ResendVerificationEmailArg {
23120 emails_to_resend,
23121 }
23122 }
23123}
23124
23125const RESEND_VERIFICATION_EMAIL_ARG_FIELDS: &[&str] = &["emails_to_resend"];
23126impl ResendVerificationEmailArg {
23127 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23128 map: V,
23129 ) -> Result<ResendVerificationEmailArg, V::Error> {
23130 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23131 }
23132
23133 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23134 mut map: V,
23135 optional: bool,
23136 ) -> Result<Option<ResendVerificationEmailArg>, V::Error> {
23137 let mut field_emails_to_resend = None;
23138 let mut nothing = true;
23139 while let Some(key) = map.next_key::<&str>()? {
23140 nothing = false;
23141 match key {
23142 "emails_to_resend" => {
23143 if field_emails_to_resend.is_some() {
23144 return Err(::serde::de::Error::duplicate_field("emails_to_resend"));
23145 }
23146 field_emails_to_resend = Some(map.next_value()?);
23147 }
23148 _ => {
23149 map.next_value::<::serde_json::Value>()?;
23151 }
23152 }
23153 }
23154 if optional && nothing {
23155 return Ok(None);
23156 }
23157 let result = ResendVerificationEmailArg {
23158 emails_to_resend: field_emails_to_resend.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_resend"))?,
23159 };
23160 Ok(Some(result))
23161 }
23162
23163 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23164 &self,
23165 s: &mut S::SerializeStruct,
23166 ) -> Result<(), S::Error> {
23167 use serde::ser::SerializeStruct;
23168 s.serialize_field("emails_to_resend", &self.emails_to_resend)?;
23169 Ok(())
23170 }
23171}
23172
23173impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailArg {
23174 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23175 use serde::de::{MapAccess, Visitor};
23177 struct StructVisitor;
23178 impl<'de> Visitor<'de> for StructVisitor {
23179 type Value = ResendVerificationEmailArg;
23180 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23181 f.write_str("a ResendVerificationEmailArg struct")
23182 }
23183 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23184 ResendVerificationEmailArg::internal_deserialize(map)
23185 }
23186 }
23187 deserializer.deserialize_struct("ResendVerificationEmailArg", RESEND_VERIFICATION_EMAIL_ARG_FIELDS, StructVisitor)
23188 }
23189}
23190
23191impl ::serde::ser::Serialize for ResendVerificationEmailArg {
23192 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23193 use serde::ser::SerializeStruct;
23195 let mut s = serializer.serialize_struct("ResendVerificationEmailArg", 1)?;
23196 self.internal_serialize::<S>(&mut s)?;
23197 s.end()
23198 }
23199}
23200
23201#[derive(Debug, Clone, PartialEq, Eq)]
23203#[non_exhaustive] pub struct ResendVerificationEmailResult {
23205 pub results: Vec<UserResendResult>,
23206}
23207
23208impl ResendVerificationEmailResult {
23209 pub fn new(results: Vec<UserResendResult>) -> Self {
23210 ResendVerificationEmailResult {
23211 results,
23212 }
23213 }
23214}
23215
23216const RESEND_VERIFICATION_EMAIL_RESULT_FIELDS: &[&str] = &["results"];
23217impl ResendVerificationEmailResult {
23218 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23219 map: V,
23220 ) -> Result<ResendVerificationEmailResult, V::Error> {
23221 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23222 }
23223
23224 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23225 mut map: V,
23226 optional: bool,
23227 ) -> Result<Option<ResendVerificationEmailResult>, V::Error> {
23228 let mut field_results = None;
23229 let mut nothing = true;
23230 while let Some(key) = map.next_key::<&str>()? {
23231 nothing = false;
23232 match key {
23233 "results" => {
23234 if field_results.is_some() {
23235 return Err(::serde::de::Error::duplicate_field("results"));
23236 }
23237 field_results = Some(map.next_value()?);
23238 }
23239 _ => {
23240 map.next_value::<::serde_json::Value>()?;
23242 }
23243 }
23244 }
23245 if optional && nothing {
23246 return Ok(None);
23247 }
23248 let result = ResendVerificationEmailResult {
23249 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
23250 };
23251 Ok(Some(result))
23252 }
23253
23254 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23255 &self,
23256 s: &mut S::SerializeStruct,
23257 ) -> Result<(), S::Error> {
23258 use serde::ser::SerializeStruct;
23259 s.serialize_field("results", &self.results)?;
23260 Ok(())
23261 }
23262}
23263
23264impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailResult {
23265 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23266 use serde::de::{MapAccess, Visitor};
23268 struct StructVisitor;
23269 impl<'de> Visitor<'de> for StructVisitor {
23270 type Value = ResendVerificationEmailResult;
23271 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23272 f.write_str("a ResendVerificationEmailResult struct")
23273 }
23274 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23275 ResendVerificationEmailResult::internal_deserialize(map)
23276 }
23277 }
23278 deserializer.deserialize_struct("ResendVerificationEmailResult", RESEND_VERIFICATION_EMAIL_RESULT_FIELDS, StructVisitor)
23279 }
23280}
23281
23282impl ::serde::ser::Serialize for ResendVerificationEmailResult {
23283 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23284 use serde::ser::SerializeStruct;
23286 let mut s = serializer.serialize_struct("ResendVerificationEmailResult", 1)?;
23287 self.internal_serialize::<S>(&mut s)?;
23288 s.end()
23289 }
23290}
23291
23292#[derive(Debug, Clone, PartialEq, Eq)]
23293#[non_exhaustive] pub struct RevokeDesktopClientArg {
23295 pub session_id: String,
23297 pub team_member_id: String,
23299 pub delete_on_unlink: bool,
23302}
23303
23304impl RevokeDesktopClientArg {
23305 pub fn new(session_id: String, team_member_id: String) -> Self {
23306 RevokeDesktopClientArg {
23307 session_id,
23308 team_member_id,
23309 delete_on_unlink: false,
23310 }
23311 }
23312
23313 pub fn with_delete_on_unlink(mut self, value: bool) -> Self {
23314 self.delete_on_unlink = value;
23315 self
23316 }
23317}
23318
23319const REVOKE_DESKTOP_CLIENT_ARG_FIELDS: &[&str] = &["session_id",
23320 "team_member_id",
23321 "delete_on_unlink"];
23322impl RevokeDesktopClientArg {
23323 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23324 map: V,
23325 ) -> Result<RevokeDesktopClientArg, V::Error> {
23326 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23327 }
23328
23329 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23330 mut map: V,
23331 optional: bool,
23332 ) -> Result<Option<RevokeDesktopClientArg>, V::Error> {
23333 let mut field_session_id = None;
23334 let mut field_team_member_id = None;
23335 let mut field_delete_on_unlink = None;
23336 let mut nothing = true;
23337 while let Some(key) = map.next_key::<&str>()? {
23338 nothing = false;
23339 match key {
23340 "session_id" => {
23341 if field_session_id.is_some() {
23342 return Err(::serde::de::Error::duplicate_field("session_id"));
23343 }
23344 field_session_id = Some(map.next_value()?);
23345 }
23346 "team_member_id" => {
23347 if field_team_member_id.is_some() {
23348 return Err(::serde::de::Error::duplicate_field("team_member_id"));
23349 }
23350 field_team_member_id = Some(map.next_value()?);
23351 }
23352 "delete_on_unlink" => {
23353 if field_delete_on_unlink.is_some() {
23354 return Err(::serde::de::Error::duplicate_field("delete_on_unlink"));
23355 }
23356 field_delete_on_unlink = Some(map.next_value()?);
23357 }
23358 _ => {
23359 map.next_value::<::serde_json::Value>()?;
23361 }
23362 }
23363 }
23364 if optional && nothing {
23365 return Ok(None);
23366 }
23367 let result = RevokeDesktopClientArg {
23368 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
23369 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
23370 delete_on_unlink: field_delete_on_unlink.unwrap_or(false),
23371 };
23372 Ok(Some(result))
23373 }
23374
23375 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23376 &self,
23377 s: &mut S::SerializeStruct,
23378 ) -> Result<(), S::Error> {
23379 use serde::ser::SerializeStruct;
23380 s.serialize_field("session_id", &self.session_id)?;
23381 s.serialize_field("team_member_id", &self.team_member_id)?;
23382 if self.delete_on_unlink {
23383 s.serialize_field("delete_on_unlink", &self.delete_on_unlink)?;
23384 }
23385 Ok(())
23386 }
23387}
23388
23389impl<'de> ::serde::de::Deserialize<'de> for RevokeDesktopClientArg {
23390 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23391 use serde::de::{MapAccess, Visitor};
23393 struct StructVisitor;
23394 impl<'de> Visitor<'de> for StructVisitor {
23395 type Value = RevokeDesktopClientArg;
23396 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23397 f.write_str("a RevokeDesktopClientArg struct")
23398 }
23399 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23400 RevokeDesktopClientArg::internal_deserialize(map)
23401 }
23402 }
23403 deserializer.deserialize_struct("RevokeDesktopClientArg", REVOKE_DESKTOP_CLIENT_ARG_FIELDS, StructVisitor)
23404 }
23405}
23406
23407impl ::serde::ser::Serialize for RevokeDesktopClientArg {
23408 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23409 use serde::ser::SerializeStruct;
23411 let mut s = serializer.serialize_struct("RevokeDesktopClientArg", 3)?;
23412 self.internal_serialize::<S>(&mut s)?;
23413 s.end()
23414 }
23415}
23416
23417impl From<RevokeDesktopClientArg> for DeviceSessionArg {
23419 fn from(subtype: RevokeDesktopClientArg) -> Self {
23420 Self {
23421 session_id: subtype.session_id,
23422 team_member_id: subtype.team_member_id,
23423 }
23424 }
23425}
23426#[derive(Debug, Clone, PartialEq, Eq)]
23427pub enum RevokeDeviceSessionArg {
23428 WebSession(DeviceSessionArg),
23430 DesktopClient(RevokeDesktopClientArg),
23432 MobileClient(DeviceSessionArg),
23434}
23435
23436impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionArg {
23437 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23438 use serde::de::{self, MapAccess, Visitor};
23440 struct EnumVisitor;
23441 impl<'de> Visitor<'de> for EnumVisitor {
23442 type Value = RevokeDeviceSessionArg;
23443 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23444 f.write_str("a RevokeDeviceSessionArg structure")
23445 }
23446 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23447 let tag: &str = match map.next_key()? {
23448 Some(".tag") => map.next_value()?,
23449 _ => return Err(de::Error::missing_field(".tag"))
23450 };
23451 let value = match tag {
23452 "web_session" => RevokeDeviceSessionArg::WebSession(DeviceSessionArg::internal_deserialize(&mut map)?),
23453 "desktop_client" => RevokeDeviceSessionArg::DesktopClient(RevokeDesktopClientArg::internal_deserialize(&mut map)?),
23454 "mobile_client" => RevokeDeviceSessionArg::MobileClient(DeviceSessionArg::internal_deserialize(&mut map)?),
23455 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
23456 };
23457 crate::eat_json_fields(&mut map)?;
23458 Ok(value)
23459 }
23460 }
23461 const VARIANTS: &[&str] = &["web_session",
23462 "desktop_client",
23463 "mobile_client"];
23464 deserializer.deserialize_struct("RevokeDeviceSessionArg", VARIANTS, EnumVisitor)
23465 }
23466}
23467
23468impl ::serde::ser::Serialize for RevokeDeviceSessionArg {
23469 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23470 use serde::ser::SerializeStruct;
23472 match self {
23473 RevokeDeviceSessionArg::WebSession(x) => {
23474 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
23476 s.serialize_field(".tag", "web_session")?;
23477 x.internal_serialize::<S>(&mut s)?;
23478 s.end()
23479 }
23480 RevokeDeviceSessionArg::DesktopClient(x) => {
23481 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 4)?;
23483 s.serialize_field(".tag", "desktop_client")?;
23484 x.internal_serialize::<S>(&mut s)?;
23485 s.end()
23486 }
23487 RevokeDeviceSessionArg::MobileClient(x) => {
23488 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
23490 s.serialize_field(".tag", "mobile_client")?;
23491 x.internal_serialize::<S>(&mut s)?;
23492 s.end()
23493 }
23494 }
23495 }
23496}
23497
23498#[derive(Debug, Clone, PartialEq, Eq)]
23499#[non_exhaustive] pub struct RevokeDeviceSessionBatchArg {
23501 pub revoke_devices: Vec<RevokeDeviceSessionArg>,
23502}
23503
23504impl RevokeDeviceSessionBatchArg {
23505 pub fn new(revoke_devices: Vec<RevokeDeviceSessionArg>) -> Self {
23506 RevokeDeviceSessionBatchArg {
23507 revoke_devices,
23508 }
23509 }
23510}
23511
23512const REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS: &[&str] = &["revoke_devices"];
23513impl RevokeDeviceSessionBatchArg {
23514 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23515 map: V,
23516 ) -> Result<RevokeDeviceSessionBatchArg, V::Error> {
23517 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23518 }
23519
23520 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23521 mut map: V,
23522 optional: bool,
23523 ) -> Result<Option<RevokeDeviceSessionBatchArg>, V::Error> {
23524 let mut field_revoke_devices = None;
23525 let mut nothing = true;
23526 while let Some(key) = map.next_key::<&str>()? {
23527 nothing = false;
23528 match key {
23529 "revoke_devices" => {
23530 if field_revoke_devices.is_some() {
23531 return Err(::serde::de::Error::duplicate_field("revoke_devices"));
23532 }
23533 field_revoke_devices = Some(map.next_value()?);
23534 }
23535 _ => {
23536 map.next_value::<::serde_json::Value>()?;
23538 }
23539 }
23540 }
23541 if optional && nothing {
23542 return Ok(None);
23543 }
23544 let result = RevokeDeviceSessionBatchArg {
23545 revoke_devices: field_revoke_devices.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices"))?,
23546 };
23547 Ok(Some(result))
23548 }
23549
23550 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23551 &self,
23552 s: &mut S::SerializeStruct,
23553 ) -> Result<(), S::Error> {
23554 use serde::ser::SerializeStruct;
23555 s.serialize_field("revoke_devices", &self.revoke_devices)?;
23556 Ok(())
23557 }
23558}
23559
23560impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchArg {
23561 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23562 use serde::de::{MapAccess, Visitor};
23564 struct StructVisitor;
23565 impl<'de> Visitor<'de> for StructVisitor {
23566 type Value = RevokeDeviceSessionBatchArg;
23567 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23568 f.write_str("a RevokeDeviceSessionBatchArg struct")
23569 }
23570 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23571 RevokeDeviceSessionBatchArg::internal_deserialize(map)
23572 }
23573 }
23574 deserializer.deserialize_struct("RevokeDeviceSessionBatchArg", REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS, StructVisitor)
23575 }
23576}
23577
23578impl ::serde::ser::Serialize for RevokeDeviceSessionBatchArg {
23579 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23580 use serde::ser::SerializeStruct;
23582 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchArg", 1)?;
23583 self.internal_serialize::<S>(&mut s)?;
23584 s.end()
23585 }
23586}
23587
23588
23589#[derive(Debug, Clone, PartialEq, Eq)]
23590#[non_exhaustive] pub enum RevokeDeviceSessionBatchError {
23592 Other,
23595}
23596
23597impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchError {
23598 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23599 use serde::de::{self, MapAccess, Visitor};
23601 struct EnumVisitor;
23602 impl<'de> Visitor<'de> for EnumVisitor {
23603 type Value = RevokeDeviceSessionBatchError;
23604 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23605 f.write_str("a RevokeDeviceSessionBatchError structure")
23606 }
23607 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23608 let tag: &str = match map.next_key()? {
23609 Some(".tag") => map.next_value()?,
23610 _ => return Err(de::Error::missing_field(".tag"))
23611 };
23612 let _ = tag;
23614 crate::eat_json_fields(&mut map)?;
23615 Ok(RevokeDeviceSessionBatchError::Other)
23616 }
23617 }
23618 const VARIANTS: &[&str] = &["other"];
23619 deserializer.deserialize_struct("RevokeDeviceSessionBatchError", VARIANTS, EnumVisitor)
23620 }
23621}
23622
23623impl ::serde::ser::Serialize for RevokeDeviceSessionBatchError {
23624 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23625 #![allow(unused_variables)]
23627 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
23628 }
23629}
23630
23631impl ::std::error::Error for RevokeDeviceSessionBatchError {
23632}
23633
23634impl ::std::fmt::Display for RevokeDeviceSessionBatchError {
23635 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23636 write!(f, "{:?}", *self)
23637 }
23638}
23639
23640#[derive(Debug, Clone, PartialEq, Eq)]
23641#[non_exhaustive] pub struct RevokeDeviceSessionBatchResult {
23643 pub revoke_devices_status: Vec<RevokeDeviceSessionStatus>,
23644}
23645
23646impl RevokeDeviceSessionBatchResult {
23647 pub fn new(revoke_devices_status: Vec<RevokeDeviceSessionStatus>) -> Self {
23648 RevokeDeviceSessionBatchResult {
23649 revoke_devices_status,
23650 }
23651 }
23652}
23653
23654const REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS: &[&str] = &["revoke_devices_status"];
23655impl RevokeDeviceSessionBatchResult {
23656 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23657 map: V,
23658 ) -> Result<RevokeDeviceSessionBatchResult, V::Error> {
23659 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23660 }
23661
23662 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23663 mut map: V,
23664 optional: bool,
23665 ) -> Result<Option<RevokeDeviceSessionBatchResult>, V::Error> {
23666 let mut field_revoke_devices_status = None;
23667 let mut nothing = true;
23668 while let Some(key) = map.next_key::<&str>()? {
23669 nothing = false;
23670 match key {
23671 "revoke_devices_status" => {
23672 if field_revoke_devices_status.is_some() {
23673 return Err(::serde::de::Error::duplicate_field("revoke_devices_status"));
23674 }
23675 field_revoke_devices_status = Some(map.next_value()?);
23676 }
23677 _ => {
23678 map.next_value::<::serde_json::Value>()?;
23680 }
23681 }
23682 }
23683 if optional && nothing {
23684 return Ok(None);
23685 }
23686 let result = RevokeDeviceSessionBatchResult {
23687 revoke_devices_status: field_revoke_devices_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices_status"))?,
23688 };
23689 Ok(Some(result))
23690 }
23691
23692 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23693 &self,
23694 s: &mut S::SerializeStruct,
23695 ) -> Result<(), S::Error> {
23696 use serde::ser::SerializeStruct;
23697 s.serialize_field("revoke_devices_status", &self.revoke_devices_status)?;
23698 Ok(())
23699 }
23700}
23701
23702impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchResult {
23703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23704 use serde::de::{MapAccess, Visitor};
23706 struct StructVisitor;
23707 impl<'de> Visitor<'de> for StructVisitor {
23708 type Value = RevokeDeviceSessionBatchResult;
23709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23710 f.write_str("a RevokeDeviceSessionBatchResult struct")
23711 }
23712 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23713 RevokeDeviceSessionBatchResult::internal_deserialize(map)
23714 }
23715 }
23716 deserializer.deserialize_struct("RevokeDeviceSessionBatchResult", REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS, StructVisitor)
23717 }
23718}
23719
23720impl ::serde::ser::Serialize for RevokeDeviceSessionBatchResult {
23721 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23722 use serde::ser::SerializeStruct;
23724 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchResult", 1)?;
23725 self.internal_serialize::<S>(&mut s)?;
23726 s.end()
23727 }
23728}
23729
23730#[derive(Debug, Clone, PartialEq, Eq)]
23731#[non_exhaustive] pub enum RevokeDeviceSessionError {
23733 DeviceSessionNotFound,
23735 MemberNotFound,
23737 Other,
23740}
23741
23742impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionError {
23743 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23744 use serde::de::{self, MapAccess, Visitor};
23746 struct EnumVisitor;
23747 impl<'de> Visitor<'de> for EnumVisitor {
23748 type Value = RevokeDeviceSessionError;
23749 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23750 f.write_str("a RevokeDeviceSessionError structure")
23751 }
23752 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23753 let tag: &str = match map.next_key()? {
23754 Some(".tag") => map.next_value()?,
23755 _ => return Err(de::Error::missing_field(".tag"))
23756 };
23757 let value = match tag {
23758 "device_session_not_found" => RevokeDeviceSessionError::DeviceSessionNotFound,
23759 "member_not_found" => RevokeDeviceSessionError::MemberNotFound,
23760 _ => RevokeDeviceSessionError::Other,
23761 };
23762 crate::eat_json_fields(&mut map)?;
23763 Ok(value)
23764 }
23765 }
23766 const VARIANTS: &[&str] = &["device_session_not_found",
23767 "member_not_found",
23768 "other"];
23769 deserializer.deserialize_struct("RevokeDeviceSessionError", VARIANTS, EnumVisitor)
23770 }
23771}
23772
23773impl ::serde::ser::Serialize for RevokeDeviceSessionError {
23774 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23775 use serde::ser::SerializeStruct;
23777 match self {
23778 RevokeDeviceSessionError::DeviceSessionNotFound => {
23779 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
23781 s.serialize_field(".tag", "device_session_not_found")?;
23782 s.end()
23783 }
23784 RevokeDeviceSessionError::MemberNotFound => {
23785 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
23787 s.serialize_field(".tag", "member_not_found")?;
23788 s.end()
23789 }
23790 RevokeDeviceSessionError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23791 }
23792 }
23793}
23794
23795impl ::std::error::Error for RevokeDeviceSessionError {
23796}
23797
23798impl ::std::fmt::Display for RevokeDeviceSessionError {
23799 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23800 match self {
23801 RevokeDeviceSessionError::DeviceSessionNotFound => f.write_str("Device session not found."),
23802 RevokeDeviceSessionError::MemberNotFound => f.write_str("Member not found."),
23803 _ => write!(f, "{:?}", *self),
23804 }
23805 }
23806}
23807
23808#[derive(Debug, Clone, PartialEq, Eq)]
23809#[non_exhaustive] pub struct RevokeDeviceSessionStatus {
23811 pub success: bool,
23813 pub error_type: Option<RevokeDeviceSessionError>,
23815}
23816
23817impl RevokeDeviceSessionStatus {
23818 pub fn new(success: bool) -> Self {
23819 RevokeDeviceSessionStatus {
23820 success,
23821 error_type: None,
23822 }
23823 }
23824
23825 pub fn with_error_type(mut self, value: RevokeDeviceSessionError) -> Self {
23826 self.error_type = Some(value);
23827 self
23828 }
23829}
23830
23831const REVOKE_DEVICE_SESSION_STATUS_FIELDS: &[&str] = &["success",
23832 "error_type"];
23833impl RevokeDeviceSessionStatus {
23834 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23835 map: V,
23836 ) -> Result<RevokeDeviceSessionStatus, V::Error> {
23837 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23838 }
23839
23840 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23841 mut map: V,
23842 optional: bool,
23843 ) -> Result<Option<RevokeDeviceSessionStatus>, V::Error> {
23844 let mut field_success = None;
23845 let mut field_error_type = None;
23846 let mut nothing = true;
23847 while let Some(key) = map.next_key::<&str>()? {
23848 nothing = false;
23849 match key {
23850 "success" => {
23851 if field_success.is_some() {
23852 return Err(::serde::de::Error::duplicate_field("success"));
23853 }
23854 field_success = Some(map.next_value()?);
23855 }
23856 "error_type" => {
23857 if field_error_type.is_some() {
23858 return Err(::serde::de::Error::duplicate_field("error_type"));
23859 }
23860 field_error_type = Some(map.next_value()?);
23861 }
23862 _ => {
23863 map.next_value::<::serde_json::Value>()?;
23865 }
23866 }
23867 }
23868 if optional && nothing {
23869 return Ok(None);
23870 }
23871 let result = RevokeDeviceSessionStatus {
23872 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
23873 error_type: field_error_type.and_then(Option::flatten),
23874 };
23875 Ok(Some(result))
23876 }
23877
23878 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23879 &self,
23880 s: &mut S::SerializeStruct,
23881 ) -> Result<(), S::Error> {
23882 use serde::ser::SerializeStruct;
23883 s.serialize_field("success", &self.success)?;
23884 if let Some(val) = &self.error_type {
23885 s.serialize_field("error_type", val)?;
23886 }
23887 Ok(())
23888 }
23889}
23890
23891impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionStatus {
23892 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23893 use serde::de::{MapAccess, Visitor};
23895 struct StructVisitor;
23896 impl<'de> Visitor<'de> for StructVisitor {
23897 type Value = RevokeDeviceSessionStatus;
23898 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23899 f.write_str("a RevokeDeviceSessionStatus struct")
23900 }
23901 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23902 RevokeDeviceSessionStatus::internal_deserialize(map)
23903 }
23904 }
23905 deserializer.deserialize_struct("RevokeDeviceSessionStatus", REVOKE_DEVICE_SESSION_STATUS_FIELDS, StructVisitor)
23906 }
23907}
23908
23909impl ::serde::ser::Serialize for RevokeDeviceSessionStatus {
23910 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23911 use serde::ser::SerializeStruct;
23913 let mut s = serializer.serialize_struct("RevokeDeviceSessionStatus", 2)?;
23914 self.internal_serialize::<S>(&mut s)?;
23915 s.end()
23916 }
23917}
23918
23919#[derive(Debug, Clone, PartialEq, Eq)]
23920#[non_exhaustive] pub struct RevokeLinkedApiAppArg {
23922 pub app_id: String,
23924 pub team_member_id: String,
23926 #[deprecated]
23929 pub keep_app_folder: bool,
23930}
23931
23932impl RevokeLinkedApiAppArg {
23933 pub fn new(app_id: String, team_member_id: String) -> Self {
23934 RevokeLinkedApiAppArg {
23935 app_id,
23936 team_member_id,
23937 #[allow(deprecated)] keep_app_folder: true,
23938 }
23939 }
23940
23941 #[deprecated]
23942 #[allow(deprecated)]
23943 pub fn with_keep_app_folder(mut self, value: bool) -> Self {
23944 self.keep_app_folder = value;
23945 self
23946 }
23947}
23948
23949const REVOKE_LINKED_API_APP_ARG_FIELDS: &[&str] = &["app_id",
23950 "team_member_id",
23951 "keep_app_folder"];
23952impl RevokeLinkedApiAppArg {
23953 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23954 map: V,
23955 ) -> Result<RevokeLinkedApiAppArg, V::Error> {
23956 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23957 }
23958
23959 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23960 mut map: V,
23961 optional: bool,
23962 ) -> Result<Option<RevokeLinkedApiAppArg>, V::Error> {
23963 let mut field_app_id = None;
23964 let mut field_team_member_id = None;
23965 let mut field_keep_app_folder = None;
23966 let mut nothing = true;
23967 while let Some(key) = map.next_key::<&str>()? {
23968 nothing = false;
23969 match key {
23970 "app_id" => {
23971 if field_app_id.is_some() {
23972 return Err(::serde::de::Error::duplicate_field("app_id"));
23973 }
23974 field_app_id = Some(map.next_value()?);
23975 }
23976 "team_member_id" => {
23977 if field_team_member_id.is_some() {
23978 return Err(::serde::de::Error::duplicate_field("team_member_id"));
23979 }
23980 field_team_member_id = Some(map.next_value()?);
23981 }
23982 "keep_app_folder" => {
23983 if field_keep_app_folder.is_some() {
23984 return Err(::serde::de::Error::duplicate_field("keep_app_folder"));
23985 }
23986 field_keep_app_folder = Some(map.next_value()?);
23987 }
23988 _ => {
23989 map.next_value::<::serde_json::Value>()?;
23991 }
23992 }
23993 }
23994 if optional && nothing {
23995 return Ok(None);
23996 }
23997 let result = RevokeLinkedApiAppArg {
23998 app_id: field_app_id.ok_or_else(|| ::serde::de::Error::missing_field("app_id"))?,
23999 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
24000 #[allow(deprecated)] keep_app_folder: field_keep_app_folder.unwrap_or(true),
24001 };
24002 Ok(Some(result))
24003 }
24004
24005 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24006 &self,
24007 s: &mut S::SerializeStruct,
24008 ) -> Result<(), S::Error> {
24009 use serde::ser::SerializeStruct;
24010 s.serialize_field("app_id", &self.app_id)?;
24011 s.serialize_field("team_member_id", &self.team_member_id)?;
24012 #[allow(deprecated)]
24013 if !self.keep_app_folder {
24014 s.serialize_field("keep_app_folder", &self.keep_app_folder)?;
24015 }
24016 Ok(())
24017 }
24018}
24019
24020impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppArg {
24021 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24022 use serde::de::{MapAccess, Visitor};
24024 struct StructVisitor;
24025 impl<'de> Visitor<'de> for StructVisitor {
24026 type Value = RevokeLinkedApiAppArg;
24027 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24028 f.write_str("a RevokeLinkedApiAppArg struct")
24029 }
24030 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24031 RevokeLinkedApiAppArg::internal_deserialize(map)
24032 }
24033 }
24034 deserializer.deserialize_struct("RevokeLinkedApiAppArg", REVOKE_LINKED_API_APP_ARG_FIELDS, StructVisitor)
24035 }
24036}
24037
24038impl ::serde::ser::Serialize for RevokeLinkedApiAppArg {
24039 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24040 use serde::ser::SerializeStruct;
24042 let mut s = serializer.serialize_struct("RevokeLinkedApiAppArg", 3)?;
24043 self.internal_serialize::<S>(&mut s)?;
24044 s.end()
24045 }
24046}
24047
24048#[derive(Debug, Clone, PartialEq, Eq)]
24049#[non_exhaustive] pub struct RevokeLinkedApiAppBatchArg {
24051 pub revoke_linked_app: Vec<RevokeLinkedApiAppArg>,
24052}
24053
24054impl RevokeLinkedApiAppBatchArg {
24055 pub fn new(revoke_linked_app: Vec<RevokeLinkedApiAppArg>) -> Self {
24056 RevokeLinkedApiAppBatchArg {
24057 revoke_linked_app,
24058 }
24059 }
24060}
24061
24062const REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS: &[&str] = &["revoke_linked_app"];
24063impl RevokeLinkedApiAppBatchArg {
24064 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24065 map: V,
24066 ) -> Result<RevokeLinkedApiAppBatchArg, V::Error> {
24067 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24068 }
24069
24070 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24071 mut map: V,
24072 optional: bool,
24073 ) -> Result<Option<RevokeLinkedApiAppBatchArg>, V::Error> {
24074 let mut field_revoke_linked_app = None;
24075 let mut nothing = true;
24076 while let Some(key) = map.next_key::<&str>()? {
24077 nothing = false;
24078 match key {
24079 "revoke_linked_app" => {
24080 if field_revoke_linked_app.is_some() {
24081 return Err(::serde::de::Error::duplicate_field("revoke_linked_app"));
24082 }
24083 field_revoke_linked_app = Some(map.next_value()?);
24084 }
24085 _ => {
24086 map.next_value::<::serde_json::Value>()?;
24088 }
24089 }
24090 }
24091 if optional && nothing {
24092 return Ok(None);
24093 }
24094 let result = RevokeLinkedApiAppBatchArg {
24095 revoke_linked_app: field_revoke_linked_app.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app"))?,
24096 };
24097 Ok(Some(result))
24098 }
24099
24100 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24101 &self,
24102 s: &mut S::SerializeStruct,
24103 ) -> Result<(), S::Error> {
24104 use serde::ser::SerializeStruct;
24105 s.serialize_field("revoke_linked_app", &self.revoke_linked_app)?;
24106 Ok(())
24107 }
24108}
24109
24110impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppBatchArg {
24111 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24112 use serde::de::{MapAccess, Visitor};
24114 struct StructVisitor;
24115 impl<'de> Visitor<'de> for StructVisitor {
24116 type Value = RevokeLinkedApiAppBatchArg;
24117 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24118 f.write_str("a RevokeLinkedApiAppBatchArg struct")
24119 }
24120 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24121 RevokeLinkedApiAppBatchArg::internal_deserialize(map)
24122 }
24123 }
24124 deserializer.deserialize_struct("RevokeLinkedApiAppBatchArg", REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS, StructVisitor)
24125 }
24126}
24127
24128impl ::serde::ser::Serialize for RevokeLinkedApiAppBatchArg {
24129 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24130 use serde::ser::SerializeStruct;
24132 let mut s = serializer.serialize_struct("RevokeLinkedApiAppBatchArg", 1)?;
24133 self.internal_serialize::<S>(&mut s)?;
24134 s.end()
24135 }
24136}
24137
24138#[derive(Debug, Clone, PartialEq, Eq)]
24141#[non_exhaustive] pub enum RevokeLinkedAppBatchError {
24143 Other,
24146}
24147
24148impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchError {
24149 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24150 use serde::de::{self, MapAccess, Visitor};
24152 struct EnumVisitor;
24153 impl<'de> Visitor<'de> for EnumVisitor {
24154 type Value = RevokeLinkedAppBatchError;
24155 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24156 f.write_str("a RevokeLinkedAppBatchError structure")
24157 }
24158 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24159 let tag: &str = match map.next_key()? {
24160 Some(".tag") => map.next_value()?,
24161 _ => return Err(de::Error::missing_field(".tag"))
24162 };
24163 let _ = tag;
24165 crate::eat_json_fields(&mut map)?;
24166 Ok(RevokeLinkedAppBatchError::Other)
24167 }
24168 }
24169 const VARIANTS: &[&str] = &["other"];
24170 deserializer.deserialize_struct("RevokeLinkedAppBatchError", VARIANTS, EnumVisitor)
24171 }
24172}
24173
24174impl ::serde::ser::Serialize for RevokeLinkedAppBatchError {
24175 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24176 #![allow(unused_variables)]
24178 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
24179 }
24180}
24181
24182impl ::std::error::Error for RevokeLinkedAppBatchError {
24183}
24184
24185impl ::std::fmt::Display for RevokeLinkedAppBatchError {
24186 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24187 write!(f, "{:?}", *self)
24188 }
24189}
24190
24191#[derive(Debug, Clone, PartialEq, Eq)]
24192#[non_exhaustive] pub struct RevokeLinkedAppBatchResult {
24194 pub revoke_linked_app_status: Vec<RevokeLinkedAppStatus>,
24195}
24196
24197impl RevokeLinkedAppBatchResult {
24198 pub fn new(revoke_linked_app_status: Vec<RevokeLinkedAppStatus>) -> Self {
24199 RevokeLinkedAppBatchResult {
24200 revoke_linked_app_status,
24201 }
24202 }
24203}
24204
24205const REVOKE_LINKED_APP_BATCH_RESULT_FIELDS: &[&str] = &["revoke_linked_app_status"];
24206impl RevokeLinkedAppBatchResult {
24207 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24208 map: V,
24209 ) -> Result<RevokeLinkedAppBatchResult, V::Error> {
24210 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24211 }
24212
24213 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24214 mut map: V,
24215 optional: bool,
24216 ) -> Result<Option<RevokeLinkedAppBatchResult>, V::Error> {
24217 let mut field_revoke_linked_app_status = None;
24218 let mut nothing = true;
24219 while let Some(key) = map.next_key::<&str>()? {
24220 nothing = false;
24221 match key {
24222 "revoke_linked_app_status" => {
24223 if field_revoke_linked_app_status.is_some() {
24224 return Err(::serde::de::Error::duplicate_field("revoke_linked_app_status"));
24225 }
24226 field_revoke_linked_app_status = Some(map.next_value()?);
24227 }
24228 _ => {
24229 map.next_value::<::serde_json::Value>()?;
24231 }
24232 }
24233 }
24234 if optional && nothing {
24235 return Ok(None);
24236 }
24237 let result = RevokeLinkedAppBatchResult {
24238 revoke_linked_app_status: field_revoke_linked_app_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app_status"))?,
24239 };
24240 Ok(Some(result))
24241 }
24242
24243 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24244 &self,
24245 s: &mut S::SerializeStruct,
24246 ) -> Result<(), S::Error> {
24247 use serde::ser::SerializeStruct;
24248 s.serialize_field("revoke_linked_app_status", &self.revoke_linked_app_status)?;
24249 Ok(())
24250 }
24251}
24252
24253impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchResult {
24254 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24255 use serde::de::{MapAccess, Visitor};
24257 struct StructVisitor;
24258 impl<'de> Visitor<'de> for StructVisitor {
24259 type Value = RevokeLinkedAppBatchResult;
24260 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24261 f.write_str("a RevokeLinkedAppBatchResult struct")
24262 }
24263 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24264 RevokeLinkedAppBatchResult::internal_deserialize(map)
24265 }
24266 }
24267 deserializer.deserialize_struct("RevokeLinkedAppBatchResult", REVOKE_LINKED_APP_BATCH_RESULT_FIELDS, StructVisitor)
24268 }
24269}
24270
24271impl ::serde::ser::Serialize for RevokeLinkedAppBatchResult {
24272 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24273 use serde::ser::SerializeStruct;
24275 let mut s = serializer.serialize_struct("RevokeLinkedAppBatchResult", 1)?;
24276 self.internal_serialize::<S>(&mut s)?;
24277 s.end()
24278 }
24279}
24280
24281#[derive(Debug, Clone, PartialEq, Eq)]
24284#[non_exhaustive] pub enum RevokeLinkedAppError {
24286 AppNotFound,
24288 MemberNotFound,
24290 AppFolderRemovalNotSupported,
24292 Other,
24295}
24296
24297impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppError {
24298 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24299 use serde::de::{self, MapAccess, Visitor};
24301 struct EnumVisitor;
24302 impl<'de> Visitor<'de> for EnumVisitor {
24303 type Value = RevokeLinkedAppError;
24304 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24305 f.write_str("a RevokeLinkedAppError structure")
24306 }
24307 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24308 let tag: &str = match map.next_key()? {
24309 Some(".tag") => map.next_value()?,
24310 _ => return Err(de::Error::missing_field(".tag"))
24311 };
24312 let value = match tag {
24313 "app_not_found" => RevokeLinkedAppError::AppNotFound,
24314 "member_not_found" => RevokeLinkedAppError::MemberNotFound,
24315 "app_folder_removal_not_supported" => RevokeLinkedAppError::AppFolderRemovalNotSupported,
24316 _ => RevokeLinkedAppError::Other,
24317 };
24318 crate::eat_json_fields(&mut map)?;
24319 Ok(value)
24320 }
24321 }
24322 const VARIANTS: &[&str] = &["app_not_found",
24323 "member_not_found",
24324 "app_folder_removal_not_supported",
24325 "other"];
24326 deserializer.deserialize_struct("RevokeLinkedAppError", VARIANTS, EnumVisitor)
24327 }
24328}
24329
24330impl ::serde::ser::Serialize for RevokeLinkedAppError {
24331 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24332 use serde::ser::SerializeStruct;
24334 match self {
24335 RevokeLinkedAppError::AppNotFound => {
24336 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
24338 s.serialize_field(".tag", "app_not_found")?;
24339 s.end()
24340 }
24341 RevokeLinkedAppError::MemberNotFound => {
24342 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
24344 s.serialize_field(".tag", "member_not_found")?;
24345 s.end()
24346 }
24347 RevokeLinkedAppError::AppFolderRemovalNotSupported => {
24348 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
24350 s.serialize_field(".tag", "app_folder_removal_not_supported")?;
24351 s.end()
24352 }
24353 RevokeLinkedAppError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24354 }
24355 }
24356}
24357
24358impl ::std::error::Error for RevokeLinkedAppError {
24359}
24360
24361impl ::std::fmt::Display for RevokeLinkedAppError {
24362 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24363 match self {
24364 RevokeLinkedAppError::AppNotFound => f.write_str("Application not found."),
24365 RevokeLinkedAppError::MemberNotFound => f.write_str("Member not found."),
24366 RevokeLinkedAppError::AppFolderRemovalNotSupported => f.write_str("App folder removal is not supported."),
24367 _ => write!(f, "{:?}", *self),
24368 }
24369 }
24370}
24371
24372#[derive(Debug, Clone, PartialEq, Eq)]
24373#[non_exhaustive] pub struct RevokeLinkedAppStatus {
24375 pub success: bool,
24377 pub error_type: Option<RevokeLinkedAppError>,
24379}
24380
24381impl RevokeLinkedAppStatus {
24382 pub fn new(success: bool) -> Self {
24383 RevokeLinkedAppStatus {
24384 success,
24385 error_type: None,
24386 }
24387 }
24388
24389 pub fn with_error_type(mut self, value: RevokeLinkedAppError) -> Self {
24390 self.error_type = Some(value);
24391 self
24392 }
24393}
24394
24395const REVOKE_LINKED_APP_STATUS_FIELDS: &[&str] = &["success",
24396 "error_type"];
24397impl RevokeLinkedAppStatus {
24398 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24399 map: V,
24400 ) -> Result<RevokeLinkedAppStatus, V::Error> {
24401 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24402 }
24403
24404 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24405 mut map: V,
24406 optional: bool,
24407 ) -> Result<Option<RevokeLinkedAppStatus>, V::Error> {
24408 let mut field_success = None;
24409 let mut field_error_type = None;
24410 let mut nothing = true;
24411 while let Some(key) = map.next_key::<&str>()? {
24412 nothing = false;
24413 match key {
24414 "success" => {
24415 if field_success.is_some() {
24416 return Err(::serde::de::Error::duplicate_field("success"));
24417 }
24418 field_success = Some(map.next_value()?);
24419 }
24420 "error_type" => {
24421 if field_error_type.is_some() {
24422 return Err(::serde::de::Error::duplicate_field("error_type"));
24423 }
24424 field_error_type = Some(map.next_value()?);
24425 }
24426 _ => {
24427 map.next_value::<::serde_json::Value>()?;
24429 }
24430 }
24431 }
24432 if optional && nothing {
24433 return Ok(None);
24434 }
24435 let result = RevokeLinkedAppStatus {
24436 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
24437 error_type: field_error_type.and_then(Option::flatten),
24438 };
24439 Ok(Some(result))
24440 }
24441
24442 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24443 &self,
24444 s: &mut S::SerializeStruct,
24445 ) -> Result<(), S::Error> {
24446 use serde::ser::SerializeStruct;
24447 s.serialize_field("success", &self.success)?;
24448 if let Some(val) = &self.error_type {
24449 s.serialize_field("error_type", val)?;
24450 }
24451 Ok(())
24452 }
24453}
24454
24455impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppStatus {
24456 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24457 use serde::de::{MapAccess, Visitor};
24459 struct StructVisitor;
24460 impl<'de> Visitor<'de> for StructVisitor {
24461 type Value = RevokeLinkedAppStatus;
24462 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24463 f.write_str("a RevokeLinkedAppStatus struct")
24464 }
24465 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24466 RevokeLinkedAppStatus::internal_deserialize(map)
24467 }
24468 }
24469 deserializer.deserialize_struct("RevokeLinkedAppStatus", REVOKE_LINKED_APP_STATUS_FIELDS, StructVisitor)
24470 }
24471}
24472
24473impl ::serde::ser::Serialize for RevokeLinkedAppStatus {
24474 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24475 use serde::ser::SerializeStruct;
24477 let mut s = serializer.serialize_struct("RevokeLinkedAppStatus", 2)?;
24478 self.internal_serialize::<S>(&mut s)?;
24479 s.end()
24480 }
24481}
24482
24483#[derive(Debug, Clone, PartialEq, Eq)]
24484#[non_exhaustive] pub struct SetCustomQuotaArg {
24486 pub users_and_quotas: Vec<UserCustomQuotaArg>,
24488}
24489
24490impl SetCustomQuotaArg {
24491 pub fn new(users_and_quotas: Vec<UserCustomQuotaArg>) -> Self {
24492 SetCustomQuotaArg {
24493 users_and_quotas,
24494 }
24495 }
24496}
24497
24498const SET_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["users_and_quotas"];
24499impl SetCustomQuotaArg {
24500 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24501 map: V,
24502 ) -> Result<SetCustomQuotaArg, V::Error> {
24503 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24504 }
24505
24506 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24507 mut map: V,
24508 optional: bool,
24509 ) -> Result<Option<SetCustomQuotaArg>, V::Error> {
24510 let mut field_users_and_quotas = None;
24511 let mut nothing = true;
24512 while let Some(key) = map.next_key::<&str>()? {
24513 nothing = false;
24514 match key {
24515 "users_and_quotas" => {
24516 if field_users_and_quotas.is_some() {
24517 return Err(::serde::de::Error::duplicate_field("users_and_quotas"));
24518 }
24519 field_users_and_quotas = Some(map.next_value()?);
24520 }
24521 _ => {
24522 map.next_value::<::serde_json::Value>()?;
24524 }
24525 }
24526 }
24527 if optional && nothing {
24528 return Ok(None);
24529 }
24530 let result = SetCustomQuotaArg {
24531 users_and_quotas: field_users_and_quotas.ok_or_else(|| ::serde::de::Error::missing_field("users_and_quotas"))?,
24532 };
24533 Ok(Some(result))
24534 }
24535
24536 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24537 &self,
24538 s: &mut S::SerializeStruct,
24539 ) -> Result<(), S::Error> {
24540 use serde::ser::SerializeStruct;
24541 s.serialize_field("users_and_quotas", &self.users_and_quotas)?;
24542 Ok(())
24543 }
24544}
24545
24546impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaArg {
24547 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24548 use serde::de::{MapAccess, Visitor};
24550 struct StructVisitor;
24551 impl<'de> Visitor<'de> for StructVisitor {
24552 type Value = SetCustomQuotaArg;
24553 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24554 f.write_str("a SetCustomQuotaArg struct")
24555 }
24556 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24557 SetCustomQuotaArg::internal_deserialize(map)
24558 }
24559 }
24560 deserializer.deserialize_struct("SetCustomQuotaArg", SET_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
24561 }
24562}
24563
24564impl ::serde::ser::Serialize for SetCustomQuotaArg {
24565 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24566 use serde::ser::SerializeStruct;
24568 let mut s = serializer.serialize_struct("SetCustomQuotaArg", 1)?;
24569 self.internal_serialize::<S>(&mut s)?;
24570 s.end()
24571 }
24572}
24573
24574#[derive(Debug, Clone, PartialEq, Eq)]
24576#[non_exhaustive] pub enum SetCustomQuotaError {
24578 TooManyUsers,
24580 SomeUsersAreExcluded,
24582 Other,
24585}
24586
24587impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaError {
24588 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24589 use serde::de::{self, MapAccess, Visitor};
24591 struct EnumVisitor;
24592 impl<'de> Visitor<'de> for EnumVisitor {
24593 type Value = SetCustomQuotaError;
24594 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24595 f.write_str("a SetCustomQuotaError structure")
24596 }
24597 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24598 let tag: &str = match map.next_key()? {
24599 Some(".tag") => map.next_value()?,
24600 _ => return Err(de::Error::missing_field(".tag"))
24601 };
24602 let value = match tag {
24603 "too_many_users" => SetCustomQuotaError::TooManyUsers,
24604 "some_users_are_excluded" => SetCustomQuotaError::SomeUsersAreExcluded,
24605 _ => SetCustomQuotaError::Other,
24606 };
24607 crate::eat_json_fields(&mut map)?;
24608 Ok(value)
24609 }
24610 }
24611 const VARIANTS: &[&str] = &["too_many_users",
24612 "other",
24613 "some_users_are_excluded"];
24614 deserializer.deserialize_struct("SetCustomQuotaError", VARIANTS, EnumVisitor)
24615 }
24616}
24617
24618impl ::serde::ser::Serialize for SetCustomQuotaError {
24619 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24620 use serde::ser::SerializeStruct;
24622 match self {
24623 SetCustomQuotaError::TooManyUsers => {
24624 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
24626 s.serialize_field(".tag", "too_many_users")?;
24627 s.end()
24628 }
24629 SetCustomQuotaError::SomeUsersAreExcluded => {
24630 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
24632 s.serialize_field(".tag", "some_users_are_excluded")?;
24633 s.end()
24634 }
24635 SetCustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24636 }
24637 }
24638}
24639
24640impl ::std::error::Error for SetCustomQuotaError {
24641}
24642
24643impl ::std::fmt::Display for SetCustomQuotaError {
24644 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24645 match self {
24646 SetCustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
24647 SetCustomQuotaError::SomeUsersAreExcluded => f.write_str("Some of the users are on the excluded users list and can't have custom quota set."),
24648 _ => write!(f, "{:?}", *self),
24649 }
24650 }
24651}
24652
24653impl From<CustomQuotaError> for SetCustomQuotaError {
24655 fn from(parent: CustomQuotaError) -> Self {
24656 match parent {
24657 CustomQuotaError::TooManyUsers => SetCustomQuotaError::TooManyUsers,
24658 CustomQuotaError::Other => SetCustomQuotaError::Other,
24659 }
24660 }
24661}
24662#[derive(Debug, Clone, PartialEq, Eq, Default)]
24665#[non_exhaustive] pub struct SharingAllowlistAddArgs {
24667 pub domains: Option<Vec<String>>,
24669 pub emails: Option<Vec<String>>,
24671}
24672
24673impl SharingAllowlistAddArgs {
24674 pub fn with_domains(mut self, value: Vec<String>) -> Self {
24675 self.domains = Some(value);
24676 self
24677 }
24678
24679 pub fn with_emails(mut self, value: Vec<String>) -> Self {
24680 self.emails = Some(value);
24681 self
24682 }
24683}
24684
24685const SHARING_ALLOWLIST_ADD_ARGS_FIELDS: &[&str] = &["domains",
24686 "emails"];
24687impl SharingAllowlistAddArgs {
24688 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24690 mut map: V,
24691 ) -> Result<SharingAllowlistAddArgs, V::Error> {
24692 let mut field_domains = None;
24693 let mut field_emails = None;
24694 while let Some(key) = map.next_key::<&str>()? {
24695 match key {
24696 "domains" => {
24697 if field_domains.is_some() {
24698 return Err(::serde::de::Error::duplicate_field("domains"));
24699 }
24700 field_domains = Some(map.next_value()?);
24701 }
24702 "emails" => {
24703 if field_emails.is_some() {
24704 return Err(::serde::de::Error::duplicate_field("emails"));
24705 }
24706 field_emails = Some(map.next_value()?);
24707 }
24708 _ => {
24709 map.next_value::<::serde_json::Value>()?;
24711 }
24712 }
24713 }
24714 let result = SharingAllowlistAddArgs {
24715 domains: field_domains.and_then(Option::flatten),
24716 emails: field_emails.and_then(Option::flatten),
24717 };
24718 Ok(result)
24719 }
24720
24721 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24722 &self,
24723 s: &mut S::SerializeStruct,
24724 ) -> Result<(), S::Error> {
24725 use serde::ser::SerializeStruct;
24726 if let Some(val) = &self.domains {
24727 s.serialize_field("domains", val)?;
24728 }
24729 if let Some(val) = &self.emails {
24730 s.serialize_field("emails", val)?;
24731 }
24732 Ok(())
24733 }
24734}
24735
24736impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddArgs {
24737 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24738 use serde::de::{MapAccess, Visitor};
24740 struct StructVisitor;
24741 impl<'de> Visitor<'de> for StructVisitor {
24742 type Value = SharingAllowlistAddArgs;
24743 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24744 f.write_str("a SharingAllowlistAddArgs struct")
24745 }
24746 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24747 SharingAllowlistAddArgs::internal_deserialize(map)
24748 }
24749 }
24750 deserializer.deserialize_struct("SharingAllowlistAddArgs", SHARING_ALLOWLIST_ADD_ARGS_FIELDS, StructVisitor)
24751 }
24752}
24753
24754impl ::serde::ser::Serialize for SharingAllowlistAddArgs {
24755 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24756 use serde::ser::SerializeStruct;
24758 let mut s = serializer.serialize_struct("SharingAllowlistAddArgs", 2)?;
24759 self.internal_serialize::<S>(&mut s)?;
24760 s.end()
24761 }
24762}
24763
24764#[derive(Debug, Clone, PartialEq, Eq)]
24765#[non_exhaustive] pub enum SharingAllowlistAddError {
24767 MalformedEntry(String),
24769 NoEntriesProvided,
24771 TooManyEntriesProvided,
24773 TeamLimitReached,
24775 UnknownError,
24777 EntriesAlreadyExist(String),
24779 Other,
24782}
24783
24784impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddError {
24785 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24786 use serde::de::{self, MapAccess, Visitor};
24788 struct EnumVisitor;
24789 impl<'de> Visitor<'de> for EnumVisitor {
24790 type Value = SharingAllowlistAddError;
24791 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24792 f.write_str("a SharingAllowlistAddError structure")
24793 }
24794 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24795 let tag: &str = match map.next_key()? {
24796 Some(".tag") => map.next_value()?,
24797 _ => return Err(de::Error::missing_field(".tag"))
24798 };
24799 let value = match tag {
24800 "malformed_entry" => {
24801 match map.next_key()? {
24802 Some("malformed_entry") => SharingAllowlistAddError::MalformedEntry(map.next_value()?),
24803 None => return Err(de::Error::missing_field("malformed_entry")),
24804 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24805 }
24806 }
24807 "no_entries_provided" => SharingAllowlistAddError::NoEntriesProvided,
24808 "too_many_entries_provided" => SharingAllowlistAddError::TooManyEntriesProvided,
24809 "team_limit_reached" => SharingAllowlistAddError::TeamLimitReached,
24810 "unknown_error" => SharingAllowlistAddError::UnknownError,
24811 "entries_already_exist" => {
24812 match map.next_key()? {
24813 Some("entries_already_exist") => SharingAllowlistAddError::EntriesAlreadyExist(map.next_value()?),
24814 None => return Err(de::Error::missing_field("entries_already_exist")),
24815 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24816 }
24817 }
24818 _ => SharingAllowlistAddError::Other,
24819 };
24820 crate::eat_json_fields(&mut map)?;
24821 Ok(value)
24822 }
24823 }
24824 const VARIANTS: &[&str] = &["malformed_entry",
24825 "no_entries_provided",
24826 "too_many_entries_provided",
24827 "team_limit_reached",
24828 "unknown_error",
24829 "entries_already_exist",
24830 "other"];
24831 deserializer.deserialize_struct("SharingAllowlistAddError", VARIANTS, EnumVisitor)
24832 }
24833}
24834
24835impl ::serde::ser::Serialize for SharingAllowlistAddError {
24836 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24837 use serde::ser::SerializeStruct;
24839 match self {
24840 SharingAllowlistAddError::MalformedEntry(x) => {
24841 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
24843 s.serialize_field(".tag", "malformed_entry")?;
24844 s.serialize_field("malformed_entry", x)?;
24845 s.end()
24846 }
24847 SharingAllowlistAddError::NoEntriesProvided => {
24848 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
24850 s.serialize_field(".tag", "no_entries_provided")?;
24851 s.end()
24852 }
24853 SharingAllowlistAddError::TooManyEntriesProvided => {
24854 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
24856 s.serialize_field(".tag", "too_many_entries_provided")?;
24857 s.end()
24858 }
24859 SharingAllowlistAddError::TeamLimitReached => {
24860 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
24862 s.serialize_field(".tag", "team_limit_reached")?;
24863 s.end()
24864 }
24865 SharingAllowlistAddError::UnknownError => {
24866 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
24868 s.serialize_field(".tag", "unknown_error")?;
24869 s.end()
24870 }
24871 SharingAllowlistAddError::EntriesAlreadyExist(x) => {
24872 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
24874 s.serialize_field(".tag", "entries_already_exist")?;
24875 s.serialize_field("entries_already_exist", x)?;
24876 s.end()
24877 }
24878 SharingAllowlistAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24879 }
24880 }
24881}
24882
24883impl ::std::error::Error for SharingAllowlistAddError {
24884}
24885
24886impl ::std::fmt::Display for SharingAllowlistAddError {
24887 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24888 match self {
24889 SharingAllowlistAddError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
24890 SharingAllowlistAddError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
24891 SharingAllowlistAddError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
24892 SharingAllowlistAddError::TeamLimitReached => f.write_str("Team entries limit reached."),
24893 SharingAllowlistAddError::UnknownError => f.write_str("Unknown error."),
24894 SharingAllowlistAddError::EntriesAlreadyExist(inner) => write!(f, "Entries already exists: {:?}", inner),
24895 _ => write!(f, "{:?}", *self),
24896 }
24897 }
24898}
24899
24900#[derive(Debug, Clone, PartialEq, Eq, Default)]
24903#[non_exhaustive] pub struct SharingAllowlistAddResponse {
24905}
24906
24907const SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS: &[&str] = &[];
24908impl SharingAllowlistAddResponse {
24909 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24911 mut map: V,
24912 ) -> Result<SharingAllowlistAddResponse, V::Error> {
24913 crate::eat_json_fields(&mut map)?;
24915 Ok(SharingAllowlistAddResponse {})
24916 }
24917}
24918
24919impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddResponse {
24920 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24921 use serde::de::{MapAccess, Visitor};
24923 struct StructVisitor;
24924 impl<'de> Visitor<'de> for StructVisitor {
24925 type Value = SharingAllowlistAddResponse;
24926 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24927 f.write_str("a SharingAllowlistAddResponse struct")
24928 }
24929 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24930 SharingAllowlistAddResponse::internal_deserialize(map)
24931 }
24932 }
24933 deserializer.deserialize_struct("SharingAllowlistAddResponse", SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS, StructVisitor)
24934 }
24935}
24936
24937impl ::serde::ser::Serialize for SharingAllowlistAddResponse {
24938 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24939 use serde::ser::SerializeStruct;
24941 serializer.serialize_struct("SharingAllowlistAddResponse", 0)?.end()
24942 }
24943}
24944
24945#[derive(Debug, Clone, PartialEq, Eq)]
24946#[non_exhaustive] pub struct SharingAllowlistListArg {
24948 pub limit: u32,
24950}
24951
24952impl Default for SharingAllowlistListArg {
24953 fn default() -> Self {
24954 SharingAllowlistListArg {
24955 limit: 1000,
24956 }
24957 }
24958}
24959
24960impl SharingAllowlistListArg {
24961 pub fn with_limit(mut self, value: u32) -> Self {
24962 self.limit = value;
24963 self
24964 }
24965}
24966
24967const SHARING_ALLOWLIST_LIST_ARG_FIELDS: &[&str] = &["limit"];
24968impl SharingAllowlistListArg {
24969 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24971 mut map: V,
24972 ) -> Result<SharingAllowlistListArg, V::Error> {
24973 let mut field_limit = None;
24974 while let Some(key) = map.next_key::<&str>()? {
24975 match key {
24976 "limit" => {
24977 if field_limit.is_some() {
24978 return Err(::serde::de::Error::duplicate_field("limit"));
24979 }
24980 field_limit = Some(map.next_value()?);
24981 }
24982 _ => {
24983 map.next_value::<::serde_json::Value>()?;
24985 }
24986 }
24987 }
24988 let result = SharingAllowlistListArg {
24989 limit: field_limit.unwrap_or(1000),
24990 };
24991 Ok(result)
24992 }
24993
24994 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24995 &self,
24996 s: &mut S::SerializeStruct,
24997 ) -> Result<(), S::Error> {
24998 use serde::ser::SerializeStruct;
24999 if self.limit != 1000 {
25000 s.serialize_field("limit", &self.limit)?;
25001 }
25002 Ok(())
25003 }
25004}
25005
25006impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListArg {
25007 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25008 use serde::de::{MapAccess, Visitor};
25010 struct StructVisitor;
25011 impl<'de> Visitor<'de> for StructVisitor {
25012 type Value = SharingAllowlistListArg;
25013 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25014 f.write_str("a SharingAllowlistListArg struct")
25015 }
25016 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25017 SharingAllowlistListArg::internal_deserialize(map)
25018 }
25019 }
25020 deserializer.deserialize_struct("SharingAllowlistListArg", SHARING_ALLOWLIST_LIST_ARG_FIELDS, StructVisitor)
25021 }
25022}
25023
25024impl ::serde::ser::Serialize for SharingAllowlistListArg {
25025 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25026 use serde::ser::SerializeStruct;
25028 let mut s = serializer.serialize_struct("SharingAllowlistListArg", 1)?;
25029 self.internal_serialize::<S>(&mut s)?;
25030 s.end()
25031 }
25032}
25033
25034#[derive(Debug, Clone, PartialEq, Eq)]
25035#[non_exhaustive] pub struct SharingAllowlistListContinueArg {
25037 pub cursor: String,
25041}
25042
25043impl SharingAllowlistListContinueArg {
25044 pub fn new(cursor: String) -> Self {
25045 SharingAllowlistListContinueArg {
25046 cursor,
25047 }
25048 }
25049}
25050
25051const SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
25052impl SharingAllowlistListContinueArg {
25053 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25054 map: V,
25055 ) -> Result<SharingAllowlistListContinueArg, V::Error> {
25056 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25057 }
25058
25059 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25060 mut map: V,
25061 optional: bool,
25062 ) -> Result<Option<SharingAllowlistListContinueArg>, V::Error> {
25063 let mut field_cursor = None;
25064 let mut nothing = true;
25065 while let Some(key) = map.next_key::<&str>()? {
25066 nothing = false;
25067 match key {
25068 "cursor" => {
25069 if field_cursor.is_some() {
25070 return Err(::serde::de::Error::duplicate_field("cursor"));
25071 }
25072 field_cursor = Some(map.next_value()?);
25073 }
25074 _ => {
25075 map.next_value::<::serde_json::Value>()?;
25077 }
25078 }
25079 }
25080 if optional && nothing {
25081 return Ok(None);
25082 }
25083 let result = SharingAllowlistListContinueArg {
25084 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
25085 };
25086 Ok(Some(result))
25087 }
25088
25089 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25090 &self,
25091 s: &mut S::SerializeStruct,
25092 ) -> Result<(), S::Error> {
25093 use serde::ser::SerializeStruct;
25094 s.serialize_field("cursor", &self.cursor)?;
25095 Ok(())
25096 }
25097}
25098
25099impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueArg {
25100 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25101 use serde::de::{MapAccess, Visitor};
25103 struct StructVisitor;
25104 impl<'de> Visitor<'de> for StructVisitor {
25105 type Value = SharingAllowlistListContinueArg;
25106 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25107 f.write_str("a SharingAllowlistListContinueArg struct")
25108 }
25109 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25110 SharingAllowlistListContinueArg::internal_deserialize(map)
25111 }
25112 }
25113 deserializer.deserialize_struct("SharingAllowlistListContinueArg", SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
25114 }
25115}
25116
25117impl ::serde::ser::Serialize for SharingAllowlistListContinueArg {
25118 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25119 use serde::ser::SerializeStruct;
25121 let mut s = serializer.serialize_struct("SharingAllowlistListContinueArg", 1)?;
25122 self.internal_serialize::<S>(&mut s)?;
25123 s.end()
25124 }
25125}
25126
25127#[derive(Debug, Clone, PartialEq, Eq)]
25128#[non_exhaustive] pub enum SharingAllowlistListContinueError {
25130 InvalidCursor,
25132 Other,
25135}
25136
25137impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueError {
25138 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25139 use serde::de::{self, MapAccess, Visitor};
25141 struct EnumVisitor;
25142 impl<'de> Visitor<'de> for EnumVisitor {
25143 type Value = SharingAllowlistListContinueError;
25144 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25145 f.write_str("a SharingAllowlistListContinueError structure")
25146 }
25147 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25148 let tag: &str = match map.next_key()? {
25149 Some(".tag") => map.next_value()?,
25150 _ => return Err(de::Error::missing_field(".tag"))
25151 };
25152 let value = match tag {
25153 "invalid_cursor" => SharingAllowlistListContinueError::InvalidCursor,
25154 _ => SharingAllowlistListContinueError::Other,
25155 };
25156 crate::eat_json_fields(&mut map)?;
25157 Ok(value)
25158 }
25159 }
25160 const VARIANTS: &[&str] = &["invalid_cursor",
25161 "other"];
25162 deserializer.deserialize_struct("SharingAllowlistListContinueError", VARIANTS, EnumVisitor)
25163 }
25164}
25165
25166impl ::serde::ser::Serialize for SharingAllowlistListContinueError {
25167 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25168 use serde::ser::SerializeStruct;
25170 match self {
25171 SharingAllowlistListContinueError::InvalidCursor => {
25172 let mut s = serializer.serialize_struct("SharingAllowlistListContinueError", 1)?;
25174 s.serialize_field(".tag", "invalid_cursor")?;
25175 s.end()
25176 }
25177 SharingAllowlistListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25178 }
25179 }
25180}
25181
25182impl ::std::error::Error for SharingAllowlistListContinueError {
25183}
25184
25185impl ::std::fmt::Display for SharingAllowlistListContinueError {
25186 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25187 match self {
25188 SharingAllowlistListContinueError::InvalidCursor => f.write_str("Provided cursor is not valid."),
25189 _ => write!(f, "{:?}", *self),
25190 }
25191 }
25192}
25193
25194#[derive(Debug, Clone, PartialEq, Eq, Default)]
25197#[non_exhaustive] pub struct SharingAllowlistListError {
25199}
25200
25201const SHARING_ALLOWLIST_LIST_ERROR_FIELDS: &[&str] = &[];
25202impl SharingAllowlistListError {
25203 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25205 mut map: V,
25206 ) -> Result<SharingAllowlistListError, V::Error> {
25207 crate::eat_json_fields(&mut map)?;
25209 Ok(SharingAllowlistListError {})
25210 }
25211}
25212
25213impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListError {
25214 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25215 use serde::de::{MapAccess, Visitor};
25217 struct StructVisitor;
25218 impl<'de> Visitor<'de> for StructVisitor {
25219 type Value = SharingAllowlistListError;
25220 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25221 f.write_str("a SharingAllowlistListError struct")
25222 }
25223 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25224 SharingAllowlistListError::internal_deserialize(map)
25225 }
25226 }
25227 deserializer.deserialize_struct("SharingAllowlistListError", SHARING_ALLOWLIST_LIST_ERROR_FIELDS, StructVisitor)
25228 }
25229}
25230
25231impl ::serde::ser::Serialize for SharingAllowlistListError {
25232 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25233 use serde::ser::SerializeStruct;
25235 serializer.serialize_struct("SharingAllowlistListError", 0)?.end()
25236 }
25237}
25238
25239impl ::std::error::Error for SharingAllowlistListError {
25240}
25241
25242impl ::std::fmt::Display for SharingAllowlistListError {
25243 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25244 write!(f, "{:?}", *self)
25245 }
25246}
25247
25248#[derive(Debug, Clone, PartialEq, Eq)]
25249#[non_exhaustive] pub struct SharingAllowlistListResponse {
25251 pub domains: Vec<String>,
25253 pub emails: Vec<String>,
25255 pub cursor: String,
25258 pub has_more: bool,
25261}
25262
25263impl SharingAllowlistListResponse {
25264 pub fn new(domains: Vec<String>, emails: Vec<String>) -> Self {
25265 SharingAllowlistListResponse {
25266 domains,
25267 emails,
25268 cursor: String::new(),
25269 has_more: false,
25270 }
25271 }
25272
25273 pub fn with_cursor(mut self, value: String) -> Self {
25274 self.cursor = value;
25275 self
25276 }
25277
25278 pub fn with_has_more(mut self, value: bool) -> Self {
25279 self.has_more = value;
25280 self
25281 }
25282}
25283
25284const SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS: &[&str] = &["domains",
25285 "emails",
25286 "cursor",
25287 "has_more"];
25288impl SharingAllowlistListResponse {
25289 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25290 map: V,
25291 ) -> Result<SharingAllowlistListResponse, V::Error> {
25292 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25293 }
25294
25295 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25296 mut map: V,
25297 optional: bool,
25298 ) -> Result<Option<SharingAllowlistListResponse>, V::Error> {
25299 let mut field_domains = None;
25300 let mut field_emails = None;
25301 let mut field_cursor = None;
25302 let mut field_has_more = None;
25303 let mut nothing = true;
25304 while let Some(key) = map.next_key::<&str>()? {
25305 nothing = false;
25306 match key {
25307 "domains" => {
25308 if field_domains.is_some() {
25309 return Err(::serde::de::Error::duplicate_field("domains"));
25310 }
25311 field_domains = Some(map.next_value()?);
25312 }
25313 "emails" => {
25314 if field_emails.is_some() {
25315 return Err(::serde::de::Error::duplicate_field("emails"));
25316 }
25317 field_emails = Some(map.next_value()?);
25318 }
25319 "cursor" => {
25320 if field_cursor.is_some() {
25321 return Err(::serde::de::Error::duplicate_field("cursor"));
25322 }
25323 field_cursor = Some(map.next_value()?);
25324 }
25325 "has_more" => {
25326 if field_has_more.is_some() {
25327 return Err(::serde::de::Error::duplicate_field("has_more"));
25328 }
25329 field_has_more = Some(map.next_value()?);
25330 }
25331 _ => {
25332 map.next_value::<::serde_json::Value>()?;
25334 }
25335 }
25336 }
25337 if optional && nothing {
25338 return Ok(None);
25339 }
25340 let result = SharingAllowlistListResponse {
25341 domains: field_domains.ok_or_else(|| ::serde::de::Error::missing_field("domains"))?,
25342 emails: field_emails.ok_or_else(|| ::serde::de::Error::missing_field("emails"))?,
25343 cursor: field_cursor.unwrap_or_default(),
25344 has_more: field_has_more.unwrap_or(false),
25345 };
25346 Ok(Some(result))
25347 }
25348
25349 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25350 &self,
25351 s: &mut S::SerializeStruct,
25352 ) -> Result<(), S::Error> {
25353 use serde::ser::SerializeStruct;
25354 s.serialize_field("domains", &self.domains)?;
25355 s.serialize_field("emails", &self.emails)?;
25356 if !self.cursor.is_empty() {
25357 s.serialize_field("cursor", &self.cursor)?;
25358 }
25359 if self.has_more {
25360 s.serialize_field("has_more", &self.has_more)?;
25361 }
25362 Ok(())
25363 }
25364}
25365
25366impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListResponse {
25367 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25368 use serde::de::{MapAccess, Visitor};
25370 struct StructVisitor;
25371 impl<'de> Visitor<'de> for StructVisitor {
25372 type Value = SharingAllowlistListResponse;
25373 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25374 f.write_str("a SharingAllowlistListResponse struct")
25375 }
25376 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25377 SharingAllowlistListResponse::internal_deserialize(map)
25378 }
25379 }
25380 deserializer.deserialize_struct("SharingAllowlistListResponse", SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS, StructVisitor)
25381 }
25382}
25383
25384impl ::serde::ser::Serialize for SharingAllowlistListResponse {
25385 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25386 use serde::ser::SerializeStruct;
25388 let mut s = serializer.serialize_struct("SharingAllowlistListResponse", 4)?;
25389 self.internal_serialize::<S>(&mut s)?;
25390 s.end()
25391 }
25392}
25393
25394#[derive(Debug, Clone, PartialEq, Eq, Default)]
25395#[non_exhaustive] pub struct SharingAllowlistRemoveArgs {
25397 pub domains: Option<Vec<String>>,
25399 pub emails: Option<Vec<String>>,
25401}
25402
25403impl SharingAllowlistRemoveArgs {
25404 pub fn with_domains(mut self, value: Vec<String>) -> Self {
25405 self.domains = Some(value);
25406 self
25407 }
25408
25409 pub fn with_emails(mut self, value: Vec<String>) -> Self {
25410 self.emails = Some(value);
25411 self
25412 }
25413}
25414
25415const SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS: &[&str] = &["domains",
25416 "emails"];
25417impl SharingAllowlistRemoveArgs {
25418 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25420 mut map: V,
25421 ) -> Result<SharingAllowlistRemoveArgs, V::Error> {
25422 let mut field_domains = None;
25423 let mut field_emails = None;
25424 while let Some(key) = map.next_key::<&str>()? {
25425 match key {
25426 "domains" => {
25427 if field_domains.is_some() {
25428 return Err(::serde::de::Error::duplicate_field("domains"));
25429 }
25430 field_domains = Some(map.next_value()?);
25431 }
25432 "emails" => {
25433 if field_emails.is_some() {
25434 return Err(::serde::de::Error::duplicate_field("emails"));
25435 }
25436 field_emails = Some(map.next_value()?);
25437 }
25438 _ => {
25439 map.next_value::<::serde_json::Value>()?;
25441 }
25442 }
25443 }
25444 let result = SharingAllowlistRemoveArgs {
25445 domains: field_domains.and_then(Option::flatten),
25446 emails: field_emails.and_then(Option::flatten),
25447 };
25448 Ok(result)
25449 }
25450
25451 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25452 &self,
25453 s: &mut S::SerializeStruct,
25454 ) -> Result<(), S::Error> {
25455 use serde::ser::SerializeStruct;
25456 if let Some(val) = &self.domains {
25457 s.serialize_field("domains", val)?;
25458 }
25459 if let Some(val) = &self.emails {
25460 s.serialize_field("emails", val)?;
25461 }
25462 Ok(())
25463 }
25464}
25465
25466impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveArgs {
25467 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25468 use serde::de::{MapAccess, Visitor};
25470 struct StructVisitor;
25471 impl<'de> Visitor<'de> for StructVisitor {
25472 type Value = SharingAllowlistRemoveArgs;
25473 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25474 f.write_str("a SharingAllowlistRemoveArgs struct")
25475 }
25476 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25477 SharingAllowlistRemoveArgs::internal_deserialize(map)
25478 }
25479 }
25480 deserializer.deserialize_struct("SharingAllowlistRemoveArgs", SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS, StructVisitor)
25481 }
25482}
25483
25484impl ::serde::ser::Serialize for SharingAllowlistRemoveArgs {
25485 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25486 use serde::ser::SerializeStruct;
25488 let mut s = serializer.serialize_struct("SharingAllowlistRemoveArgs", 2)?;
25489 self.internal_serialize::<S>(&mut s)?;
25490 s.end()
25491 }
25492}
25493
25494#[derive(Debug, Clone, PartialEq, Eq)]
25495#[non_exhaustive] pub enum SharingAllowlistRemoveError {
25497 MalformedEntry(String),
25499 EntriesDoNotExist(String),
25501 NoEntriesProvided,
25503 TooManyEntriesProvided,
25505 UnknownError,
25507 Other,
25510}
25511
25512impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveError {
25513 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25514 use serde::de::{self, MapAccess, Visitor};
25516 struct EnumVisitor;
25517 impl<'de> Visitor<'de> for EnumVisitor {
25518 type Value = SharingAllowlistRemoveError;
25519 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25520 f.write_str("a SharingAllowlistRemoveError structure")
25521 }
25522 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25523 let tag: &str = match map.next_key()? {
25524 Some(".tag") => map.next_value()?,
25525 _ => return Err(de::Error::missing_field(".tag"))
25526 };
25527 let value = match tag {
25528 "malformed_entry" => {
25529 match map.next_key()? {
25530 Some("malformed_entry") => SharingAllowlistRemoveError::MalformedEntry(map.next_value()?),
25531 None => return Err(de::Error::missing_field("malformed_entry")),
25532 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25533 }
25534 }
25535 "entries_do_not_exist" => {
25536 match map.next_key()? {
25537 Some("entries_do_not_exist") => SharingAllowlistRemoveError::EntriesDoNotExist(map.next_value()?),
25538 None => return Err(de::Error::missing_field("entries_do_not_exist")),
25539 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25540 }
25541 }
25542 "no_entries_provided" => SharingAllowlistRemoveError::NoEntriesProvided,
25543 "too_many_entries_provided" => SharingAllowlistRemoveError::TooManyEntriesProvided,
25544 "unknown_error" => SharingAllowlistRemoveError::UnknownError,
25545 _ => SharingAllowlistRemoveError::Other,
25546 };
25547 crate::eat_json_fields(&mut map)?;
25548 Ok(value)
25549 }
25550 }
25551 const VARIANTS: &[&str] = &["malformed_entry",
25552 "entries_do_not_exist",
25553 "no_entries_provided",
25554 "too_many_entries_provided",
25555 "unknown_error",
25556 "other"];
25557 deserializer.deserialize_struct("SharingAllowlistRemoveError", VARIANTS, EnumVisitor)
25558 }
25559}
25560
25561impl ::serde::ser::Serialize for SharingAllowlistRemoveError {
25562 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25563 use serde::ser::SerializeStruct;
25565 match self {
25566 SharingAllowlistRemoveError::MalformedEntry(x) => {
25567 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
25569 s.serialize_field(".tag", "malformed_entry")?;
25570 s.serialize_field("malformed_entry", x)?;
25571 s.end()
25572 }
25573 SharingAllowlistRemoveError::EntriesDoNotExist(x) => {
25574 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
25576 s.serialize_field(".tag", "entries_do_not_exist")?;
25577 s.serialize_field("entries_do_not_exist", x)?;
25578 s.end()
25579 }
25580 SharingAllowlistRemoveError::NoEntriesProvided => {
25581 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
25583 s.serialize_field(".tag", "no_entries_provided")?;
25584 s.end()
25585 }
25586 SharingAllowlistRemoveError::TooManyEntriesProvided => {
25587 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
25589 s.serialize_field(".tag", "too_many_entries_provided")?;
25590 s.end()
25591 }
25592 SharingAllowlistRemoveError::UnknownError => {
25593 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
25595 s.serialize_field(".tag", "unknown_error")?;
25596 s.end()
25597 }
25598 SharingAllowlistRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25599 }
25600 }
25601}
25602
25603impl ::std::error::Error for SharingAllowlistRemoveError {
25604}
25605
25606impl ::std::fmt::Display for SharingAllowlistRemoveError {
25607 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25608 match self {
25609 SharingAllowlistRemoveError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
25610 SharingAllowlistRemoveError::EntriesDoNotExist(inner) => write!(f, "One or more provided values do not exist: {:?}", inner),
25611 SharingAllowlistRemoveError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
25612 SharingAllowlistRemoveError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
25613 SharingAllowlistRemoveError::UnknownError => f.write_str("Unknown error."),
25614 _ => write!(f, "{:?}", *self),
25615 }
25616 }
25617}
25618
25619#[derive(Debug, Clone, PartialEq, Eq, Default)]
25622#[non_exhaustive] pub struct SharingAllowlistRemoveResponse {
25624}
25625
25626const SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS: &[&str] = &[];
25627impl SharingAllowlistRemoveResponse {
25628 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25630 mut map: V,
25631 ) -> Result<SharingAllowlistRemoveResponse, V::Error> {
25632 crate::eat_json_fields(&mut map)?;
25634 Ok(SharingAllowlistRemoveResponse {})
25635 }
25636}
25637
25638impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveResponse {
25639 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25640 use serde::de::{MapAccess, Visitor};
25642 struct StructVisitor;
25643 impl<'de> Visitor<'de> for StructVisitor {
25644 type Value = SharingAllowlistRemoveResponse;
25645 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25646 f.write_str("a SharingAllowlistRemoveResponse struct")
25647 }
25648 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25649 SharingAllowlistRemoveResponse::internal_deserialize(map)
25650 }
25651 }
25652 deserializer.deserialize_struct("SharingAllowlistRemoveResponse", SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS, StructVisitor)
25653 }
25654}
25655
25656impl ::serde::ser::Serialize for SharingAllowlistRemoveResponse {
25657 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25658 use serde::ser::SerializeStruct;
25660 serializer.serialize_struct("SharingAllowlistRemoveResponse", 0)?.end()
25661 }
25662}
25663
25664#[derive(Debug, Clone, PartialEq, Eq)]
25666#[non_exhaustive] pub struct StorageBucket {
25668 pub bucket: String,
25671 pub users: u64,
25673}
25674
25675impl StorageBucket {
25676 pub fn new(bucket: String, users: u64) -> Self {
25677 StorageBucket {
25678 bucket,
25679 users,
25680 }
25681 }
25682}
25683
25684const STORAGE_BUCKET_FIELDS: &[&str] = &["bucket",
25685 "users"];
25686impl StorageBucket {
25687 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25688 map: V,
25689 ) -> Result<StorageBucket, V::Error> {
25690 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25691 }
25692
25693 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25694 mut map: V,
25695 optional: bool,
25696 ) -> Result<Option<StorageBucket>, V::Error> {
25697 let mut field_bucket = None;
25698 let mut field_users = None;
25699 let mut nothing = true;
25700 while let Some(key) = map.next_key::<&str>()? {
25701 nothing = false;
25702 match key {
25703 "bucket" => {
25704 if field_bucket.is_some() {
25705 return Err(::serde::de::Error::duplicate_field("bucket"));
25706 }
25707 field_bucket = Some(map.next_value()?);
25708 }
25709 "users" => {
25710 if field_users.is_some() {
25711 return Err(::serde::de::Error::duplicate_field("users"));
25712 }
25713 field_users = Some(map.next_value()?);
25714 }
25715 _ => {
25716 map.next_value::<::serde_json::Value>()?;
25718 }
25719 }
25720 }
25721 if optional && nothing {
25722 return Ok(None);
25723 }
25724 let result = StorageBucket {
25725 bucket: field_bucket.ok_or_else(|| ::serde::de::Error::missing_field("bucket"))?,
25726 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
25727 };
25728 Ok(Some(result))
25729 }
25730
25731 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25732 &self,
25733 s: &mut S::SerializeStruct,
25734 ) -> Result<(), S::Error> {
25735 use serde::ser::SerializeStruct;
25736 s.serialize_field("bucket", &self.bucket)?;
25737 s.serialize_field("users", &self.users)?;
25738 Ok(())
25739 }
25740}
25741
25742impl<'de> ::serde::de::Deserialize<'de> for StorageBucket {
25743 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25744 use serde::de::{MapAccess, Visitor};
25746 struct StructVisitor;
25747 impl<'de> Visitor<'de> for StructVisitor {
25748 type Value = StorageBucket;
25749 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25750 f.write_str("a StorageBucket struct")
25751 }
25752 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25753 StorageBucket::internal_deserialize(map)
25754 }
25755 }
25756 deserializer.deserialize_struct("StorageBucket", STORAGE_BUCKET_FIELDS, StructVisitor)
25757 }
25758}
25759
25760impl ::serde::ser::Serialize for StorageBucket {
25761 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25762 use serde::ser::SerializeStruct;
25764 let mut s = serializer.serialize_struct("StorageBucket", 2)?;
25765 self.internal_serialize::<S>(&mut s)?;
25766 s.end()
25767 }
25768}
25769
25770#[derive(Debug, Clone, PartialEq, Eq)]
25771#[non_exhaustive] pub enum TeamFolderAccessError {
25773 InvalidTeamFolderId,
25775 NoAccess,
25777 Other,
25780}
25781
25782impl<'de> ::serde::de::Deserialize<'de> for TeamFolderAccessError {
25783 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25784 use serde::de::{self, MapAccess, Visitor};
25786 struct EnumVisitor;
25787 impl<'de> Visitor<'de> for EnumVisitor {
25788 type Value = TeamFolderAccessError;
25789 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25790 f.write_str("a TeamFolderAccessError structure")
25791 }
25792 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25793 let tag: &str = match map.next_key()? {
25794 Some(".tag") => map.next_value()?,
25795 _ => return Err(de::Error::missing_field(".tag"))
25796 };
25797 let value = match tag {
25798 "invalid_team_folder_id" => TeamFolderAccessError::InvalidTeamFolderId,
25799 "no_access" => TeamFolderAccessError::NoAccess,
25800 _ => TeamFolderAccessError::Other,
25801 };
25802 crate::eat_json_fields(&mut map)?;
25803 Ok(value)
25804 }
25805 }
25806 const VARIANTS: &[&str] = &["invalid_team_folder_id",
25807 "no_access",
25808 "other"];
25809 deserializer.deserialize_struct("TeamFolderAccessError", VARIANTS, EnumVisitor)
25810 }
25811}
25812
25813impl ::serde::ser::Serialize for TeamFolderAccessError {
25814 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25815 use serde::ser::SerializeStruct;
25817 match self {
25818 TeamFolderAccessError::InvalidTeamFolderId => {
25819 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
25821 s.serialize_field(".tag", "invalid_team_folder_id")?;
25822 s.end()
25823 }
25824 TeamFolderAccessError::NoAccess => {
25825 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
25827 s.serialize_field(".tag", "no_access")?;
25828 s.end()
25829 }
25830 TeamFolderAccessError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25831 }
25832 }
25833}
25834
25835impl ::std::error::Error for TeamFolderAccessError {
25836}
25837
25838impl ::std::fmt::Display for TeamFolderAccessError {
25839 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25840 match self {
25841 TeamFolderAccessError::InvalidTeamFolderId => f.write_str("The team folder ID is invalid."),
25842 TeamFolderAccessError::NoAccess => f.write_str("The authenticated app does not have permission to manage that team folder."),
25843 _ => write!(f, "{:?}", *self),
25844 }
25845 }
25846}
25847
25848#[derive(Debug, Clone, PartialEq, Eq)]
25849#[non_exhaustive] pub enum TeamFolderActivateError {
25851 AccessError(TeamFolderAccessError),
25852 StatusError(TeamFolderInvalidStatusError),
25853 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
25854 FolderCountLimitExceeded,
25856 Other,
25859}
25860
25861impl<'de> ::serde::de::Deserialize<'de> for TeamFolderActivateError {
25862 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25863 use serde::de::{self, MapAccess, Visitor};
25865 struct EnumVisitor;
25866 impl<'de> Visitor<'de> for EnumVisitor {
25867 type Value = TeamFolderActivateError;
25868 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25869 f.write_str("a TeamFolderActivateError structure")
25870 }
25871 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25872 let tag: &str = match map.next_key()? {
25873 Some(".tag") => map.next_value()?,
25874 _ => return Err(de::Error::missing_field(".tag"))
25875 };
25876 let value = match tag {
25877 "access_error" => {
25878 match map.next_key()? {
25879 Some("access_error") => TeamFolderActivateError::AccessError(map.next_value()?),
25880 None => return Err(de::Error::missing_field("access_error")),
25881 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25882 }
25883 }
25884 "status_error" => {
25885 match map.next_key()? {
25886 Some("status_error") => TeamFolderActivateError::StatusError(map.next_value()?),
25887 None => return Err(de::Error::missing_field("status_error")),
25888 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25889 }
25890 }
25891 "team_shared_dropbox_error" => {
25892 match map.next_key()? {
25893 Some("team_shared_dropbox_error") => TeamFolderActivateError::TeamSharedDropboxError(map.next_value()?),
25894 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
25895 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25896 }
25897 }
25898 "folder_count_limit_exceeded" => TeamFolderActivateError::FolderCountLimitExceeded,
25899 _ => TeamFolderActivateError::Other,
25900 };
25901 crate::eat_json_fields(&mut map)?;
25902 Ok(value)
25903 }
25904 }
25905 const VARIANTS: &[&str] = &["access_error",
25906 "status_error",
25907 "team_shared_dropbox_error",
25908 "other",
25909 "folder_count_limit_exceeded"];
25910 deserializer.deserialize_struct("TeamFolderActivateError", VARIANTS, EnumVisitor)
25911 }
25912}
25913
25914impl ::serde::ser::Serialize for TeamFolderActivateError {
25915 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25916 use serde::ser::SerializeStruct;
25918 match self {
25919 TeamFolderActivateError::AccessError(x) => {
25920 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25922 s.serialize_field(".tag", "access_error")?;
25923 s.serialize_field("access_error", x)?;
25924 s.end()
25925 }
25926 TeamFolderActivateError::StatusError(x) => {
25927 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25929 s.serialize_field(".tag", "status_error")?;
25930 s.serialize_field("status_error", x)?;
25931 s.end()
25932 }
25933 TeamFolderActivateError::TeamSharedDropboxError(x) => {
25934 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25936 s.serialize_field(".tag", "team_shared_dropbox_error")?;
25937 s.serialize_field("team_shared_dropbox_error", x)?;
25938 s.end()
25939 }
25940 TeamFolderActivateError::FolderCountLimitExceeded => {
25941 let mut s = serializer.serialize_struct("TeamFolderActivateError", 1)?;
25943 s.serialize_field(".tag", "folder_count_limit_exceeded")?;
25944 s.end()
25945 }
25946 TeamFolderActivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25947 }
25948 }
25949}
25950
25951impl ::std::error::Error for TeamFolderActivateError {
25952 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25953 match self {
25954 TeamFolderActivateError::AccessError(inner) => Some(inner),
25955 TeamFolderActivateError::StatusError(inner) => Some(inner),
25956 TeamFolderActivateError::TeamSharedDropboxError(inner) => Some(inner),
25957 _ => None,
25958 }
25959 }
25960}
25961
25962impl ::std::fmt::Display for TeamFolderActivateError {
25963 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25964 match self {
25965 TeamFolderActivateError::AccessError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25966 TeamFolderActivateError::StatusError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25967 TeamFolderActivateError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25968 TeamFolderActivateError::FolderCountLimitExceeded => f.write_str("The team has reached the maximum number of team folders allowed by its plan."),
25969 _ => write!(f, "{:?}", *self),
25970 }
25971 }
25972}
25973
25974impl From<BaseTeamFolderError> for TeamFolderActivateError {
25976 fn from(parent: BaseTeamFolderError) -> Self {
25977 match parent {
25978 BaseTeamFolderError::AccessError(x) => TeamFolderActivateError::AccessError(x),
25979 BaseTeamFolderError::StatusError(x) => TeamFolderActivateError::StatusError(x),
25980 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderActivateError::TeamSharedDropboxError(x),
25981 BaseTeamFolderError::Other => TeamFolderActivateError::Other,
25982 }
25983 }
25984}
25985#[derive(Debug, Clone, PartialEq, Eq)]
25986#[non_exhaustive] pub struct TeamFolderArchiveArg {
25988 pub team_folder_id: crate::types::common::SharedFolderId,
25990 pub force_async_off: bool,
25992}
25993
25994impl TeamFolderArchiveArg {
25995 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
25996 TeamFolderArchiveArg {
25997 team_folder_id,
25998 force_async_off: false,
25999 }
26000 }
26001
26002 pub fn with_force_async_off(mut self, value: bool) -> Self {
26003 self.force_async_off = value;
26004 self
26005 }
26006}
26007
26008const TEAM_FOLDER_ARCHIVE_ARG_FIELDS: &[&str] = &["team_folder_id",
26009 "force_async_off"];
26010impl TeamFolderArchiveArg {
26011 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26012 map: V,
26013 ) -> Result<TeamFolderArchiveArg, V::Error> {
26014 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26015 }
26016
26017 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26018 mut map: V,
26019 optional: bool,
26020 ) -> Result<Option<TeamFolderArchiveArg>, V::Error> {
26021 let mut field_team_folder_id = None;
26022 let mut field_force_async_off = None;
26023 let mut nothing = true;
26024 while let Some(key) = map.next_key::<&str>()? {
26025 nothing = false;
26026 match key {
26027 "team_folder_id" => {
26028 if field_team_folder_id.is_some() {
26029 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26030 }
26031 field_team_folder_id = Some(map.next_value()?);
26032 }
26033 "force_async_off" => {
26034 if field_force_async_off.is_some() {
26035 return Err(::serde::de::Error::duplicate_field("force_async_off"));
26036 }
26037 field_force_async_off = Some(map.next_value()?);
26038 }
26039 _ => {
26040 map.next_value::<::serde_json::Value>()?;
26042 }
26043 }
26044 }
26045 if optional && nothing {
26046 return Ok(None);
26047 }
26048 let result = TeamFolderArchiveArg {
26049 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26050 force_async_off: field_force_async_off.unwrap_or(false),
26051 };
26052 Ok(Some(result))
26053 }
26054
26055 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26056 &self,
26057 s: &mut S::SerializeStruct,
26058 ) -> Result<(), S::Error> {
26059 use serde::ser::SerializeStruct;
26060 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26061 if self.force_async_off {
26062 s.serialize_field("force_async_off", &self.force_async_off)?;
26063 }
26064 Ok(())
26065 }
26066}
26067
26068impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveArg {
26069 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26070 use serde::de::{MapAccess, Visitor};
26072 struct StructVisitor;
26073 impl<'de> Visitor<'de> for StructVisitor {
26074 type Value = TeamFolderArchiveArg;
26075 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26076 f.write_str("a TeamFolderArchiveArg struct")
26077 }
26078 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26079 TeamFolderArchiveArg::internal_deserialize(map)
26080 }
26081 }
26082 deserializer.deserialize_struct("TeamFolderArchiveArg", TEAM_FOLDER_ARCHIVE_ARG_FIELDS, StructVisitor)
26083 }
26084}
26085
26086impl ::serde::ser::Serialize for TeamFolderArchiveArg {
26087 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26088 use serde::ser::SerializeStruct;
26090 let mut s = serializer.serialize_struct("TeamFolderArchiveArg", 2)?;
26091 self.internal_serialize::<S>(&mut s)?;
26092 s.end()
26093 }
26094}
26095
26096impl From<TeamFolderArchiveArg> for TeamFolderIdArg {
26098 fn from(subtype: TeamFolderArchiveArg) -> Self {
26099 Self {
26100 team_folder_id: subtype.team_folder_id,
26101 }
26102 }
26103}
26104
26105#[derive(Debug, Clone, PartialEq, Eq)]
26106#[non_exhaustive] pub enum TeamFolderArchiveError {
26108 AccessError(TeamFolderAccessError),
26109 StatusError(TeamFolderInvalidStatusError),
26110 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26111 Other,
26114}
26115
26116impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveError {
26117 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26118 use serde::de::{self, MapAccess, Visitor};
26120 struct EnumVisitor;
26121 impl<'de> Visitor<'de> for EnumVisitor {
26122 type Value = TeamFolderArchiveError;
26123 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26124 f.write_str("a TeamFolderArchiveError structure")
26125 }
26126 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26127 let tag: &str = match map.next_key()? {
26128 Some(".tag") => map.next_value()?,
26129 _ => return Err(de::Error::missing_field(".tag"))
26130 };
26131 let value = match tag {
26132 "access_error" => {
26133 match map.next_key()? {
26134 Some("access_error") => TeamFolderArchiveError::AccessError(map.next_value()?),
26135 None => return Err(de::Error::missing_field("access_error")),
26136 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26137 }
26138 }
26139 "status_error" => {
26140 match map.next_key()? {
26141 Some("status_error") => TeamFolderArchiveError::StatusError(map.next_value()?),
26142 None => return Err(de::Error::missing_field("status_error")),
26143 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26144 }
26145 }
26146 "team_shared_dropbox_error" => {
26147 match map.next_key()? {
26148 Some("team_shared_dropbox_error") => TeamFolderArchiveError::TeamSharedDropboxError(map.next_value()?),
26149 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26150 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26151 }
26152 }
26153 _ => TeamFolderArchiveError::Other,
26154 };
26155 crate::eat_json_fields(&mut map)?;
26156 Ok(value)
26157 }
26158 }
26159 const VARIANTS: &[&str] = &["access_error",
26160 "status_error",
26161 "team_shared_dropbox_error",
26162 "other"];
26163 deserializer.deserialize_struct("TeamFolderArchiveError", VARIANTS, EnumVisitor)
26164 }
26165}
26166
26167impl ::serde::ser::Serialize for TeamFolderArchiveError {
26168 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26169 use serde::ser::SerializeStruct;
26171 match self {
26172 TeamFolderArchiveError::AccessError(x) => {
26173 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
26175 s.serialize_field(".tag", "access_error")?;
26176 s.serialize_field("access_error", x)?;
26177 s.end()
26178 }
26179 TeamFolderArchiveError::StatusError(x) => {
26180 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
26182 s.serialize_field(".tag", "status_error")?;
26183 s.serialize_field("status_error", x)?;
26184 s.end()
26185 }
26186 TeamFolderArchiveError::TeamSharedDropboxError(x) => {
26187 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
26189 s.serialize_field(".tag", "team_shared_dropbox_error")?;
26190 s.serialize_field("team_shared_dropbox_error", x)?;
26191 s.end()
26192 }
26193 TeamFolderArchiveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26194 }
26195 }
26196}
26197
26198impl ::std::error::Error for TeamFolderArchiveError {
26199 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26200 match self {
26201 TeamFolderArchiveError::AccessError(inner) => Some(inner),
26202 TeamFolderArchiveError::StatusError(inner) => Some(inner),
26203 TeamFolderArchiveError::TeamSharedDropboxError(inner) => Some(inner),
26204 _ => None,
26205 }
26206 }
26207}
26208
26209impl ::std::fmt::Display for TeamFolderArchiveError {
26210 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26211 match self {
26212 TeamFolderArchiveError::AccessError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
26213 TeamFolderArchiveError::StatusError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
26214 TeamFolderArchiveError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
26215 _ => write!(f, "{:?}", *self),
26216 }
26217 }
26218}
26219
26220impl From<BaseTeamFolderError> for TeamFolderArchiveError {
26222 fn from(parent: BaseTeamFolderError) -> Self {
26223 match parent {
26224 BaseTeamFolderError::AccessError(x) => TeamFolderArchiveError::AccessError(x),
26225 BaseTeamFolderError::StatusError(x) => TeamFolderArchiveError::StatusError(x),
26226 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderArchiveError::TeamSharedDropboxError(x),
26227 BaseTeamFolderError::Other => TeamFolderArchiveError::Other,
26228 }
26229 }
26230}
26231#[derive(Debug, Clone, PartialEq, Eq)]
26232pub enum TeamFolderArchiveJobStatus {
26233 InProgress,
26235 Complete(TeamFolderMetadata),
26237 Failed(TeamFolderArchiveError),
26240}
26241
26242impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveJobStatus {
26243 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26244 use serde::de::{self, MapAccess, Visitor};
26246 struct EnumVisitor;
26247 impl<'de> Visitor<'de> for EnumVisitor {
26248 type Value = TeamFolderArchiveJobStatus;
26249 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26250 f.write_str("a TeamFolderArchiveJobStatus structure")
26251 }
26252 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26253 let tag: &str = match map.next_key()? {
26254 Some(".tag") => map.next_value()?,
26255 _ => return Err(de::Error::missing_field(".tag"))
26256 };
26257 let value = match tag {
26258 "in_progress" => TeamFolderArchiveJobStatus::InProgress,
26259 "complete" => TeamFolderArchiveJobStatus::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
26260 "failed" => {
26261 match map.next_key()? {
26262 Some("failed") => TeamFolderArchiveJobStatus::Failed(map.next_value()?),
26263 None => return Err(de::Error::missing_field("failed")),
26264 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26265 }
26266 }
26267 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
26268 };
26269 crate::eat_json_fields(&mut map)?;
26270 Ok(value)
26271 }
26272 }
26273 const VARIANTS: &[&str] = &["in_progress",
26274 "complete",
26275 "failed"];
26276 deserializer.deserialize_struct("TeamFolderArchiveJobStatus", VARIANTS, EnumVisitor)
26277 }
26278}
26279
26280impl ::serde::ser::Serialize for TeamFolderArchiveJobStatus {
26281 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26282 use serde::ser::SerializeStruct;
26284 match self {
26285 TeamFolderArchiveJobStatus::InProgress => {
26286 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 1)?;
26288 s.serialize_field(".tag", "in_progress")?;
26289 s.end()
26290 }
26291 TeamFolderArchiveJobStatus::Complete(x) => {
26292 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 8)?;
26294 s.serialize_field(".tag", "complete")?;
26295 x.internal_serialize::<S>(&mut s)?;
26296 s.end()
26297 }
26298 TeamFolderArchiveJobStatus::Failed(x) => {
26299 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 2)?;
26301 s.serialize_field(".tag", "failed")?;
26302 s.serialize_field("failed", x)?;
26303 s.end()
26304 }
26305 }
26306 }
26307}
26308
26309impl From<crate::types::dbx_async::PollResultBase> for TeamFolderArchiveJobStatus {
26311 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
26312 match parent {
26313 crate::types::dbx_async::PollResultBase::InProgress => TeamFolderArchiveJobStatus::InProgress,
26314 }
26315 }
26316}
26317#[derive(Debug, Clone, PartialEq, Eq)]
26318pub enum TeamFolderArchiveLaunch {
26319 AsyncJobId(crate::types::dbx_async::AsyncJobId),
26322 Complete(TeamFolderMetadata),
26323}
26324
26325impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveLaunch {
26326 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26327 use serde::de::{self, MapAccess, Visitor};
26329 struct EnumVisitor;
26330 impl<'de> Visitor<'de> for EnumVisitor {
26331 type Value = TeamFolderArchiveLaunch;
26332 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26333 f.write_str("a TeamFolderArchiveLaunch structure")
26334 }
26335 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26336 let tag: &str = match map.next_key()? {
26337 Some(".tag") => map.next_value()?,
26338 _ => return Err(de::Error::missing_field(".tag"))
26339 };
26340 let value = match tag {
26341 "async_job_id" => {
26342 match map.next_key()? {
26343 Some("async_job_id") => TeamFolderArchiveLaunch::AsyncJobId(map.next_value()?),
26344 None => return Err(de::Error::missing_field("async_job_id")),
26345 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26346 }
26347 }
26348 "complete" => TeamFolderArchiveLaunch::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
26349 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
26350 };
26351 crate::eat_json_fields(&mut map)?;
26352 Ok(value)
26353 }
26354 }
26355 const VARIANTS: &[&str] = &["async_job_id",
26356 "complete"];
26357 deserializer.deserialize_struct("TeamFolderArchiveLaunch", VARIANTS, EnumVisitor)
26358 }
26359}
26360
26361impl ::serde::ser::Serialize for TeamFolderArchiveLaunch {
26362 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26363 use serde::ser::SerializeStruct;
26365 match self {
26366 TeamFolderArchiveLaunch::AsyncJobId(x) => {
26367 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 2)?;
26369 s.serialize_field(".tag", "async_job_id")?;
26370 s.serialize_field("async_job_id", x)?;
26371 s.end()
26372 }
26373 TeamFolderArchiveLaunch::Complete(x) => {
26374 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 8)?;
26376 s.serialize_field(".tag", "complete")?;
26377 x.internal_serialize::<S>(&mut s)?;
26378 s.end()
26379 }
26380 }
26381 }
26382}
26383
26384impl From<crate::types::dbx_async::LaunchResultBase> for TeamFolderArchiveLaunch {
26386 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
26387 match parent {
26388 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => TeamFolderArchiveLaunch::AsyncJobId(x),
26389 }
26390 }
26391}
26392#[derive(Debug, Clone, PartialEq, Eq)]
26393#[non_exhaustive] pub struct TeamFolderCreateArg {
26395 pub name: String,
26397 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
26400}
26401
26402impl TeamFolderCreateArg {
26403 pub fn new(name: String) -> Self {
26404 TeamFolderCreateArg {
26405 name,
26406 sync_setting: None,
26407 }
26408 }
26409
26410 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
26411 self.sync_setting = Some(value);
26412 self
26413 }
26414}
26415
26416const TEAM_FOLDER_CREATE_ARG_FIELDS: &[&str] = &["name",
26417 "sync_setting"];
26418impl TeamFolderCreateArg {
26419 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26420 map: V,
26421 ) -> Result<TeamFolderCreateArg, V::Error> {
26422 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26423 }
26424
26425 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26426 mut map: V,
26427 optional: bool,
26428 ) -> Result<Option<TeamFolderCreateArg>, V::Error> {
26429 let mut field_name = None;
26430 let mut field_sync_setting = None;
26431 let mut nothing = true;
26432 while let Some(key) = map.next_key::<&str>()? {
26433 nothing = false;
26434 match key {
26435 "name" => {
26436 if field_name.is_some() {
26437 return Err(::serde::de::Error::duplicate_field("name"));
26438 }
26439 field_name = Some(map.next_value()?);
26440 }
26441 "sync_setting" => {
26442 if field_sync_setting.is_some() {
26443 return Err(::serde::de::Error::duplicate_field("sync_setting"));
26444 }
26445 field_sync_setting = Some(map.next_value()?);
26446 }
26447 _ => {
26448 map.next_value::<::serde_json::Value>()?;
26450 }
26451 }
26452 }
26453 if optional && nothing {
26454 return Ok(None);
26455 }
26456 let result = TeamFolderCreateArg {
26457 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26458 sync_setting: field_sync_setting.and_then(Option::flatten),
26459 };
26460 Ok(Some(result))
26461 }
26462
26463 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26464 &self,
26465 s: &mut S::SerializeStruct,
26466 ) -> Result<(), S::Error> {
26467 use serde::ser::SerializeStruct;
26468 s.serialize_field("name", &self.name)?;
26469 if let Some(val) = &self.sync_setting {
26470 s.serialize_field("sync_setting", val)?;
26471 }
26472 Ok(())
26473 }
26474}
26475
26476impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateArg {
26477 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26478 use serde::de::{MapAccess, Visitor};
26480 struct StructVisitor;
26481 impl<'de> Visitor<'de> for StructVisitor {
26482 type Value = TeamFolderCreateArg;
26483 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26484 f.write_str("a TeamFolderCreateArg struct")
26485 }
26486 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26487 TeamFolderCreateArg::internal_deserialize(map)
26488 }
26489 }
26490 deserializer.deserialize_struct("TeamFolderCreateArg", TEAM_FOLDER_CREATE_ARG_FIELDS, StructVisitor)
26491 }
26492}
26493
26494impl ::serde::ser::Serialize for TeamFolderCreateArg {
26495 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26496 use serde::ser::SerializeStruct;
26498 let mut s = serializer.serialize_struct("TeamFolderCreateArg", 2)?;
26499 self.internal_serialize::<S>(&mut s)?;
26500 s.end()
26501 }
26502}
26503
26504#[derive(Debug, Clone, PartialEq, Eq)]
26505#[non_exhaustive] pub enum TeamFolderCreateError {
26507 InvalidFolderName,
26509 FolderNameAlreadyUsed,
26511 FolderNameReserved,
26513 SyncSettingsError(crate::types::files::SyncSettingsError),
26515 FolderCountLimitExceeded,
26517 Other,
26520}
26521
26522impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateError {
26523 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26524 use serde::de::{self, MapAccess, Visitor};
26526 struct EnumVisitor;
26527 impl<'de> Visitor<'de> for EnumVisitor {
26528 type Value = TeamFolderCreateError;
26529 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26530 f.write_str("a TeamFolderCreateError structure")
26531 }
26532 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26533 let tag: &str = match map.next_key()? {
26534 Some(".tag") => map.next_value()?,
26535 _ => return Err(de::Error::missing_field(".tag"))
26536 };
26537 let value = match tag {
26538 "invalid_folder_name" => TeamFolderCreateError::InvalidFolderName,
26539 "folder_name_already_used" => TeamFolderCreateError::FolderNameAlreadyUsed,
26540 "folder_name_reserved" => TeamFolderCreateError::FolderNameReserved,
26541 "sync_settings_error" => {
26542 match map.next_key()? {
26543 Some("sync_settings_error") => TeamFolderCreateError::SyncSettingsError(map.next_value()?),
26544 None => return Err(de::Error::missing_field("sync_settings_error")),
26545 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26546 }
26547 }
26548 "folder_count_limit_exceeded" => TeamFolderCreateError::FolderCountLimitExceeded,
26549 _ => TeamFolderCreateError::Other,
26550 };
26551 crate::eat_json_fields(&mut map)?;
26552 Ok(value)
26553 }
26554 }
26555 const VARIANTS: &[&str] = &["invalid_folder_name",
26556 "folder_name_already_used",
26557 "folder_name_reserved",
26558 "sync_settings_error",
26559 "folder_count_limit_exceeded",
26560 "other"];
26561 deserializer.deserialize_struct("TeamFolderCreateError", VARIANTS, EnumVisitor)
26562 }
26563}
26564
26565impl ::serde::ser::Serialize for TeamFolderCreateError {
26566 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26567 use serde::ser::SerializeStruct;
26569 match self {
26570 TeamFolderCreateError::InvalidFolderName => {
26571 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
26573 s.serialize_field(".tag", "invalid_folder_name")?;
26574 s.end()
26575 }
26576 TeamFolderCreateError::FolderNameAlreadyUsed => {
26577 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
26579 s.serialize_field(".tag", "folder_name_already_used")?;
26580 s.end()
26581 }
26582 TeamFolderCreateError::FolderNameReserved => {
26583 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
26585 s.serialize_field(".tag", "folder_name_reserved")?;
26586 s.end()
26587 }
26588 TeamFolderCreateError::SyncSettingsError(x) => {
26589 let mut s = serializer.serialize_struct("TeamFolderCreateError", 2)?;
26591 s.serialize_field(".tag", "sync_settings_error")?;
26592 s.serialize_field("sync_settings_error", x)?;
26593 s.end()
26594 }
26595 TeamFolderCreateError::FolderCountLimitExceeded => {
26596 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
26598 s.serialize_field(".tag", "folder_count_limit_exceeded")?;
26599 s.end()
26600 }
26601 TeamFolderCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26602 }
26603 }
26604}
26605
26606impl ::std::error::Error for TeamFolderCreateError {
26607 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26608 match self {
26609 TeamFolderCreateError::SyncSettingsError(inner) => Some(inner),
26610 _ => None,
26611 }
26612 }
26613}
26614
26615impl ::std::fmt::Display for TeamFolderCreateError {
26616 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26617 match self {
26618 TeamFolderCreateError::InvalidFolderName => f.write_str("The provided name cannot be used."),
26619 TeamFolderCreateError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the provided name."),
26620 TeamFolderCreateError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
26621 TeamFolderCreateError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
26622 TeamFolderCreateError::FolderCountLimitExceeded => f.write_str("The team has reached the maximum number of team folders allowed by its plan."),
26623 _ => write!(f, "{:?}", *self),
26624 }
26625 }
26626}
26627
26628#[derive(Debug, Clone, PartialEq, Eq)]
26629pub enum TeamFolderGetInfoItem {
26630 IdNotFound(String),
26634 TeamFolderMetadata(TeamFolderMetadata),
26636}
26637
26638impl<'de> ::serde::de::Deserialize<'de> for TeamFolderGetInfoItem {
26639 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26640 use serde::de::{self, MapAccess, Visitor};
26642 struct EnumVisitor;
26643 impl<'de> Visitor<'de> for EnumVisitor {
26644 type Value = TeamFolderGetInfoItem;
26645 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26646 f.write_str("a TeamFolderGetInfoItem structure")
26647 }
26648 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26649 let tag: &str = match map.next_key()? {
26650 Some(".tag") => map.next_value()?,
26651 _ => return Err(de::Error::missing_field(".tag"))
26652 };
26653 let value = match tag {
26654 "id_not_found" => {
26655 match map.next_key()? {
26656 Some("id_not_found") => TeamFolderGetInfoItem::IdNotFound(map.next_value()?),
26657 None => return Err(de::Error::missing_field("id_not_found")),
26658 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26659 }
26660 }
26661 "team_folder_metadata" => TeamFolderGetInfoItem::TeamFolderMetadata(TeamFolderMetadata::internal_deserialize(&mut map)?),
26662 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
26663 };
26664 crate::eat_json_fields(&mut map)?;
26665 Ok(value)
26666 }
26667 }
26668 const VARIANTS: &[&str] = &["id_not_found",
26669 "team_folder_metadata"];
26670 deserializer.deserialize_struct("TeamFolderGetInfoItem", VARIANTS, EnumVisitor)
26671 }
26672}
26673
26674impl ::serde::ser::Serialize for TeamFolderGetInfoItem {
26675 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26676 use serde::ser::SerializeStruct;
26678 match self {
26679 TeamFolderGetInfoItem::IdNotFound(x) => {
26680 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 2)?;
26682 s.serialize_field(".tag", "id_not_found")?;
26683 s.serialize_field("id_not_found", x)?;
26684 s.end()
26685 }
26686 TeamFolderGetInfoItem::TeamFolderMetadata(x) => {
26687 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 8)?;
26689 s.serialize_field(".tag", "team_folder_metadata")?;
26690 x.internal_serialize::<S>(&mut s)?;
26691 s.end()
26692 }
26693 }
26694 }
26695}
26696
26697#[derive(Debug, Clone, PartialEq, Eq)]
26698#[non_exhaustive] pub struct TeamFolderIdArg {
26700 pub team_folder_id: crate::types::common::SharedFolderId,
26702}
26703
26704impl TeamFolderIdArg {
26705 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
26706 TeamFolderIdArg {
26707 team_folder_id,
26708 }
26709 }
26710}
26711
26712const TEAM_FOLDER_ID_ARG_FIELDS: &[&str] = &["team_folder_id"];
26713impl TeamFolderIdArg {
26714 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26715 map: V,
26716 ) -> Result<TeamFolderIdArg, V::Error> {
26717 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26718 }
26719
26720 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26721 mut map: V,
26722 optional: bool,
26723 ) -> Result<Option<TeamFolderIdArg>, V::Error> {
26724 let mut field_team_folder_id = None;
26725 let mut nothing = true;
26726 while let Some(key) = map.next_key::<&str>()? {
26727 nothing = false;
26728 match key {
26729 "team_folder_id" => {
26730 if field_team_folder_id.is_some() {
26731 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26732 }
26733 field_team_folder_id = Some(map.next_value()?);
26734 }
26735 _ => {
26736 map.next_value::<::serde_json::Value>()?;
26738 }
26739 }
26740 }
26741 if optional && nothing {
26742 return Ok(None);
26743 }
26744 let result = TeamFolderIdArg {
26745 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26746 };
26747 Ok(Some(result))
26748 }
26749
26750 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26751 &self,
26752 s: &mut S::SerializeStruct,
26753 ) -> Result<(), S::Error> {
26754 use serde::ser::SerializeStruct;
26755 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26756 Ok(())
26757 }
26758}
26759
26760impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdArg {
26761 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26762 use serde::de::{MapAccess, Visitor};
26764 struct StructVisitor;
26765 impl<'de> Visitor<'de> for StructVisitor {
26766 type Value = TeamFolderIdArg;
26767 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26768 f.write_str("a TeamFolderIdArg struct")
26769 }
26770 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26771 TeamFolderIdArg::internal_deserialize(map)
26772 }
26773 }
26774 deserializer.deserialize_struct("TeamFolderIdArg", TEAM_FOLDER_ID_ARG_FIELDS, StructVisitor)
26775 }
26776}
26777
26778impl ::serde::ser::Serialize for TeamFolderIdArg {
26779 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26780 use serde::ser::SerializeStruct;
26782 let mut s = serializer.serialize_struct("TeamFolderIdArg", 1)?;
26783 self.internal_serialize::<S>(&mut s)?;
26784 s.end()
26785 }
26786}
26787
26788#[derive(Debug, Clone, PartialEq, Eq)]
26789#[non_exhaustive] pub struct TeamFolderIdListArg {
26791 pub team_folder_ids: Vec<crate::types::common::SharedFolderId>,
26793}
26794
26795impl TeamFolderIdListArg {
26796 pub fn new(team_folder_ids: Vec<crate::types::common::SharedFolderId>) -> Self {
26797 TeamFolderIdListArg {
26798 team_folder_ids,
26799 }
26800 }
26801}
26802
26803const TEAM_FOLDER_ID_LIST_ARG_FIELDS: &[&str] = &["team_folder_ids"];
26804impl TeamFolderIdListArg {
26805 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26806 map: V,
26807 ) -> Result<TeamFolderIdListArg, V::Error> {
26808 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26809 }
26810
26811 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26812 mut map: V,
26813 optional: bool,
26814 ) -> Result<Option<TeamFolderIdListArg>, V::Error> {
26815 let mut field_team_folder_ids = None;
26816 let mut nothing = true;
26817 while let Some(key) = map.next_key::<&str>()? {
26818 nothing = false;
26819 match key {
26820 "team_folder_ids" => {
26821 if field_team_folder_ids.is_some() {
26822 return Err(::serde::de::Error::duplicate_field("team_folder_ids"));
26823 }
26824 field_team_folder_ids = Some(map.next_value()?);
26825 }
26826 _ => {
26827 map.next_value::<::serde_json::Value>()?;
26829 }
26830 }
26831 }
26832 if optional && nothing {
26833 return Ok(None);
26834 }
26835 let result = TeamFolderIdListArg {
26836 team_folder_ids: field_team_folder_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_ids"))?,
26837 };
26838 Ok(Some(result))
26839 }
26840
26841 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26842 &self,
26843 s: &mut S::SerializeStruct,
26844 ) -> Result<(), S::Error> {
26845 use serde::ser::SerializeStruct;
26846 s.serialize_field("team_folder_ids", &self.team_folder_ids)?;
26847 Ok(())
26848 }
26849}
26850
26851impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdListArg {
26852 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26853 use serde::de::{MapAccess, Visitor};
26855 struct StructVisitor;
26856 impl<'de> Visitor<'de> for StructVisitor {
26857 type Value = TeamFolderIdListArg;
26858 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26859 f.write_str("a TeamFolderIdListArg struct")
26860 }
26861 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26862 TeamFolderIdListArg::internal_deserialize(map)
26863 }
26864 }
26865 deserializer.deserialize_struct("TeamFolderIdListArg", TEAM_FOLDER_ID_LIST_ARG_FIELDS, StructVisitor)
26866 }
26867}
26868
26869impl ::serde::ser::Serialize for TeamFolderIdListArg {
26870 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26871 use serde::ser::SerializeStruct;
26873 let mut s = serializer.serialize_struct("TeamFolderIdListArg", 1)?;
26874 self.internal_serialize::<S>(&mut s)?;
26875 s.end()
26876 }
26877}
26878
26879#[derive(Debug, Clone, PartialEq, Eq)]
26880#[non_exhaustive] pub enum TeamFolderInvalidStatusError {
26882 Active,
26884 Archived,
26886 ArchiveInProgress,
26888 Other,
26891}
26892
26893impl<'de> ::serde::de::Deserialize<'de> for TeamFolderInvalidStatusError {
26894 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26895 use serde::de::{self, MapAccess, Visitor};
26897 struct EnumVisitor;
26898 impl<'de> Visitor<'de> for EnumVisitor {
26899 type Value = TeamFolderInvalidStatusError;
26900 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26901 f.write_str("a TeamFolderInvalidStatusError structure")
26902 }
26903 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26904 let tag: &str = match map.next_key()? {
26905 Some(".tag") => map.next_value()?,
26906 _ => return Err(de::Error::missing_field(".tag"))
26907 };
26908 let value = match tag {
26909 "active" => TeamFolderInvalidStatusError::Active,
26910 "archived" => TeamFolderInvalidStatusError::Archived,
26911 "archive_in_progress" => TeamFolderInvalidStatusError::ArchiveInProgress,
26912 _ => TeamFolderInvalidStatusError::Other,
26913 };
26914 crate::eat_json_fields(&mut map)?;
26915 Ok(value)
26916 }
26917 }
26918 const VARIANTS: &[&str] = &["active",
26919 "archived",
26920 "archive_in_progress",
26921 "other"];
26922 deserializer.deserialize_struct("TeamFolderInvalidStatusError", VARIANTS, EnumVisitor)
26923 }
26924}
26925
26926impl ::serde::ser::Serialize for TeamFolderInvalidStatusError {
26927 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26928 use serde::ser::SerializeStruct;
26930 match self {
26931 TeamFolderInvalidStatusError::Active => {
26932 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26934 s.serialize_field(".tag", "active")?;
26935 s.end()
26936 }
26937 TeamFolderInvalidStatusError::Archived => {
26938 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26940 s.serialize_field(".tag", "archived")?;
26941 s.end()
26942 }
26943 TeamFolderInvalidStatusError::ArchiveInProgress => {
26944 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26946 s.serialize_field(".tag", "archive_in_progress")?;
26947 s.end()
26948 }
26949 TeamFolderInvalidStatusError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26950 }
26951 }
26952}
26953
26954impl ::std::error::Error for TeamFolderInvalidStatusError {
26955}
26956
26957impl ::std::fmt::Display for TeamFolderInvalidStatusError {
26958 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26959 match self {
26960 TeamFolderInvalidStatusError::Active => f.write_str("The folder is active and the operation did not succeed."),
26961 TeamFolderInvalidStatusError::Archived => f.write_str("The folder is archived and the operation did not succeed."),
26962 TeamFolderInvalidStatusError::ArchiveInProgress => f.write_str("The folder is being archived and the operation did not succeed."),
26963 _ => write!(f, "{:?}", *self),
26964 }
26965 }
26966}
26967
26968#[derive(Debug, Clone, PartialEq, Eq)]
26969#[non_exhaustive] pub struct TeamFolderListArg {
26971 pub limit: u32,
26973}
26974
26975impl Default for TeamFolderListArg {
26976 fn default() -> Self {
26977 TeamFolderListArg {
26978 limit: 1000,
26979 }
26980 }
26981}
26982
26983impl TeamFolderListArg {
26984 pub fn with_limit(mut self, value: u32) -> Self {
26985 self.limit = value;
26986 self
26987 }
26988}
26989
26990const TEAM_FOLDER_LIST_ARG_FIELDS: &[&str] = &["limit"];
26991impl TeamFolderListArg {
26992 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26994 mut map: V,
26995 ) -> Result<TeamFolderListArg, V::Error> {
26996 let mut field_limit = None;
26997 while let Some(key) = map.next_key::<&str>()? {
26998 match key {
26999 "limit" => {
27000 if field_limit.is_some() {
27001 return Err(::serde::de::Error::duplicate_field("limit"));
27002 }
27003 field_limit = Some(map.next_value()?);
27004 }
27005 _ => {
27006 map.next_value::<::serde_json::Value>()?;
27008 }
27009 }
27010 }
27011 let result = TeamFolderListArg {
27012 limit: field_limit.unwrap_or(1000),
27013 };
27014 Ok(result)
27015 }
27016
27017 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27018 &self,
27019 s: &mut S::SerializeStruct,
27020 ) -> Result<(), S::Error> {
27021 use serde::ser::SerializeStruct;
27022 if self.limit != 1000 {
27023 s.serialize_field("limit", &self.limit)?;
27024 }
27025 Ok(())
27026 }
27027}
27028
27029impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListArg {
27030 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27031 use serde::de::{MapAccess, Visitor};
27033 struct StructVisitor;
27034 impl<'de> Visitor<'de> for StructVisitor {
27035 type Value = TeamFolderListArg;
27036 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27037 f.write_str("a TeamFolderListArg struct")
27038 }
27039 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27040 TeamFolderListArg::internal_deserialize(map)
27041 }
27042 }
27043 deserializer.deserialize_struct("TeamFolderListArg", TEAM_FOLDER_LIST_ARG_FIELDS, StructVisitor)
27044 }
27045}
27046
27047impl ::serde::ser::Serialize for TeamFolderListArg {
27048 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27049 use serde::ser::SerializeStruct;
27051 let mut s = serializer.serialize_struct("TeamFolderListArg", 1)?;
27052 self.internal_serialize::<S>(&mut s)?;
27053 s.end()
27054 }
27055}
27056
27057#[derive(Debug, Clone, PartialEq, Eq)]
27058#[non_exhaustive] pub struct TeamFolderListContinueArg {
27060 pub cursor: String,
27062}
27063
27064impl TeamFolderListContinueArg {
27065 pub fn new(cursor: String) -> Self {
27066 TeamFolderListContinueArg {
27067 cursor,
27068 }
27069 }
27070}
27071
27072const TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
27073impl TeamFolderListContinueArg {
27074 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27075 map: V,
27076 ) -> Result<TeamFolderListContinueArg, V::Error> {
27077 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27078 }
27079
27080 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27081 mut map: V,
27082 optional: bool,
27083 ) -> Result<Option<TeamFolderListContinueArg>, V::Error> {
27084 let mut field_cursor = None;
27085 let mut nothing = true;
27086 while let Some(key) = map.next_key::<&str>()? {
27087 nothing = false;
27088 match key {
27089 "cursor" => {
27090 if field_cursor.is_some() {
27091 return Err(::serde::de::Error::duplicate_field("cursor"));
27092 }
27093 field_cursor = Some(map.next_value()?);
27094 }
27095 _ => {
27096 map.next_value::<::serde_json::Value>()?;
27098 }
27099 }
27100 }
27101 if optional && nothing {
27102 return Ok(None);
27103 }
27104 let result = TeamFolderListContinueArg {
27105 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
27106 };
27107 Ok(Some(result))
27108 }
27109
27110 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27111 &self,
27112 s: &mut S::SerializeStruct,
27113 ) -> Result<(), S::Error> {
27114 use serde::ser::SerializeStruct;
27115 s.serialize_field("cursor", &self.cursor)?;
27116 Ok(())
27117 }
27118}
27119
27120impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueArg {
27121 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27122 use serde::de::{MapAccess, Visitor};
27124 struct StructVisitor;
27125 impl<'de> Visitor<'de> for StructVisitor {
27126 type Value = TeamFolderListContinueArg;
27127 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27128 f.write_str("a TeamFolderListContinueArg struct")
27129 }
27130 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27131 TeamFolderListContinueArg::internal_deserialize(map)
27132 }
27133 }
27134 deserializer.deserialize_struct("TeamFolderListContinueArg", TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
27135 }
27136}
27137
27138impl ::serde::ser::Serialize for TeamFolderListContinueArg {
27139 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27140 use serde::ser::SerializeStruct;
27142 let mut s = serializer.serialize_struct("TeamFolderListContinueArg", 1)?;
27143 self.internal_serialize::<S>(&mut s)?;
27144 s.end()
27145 }
27146}
27147
27148#[derive(Debug, Clone, PartialEq, Eq)]
27149#[non_exhaustive] pub enum TeamFolderListContinueError {
27151 InvalidCursor,
27153 Other,
27156}
27157
27158impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueError {
27159 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27160 use serde::de::{self, MapAccess, Visitor};
27162 struct EnumVisitor;
27163 impl<'de> Visitor<'de> for EnumVisitor {
27164 type Value = TeamFolderListContinueError;
27165 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27166 f.write_str("a TeamFolderListContinueError structure")
27167 }
27168 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27169 let tag: &str = match map.next_key()? {
27170 Some(".tag") => map.next_value()?,
27171 _ => return Err(de::Error::missing_field(".tag"))
27172 };
27173 let value = match tag {
27174 "invalid_cursor" => TeamFolderListContinueError::InvalidCursor,
27175 _ => TeamFolderListContinueError::Other,
27176 };
27177 crate::eat_json_fields(&mut map)?;
27178 Ok(value)
27179 }
27180 }
27181 const VARIANTS: &[&str] = &["invalid_cursor",
27182 "other"];
27183 deserializer.deserialize_struct("TeamFolderListContinueError", VARIANTS, EnumVisitor)
27184 }
27185}
27186
27187impl ::serde::ser::Serialize for TeamFolderListContinueError {
27188 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27189 use serde::ser::SerializeStruct;
27191 match self {
27192 TeamFolderListContinueError::InvalidCursor => {
27193 let mut s = serializer.serialize_struct("TeamFolderListContinueError", 1)?;
27195 s.serialize_field(".tag", "invalid_cursor")?;
27196 s.end()
27197 }
27198 TeamFolderListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27199 }
27200 }
27201}
27202
27203impl ::std::error::Error for TeamFolderListContinueError {
27204}
27205
27206impl ::std::fmt::Display for TeamFolderListContinueError {
27207 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27208 match self {
27209 TeamFolderListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
27210 _ => write!(f, "{:?}", *self),
27211 }
27212 }
27213}
27214
27215#[derive(Debug, Clone, PartialEq, Eq)]
27216#[non_exhaustive] pub struct TeamFolderListError {
27218 pub access_error: TeamFolderAccessError,
27219}
27220
27221impl TeamFolderListError {
27222 pub fn new(access_error: TeamFolderAccessError) -> Self {
27223 TeamFolderListError {
27224 access_error,
27225 }
27226 }
27227}
27228
27229const TEAM_FOLDER_LIST_ERROR_FIELDS: &[&str] = &["access_error"];
27230impl TeamFolderListError {
27231 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27232 map: V,
27233 ) -> Result<TeamFolderListError, V::Error> {
27234 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27235 }
27236
27237 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27238 mut map: V,
27239 optional: bool,
27240 ) -> Result<Option<TeamFolderListError>, V::Error> {
27241 let mut field_access_error = None;
27242 let mut nothing = true;
27243 while let Some(key) = map.next_key::<&str>()? {
27244 nothing = false;
27245 match key {
27246 "access_error" => {
27247 if field_access_error.is_some() {
27248 return Err(::serde::de::Error::duplicate_field("access_error"));
27249 }
27250 field_access_error = Some(map.next_value()?);
27251 }
27252 _ => {
27253 map.next_value::<::serde_json::Value>()?;
27255 }
27256 }
27257 }
27258 if optional && nothing {
27259 return Ok(None);
27260 }
27261 let result = TeamFolderListError {
27262 access_error: field_access_error.ok_or_else(|| ::serde::de::Error::missing_field("access_error"))?,
27263 };
27264 Ok(Some(result))
27265 }
27266
27267 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27268 &self,
27269 s: &mut S::SerializeStruct,
27270 ) -> Result<(), S::Error> {
27271 use serde::ser::SerializeStruct;
27272 s.serialize_field("access_error", &self.access_error)?;
27273 Ok(())
27274 }
27275}
27276
27277impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListError {
27278 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27279 use serde::de::{MapAccess, Visitor};
27281 struct StructVisitor;
27282 impl<'de> Visitor<'de> for StructVisitor {
27283 type Value = TeamFolderListError;
27284 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27285 f.write_str("a TeamFolderListError struct")
27286 }
27287 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27288 TeamFolderListError::internal_deserialize(map)
27289 }
27290 }
27291 deserializer.deserialize_struct("TeamFolderListError", TEAM_FOLDER_LIST_ERROR_FIELDS, StructVisitor)
27292 }
27293}
27294
27295impl ::serde::ser::Serialize for TeamFolderListError {
27296 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27297 use serde::ser::SerializeStruct;
27299 let mut s = serializer.serialize_struct("TeamFolderListError", 1)?;
27300 self.internal_serialize::<S>(&mut s)?;
27301 s.end()
27302 }
27303}
27304
27305impl ::std::error::Error for TeamFolderListError {
27306}
27307
27308impl ::std::fmt::Display for TeamFolderListError {
27309 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27310 write!(f, "{:?}", *self)
27311 }
27312}
27313
27314#[derive(Debug, Clone, PartialEq, Eq)]
27317#[non_exhaustive] pub struct TeamFolderListResult {
27319 pub team_folders: Vec<TeamFolderMetadata>,
27321 pub cursor: String,
27324 pub has_more: bool,
27328}
27329
27330impl TeamFolderListResult {
27331 pub fn new(team_folders: Vec<TeamFolderMetadata>, cursor: String, has_more: bool) -> Self {
27332 TeamFolderListResult {
27333 team_folders,
27334 cursor,
27335 has_more,
27336 }
27337 }
27338}
27339
27340const TEAM_FOLDER_LIST_RESULT_FIELDS: &[&str] = &["team_folders",
27341 "cursor",
27342 "has_more"];
27343impl TeamFolderListResult {
27344 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27345 map: V,
27346 ) -> Result<TeamFolderListResult, V::Error> {
27347 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27348 }
27349
27350 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27351 mut map: V,
27352 optional: bool,
27353 ) -> Result<Option<TeamFolderListResult>, V::Error> {
27354 let mut field_team_folders = None;
27355 let mut field_cursor = None;
27356 let mut field_has_more = None;
27357 let mut nothing = true;
27358 while let Some(key) = map.next_key::<&str>()? {
27359 nothing = false;
27360 match key {
27361 "team_folders" => {
27362 if field_team_folders.is_some() {
27363 return Err(::serde::de::Error::duplicate_field("team_folders"));
27364 }
27365 field_team_folders = Some(map.next_value()?);
27366 }
27367 "cursor" => {
27368 if field_cursor.is_some() {
27369 return Err(::serde::de::Error::duplicate_field("cursor"));
27370 }
27371 field_cursor = Some(map.next_value()?);
27372 }
27373 "has_more" => {
27374 if field_has_more.is_some() {
27375 return Err(::serde::de::Error::duplicate_field("has_more"));
27376 }
27377 field_has_more = Some(map.next_value()?);
27378 }
27379 _ => {
27380 map.next_value::<::serde_json::Value>()?;
27382 }
27383 }
27384 }
27385 if optional && nothing {
27386 return Ok(None);
27387 }
27388 let result = TeamFolderListResult {
27389 team_folders: field_team_folders.ok_or_else(|| ::serde::de::Error::missing_field("team_folders"))?,
27390 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
27391 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
27392 };
27393 Ok(Some(result))
27394 }
27395
27396 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27397 &self,
27398 s: &mut S::SerializeStruct,
27399 ) -> Result<(), S::Error> {
27400 use serde::ser::SerializeStruct;
27401 s.serialize_field("team_folders", &self.team_folders)?;
27402 s.serialize_field("cursor", &self.cursor)?;
27403 s.serialize_field("has_more", &self.has_more)?;
27404 Ok(())
27405 }
27406}
27407
27408impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListResult {
27409 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27410 use serde::de::{MapAccess, Visitor};
27412 struct StructVisitor;
27413 impl<'de> Visitor<'de> for StructVisitor {
27414 type Value = TeamFolderListResult;
27415 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27416 f.write_str("a TeamFolderListResult struct")
27417 }
27418 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27419 TeamFolderListResult::internal_deserialize(map)
27420 }
27421 }
27422 deserializer.deserialize_struct("TeamFolderListResult", TEAM_FOLDER_LIST_RESULT_FIELDS, StructVisitor)
27423 }
27424}
27425
27426impl ::serde::ser::Serialize for TeamFolderListResult {
27427 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27428 use serde::ser::SerializeStruct;
27430 let mut s = serializer.serialize_struct("TeamFolderListResult", 3)?;
27431 self.internal_serialize::<S>(&mut s)?;
27432 s.end()
27433 }
27434}
27435
27436#[derive(Debug, Clone, PartialEq, Eq)]
27438#[non_exhaustive] pub struct TeamFolderMetadata {
27440 pub team_folder_id: crate::types::common::SharedFolderId,
27442 pub name: String,
27444 pub status: TeamFolderStatus,
27446 pub is_team_shared_dropbox: bool,
27448 pub sync_setting: crate::types::files::SyncSetting,
27450 pub content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
27452 pub quota_limit: i64,
27454}
27455
27456impl TeamFolderMetadata {
27457 pub fn new(
27458 team_folder_id: crate::types::common::SharedFolderId,
27459 name: String,
27460 status: TeamFolderStatus,
27461 is_team_shared_dropbox: bool,
27462 sync_setting: crate::types::files::SyncSetting,
27463 content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
27464 ) -> Self {
27465 TeamFolderMetadata {
27466 team_folder_id,
27467 name,
27468 status,
27469 is_team_shared_dropbox,
27470 sync_setting,
27471 content_sync_settings,
27472 quota_limit: 0,
27473 }
27474 }
27475
27476 pub fn with_quota_limit(mut self, value: i64) -> Self {
27477 self.quota_limit = value;
27478 self
27479 }
27480}
27481
27482const TEAM_FOLDER_METADATA_FIELDS: &[&str] = &["team_folder_id",
27483 "name",
27484 "status",
27485 "is_team_shared_dropbox",
27486 "sync_setting",
27487 "content_sync_settings",
27488 "quota_limit"];
27489impl TeamFolderMetadata {
27490 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27491 map: V,
27492 ) -> Result<TeamFolderMetadata, V::Error> {
27493 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27494 }
27495
27496 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27497 mut map: V,
27498 optional: bool,
27499 ) -> Result<Option<TeamFolderMetadata>, V::Error> {
27500 let mut field_team_folder_id = None;
27501 let mut field_name = None;
27502 let mut field_status = None;
27503 let mut field_is_team_shared_dropbox = None;
27504 let mut field_sync_setting = None;
27505 let mut field_content_sync_settings = None;
27506 let mut field_quota_limit = None;
27507 let mut nothing = true;
27508 while let Some(key) = map.next_key::<&str>()? {
27509 nothing = false;
27510 match key {
27511 "team_folder_id" => {
27512 if field_team_folder_id.is_some() {
27513 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
27514 }
27515 field_team_folder_id = Some(map.next_value()?);
27516 }
27517 "name" => {
27518 if field_name.is_some() {
27519 return Err(::serde::de::Error::duplicate_field("name"));
27520 }
27521 field_name = Some(map.next_value()?);
27522 }
27523 "status" => {
27524 if field_status.is_some() {
27525 return Err(::serde::de::Error::duplicate_field("status"));
27526 }
27527 field_status = Some(map.next_value()?);
27528 }
27529 "is_team_shared_dropbox" => {
27530 if field_is_team_shared_dropbox.is_some() {
27531 return Err(::serde::de::Error::duplicate_field("is_team_shared_dropbox"));
27532 }
27533 field_is_team_shared_dropbox = Some(map.next_value()?);
27534 }
27535 "sync_setting" => {
27536 if field_sync_setting.is_some() {
27537 return Err(::serde::de::Error::duplicate_field("sync_setting"));
27538 }
27539 field_sync_setting = Some(map.next_value()?);
27540 }
27541 "content_sync_settings" => {
27542 if field_content_sync_settings.is_some() {
27543 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
27544 }
27545 field_content_sync_settings = Some(map.next_value()?);
27546 }
27547 "quota_limit" => {
27548 if field_quota_limit.is_some() {
27549 return Err(::serde::de::Error::duplicate_field("quota_limit"));
27550 }
27551 field_quota_limit = Some(map.next_value()?);
27552 }
27553 _ => {
27554 map.next_value::<::serde_json::Value>()?;
27556 }
27557 }
27558 }
27559 if optional && nothing {
27560 return Ok(None);
27561 }
27562 let result = TeamFolderMetadata {
27563 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
27564 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
27565 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
27566 is_team_shared_dropbox: field_is_team_shared_dropbox.ok_or_else(|| ::serde::de::Error::missing_field("is_team_shared_dropbox"))?,
27567 sync_setting: field_sync_setting.ok_or_else(|| ::serde::de::Error::missing_field("sync_setting"))?,
27568 content_sync_settings: field_content_sync_settings.ok_or_else(|| ::serde::de::Error::missing_field("content_sync_settings"))?,
27569 quota_limit: field_quota_limit.unwrap_or(0),
27570 };
27571 Ok(Some(result))
27572 }
27573
27574 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27575 &self,
27576 s: &mut S::SerializeStruct,
27577 ) -> Result<(), S::Error> {
27578 use serde::ser::SerializeStruct;
27579 s.serialize_field("team_folder_id", &self.team_folder_id)?;
27580 s.serialize_field("name", &self.name)?;
27581 s.serialize_field("status", &self.status)?;
27582 s.serialize_field("is_team_shared_dropbox", &self.is_team_shared_dropbox)?;
27583 s.serialize_field("sync_setting", &self.sync_setting)?;
27584 s.serialize_field("content_sync_settings", &self.content_sync_settings)?;
27585 if self.quota_limit != 0 {
27586 s.serialize_field("quota_limit", &self.quota_limit)?;
27587 }
27588 Ok(())
27589 }
27590}
27591
27592impl<'de> ::serde::de::Deserialize<'de> for TeamFolderMetadata {
27593 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27594 use serde::de::{MapAccess, Visitor};
27596 struct StructVisitor;
27597 impl<'de> Visitor<'de> for StructVisitor {
27598 type Value = TeamFolderMetadata;
27599 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27600 f.write_str("a TeamFolderMetadata struct")
27601 }
27602 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27603 TeamFolderMetadata::internal_deserialize(map)
27604 }
27605 }
27606 deserializer.deserialize_struct("TeamFolderMetadata", TEAM_FOLDER_METADATA_FIELDS, StructVisitor)
27607 }
27608}
27609
27610impl ::serde::ser::Serialize for TeamFolderMetadata {
27611 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27612 use serde::ser::SerializeStruct;
27614 let mut s = serializer.serialize_struct("TeamFolderMetadata", 7)?;
27615 self.internal_serialize::<S>(&mut s)?;
27616 s.end()
27617 }
27618}
27619
27620
27621#[derive(Debug, Clone, PartialEq, Eq)]
27622#[non_exhaustive] pub enum TeamFolderPermanentlyDeleteError {
27624 AccessError(TeamFolderAccessError),
27625 StatusError(TeamFolderInvalidStatusError),
27626 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
27627 Other,
27630}
27631
27632impl<'de> ::serde::de::Deserialize<'de> for TeamFolderPermanentlyDeleteError {
27633 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27634 use serde::de::{self, MapAccess, Visitor};
27636 struct EnumVisitor;
27637 impl<'de> Visitor<'de> for EnumVisitor {
27638 type Value = TeamFolderPermanentlyDeleteError;
27639 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27640 f.write_str("a TeamFolderPermanentlyDeleteError structure")
27641 }
27642 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27643 let tag: &str = match map.next_key()? {
27644 Some(".tag") => map.next_value()?,
27645 _ => return Err(de::Error::missing_field(".tag"))
27646 };
27647 let value = match tag {
27648 "access_error" => {
27649 match map.next_key()? {
27650 Some("access_error") => TeamFolderPermanentlyDeleteError::AccessError(map.next_value()?),
27651 None => return Err(de::Error::missing_field("access_error")),
27652 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27653 }
27654 }
27655 "status_error" => {
27656 match map.next_key()? {
27657 Some("status_error") => TeamFolderPermanentlyDeleteError::StatusError(map.next_value()?),
27658 None => return Err(de::Error::missing_field("status_error")),
27659 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27660 }
27661 }
27662 "team_shared_dropbox_error" => {
27663 match map.next_key()? {
27664 Some("team_shared_dropbox_error") => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(map.next_value()?),
27665 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
27666 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27667 }
27668 }
27669 _ => TeamFolderPermanentlyDeleteError::Other,
27670 };
27671 crate::eat_json_fields(&mut map)?;
27672 Ok(value)
27673 }
27674 }
27675 const VARIANTS: &[&str] = &["access_error",
27676 "status_error",
27677 "team_shared_dropbox_error",
27678 "other"];
27679 deserializer.deserialize_struct("TeamFolderPermanentlyDeleteError", VARIANTS, EnumVisitor)
27680 }
27681}
27682
27683impl ::serde::ser::Serialize for TeamFolderPermanentlyDeleteError {
27684 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27685 use serde::ser::SerializeStruct;
27687 match self {
27688 TeamFolderPermanentlyDeleteError::AccessError(x) => {
27689 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
27691 s.serialize_field(".tag", "access_error")?;
27692 s.serialize_field("access_error", x)?;
27693 s.end()
27694 }
27695 TeamFolderPermanentlyDeleteError::StatusError(x) => {
27696 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
27698 s.serialize_field(".tag", "status_error")?;
27699 s.serialize_field("status_error", x)?;
27700 s.end()
27701 }
27702 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x) => {
27703 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
27705 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27706 s.serialize_field("team_shared_dropbox_error", x)?;
27707 s.end()
27708 }
27709 TeamFolderPermanentlyDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27710 }
27711 }
27712}
27713
27714impl ::std::error::Error for TeamFolderPermanentlyDeleteError {
27715 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27716 match self {
27717 TeamFolderPermanentlyDeleteError::AccessError(inner) => Some(inner),
27718 TeamFolderPermanentlyDeleteError::StatusError(inner) => Some(inner),
27719 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => Some(inner),
27720 _ => None,
27721 }
27722 }
27723}
27724
27725impl ::std::fmt::Display for TeamFolderPermanentlyDeleteError {
27726 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27727 match self {
27728 TeamFolderPermanentlyDeleteError::AccessError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
27729 TeamFolderPermanentlyDeleteError::StatusError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
27730 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
27731 _ => write!(f, "{:?}", *self),
27732 }
27733 }
27734}
27735
27736impl From<BaseTeamFolderError> for TeamFolderPermanentlyDeleteError {
27738 fn from(parent: BaseTeamFolderError) -> Self {
27739 match parent {
27740 BaseTeamFolderError::AccessError(x) => TeamFolderPermanentlyDeleteError::AccessError(x),
27741 BaseTeamFolderError::StatusError(x) => TeamFolderPermanentlyDeleteError::StatusError(x),
27742 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x),
27743 BaseTeamFolderError::Other => TeamFolderPermanentlyDeleteError::Other,
27744 }
27745 }
27746}
27747#[derive(Debug, Clone, PartialEq, Eq)]
27748#[non_exhaustive] pub struct TeamFolderRenameArg {
27750 pub team_folder_id: crate::types::common::SharedFolderId,
27752 pub name: String,
27754}
27755
27756impl TeamFolderRenameArg {
27757 pub fn new(team_folder_id: crate::types::common::SharedFolderId, name: String) -> Self {
27758 TeamFolderRenameArg {
27759 team_folder_id,
27760 name,
27761 }
27762 }
27763}
27764
27765const TEAM_FOLDER_RENAME_ARG_FIELDS: &[&str] = &["team_folder_id",
27766 "name"];
27767impl TeamFolderRenameArg {
27768 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27769 map: V,
27770 ) -> Result<TeamFolderRenameArg, V::Error> {
27771 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27772 }
27773
27774 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27775 mut map: V,
27776 optional: bool,
27777 ) -> Result<Option<TeamFolderRenameArg>, V::Error> {
27778 let mut field_team_folder_id = None;
27779 let mut field_name = None;
27780 let mut nothing = true;
27781 while let Some(key) = map.next_key::<&str>()? {
27782 nothing = false;
27783 match key {
27784 "team_folder_id" => {
27785 if field_team_folder_id.is_some() {
27786 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
27787 }
27788 field_team_folder_id = Some(map.next_value()?);
27789 }
27790 "name" => {
27791 if field_name.is_some() {
27792 return Err(::serde::de::Error::duplicate_field("name"));
27793 }
27794 field_name = Some(map.next_value()?);
27795 }
27796 _ => {
27797 map.next_value::<::serde_json::Value>()?;
27799 }
27800 }
27801 }
27802 if optional && nothing {
27803 return Ok(None);
27804 }
27805 let result = TeamFolderRenameArg {
27806 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
27807 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
27808 };
27809 Ok(Some(result))
27810 }
27811
27812 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27813 &self,
27814 s: &mut S::SerializeStruct,
27815 ) -> Result<(), S::Error> {
27816 use serde::ser::SerializeStruct;
27817 s.serialize_field("team_folder_id", &self.team_folder_id)?;
27818 s.serialize_field("name", &self.name)?;
27819 Ok(())
27820 }
27821}
27822
27823impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameArg {
27824 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27825 use serde::de::{MapAccess, Visitor};
27827 struct StructVisitor;
27828 impl<'de> Visitor<'de> for StructVisitor {
27829 type Value = TeamFolderRenameArg;
27830 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27831 f.write_str("a TeamFolderRenameArg struct")
27832 }
27833 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27834 TeamFolderRenameArg::internal_deserialize(map)
27835 }
27836 }
27837 deserializer.deserialize_struct("TeamFolderRenameArg", TEAM_FOLDER_RENAME_ARG_FIELDS, StructVisitor)
27838 }
27839}
27840
27841impl ::serde::ser::Serialize for TeamFolderRenameArg {
27842 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27843 use serde::ser::SerializeStruct;
27845 let mut s = serializer.serialize_struct("TeamFolderRenameArg", 2)?;
27846 self.internal_serialize::<S>(&mut s)?;
27847 s.end()
27848 }
27849}
27850
27851impl From<TeamFolderRenameArg> for TeamFolderIdArg {
27853 fn from(subtype: TeamFolderRenameArg) -> Self {
27854 Self {
27855 team_folder_id: subtype.team_folder_id,
27856 }
27857 }
27858}
27859#[derive(Debug, Clone, PartialEq, Eq)]
27860#[non_exhaustive] pub enum TeamFolderRenameError {
27862 AccessError(TeamFolderAccessError),
27863 StatusError(TeamFolderInvalidStatusError),
27864 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
27865 InvalidFolderName,
27867 FolderNameAlreadyUsed,
27869 FolderNameReserved,
27871 Other,
27874}
27875
27876impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameError {
27877 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27878 use serde::de::{self, MapAccess, Visitor};
27880 struct EnumVisitor;
27881 impl<'de> Visitor<'de> for EnumVisitor {
27882 type Value = TeamFolderRenameError;
27883 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27884 f.write_str("a TeamFolderRenameError structure")
27885 }
27886 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27887 let tag: &str = match map.next_key()? {
27888 Some(".tag") => map.next_value()?,
27889 _ => return Err(de::Error::missing_field(".tag"))
27890 };
27891 let value = match tag {
27892 "access_error" => {
27893 match map.next_key()? {
27894 Some("access_error") => TeamFolderRenameError::AccessError(map.next_value()?),
27895 None => return Err(de::Error::missing_field("access_error")),
27896 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27897 }
27898 }
27899 "status_error" => {
27900 match map.next_key()? {
27901 Some("status_error") => TeamFolderRenameError::StatusError(map.next_value()?),
27902 None => return Err(de::Error::missing_field("status_error")),
27903 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27904 }
27905 }
27906 "team_shared_dropbox_error" => {
27907 match map.next_key()? {
27908 Some("team_shared_dropbox_error") => TeamFolderRenameError::TeamSharedDropboxError(map.next_value()?),
27909 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
27910 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27911 }
27912 }
27913 "invalid_folder_name" => TeamFolderRenameError::InvalidFolderName,
27914 "folder_name_already_used" => TeamFolderRenameError::FolderNameAlreadyUsed,
27915 "folder_name_reserved" => TeamFolderRenameError::FolderNameReserved,
27916 _ => TeamFolderRenameError::Other,
27917 };
27918 crate::eat_json_fields(&mut map)?;
27919 Ok(value)
27920 }
27921 }
27922 const VARIANTS: &[&str] = &["access_error",
27923 "status_error",
27924 "team_shared_dropbox_error",
27925 "other",
27926 "invalid_folder_name",
27927 "folder_name_already_used",
27928 "folder_name_reserved"];
27929 deserializer.deserialize_struct("TeamFolderRenameError", VARIANTS, EnumVisitor)
27930 }
27931}
27932
27933impl ::serde::ser::Serialize for TeamFolderRenameError {
27934 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27935 use serde::ser::SerializeStruct;
27937 match self {
27938 TeamFolderRenameError::AccessError(x) => {
27939 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27941 s.serialize_field(".tag", "access_error")?;
27942 s.serialize_field("access_error", x)?;
27943 s.end()
27944 }
27945 TeamFolderRenameError::StatusError(x) => {
27946 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27948 s.serialize_field(".tag", "status_error")?;
27949 s.serialize_field("status_error", x)?;
27950 s.end()
27951 }
27952 TeamFolderRenameError::TeamSharedDropboxError(x) => {
27953 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27955 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27956 s.serialize_field("team_shared_dropbox_error", x)?;
27957 s.end()
27958 }
27959 TeamFolderRenameError::InvalidFolderName => {
27960 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27962 s.serialize_field(".tag", "invalid_folder_name")?;
27963 s.end()
27964 }
27965 TeamFolderRenameError::FolderNameAlreadyUsed => {
27966 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27968 s.serialize_field(".tag", "folder_name_already_used")?;
27969 s.end()
27970 }
27971 TeamFolderRenameError::FolderNameReserved => {
27972 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27974 s.serialize_field(".tag", "folder_name_reserved")?;
27975 s.end()
27976 }
27977 TeamFolderRenameError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27978 }
27979 }
27980}
27981
27982impl ::std::error::Error for TeamFolderRenameError {
27983 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27984 match self {
27985 TeamFolderRenameError::AccessError(inner) => Some(inner),
27986 TeamFolderRenameError::StatusError(inner) => Some(inner),
27987 TeamFolderRenameError::TeamSharedDropboxError(inner) => Some(inner),
27988 _ => None,
27989 }
27990 }
27991}
27992
27993impl ::std::fmt::Display for TeamFolderRenameError {
27994 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27995 match self {
27996 TeamFolderRenameError::AccessError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27997 TeamFolderRenameError::StatusError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27998 TeamFolderRenameError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27999 TeamFolderRenameError::InvalidFolderName => f.write_str("The provided folder name cannot be used."),
28000 TeamFolderRenameError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the same name."),
28001 TeamFolderRenameError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
28002 _ => write!(f, "{:?}", *self),
28003 }
28004 }
28005}
28006
28007impl From<BaseTeamFolderError> for TeamFolderRenameError {
28009 fn from(parent: BaseTeamFolderError) -> Self {
28010 match parent {
28011 BaseTeamFolderError::AccessError(x) => TeamFolderRenameError::AccessError(x),
28012 BaseTeamFolderError::StatusError(x) => TeamFolderRenameError::StatusError(x),
28013 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRenameError::TeamSharedDropboxError(x),
28014 BaseTeamFolderError::Other => TeamFolderRenameError::Other,
28015 }
28016 }
28017}
28018#[derive(Debug, Clone, PartialEq, Eq)]
28019#[non_exhaustive] pub enum TeamFolderRestoreError {
28021 AccessError(TeamFolderAccessError),
28022 StatusError(TeamFolderInvalidStatusError),
28023 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
28024 FolderCountLimitExceeded,
28026 Other,
28029}
28030
28031impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRestoreError {
28032 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28033 use serde::de::{self, MapAccess, Visitor};
28035 struct EnumVisitor;
28036 impl<'de> Visitor<'de> for EnumVisitor {
28037 type Value = TeamFolderRestoreError;
28038 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28039 f.write_str("a TeamFolderRestoreError structure")
28040 }
28041 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28042 let tag: &str = match map.next_key()? {
28043 Some(".tag") => map.next_value()?,
28044 _ => return Err(de::Error::missing_field(".tag"))
28045 };
28046 let value = match tag {
28047 "access_error" => {
28048 match map.next_key()? {
28049 Some("access_error") => TeamFolderRestoreError::AccessError(map.next_value()?),
28050 None => return Err(de::Error::missing_field("access_error")),
28051 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28052 }
28053 }
28054 "status_error" => {
28055 match map.next_key()? {
28056 Some("status_error") => TeamFolderRestoreError::StatusError(map.next_value()?),
28057 None => return Err(de::Error::missing_field("status_error")),
28058 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28059 }
28060 }
28061 "team_shared_dropbox_error" => {
28062 match map.next_key()? {
28063 Some("team_shared_dropbox_error") => TeamFolderRestoreError::TeamSharedDropboxError(map.next_value()?),
28064 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
28065 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28066 }
28067 }
28068 "folder_count_limit_exceeded" => TeamFolderRestoreError::FolderCountLimitExceeded,
28069 _ => TeamFolderRestoreError::Other,
28070 };
28071 crate::eat_json_fields(&mut map)?;
28072 Ok(value)
28073 }
28074 }
28075 const VARIANTS: &[&str] = &["access_error",
28076 "status_error",
28077 "team_shared_dropbox_error",
28078 "other",
28079 "folder_count_limit_exceeded"];
28080 deserializer.deserialize_struct("TeamFolderRestoreError", VARIANTS, EnumVisitor)
28081 }
28082}
28083
28084impl ::serde::ser::Serialize for TeamFolderRestoreError {
28085 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28086 use serde::ser::SerializeStruct;
28088 match self {
28089 TeamFolderRestoreError::AccessError(x) => {
28090 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
28092 s.serialize_field(".tag", "access_error")?;
28093 s.serialize_field("access_error", x)?;
28094 s.end()
28095 }
28096 TeamFolderRestoreError::StatusError(x) => {
28097 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
28099 s.serialize_field(".tag", "status_error")?;
28100 s.serialize_field("status_error", x)?;
28101 s.end()
28102 }
28103 TeamFolderRestoreError::TeamSharedDropboxError(x) => {
28104 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
28106 s.serialize_field(".tag", "team_shared_dropbox_error")?;
28107 s.serialize_field("team_shared_dropbox_error", x)?;
28108 s.end()
28109 }
28110 TeamFolderRestoreError::FolderCountLimitExceeded => {
28111 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 1)?;
28113 s.serialize_field(".tag", "folder_count_limit_exceeded")?;
28114 s.end()
28115 }
28116 TeamFolderRestoreError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28117 }
28118 }
28119}
28120
28121impl ::std::error::Error for TeamFolderRestoreError {
28122 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
28123 match self {
28124 TeamFolderRestoreError::AccessError(inner) => Some(inner),
28125 TeamFolderRestoreError::StatusError(inner) => Some(inner),
28126 TeamFolderRestoreError::TeamSharedDropboxError(inner) => Some(inner),
28127 _ => None,
28128 }
28129 }
28130}
28131
28132impl ::std::fmt::Display for TeamFolderRestoreError {
28133 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28134 match self {
28135 TeamFolderRestoreError::AccessError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
28136 TeamFolderRestoreError::StatusError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
28137 TeamFolderRestoreError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
28138 TeamFolderRestoreError::FolderCountLimitExceeded => f.write_str("The team has reached the maximum number of team folders allowed by its plan."),
28139 _ => write!(f, "{:?}", *self),
28140 }
28141 }
28142}
28143
28144impl From<BaseTeamFolderError> for TeamFolderRestoreError {
28146 fn from(parent: BaseTeamFolderError) -> Self {
28147 match parent {
28148 BaseTeamFolderError::AccessError(x) => TeamFolderRestoreError::AccessError(x),
28149 BaseTeamFolderError::StatusError(x) => TeamFolderRestoreError::StatusError(x),
28150 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRestoreError::TeamSharedDropboxError(x),
28151 BaseTeamFolderError::Other => TeamFolderRestoreError::Other,
28152 }
28153 }
28154}
28155#[derive(Debug, Clone, PartialEq, Eq)]
28156#[non_exhaustive] pub enum TeamFolderStatus {
28158 Active,
28160 Archived,
28162 ArchiveInProgress,
28165 Inactive,
28167 Other,
28170}
28171
28172impl<'de> ::serde::de::Deserialize<'de> for TeamFolderStatus {
28173 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28174 use serde::de::{self, MapAccess, Visitor};
28176 struct EnumVisitor;
28177 impl<'de> Visitor<'de> for EnumVisitor {
28178 type Value = TeamFolderStatus;
28179 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28180 f.write_str("a TeamFolderStatus structure")
28181 }
28182 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28183 let tag: &str = match map.next_key()? {
28184 Some(".tag") => map.next_value()?,
28185 _ => return Err(de::Error::missing_field(".tag"))
28186 };
28187 let value = match tag {
28188 "active" => TeamFolderStatus::Active,
28189 "archived" => TeamFolderStatus::Archived,
28190 "archive_in_progress" => TeamFolderStatus::ArchiveInProgress,
28191 "inactive" => TeamFolderStatus::Inactive,
28192 _ => TeamFolderStatus::Other,
28193 };
28194 crate::eat_json_fields(&mut map)?;
28195 Ok(value)
28196 }
28197 }
28198 const VARIANTS: &[&str] = &["active",
28199 "archived",
28200 "archive_in_progress",
28201 "inactive",
28202 "other"];
28203 deserializer.deserialize_struct("TeamFolderStatus", VARIANTS, EnumVisitor)
28204 }
28205}
28206
28207impl ::serde::ser::Serialize for TeamFolderStatus {
28208 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28209 use serde::ser::SerializeStruct;
28211 match self {
28212 TeamFolderStatus::Active => {
28213 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
28215 s.serialize_field(".tag", "active")?;
28216 s.end()
28217 }
28218 TeamFolderStatus::Archived => {
28219 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
28221 s.serialize_field(".tag", "archived")?;
28222 s.end()
28223 }
28224 TeamFolderStatus::ArchiveInProgress => {
28225 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
28227 s.serialize_field(".tag", "archive_in_progress")?;
28228 s.end()
28229 }
28230 TeamFolderStatus::Inactive => {
28231 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
28233 s.serialize_field(".tag", "inactive")?;
28234 s.end()
28235 }
28236 TeamFolderStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28237 }
28238 }
28239}
28240
28241#[derive(Debug, Clone, PartialEq, Eq)]
28242#[non_exhaustive] pub enum TeamFolderTeamSharedDropboxError {
28244 Disallowed,
28246 Other,
28249}
28250
28251impl<'de> ::serde::de::Deserialize<'de> for TeamFolderTeamSharedDropboxError {
28252 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28253 use serde::de::{self, MapAccess, Visitor};
28255 struct EnumVisitor;
28256 impl<'de> Visitor<'de> for EnumVisitor {
28257 type Value = TeamFolderTeamSharedDropboxError;
28258 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28259 f.write_str("a TeamFolderTeamSharedDropboxError structure")
28260 }
28261 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28262 let tag: &str = match map.next_key()? {
28263 Some(".tag") => map.next_value()?,
28264 _ => return Err(de::Error::missing_field(".tag"))
28265 };
28266 let value = match tag {
28267 "disallowed" => TeamFolderTeamSharedDropboxError::Disallowed,
28268 _ => TeamFolderTeamSharedDropboxError::Other,
28269 };
28270 crate::eat_json_fields(&mut map)?;
28271 Ok(value)
28272 }
28273 }
28274 const VARIANTS: &[&str] = &["disallowed",
28275 "other"];
28276 deserializer.deserialize_struct("TeamFolderTeamSharedDropboxError", VARIANTS, EnumVisitor)
28277 }
28278}
28279
28280impl ::serde::ser::Serialize for TeamFolderTeamSharedDropboxError {
28281 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28282 use serde::ser::SerializeStruct;
28284 match self {
28285 TeamFolderTeamSharedDropboxError::Disallowed => {
28286 let mut s = serializer.serialize_struct("TeamFolderTeamSharedDropboxError", 1)?;
28288 s.serialize_field(".tag", "disallowed")?;
28289 s.end()
28290 }
28291 TeamFolderTeamSharedDropboxError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28292 }
28293 }
28294}
28295
28296impl ::std::error::Error for TeamFolderTeamSharedDropboxError {
28297}
28298
28299impl ::std::fmt::Display for TeamFolderTeamSharedDropboxError {
28300 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28301 match self {
28302 TeamFolderTeamSharedDropboxError::Disallowed => f.write_str("This action is not allowed for a shared team root."),
28303 _ => write!(f, "{:?}", *self),
28304 }
28305 }
28306}
28307
28308#[derive(Debug, Clone, PartialEq, Eq)]
28309#[non_exhaustive] pub struct TeamFolderUpdateSyncSettingsArg {
28311 pub team_folder_id: crate::types::common::SharedFolderId,
28313 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
28316 pub content_sync_settings: Option<Vec<crate::types::files::ContentSyncSettingArg>>,
28318}
28319
28320impl TeamFolderUpdateSyncSettingsArg {
28321 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
28322 TeamFolderUpdateSyncSettingsArg {
28323 team_folder_id,
28324 sync_setting: None,
28325 content_sync_settings: None,
28326 }
28327 }
28328
28329 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
28330 self.sync_setting = Some(value);
28331 self
28332 }
28333
28334 pub fn with_content_sync_settings(
28335 mut self,
28336 value: Vec<crate::types::files::ContentSyncSettingArg>,
28337 ) -> Self {
28338 self.content_sync_settings = Some(value);
28339 self
28340 }
28341}
28342
28343const TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS: &[&str] = &["team_folder_id",
28344 "sync_setting",
28345 "content_sync_settings"];
28346impl TeamFolderUpdateSyncSettingsArg {
28347 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28348 map: V,
28349 ) -> Result<TeamFolderUpdateSyncSettingsArg, V::Error> {
28350 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28351 }
28352
28353 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28354 mut map: V,
28355 optional: bool,
28356 ) -> Result<Option<TeamFolderUpdateSyncSettingsArg>, V::Error> {
28357 let mut field_team_folder_id = None;
28358 let mut field_sync_setting = None;
28359 let mut field_content_sync_settings = None;
28360 let mut nothing = true;
28361 while let Some(key) = map.next_key::<&str>()? {
28362 nothing = false;
28363 match key {
28364 "team_folder_id" => {
28365 if field_team_folder_id.is_some() {
28366 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
28367 }
28368 field_team_folder_id = Some(map.next_value()?);
28369 }
28370 "sync_setting" => {
28371 if field_sync_setting.is_some() {
28372 return Err(::serde::de::Error::duplicate_field("sync_setting"));
28373 }
28374 field_sync_setting = Some(map.next_value()?);
28375 }
28376 "content_sync_settings" => {
28377 if field_content_sync_settings.is_some() {
28378 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
28379 }
28380 field_content_sync_settings = Some(map.next_value()?);
28381 }
28382 _ => {
28383 map.next_value::<::serde_json::Value>()?;
28385 }
28386 }
28387 }
28388 if optional && nothing {
28389 return Ok(None);
28390 }
28391 let result = TeamFolderUpdateSyncSettingsArg {
28392 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
28393 sync_setting: field_sync_setting.and_then(Option::flatten),
28394 content_sync_settings: field_content_sync_settings.and_then(Option::flatten),
28395 };
28396 Ok(Some(result))
28397 }
28398
28399 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28400 &self,
28401 s: &mut S::SerializeStruct,
28402 ) -> Result<(), S::Error> {
28403 use serde::ser::SerializeStruct;
28404 s.serialize_field("team_folder_id", &self.team_folder_id)?;
28405 if let Some(val) = &self.sync_setting {
28406 s.serialize_field("sync_setting", val)?;
28407 }
28408 if let Some(val) = &self.content_sync_settings {
28409 s.serialize_field("content_sync_settings", val)?;
28410 }
28411 Ok(())
28412 }
28413}
28414
28415impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsArg {
28416 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28417 use serde::de::{MapAccess, Visitor};
28419 struct StructVisitor;
28420 impl<'de> Visitor<'de> for StructVisitor {
28421 type Value = TeamFolderUpdateSyncSettingsArg;
28422 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28423 f.write_str("a TeamFolderUpdateSyncSettingsArg struct")
28424 }
28425 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28426 TeamFolderUpdateSyncSettingsArg::internal_deserialize(map)
28427 }
28428 }
28429 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsArg", TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS, StructVisitor)
28430 }
28431}
28432
28433impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsArg {
28434 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28435 use serde::ser::SerializeStruct;
28437 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsArg", 3)?;
28438 self.internal_serialize::<S>(&mut s)?;
28439 s.end()
28440 }
28441}
28442
28443impl From<TeamFolderUpdateSyncSettingsArg> for TeamFolderIdArg {
28445 fn from(subtype: TeamFolderUpdateSyncSettingsArg) -> Self {
28446 Self {
28447 team_folder_id: subtype.team_folder_id,
28448 }
28449 }
28450}
28451#[derive(Debug, Clone, PartialEq, Eq)]
28452#[non_exhaustive] pub enum TeamFolderUpdateSyncSettingsError {
28454 AccessError(TeamFolderAccessError),
28455 StatusError(TeamFolderInvalidStatusError),
28456 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
28457 SyncSettingsError(crate::types::files::SyncSettingsError),
28459 Other,
28462}
28463
28464impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsError {
28465 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28466 use serde::de::{self, MapAccess, Visitor};
28468 struct EnumVisitor;
28469 impl<'de> Visitor<'de> for EnumVisitor {
28470 type Value = TeamFolderUpdateSyncSettingsError;
28471 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28472 f.write_str("a TeamFolderUpdateSyncSettingsError structure")
28473 }
28474 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28475 let tag: &str = match map.next_key()? {
28476 Some(".tag") => map.next_value()?,
28477 _ => return Err(de::Error::missing_field(".tag"))
28478 };
28479 let value = match tag {
28480 "access_error" => {
28481 match map.next_key()? {
28482 Some("access_error") => TeamFolderUpdateSyncSettingsError::AccessError(map.next_value()?),
28483 None => return Err(de::Error::missing_field("access_error")),
28484 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28485 }
28486 }
28487 "status_error" => {
28488 match map.next_key()? {
28489 Some("status_error") => TeamFolderUpdateSyncSettingsError::StatusError(map.next_value()?),
28490 None => return Err(de::Error::missing_field("status_error")),
28491 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28492 }
28493 }
28494 "team_shared_dropbox_error" => {
28495 match map.next_key()? {
28496 Some("team_shared_dropbox_error") => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(map.next_value()?),
28497 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
28498 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28499 }
28500 }
28501 "sync_settings_error" => {
28502 match map.next_key()? {
28503 Some("sync_settings_error") => TeamFolderUpdateSyncSettingsError::SyncSettingsError(map.next_value()?),
28504 None => return Err(de::Error::missing_field("sync_settings_error")),
28505 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28506 }
28507 }
28508 _ => TeamFolderUpdateSyncSettingsError::Other,
28509 };
28510 crate::eat_json_fields(&mut map)?;
28511 Ok(value)
28512 }
28513 }
28514 const VARIANTS: &[&str] = &["access_error",
28515 "status_error",
28516 "team_shared_dropbox_error",
28517 "other",
28518 "sync_settings_error"];
28519 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsError", VARIANTS, EnumVisitor)
28520 }
28521}
28522
28523impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsError {
28524 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28525 use serde::ser::SerializeStruct;
28527 match self {
28528 TeamFolderUpdateSyncSettingsError::AccessError(x) => {
28529 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
28531 s.serialize_field(".tag", "access_error")?;
28532 s.serialize_field("access_error", x)?;
28533 s.end()
28534 }
28535 TeamFolderUpdateSyncSettingsError::StatusError(x) => {
28536 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
28538 s.serialize_field(".tag", "status_error")?;
28539 s.serialize_field("status_error", x)?;
28540 s.end()
28541 }
28542 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x) => {
28543 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
28545 s.serialize_field(".tag", "team_shared_dropbox_error")?;
28546 s.serialize_field("team_shared_dropbox_error", x)?;
28547 s.end()
28548 }
28549 TeamFolderUpdateSyncSettingsError::SyncSettingsError(x) => {
28550 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
28552 s.serialize_field(".tag", "sync_settings_error")?;
28553 s.serialize_field("sync_settings_error", x)?;
28554 s.end()
28555 }
28556 TeamFolderUpdateSyncSettingsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28557 }
28558 }
28559}
28560
28561impl ::std::error::Error for TeamFolderUpdateSyncSettingsError {
28562 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
28563 match self {
28564 TeamFolderUpdateSyncSettingsError::AccessError(inner) => Some(inner),
28565 TeamFolderUpdateSyncSettingsError::StatusError(inner) => Some(inner),
28566 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => Some(inner),
28567 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => Some(inner),
28568 _ => None,
28569 }
28570 }
28571}
28572
28573impl ::std::fmt::Display for TeamFolderUpdateSyncSettingsError {
28574 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28575 match self {
28576 TeamFolderUpdateSyncSettingsError::AccessError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
28577 TeamFolderUpdateSyncSettingsError::StatusError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
28578 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
28579 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
28580 _ => write!(f, "{:?}", *self),
28581 }
28582 }
28583}
28584
28585impl From<BaseTeamFolderError> for TeamFolderUpdateSyncSettingsError {
28587 fn from(parent: BaseTeamFolderError) -> Self {
28588 match parent {
28589 BaseTeamFolderError::AccessError(x) => TeamFolderUpdateSyncSettingsError::AccessError(x),
28590 BaseTeamFolderError::StatusError(x) => TeamFolderUpdateSyncSettingsError::StatusError(x),
28591 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x),
28592 BaseTeamFolderError::Other => TeamFolderUpdateSyncSettingsError::Other,
28593 }
28594 }
28595}
28596#[derive(Debug, Clone, PartialEq, Eq)]
28597#[non_exhaustive] pub struct TeamGetInfoResult {
28599 pub name: String,
28601 pub team_id: String,
28603 pub num_licensed_users: u32,
28605 pub num_provisioned_users: u32,
28607 pub policies: crate::types::team_policies::TeamMemberPolicies,
28608 pub num_used_licenses: u32,
28610}
28611
28612impl TeamGetInfoResult {
28613 pub fn new(
28614 name: String,
28615 team_id: String,
28616 num_licensed_users: u32,
28617 num_provisioned_users: u32,
28618 policies: crate::types::team_policies::TeamMemberPolicies,
28619 ) -> Self {
28620 TeamGetInfoResult {
28621 name,
28622 team_id,
28623 num_licensed_users,
28624 num_provisioned_users,
28625 policies,
28626 num_used_licenses: 0,
28627 }
28628 }
28629
28630 pub fn with_num_used_licenses(mut self, value: u32) -> Self {
28631 self.num_used_licenses = value;
28632 self
28633 }
28634}
28635
28636const TEAM_GET_INFO_RESULT_FIELDS: &[&str] = &["name",
28637 "team_id",
28638 "num_licensed_users",
28639 "num_provisioned_users",
28640 "policies",
28641 "num_used_licenses"];
28642impl TeamGetInfoResult {
28643 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28644 map: V,
28645 ) -> Result<TeamGetInfoResult, V::Error> {
28646 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28647 }
28648
28649 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28650 mut map: V,
28651 optional: bool,
28652 ) -> Result<Option<TeamGetInfoResult>, V::Error> {
28653 let mut field_name = None;
28654 let mut field_team_id = None;
28655 let mut field_num_licensed_users = None;
28656 let mut field_num_provisioned_users = None;
28657 let mut field_policies = None;
28658 let mut field_num_used_licenses = None;
28659 let mut nothing = true;
28660 while let Some(key) = map.next_key::<&str>()? {
28661 nothing = false;
28662 match key {
28663 "name" => {
28664 if field_name.is_some() {
28665 return Err(::serde::de::Error::duplicate_field("name"));
28666 }
28667 field_name = Some(map.next_value()?);
28668 }
28669 "team_id" => {
28670 if field_team_id.is_some() {
28671 return Err(::serde::de::Error::duplicate_field("team_id"));
28672 }
28673 field_team_id = Some(map.next_value()?);
28674 }
28675 "num_licensed_users" => {
28676 if field_num_licensed_users.is_some() {
28677 return Err(::serde::de::Error::duplicate_field("num_licensed_users"));
28678 }
28679 field_num_licensed_users = Some(map.next_value()?);
28680 }
28681 "num_provisioned_users" => {
28682 if field_num_provisioned_users.is_some() {
28683 return Err(::serde::de::Error::duplicate_field("num_provisioned_users"));
28684 }
28685 field_num_provisioned_users = Some(map.next_value()?);
28686 }
28687 "policies" => {
28688 if field_policies.is_some() {
28689 return Err(::serde::de::Error::duplicate_field("policies"));
28690 }
28691 field_policies = Some(map.next_value()?);
28692 }
28693 "num_used_licenses" => {
28694 if field_num_used_licenses.is_some() {
28695 return Err(::serde::de::Error::duplicate_field("num_used_licenses"));
28696 }
28697 field_num_used_licenses = Some(map.next_value()?);
28698 }
28699 _ => {
28700 map.next_value::<::serde_json::Value>()?;
28702 }
28703 }
28704 }
28705 if optional && nothing {
28706 return Ok(None);
28707 }
28708 let result = TeamGetInfoResult {
28709 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
28710 team_id: field_team_id.ok_or_else(|| ::serde::de::Error::missing_field("team_id"))?,
28711 num_licensed_users: field_num_licensed_users.ok_or_else(|| ::serde::de::Error::missing_field("num_licensed_users"))?,
28712 num_provisioned_users: field_num_provisioned_users.ok_or_else(|| ::serde::de::Error::missing_field("num_provisioned_users"))?,
28713 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
28714 num_used_licenses: field_num_used_licenses.unwrap_or(0),
28715 };
28716 Ok(Some(result))
28717 }
28718
28719 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28720 &self,
28721 s: &mut S::SerializeStruct,
28722 ) -> Result<(), S::Error> {
28723 use serde::ser::SerializeStruct;
28724 s.serialize_field("name", &self.name)?;
28725 s.serialize_field("team_id", &self.team_id)?;
28726 s.serialize_field("num_licensed_users", &self.num_licensed_users)?;
28727 s.serialize_field("num_provisioned_users", &self.num_provisioned_users)?;
28728 s.serialize_field("policies", &self.policies)?;
28729 if self.num_used_licenses != 0 {
28730 s.serialize_field("num_used_licenses", &self.num_used_licenses)?;
28731 }
28732 Ok(())
28733 }
28734}
28735
28736impl<'de> ::serde::de::Deserialize<'de> for TeamGetInfoResult {
28737 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28738 use serde::de::{MapAccess, Visitor};
28740 struct StructVisitor;
28741 impl<'de> Visitor<'de> for StructVisitor {
28742 type Value = TeamGetInfoResult;
28743 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28744 f.write_str("a TeamGetInfoResult struct")
28745 }
28746 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28747 TeamGetInfoResult::internal_deserialize(map)
28748 }
28749 }
28750 deserializer.deserialize_struct("TeamGetInfoResult", TEAM_GET_INFO_RESULT_FIELDS, StructVisitor)
28751 }
28752}
28753
28754impl ::serde::ser::Serialize for TeamGetInfoResult {
28755 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28756 use serde::ser::SerializeStruct;
28758 let mut s = serializer.serialize_struct("TeamGetInfoResult", 6)?;
28759 self.internal_serialize::<S>(&mut s)?;
28760 s.end()
28761 }
28762}
28763
28764#[derive(Debug, Clone, PartialEq, Eq)]
28766#[non_exhaustive] pub struct TeamMemberInfo {
28768 pub profile: TeamMemberProfile,
28770 pub role: AdminTier,
28772}
28773
28774impl TeamMemberInfo {
28775 pub fn new(profile: TeamMemberProfile, role: AdminTier) -> Self {
28776 TeamMemberInfo {
28777 profile,
28778 role,
28779 }
28780 }
28781}
28782
28783const TEAM_MEMBER_INFO_FIELDS: &[&str] = &["profile",
28784 "role"];
28785impl TeamMemberInfo {
28786 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28787 map: V,
28788 ) -> Result<TeamMemberInfo, V::Error> {
28789 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28790 }
28791
28792 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28793 mut map: V,
28794 optional: bool,
28795 ) -> Result<Option<TeamMemberInfo>, V::Error> {
28796 let mut field_profile = None;
28797 let mut field_role = None;
28798 let mut nothing = true;
28799 while let Some(key) = map.next_key::<&str>()? {
28800 nothing = false;
28801 match key {
28802 "profile" => {
28803 if field_profile.is_some() {
28804 return Err(::serde::de::Error::duplicate_field("profile"));
28805 }
28806 field_profile = Some(map.next_value()?);
28807 }
28808 "role" => {
28809 if field_role.is_some() {
28810 return Err(::serde::de::Error::duplicate_field("role"));
28811 }
28812 field_role = Some(map.next_value()?);
28813 }
28814 _ => {
28815 map.next_value::<::serde_json::Value>()?;
28817 }
28818 }
28819 }
28820 if optional && nothing {
28821 return Ok(None);
28822 }
28823 let result = TeamMemberInfo {
28824 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
28825 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
28826 };
28827 Ok(Some(result))
28828 }
28829
28830 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28831 &self,
28832 s: &mut S::SerializeStruct,
28833 ) -> Result<(), S::Error> {
28834 use serde::ser::SerializeStruct;
28835 s.serialize_field("profile", &self.profile)?;
28836 s.serialize_field("role", &self.role)?;
28837 Ok(())
28838 }
28839}
28840
28841impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfo {
28842 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28843 use serde::de::{MapAccess, Visitor};
28845 struct StructVisitor;
28846 impl<'de> Visitor<'de> for StructVisitor {
28847 type Value = TeamMemberInfo;
28848 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28849 f.write_str("a TeamMemberInfo struct")
28850 }
28851 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28852 TeamMemberInfo::internal_deserialize(map)
28853 }
28854 }
28855 deserializer.deserialize_struct("TeamMemberInfo", TEAM_MEMBER_INFO_FIELDS, StructVisitor)
28856 }
28857}
28858
28859impl ::serde::ser::Serialize for TeamMemberInfo {
28860 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28861 use serde::ser::SerializeStruct;
28863 let mut s = serializer.serialize_struct("TeamMemberInfo", 2)?;
28864 self.internal_serialize::<S>(&mut s)?;
28865 s.end()
28866 }
28867}
28868
28869#[derive(Debug, Clone, PartialEq, Eq)]
28871#[non_exhaustive] pub struct TeamMemberInfoV2 {
28873 pub profile: TeamMemberProfile,
28875 pub roles: Option<Vec<TeamMemberRole>>,
28877}
28878
28879impl TeamMemberInfoV2 {
28880 pub fn new(profile: TeamMemberProfile) -> Self {
28881 TeamMemberInfoV2 {
28882 profile,
28883 roles: None,
28884 }
28885 }
28886
28887 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
28888 self.roles = Some(value);
28889 self
28890 }
28891}
28892
28893const TEAM_MEMBER_INFO_V2_FIELDS: &[&str] = &["profile",
28894 "roles"];
28895impl TeamMemberInfoV2 {
28896 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28897 map: V,
28898 ) -> Result<TeamMemberInfoV2, V::Error> {
28899 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28900 }
28901
28902 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28903 mut map: V,
28904 optional: bool,
28905 ) -> Result<Option<TeamMemberInfoV2>, V::Error> {
28906 let mut field_profile = None;
28907 let mut field_roles = None;
28908 let mut nothing = true;
28909 while let Some(key) = map.next_key::<&str>()? {
28910 nothing = false;
28911 match key {
28912 "profile" => {
28913 if field_profile.is_some() {
28914 return Err(::serde::de::Error::duplicate_field("profile"));
28915 }
28916 field_profile = Some(map.next_value()?);
28917 }
28918 "roles" => {
28919 if field_roles.is_some() {
28920 return Err(::serde::de::Error::duplicate_field("roles"));
28921 }
28922 field_roles = Some(map.next_value()?);
28923 }
28924 _ => {
28925 map.next_value::<::serde_json::Value>()?;
28927 }
28928 }
28929 }
28930 if optional && nothing {
28931 return Ok(None);
28932 }
28933 let result = TeamMemberInfoV2 {
28934 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
28935 roles: field_roles.and_then(Option::flatten),
28936 };
28937 Ok(Some(result))
28938 }
28939
28940 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28941 &self,
28942 s: &mut S::SerializeStruct,
28943 ) -> Result<(), S::Error> {
28944 use serde::ser::SerializeStruct;
28945 s.serialize_field("profile", &self.profile)?;
28946 if let Some(val) = &self.roles {
28947 s.serialize_field("roles", val)?;
28948 }
28949 Ok(())
28950 }
28951}
28952
28953impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2 {
28954 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28955 use serde::de::{MapAccess, Visitor};
28957 struct StructVisitor;
28958 impl<'de> Visitor<'de> for StructVisitor {
28959 type Value = TeamMemberInfoV2;
28960 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28961 f.write_str("a TeamMemberInfoV2 struct")
28962 }
28963 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28964 TeamMemberInfoV2::internal_deserialize(map)
28965 }
28966 }
28967 deserializer.deserialize_struct("TeamMemberInfoV2", TEAM_MEMBER_INFO_V2_FIELDS, StructVisitor)
28968 }
28969}
28970
28971impl ::serde::ser::Serialize for TeamMemberInfoV2 {
28972 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28973 use serde::ser::SerializeStruct;
28975 let mut s = serializer.serialize_struct("TeamMemberInfoV2", 2)?;
28976 self.internal_serialize::<S>(&mut s)?;
28977 s.end()
28978 }
28979}
28980
28981#[derive(Debug, Clone, PartialEq, Eq)]
28984#[non_exhaustive] pub struct TeamMemberInfoV2Result {
28986 pub member_info: TeamMemberInfoV2,
28988}
28989
28990impl TeamMemberInfoV2Result {
28991 pub fn new(member_info: TeamMemberInfoV2) -> Self {
28992 TeamMemberInfoV2Result {
28993 member_info,
28994 }
28995 }
28996}
28997
28998const TEAM_MEMBER_INFO_V2_RESULT_FIELDS: &[&str] = &["member_info"];
28999impl TeamMemberInfoV2Result {
29000 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29001 map: V,
29002 ) -> Result<TeamMemberInfoV2Result, V::Error> {
29003 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29004 }
29005
29006 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29007 mut map: V,
29008 optional: bool,
29009 ) -> Result<Option<TeamMemberInfoV2Result>, V::Error> {
29010 let mut field_member_info = None;
29011 let mut nothing = true;
29012 while let Some(key) = map.next_key::<&str>()? {
29013 nothing = false;
29014 match key {
29015 "member_info" => {
29016 if field_member_info.is_some() {
29017 return Err(::serde::de::Error::duplicate_field("member_info"));
29018 }
29019 field_member_info = Some(map.next_value()?);
29020 }
29021 _ => {
29022 map.next_value::<::serde_json::Value>()?;
29024 }
29025 }
29026 }
29027 if optional && nothing {
29028 return Ok(None);
29029 }
29030 let result = TeamMemberInfoV2Result {
29031 member_info: field_member_info.ok_or_else(|| ::serde::de::Error::missing_field("member_info"))?,
29032 };
29033 Ok(Some(result))
29034 }
29035
29036 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29037 &self,
29038 s: &mut S::SerializeStruct,
29039 ) -> Result<(), S::Error> {
29040 use serde::ser::SerializeStruct;
29041 s.serialize_field("member_info", &self.member_info)?;
29042 Ok(())
29043 }
29044}
29045
29046impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2Result {
29047 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29048 use serde::de::{MapAccess, Visitor};
29050 struct StructVisitor;
29051 impl<'de> Visitor<'de> for StructVisitor {
29052 type Value = TeamMemberInfoV2Result;
29053 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29054 f.write_str("a TeamMemberInfoV2Result struct")
29055 }
29056 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29057 TeamMemberInfoV2Result::internal_deserialize(map)
29058 }
29059 }
29060 deserializer.deserialize_struct("TeamMemberInfoV2Result", TEAM_MEMBER_INFO_V2_RESULT_FIELDS, StructVisitor)
29061 }
29062}
29063
29064impl ::serde::ser::Serialize for TeamMemberInfoV2Result {
29065 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29066 use serde::ser::SerializeStruct;
29068 let mut s = serializer.serialize_struct("TeamMemberInfoV2Result", 1)?;
29069 self.internal_serialize::<S>(&mut s)?;
29070 s.end()
29071 }
29072}
29073
29074#[derive(Debug, Clone, PartialEq, Eq)]
29076#[non_exhaustive] pub struct TeamMemberProfile {
29078 pub team_member_id: crate::types::team_common::TeamMemberId,
29080 pub email: String,
29082 pub email_verified: bool,
29084 pub status: TeamMemberStatus,
29086 pub name: crate::types::users::Name,
29088 pub membership_type: TeamMembershipType,
29091 pub groups: Vec<crate::types::team_common::GroupId>,
29093 pub member_folder_id: crate::types::common::NamespaceId,
29095 pub root_folder_id: crate::types::common::NamespaceId,
29097 pub external_id: Option<String>,
29100 pub account_id: Option<crate::types::users_common::AccountId>,
29102 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
29104 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
29107 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
29109 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
29112 pub persistent_id: Option<String>,
29115 pub is_directory_restricted: Option<bool>,
29117 pub profile_photo_url: Option<String>,
29119}
29120
29121impl TeamMemberProfile {
29122 pub fn new(
29123 team_member_id: crate::types::team_common::TeamMemberId,
29124 email: String,
29125 email_verified: bool,
29126 status: TeamMemberStatus,
29127 name: crate::types::users::Name,
29128 membership_type: TeamMembershipType,
29129 groups: Vec<crate::types::team_common::GroupId>,
29130 member_folder_id: crate::types::common::NamespaceId,
29131 root_folder_id: crate::types::common::NamespaceId,
29132 ) -> Self {
29133 TeamMemberProfile {
29134 team_member_id,
29135 email,
29136 email_verified,
29137 status,
29138 name,
29139 membership_type,
29140 groups,
29141 member_folder_id,
29142 root_folder_id,
29143 external_id: None,
29144 account_id: None,
29145 secondary_emails: None,
29146 invited_on: None,
29147 joined_on: None,
29148 suspended_on: None,
29149 persistent_id: None,
29150 is_directory_restricted: None,
29151 profile_photo_url: None,
29152 }
29153 }
29154
29155 pub fn with_external_id(mut self, value: String) -> Self {
29156 self.external_id = Some(value);
29157 self
29158 }
29159
29160 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
29161 self.account_id = Some(value);
29162 self
29163 }
29164
29165 pub fn with_secondary_emails(
29166 mut self,
29167 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
29168 ) -> Self {
29169 self.secondary_emails = Some(value);
29170 self
29171 }
29172
29173 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
29174 self.invited_on = Some(value);
29175 self
29176 }
29177
29178 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
29179 self.joined_on = Some(value);
29180 self
29181 }
29182
29183 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
29184 self.suspended_on = Some(value);
29185 self
29186 }
29187
29188 pub fn with_persistent_id(mut self, value: String) -> Self {
29189 self.persistent_id = Some(value);
29190 self
29191 }
29192
29193 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
29194 self.is_directory_restricted = Some(value);
29195 self
29196 }
29197
29198 pub fn with_profile_photo_url(mut self, value: String) -> Self {
29199 self.profile_photo_url = Some(value);
29200 self
29201 }
29202}
29203
29204const TEAM_MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
29205 "email",
29206 "email_verified",
29207 "status",
29208 "name",
29209 "membership_type",
29210 "groups",
29211 "member_folder_id",
29212 "root_folder_id",
29213 "external_id",
29214 "account_id",
29215 "secondary_emails",
29216 "invited_on",
29217 "joined_on",
29218 "suspended_on",
29219 "persistent_id",
29220 "is_directory_restricted",
29221 "profile_photo_url"];
29222impl TeamMemberProfile {
29223 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29224 map: V,
29225 ) -> Result<TeamMemberProfile, V::Error> {
29226 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29227 }
29228
29229 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29230 mut map: V,
29231 optional: bool,
29232 ) -> Result<Option<TeamMemberProfile>, V::Error> {
29233 let mut field_team_member_id = None;
29234 let mut field_email = None;
29235 let mut field_email_verified = None;
29236 let mut field_status = None;
29237 let mut field_name = None;
29238 let mut field_membership_type = None;
29239 let mut field_groups = None;
29240 let mut field_member_folder_id = None;
29241 let mut field_root_folder_id = None;
29242 let mut field_external_id = None;
29243 let mut field_account_id = None;
29244 let mut field_secondary_emails = None;
29245 let mut field_invited_on = None;
29246 let mut field_joined_on = None;
29247 let mut field_suspended_on = None;
29248 let mut field_persistent_id = None;
29249 let mut field_is_directory_restricted = None;
29250 let mut field_profile_photo_url = None;
29251 let mut nothing = true;
29252 while let Some(key) = map.next_key::<&str>()? {
29253 nothing = false;
29254 match key {
29255 "team_member_id" => {
29256 if field_team_member_id.is_some() {
29257 return Err(::serde::de::Error::duplicate_field("team_member_id"));
29258 }
29259 field_team_member_id = Some(map.next_value()?);
29260 }
29261 "email" => {
29262 if field_email.is_some() {
29263 return Err(::serde::de::Error::duplicate_field("email"));
29264 }
29265 field_email = Some(map.next_value()?);
29266 }
29267 "email_verified" => {
29268 if field_email_verified.is_some() {
29269 return Err(::serde::de::Error::duplicate_field("email_verified"));
29270 }
29271 field_email_verified = Some(map.next_value()?);
29272 }
29273 "status" => {
29274 if field_status.is_some() {
29275 return Err(::serde::de::Error::duplicate_field("status"));
29276 }
29277 field_status = Some(map.next_value()?);
29278 }
29279 "name" => {
29280 if field_name.is_some() {
29281 return Err(::serde::de::Error::duplicate_field("name"));
29282 }
29283 field_name = Some(map.next_value()?);
29284 }
29285 "membership_type" => {
29286 if field_membership_type.is_some() {
29287 return Err(::serde::de::Error::duplicate_field("membership_type"));
29288 }
29289 field_membership_type = Some(map.next_value()?);
29290 }
29291 "groups" => {
29292 if field_groups.is_some() {
29293 return Err(::serde::de::Error::duplicate_field("groups"));
29294 }
29295 field_groups = Some(map.next_value()?);
29296 }
29297 "member_folder_id" => {
29298 if field_member_folder_id.is_some() {
29299 return Err(::serde::de::Error::duplicate_field("member_folder_id"));
29300 }
29301 field_member_folder_id = Some(map.next_value()?);
29302 }
29303 "root_folder_id" => {
29304 if field_root_folder_id.is_some() {
29305 return Err(::serde::de::Error::duplicate_field("root_folder_id"));
29306 }
29307 field_root_folder_id = Some(map.next_value()?);
29308 }
29309 "external_id" => {
29310 if field_external_id.is_some() {
29311 return Err(::serde::de::Error::duplicate_field("external_id"));
29312 }
29313 field_external_id = Some(map.next_value()?);
29314 }
29315 "account_id" => {
29316 if field_account_id.is_some() {
29317 return Err(::serde::de::Error::duplicate_field("account_id"));
29318 }
29319 field_account_id = Some(map.next_value()?);
29320 }
29321 "secondary_emails" => {
29322 if field_secondary_emails.is_some() {
29323 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
29324 }
29325 field_secondary_emails = Some(map.next_value()?);
29326 }
29327 "invited_on" => {
29328 if field_invited_on.is_some() {
29329 return Err(::serde::de::Error::duplicate_field("invited_on"));
29330 }
29331 field_invited_on = Some(map.next_value()?);
29332 }
29333 "joined_on" => {
29334 if field_joined_on.is_some() {
29335 return Err(::serde::de::Error::duplicate_field("joined_on"));
29336 }
29337 field_joined_on = Some(map.next_value()?);
29338 }
29339 "suspended_on" => {
29340 if field_suspended_on.is_some() {
29341 return Err(::serde::de::Error::duplicate_field("suspended_on"));
29342 }
29343 field_suspended_on = Some(map.next_value()?);
29344 }
29345 "persistent_id" => {
29346 if field_persistent_id.is_some() {
29347 return Err(::serde::de::Error::duplicate_field("persistent_id"));
29348 }
29349 field_persistent_id = Some(map.next_value()?);
29350 }
29351 "is_directory_restricted" => {
29352 if field_is_directory_restricted.is_some() {
29353 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
29354 }
29355 field_is_directory_restricted = Some(map.next_value()?);
29356 }
29357 "profile_photo_url" => {
29358 if field_profile_photo_url.is_some() {
29359 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
29360 }
29361 field_profile_photo_url = Some(map.next_value()?);
29362 }
29363 _ => {
29364 map.next_value::<::serde_json::Value>()?;
29366 }
29367 }
29368 }
29369 if optional && nothing {
29370 return Ok(None);
29371 }
29372 let result = TeamMemberProfile {
29373 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
29374 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
29375 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
29376 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
29377 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
29378 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
29379 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
29380 member_folder_id: field_member_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("member_folder_id"))?,
29381 root_folder_id: field_root_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("root_folder_id"))?,
29382 external_id: field_external_id.and_then(Option::flatten),
29383 account_id: field_account_id.and_then(Option::flatten),
29384 secondary_emails: field_secondary_emails.and_then(Option::flatten),
29385 invited_on: field_invited_on.and_then(Option::flatten),
29386 joined_on: field_joined_on.and_then(Option::flatten),
29387 suspended_on: field_suspended_on.and_then(Option::flatten),
29388 persistent_id: field_persistent_id.and_then(Option::flatten),
29389 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
29390 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
29391 };
29392 Ok(Some(result))
29393 }
29394
29395 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29396 &self,
29397 s: &mut S::SerializeStruct,
29398 ) -> Result<(), S::Error> {
29399 use serde::ser::SerializeStruct;
29400 s.serialize_field("team_member_id", &self.team_member_id)?;
29401 s.serialize_field("email", &self.email)?;
29402 s.serialize_field("email_verified", &self.email_verified)?;
29403 s.serialize_field("status", &self.status)?;
29404 s.serialize_field("name", &self.name)?;
29405 s.serialize_field("membership_type", &self.membership_type)?;
29406 s.serialize_field("groups", &self.groups)?;
29407 s.serialize_field("member_folder_id", &self.member_folder_id)?;
29408 s.serialize_field("root_folder_id", &self.root_folder_id)?;
29409 if let Some(val) = &self.external_id {
29410 s.serialize_field("external_id", val)?;
29411 }
29412 if let Some(val) = &self.account_id {
29413 s.serialize_field("account_id", val)?;
29414 }
29415 if let Some(val) = &self.secondary_emails {
29416 s.serialize_field("secondary_emails", val)?;
29417 }
29418 if let Some(val) = &self.invited_on {
29419 s.serialize_field("invited_on", val)?;
29420 }
29421 if let Some(val) = &self.joined_on {
29422 s.serialize_field("joined_on", val)?;
29423 }
29424 if let Some(val) = &self.suspended_on {
29425 s.serialize_field("suspended_on", val)?;
29426 }
29427 if let Some(val) = &self.persistent_id {
29428 s.serialize_field("persistent_id", val)?;
29429 }
29430 if let Some(val) = &self.is_directory_restricted {
29431 s.serialize_field("is_directory_restricted", val)?;
29432 }
29433 if let Some(val) = &self.profile_photo_url {
29434 s.serialize_field("profile_photo_url", val)?;
29435 }
29436 Ok(())
29437 }
29438}
29439
29440impl<'de> ::serde::de::Deserialize<'de> for TeamMemberProfile {
29441 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29442 use serde::de::{MapAccess, Visitor};
29444 struct StructVisitor;
29445 impl<'de> Visitor<'de> for StructVisitor {
29446 type Value = TeamMemberProfile;
29447 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29448 f.write_str("a TeamMemberProfile struct")
29449 }
29450 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29451 TeamMemberProfile::internal_deserialize(map)
29452 }
29453 }
29454 deserializer.deserialize_struct("TeamMemberProfile", TEAM_MEMBER_PROFILE_FIELDS, StructVisitor)
29455 }
29456}
29457
29458impl ::serde::ser::Serialize for TeamMemberProfile {
29459 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29460 use serde::ser::SerializeStruct;
29462 let mut s = serializer.serialize_struct("TeamMemberProfile", 18)?;
29463 self.internal_serialize::<S>(&mut s)?;
29464 s.end()
29465 }
29466}
29467
29468impl From<TeamMemberProfile> for MemberProfile {
29470 fn from(subtype: TeamMemberProfile) -> Self {
29471 Self {
29472 team_member_id: subtype.team_member_id,
29473 email: subtype.email,
29474 email_verified: subtype.email_verified,
29475 status: subtype.status,
29476 name: subtype.name,
29477 membership_type: subtype.membership_type,
29478 external_id: subtype.external_id,
29479 account_id: subtype.account_id,
29480 secondary_emails: subtype.secondary_emails,
29481 invited_on: subtype.invited_on,
29482 joined_on: subtype.joined_on,
29483 suspended_on: subtype.suspended_on,
29484 persistent_id: subtype.persistent_id,
29485 is_directory_restricted: subtype.is_directory_restricted,
29486 profile_photo_url: subtype.profile_photo_url,
29487 }
29488 }
29489}
29490#[derive(Debug, Clone, PartialEq, Eq)]
29493#[non_exhaustive] pub struct TeamMemberRole {
29495 pub role_id: TeamMemberRoleId,
29498 pub name: String,
29500 pub description: String,
29502}
29503
29504impl TeamMemberRole {
29505 pub fn new(role_id: TeamMemberRoleId, name: String, description: String) -> Self {
29506 TeamMemberRole {
29507 role_id,
29508 name,
29509 description,
29510 }
29511 }
29512}
29513
29514const TEAM_MEMBER_ROLE_FIELDS: &[&str] = &["role_id",
29515 "name",
29516 "description"];
29517impl TeamMemberRole {
29518 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29519 map: V,
29520 ) -> Result<TeamMemberRole, V::Error> {
29521 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29522 }
29523
29524 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29525 mut map: V,
29526 optional: bool,
29527 ) -> Result<Option<TeamMemberRole>, V::Error> {
29528 let mut field_role_id = None;
29529 let mut field_name = None;
29530 let mut field_description = None;
29531 let mut nothing = true;
29532 while let Some(key) = map.next_key::<&str>()? {
29533 nothing = false;
29534 match key {
29535 "role_id" => {
29536 if field_role_id.is_some() {
29537 return Err(::serde::de::Error::duplicate_field("role_id"));
29538 }
29539 field_role_id = Some(map.next_value()?);
29540 }
29541 "name" => {
29542 if field_name.is_some() {
29543 return Err(::serde::de::Error::duplicate_field("name"));
29544 }
29545 field_name = Some(map.next_value()?);
29546 }
29547 "description" => {
29548 if field_description.is_some() {
29549 return Err(::serde::de::Error::duplicate_field("description"));
29550 }
29551 field_description = Some(map.next_value()?);
29552 }
29553 _ => {
29554 map.next_value::<::serde_json::Value>()?;
29556 }
29557 }
29558 }
29559 if optional && nothing {
29560 return Ok(None);
29561 }
29562 let result = TeamMemberRole {
29563 role_id: field_role_id.ok_or_else(|| ::serde::de::Error::missing_field("role_id"))?,
29564 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
29565 description: field_description.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
29566 };
29567 Ok(Some(result))
29568 }
29569
29570 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29571 &self,
29572 s: &mut S::SerializeStruct,
29573 ) -> Result<(), S::Error> {
29574 use serde::ser::SerializeStruct;
29575 s.serialize_field("role_id", &self.role_id)?;
29576 s.serialize_field("name", &self.name)?;
29577 s.serialize_field("description", &self.description)?;
29578 Ok(())
29579 }
29580}
29581
29582impl<'de> ::serde::de::Deserialize<'de> for TeamMemberRole {
29583 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29584 use serde::de::{MapAccess, Visitor};
29586 struct StructVisitor;
29587 impl<'de> Visitor<'de> for StructVisitor {
29588 type Value = TeamMemberRole;
29589 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29590 f.write_str("a TeamMemberRole struct")
29591 }
29592 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29593 TeamMemberRole::internal_deserialize(map)
29594 }
29595 }
29596 deserializer.deserialize_struct("TeamMemberRole", TEAM_MEMBER_ROLE_FIELDS, StructVisitor)
29597 }
29598}
29599
29600impl ::serde::ser::Serialize for TeamMemberRole {
29601 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29602 use serde::ser::SerializeStruct;
29604 let mut s = serializer.serialize_struct("TeamMemberRole", 3)?;
29605 self.internal_serialize::<S>(&mut s)?;
29606 s.end()
29607 }
29608}
29609
29610#[derive(Debug, Clone, PartialEq, Eq)]
29612pub enum TeamMemberStatus {
29613 Active,
29615 Invited,
29617 Suspended,
29620 Removed(RemovedStatus),
29623}
29624
29625impl<'de> ::serde::de::Deserialize<'de> for TeamMemberStatus {
29626 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29627 use serde::de::{self, MapAccess, Visitor};
29629 struct EnumVisitor;
29630 impl<'de> Visitor<'de> for EnumVisitor {
29631 type Value = TeamMemberStatus;
29632 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29633 f.write_str("a TeamMemberStatus structure")
29634 }
29635 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29636 let tag: &str = match map.next_key()? {
29637 Some(".tag") => map.next_value()?,
29638 _ => return Err(de::Error::missing_field(".tag"))
29639 };
29640 let value = match tag {
29641 "active" => TeamMemberStatus::Active,
29642 "invited" => TeamMemberStatus::Invited,
29643 "suspended" => TeamMemberStatus::Suspended,
29644 "removed" => TeamMemberStatus::Removed(RemovedStatus::internal_deserialize(&mut map)?),
29645 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
29646 };
29647 crate::eat_json_fields(&mut map)?;
29648 Ok(value)
29649 }
29650 }
29651 const VARIANTS: &[&str] = &["active",
29652 "invited",
29653 "suspended",
29654 "removed"];
29655 deserializer.deserialize_struct("TeamMemberStatus", VARIANTS, EnumVisitor)
29656 }
29657}
29658
29659impl ::serde::ser::Serialize for TeamMemberStatus {
29660 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29661 use serde::ser::SerializeStruct;
29663 match self {
29664 TeamMemberStatus::Active => {
29665 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
29667 s.serialize_field(".tag", "active")?;
29668 s.end()
29669 }
29670 TeamMemberStatus::Invited => {
29671 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
29673 s.serialize_field(".tag", "invited")?;
29674 s.end()
29675 }
29676 TeamMemberStatus::Suspended => {
29677 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
29679 s.serialize_field(".tag", "suspended")?;
29680 s.end()
29681 }
29682 TeamMemberStatus::Removed(x) => {
29683 let mut s = serializer.serialize_struct("TeamMemberStatus", 3)?;
29685 s.serialize_field(".tag", "removed")?;
29686 x.internal_serialize::<S>(&mut s)?;
29687 s.end()
29688 }
29689 }
29690 }
29691}
29692
29693#[derive(Debug, Clone, PartialEq, Eq)]
29694pub enum TeamMembershipType {
29695 Full,
29697 #[deprecated]
29700 Limited,
29701}
29702
29703impl<'de> ::serde::de::Deserialize<'de> for TeamMembershipType {
29704 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29705 use serde::de::{self, MapAccess, Visitor};
29707 struct EnumVisitor;
29708 impl<'de> Visitor<'de> for EnumVisitor {
29709 type Value = TeamMembershipType;
29710 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29711 f.write_str("a TeamMembershipType structure")
29712 }
29713 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29714 let tag: &str = match map.next_key()? {
29715 Some(".tag") => map.next_value()?,
29716 _ => return Err(de::Error::missing_field(".tag"))
29717 };
29718 let value = match tag {
29719 "full" => TeamMembershipType::Full,
29720 #[allow(deprecated)]
29721 "limited" => TeamMembershipType::Limited,
29722 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
29723 };
29724 crate::eat_json_fields(&mut map)?;
29725 Ok(value)
29726 }
29727 }
29728 const VARIANTS: &[&str] = &["full",
29729 "limited"];
29730 deserializer.deserialize_struct("TeamMembershipType", VARIANTS, EnumVisitor)
29731 }
29732}
29733
29734impl ::serde::ser::Serialize for TeamMembershipType {
29735 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29736 use serde::ser::SerializeStruct;
29738 match self {
29739 TeamMembershipType::Full => {
29740 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
29742 s.serialize_field(".tag", "full")?;
29743 s.end()
29744 }
29745 #[allow(deprecated)]
29746 TeamMembershipType::Limited => {
29747 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
29749 s.serialize_field(".tag", "limited")?;
29750 s.end()
29751 }
29752 }
29753 }
29754}
29755
29756#[derive(Debug, Clone, PartialEq, Eq)]
29757#[non_exhaustive] pub struct TeamNamespacesListArg {
29759 #[deprecated]
29761 pub limit: u32,
29762}
29763
29764impl Default for TeamNamespacesListArg {
29765 fn default() -> Self {
29766 TeamNamespacesListArg {
29767 #[allow(deprecated)] limit: 1000,
29768 }
29769 }
29770}
29771
29772impl TeamNamespacesListArg {
29773 #[deprecated]
29774 #[allow(deprecated)]
29775 pub fn with_limit(mut self, value: u32) -> Self {
29776 self.limit = value;
29777 self
29778 }
29779}
29780
29781const TEAM_NAMESPACES_LIST_ARG_FIELDS: &[&str] = &["limit"];
29782impl TeamNamespacesListArg {
29783 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29785 mut map: V,
29786 ) -> Result<TeamNamespacesListArg, V::Error> {
29787 let mut field_limit = None;
29788 while let Some(key) = map.next_key::<&str>()? {
29789 match key {
29790 "limit" => {
29791 if field_limit.is_some() {
29792 return Err(::serde::de::Error::duplicate_field("limit"));
29793 }
29794 field_limit = Some(map.next_value()?);
29795 }
29796 _ => {
29797 map.next_value::<::serde_json::Value>()?;
29799 }
29800 }
29801 }
29802 let result = TeamNamespacesListArg {
29803 #[allow(deprecated)] limit: field_limit.unwrap_or(1000),
29804 };
29805 Ok(result)
29806 }
29807
29808 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29809 &self,
29810 s: &mut S::SerializeStruct,
29811 ) -> Result<(), S::Error> {
29812 use serde::ser::SerializeStruct;
29813 #[allow(deprecated)]
29814 if self.limit != 1000 {
29815 s.serialize_field("limit", &self.limit)?;
29816 }
29817 Ok(())
29818 }
29819}
29820
29821impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListArg {
29822 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29823 use serde::de::{MapAccess, Visitor};
29825 struct StructVisitor;
29826 impl<'de> Visitor<'de> for StructVisitor {
29827 type Value = TeamNamespacesListArg;
29828 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29829 f.write_str("a TeamNamespacesListArg struct")
29830 }
29831 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29832 TeamNamespacesListArg::internal_deserialize(map)
29833 }
29834 }
29835 deserializer.deserialize_struct("TeamNamespacesListArg", TEAM_NAMESPACES_LIST_ARG_FIELDS, StructVisitor)
29836 }
29837}
29838
29839impl ::serde::ser::Serialize for TeamNamespacesListArg {
29840 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29841 use serde::ser::SerializeStruct;
29843 let mut s = serializer.serialize_struct("TeamNamespacesListArg", 1)?;
29844 self.internal_serialize::<S>(&mut s)?;
29845 s.end()
29846 }
29847}
29848
29849#[derive(Debug, Clone, PartialEq, Eq)]
29850#[non_exhaustive] pub struct TeamNamespacesListContinueArg {
29852 pub cursor: String,
29854}
29855
29856impl TeamNamespacesListContinueArg {
29857 pub fn new(cursor: String) -> Self {
29858 TeamNamespacesListContinueArg {
29859 cursor,
29860 }
29861 }
29862}
29863
29864const TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
29865impl TeamNamespacesListContinueArg {
29866 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29867 map: V,
29868 ) -> Result<TeamNamespacesListContinueArg, V::Error> {
29869 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29870 }
29871
29872 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29873 mut map: V,
29874 optional: bool,
29875 ) -> Result<Option<TeamNamespacesListContinueArg>, V::Error> {
29876 let mut field_cursor = None;
29877 let mut nothing = true;
29878 while let Some(key) = map.next_key::<&str>()? {
29879 nothing = false;
29880 match key {
29881 "cursor" => {
29882 if field_cursor.is_some() {
29883 return Err(::serde::de::Error::duplicate_field("cursor"));
29884 }
29885 field_cursor = Some(map.next_value()?);
29886 }
29887 _ => {
29888 map.next_value::<::serde_json::Value>()?;
29890 }
29891 }
29892 }
29893 if optional && nothing {
29894 return Ok(None);
29895 }
29896 let result = TeamNamespacesListContinueArg {
29897 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
29898 };
29899 Ok(Some(result))
29900 }
29901
29902 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29903 &self,
29904 s: &mut S::SerializeStruct,
29905 ) -> Result<(), S::Error> {
29906 use serde::ser::SerializeStruct;
29907 s.serialize_field("cursor", &self.cursor)?;
29908 Ok(())
29909 }
29910}
29911
29912impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueArg {
29913 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29914 use serde::de::{MapAccess, Visitor};
29916 struct StructVisitor;
29917 impl<'de> Visitor<'de> for StructVisitor {
29918 type Value = TeamNamespacesListContinueArg;
29919 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29920 f.write_str("a TeamNamespacesListContinueArg struct")
29921 }
29922 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29923 TeamNamespacesListContinueArg::internal_deserialize(map)
29924 }
29925 }
29926 deserializer.deserialize_struct("TeamNamespacesListContinueArg", TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
29927 }
29928}
29929
29930impl ::serde::ser::Serialize for TeamNamespacesListContinueArg {
29931 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29932 use serde::ser::SerializeStruct;
29934 let mut s = serializer.serialize_struct("TeamNamespacesListContinueArg", 1)?;
29935 self.internal_serialize::<S>(&mut s)?;
29936 s.end()
29937 }
29938}
29939
29940#[derive(Debug, Clone, PartialEq, Eq)]
29941#[non_exhaustive] pub enum TeamNamespacesListContinueError {
29943 InvalidArg,
29945 InvalidCursor,
29947 Other,
29950}
29951
29952impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueError {
29953 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29954 use serde::de::{self, MapAccess, Visitor};
29956 struct EnumVisitor;
29957 impl<'de> Visitor<'de> for EnumVisitor {
29958 type Value = TeamNamespacesListContinueError;
29959 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29960 f.write_str("a TeamNamespacesListContinueError structure")
29961 }
29962 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29963 let tag: &str = match map.next_key()? {
29964 Some(".tag") => map.next_value()?,
29965 _ => return Err(de::Error::missing_field(".tag"))
29966 };
29967 let value = match tag {
29968 "invalid_arg" => TeamNamespacesListContinueError::InvalidArg,
29969 "invalid_cursor" => TeamNamespacesListContinueError::InvalidCursor,
29970 _ => TeamNamespacesListContinueError::Other,
29971 };
29972 crate::eat_json_fields(&mut map)?;
29973 Ok(value)
29974 }
29975 }
29976 const VARIANTS: &[&str] = &["invalid_arg",
29977 "other",
29978 "invalid_cursor"];
29979 deserializer.deserialize_struct("TeamNamespacesListContinueError", VARIANTS, EnumVisitor)
29980 }
29981}
29982
29983impl ::serde::ser::Serialize for TeamNamespacesListContinueError {
29984 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29985 use serde::ser::SerializeStruct;
29987 match self {
29988 TeamNamespacesListContinueError::InvalidArg => {
29989 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
29991 s.serialize_field(".tag", "invalid_arg")?;
29992 s.end()
29993 }
29994 TeamNamespacesListContinueError::InvalidCursor => {
29995 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
29997 s.serialize_field(".tag", "invalid_cursor")?;
29998 s.end()
29999 }
30000 TeamNamespacesListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30001 }
30002 }
30003}
30004
30005impl ::std::error::Error for TeamNamespacesListContinueError {
30006}
30007
30008impl ::std::fmt::Display for TeamNamespacesListContinueError {
30009 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30010 match self {
30011 TeamNamespacesListContinueError::InvalidArg => f.write_str("Argument passed in is invalid."),
30012 TeamNamespacesListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
30013 _ => write!(f, "{:?}", *self),
30014 }
30015 }
30016}
30017
30018impl From<TeamNamespacesListError> for TeamNamespacesListContinueError {
30020 fn from(parent: TeamNamespacesListError) -> Self {
30021 match parent {
30022 TeamNamespacesListError::InvalidArg => TeamNamespacesListContinueError::InvalidArg,
30023 TeamNamespacesListError::Other => TeamNamespacesListContinueError::Other,
30024 }
30025 }
30026}
30027#[derive(Debug, Clone, PartialEq, Eq)]
30028#[non_exhaustive] pub enum TeamNamespacesListError {
30030 InvalidArg,
30032 Other,
30035}
30036
30037impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListError {
30038 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30039 use serde::de::{self, MapAccess, Visitor};
30041 struct EnumVisitor;
30042 impl<'de> Visitor<'de> for EnumVisitor {
30043 type Value = TeamNamespacesListError;
30044 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30045 f.write_str("a TeamNamespacesListError structure")
30046 }
30047 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30048 let tag: &str = match map.next_key()? {
30049 Some(".tag") => map.next_value()?,
30050 _ => return Err(de::Error::missing_field(".tag"))
30051 };
30052 let value = match tag {
30053 "invalid_arg" => TeamNamespacesListError::InvalidArg,
30054 _ => TeamNamespacesListError::Other,
30055 };
30056 crate::eat_json_fields(&mut map)?;
30057 Ok(value)
30058 }
30059 }
30060 const VARIANTS: &[&str] = &["invalid_arg",
30061 "other"];
30062 deserializer.deserialize_struct("TeamNamespacesListError", VARIANTS, EnumVisitor)
30063 }
30064}
30065
30066impl ::serde::ser::Serialize for TeamNamespacesListError {
30067 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30068 use serde::ser::SerializeStruct;
30070 match self {
30071 TeamNamespacesListError::InvalidArg => {
30072 let mut s = serializer.serialize_struct("TeamNamespacesListError", 1)?;
30074 s.serialize_field(".tag", "invalid_arg")?;
30075 s.end()
30076 }
30077 TeamNamespacesListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30078 }
30079 }
30080}
30081
30082impl ::std::error::Error for TeamNamespacesListError {
30083}
30084
30085impl ::std::fmt::Display for TeamNamespacesListError {
30086 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30087 match self {
30088 TeamNamespacesListError::InvalidArg => f.write_str("Argument passed in is invalid."),
30089 _ => write!(f, "{:?}", *self),
30090 }
30091 }
30092}
30093
30094#[derive(Debug, Clone, PartialEq, Eq)]
30096#[non_exhaustive] pub struct TeamNamespacesListResult {
30098 pub namespaces: Vec<NamespaceMetadata>,
30100 pub cursor: String,
30103 pub has_more: bool,
30105}
30106
30107impl TeamNamespacesListResult {
30108 pub fn new(namespaces: Vec<NamespaceMetadata>, cursor: String, has_more: bool) -> Self {
30109 TeamNamespacesListResult {
30110 namespaces,
30111 cursor,
30112 has_more,
30113 }
30114 }
30115}
30116
30117const TEAM_NAMESPACES_LIST_RESULT_FIELDS: &[&str] = &["namespaces",
30118 "cursor",
30119 "has_more"];
30120impl TeamNamespacesListResult {
30121 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30122 map: V,
30123 ) -> Result<TeamNamespacesListResult, V::Error> {
30124 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30125 }
30126
30127 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30128 mut map: V,
30129 optional: bool,
30130 ) -> Result<Option<TeamNamespacesListResult>, V::Error> {
30131 let mut field_namespaces = None;
30132 let mut field_cursor = None;
30133 let mut field_has_more = None;
30134 let mut nothing = true;
30135 while let Some(key) = map.next_key::<&str>()? {
30136 nothing = false;
30137 match key {
30138 "namespaces" => {
30139 if field_namespaces.is_some() {
30140 return Err(::serde::de::Error::duplicate_field("namespaces"));
30141 }
30142 field_namespaces = Some(map.next_value()?);
30143 }
30144 "cursor" => {
30145 if field_cursor.is_some() {
30146 return Err(::serde::de::Error::duplicate_field("cursor"));
30147 }
30148 field_cursor = Some(map.next_value()?);
30149 }
30150 "has_more" => {
30151 if field_has_more.is_some() {
30152 return Err(::serde::de::Error::duplicate_field("has_more"));
30153 }
30154 field_has_more = Some(map.next_value()?);
30155 }
30156 _ => {
30157 map.next_value::<::serde_json::Value>()?;
30159 }
30160 }
30161 }
30162 if optional && nothing {
30163 return Ok(None);
30164 }
30165 let result = TeamNamespacesListResult {
30166 namespaces: field_namespaces.ok_or_else(|| ::serde::de::Error::missing_field("namespaces"))?,
30167 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
30168 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
30169 };
30170 Ok(Some(result))
30171 }
30172
30173 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30174 &self,
30175 s: &mut S::SerializeStruct,
30176 ) -> Result<(), S::Error> {
30177 use serde::ser::SerializeStruct;
30178 s.serialize_field("namespaces", &self.namespaces)?;
30179 s.serialize_field("cursor", &self.cursor)?;
30180 s.serialize_field("has_more", &self.has_more)?;
30181 Ok(())
30182 }
30183}
30184
30185impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListResult {
30186 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30187 use serde::de::{MapAccess, Visitor};
30189 struct StructVisitor;
30190 impl<'de> Visitor<'de> for StructVisitor {
30191 type Value = TeamNamespacesListResult;
30192 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30193 f.write_str("a TeamNamespacesListResult struct")
30194 }
30195 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30196 TeamNamespacesListResult::internal_deserialize(map)
30197 }
30198 }
30199 deserializer.deserialize_struct("TeamNamespacesListResult", TEAM_NAMESPACES_LIST_RESULT_FIELDS, StructVisitor)
30200 }
30201}
30202
30203impl ::serde::ser::Serialize for TeamNamespacesListResult {
30204 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30205 use serde::ser::SerializeStruct;
30207 let mut s = serializer.serialize_struct("TeamNamespacesListResult", 3)?;
30208 self.internal_serialize::<S>(&mut s)?;
30209 s.end()
30210 }
30211}
30212
30213#[derive(Debug, Clone, PartialEq, Eq)]
30214#[non_exhaustive] pub enum TeamReportFailureReason {
30216 TemporaryError,
30219 ManyReportsAtOnce,
30222 TooMuchData,
30224 Other,
30227}
30228
30229impl<'de> ::serde::de::Deserialize<'de> for TeamReportFailureReason {
30230 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30231 use serde::de::{self, MapAccess, Visitor};
30233 struct EnumVisitor;
30234 impl<'de> Visitor<'de> for EnumVisitor {
30235 type Value = TeamReportFailureReason;
30236 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30237 f.write_str("a TeamReportFailureReason structure")
30238 }
30239 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30240 let tag: &str = match map.next_key()? {
30241 Some(".tag") => map.next_value()?,
30242 _ => return Err(de::Error::missing_field(".tag"))
30243 };
30244 let value = match tag {
30245 "temporary_error" => TeamReportFailureReason::TemporaryError,
30246 "many_reports_at_once" => TeamReportFailureReason::ManyReportsAtOnce,
30247 "too_much_data" => TeamReportFailureReason::TooMuchData,
30248 _ => TeamReportFailureReason::Other,
30249 };
30250 crate::eat_json_fields(&mut map)?;
30251 Ok(value)
30252 }
30253 }
30254 const VARIANTS: &[&str] = &["temporary_error",
30255 "many_reports_at_once",
30256 "too_much_data",
30257 "other"];
30258 deserializer.deserialize_struct("TeamReportFailureReason", VARIANTS, EnumVisitor)
30259 }
30260}
30261
30262impl ::serde::ser::Serialize for TeamReportFailureReason {
30263 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30264 use serde::ser::SerializeStruct;
30266 match self {
30267 TeamReportFailureReason::TemporaryError => {
30268 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
30270 s.serialize_field(".tag", "temporary_error")?;
30271 s.end()
30272 }
30273 TeamReportFailureReason::ManyReportsAtOnce => {
30274 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
30276 s.serialize_field(".tag", "many_reports_at_once")?;
30277 s.end()
30278 }
30279 TeamReportFailureReason::TooMuchData => {
30280 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
30282 s.serialize_field(".tag", "too_much_data")?;
30283 s.end()
30284 }
30285 TeamReportFailureReason::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30286 }
30287 }
30288}
30289
30290#[derive(Debug, Clone, PartialEq, Eq)]
30293#[non_exhaustive] pub enum TokenGetAuthenticatedAdminError {
30295 MappingNotFound,
30299 AdminNotActive,
30302 Other,
30305}
30306
30307impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminError {
30308 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30309 use serde::de::{self, MapAccess, Visitor};
30311 struct EnumVisitor;
30312 impl<'de> Visitor<'de> for EnumVisitor {
30313 type Value = TokenGetAuthenticatedAdminError;
30314 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30315 f.write_str("a TokenGetAuthenticatedAdminError structure")
30316 }
30317 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30318 let tag: &str = match map.next_key()? {
30319 Some(".tag") => map.next_value()?,
30320 _ => return Err(de::Error::missing_field(".tag"))
30321 };
30322 let value = match tag {
30323 "mapping_not_found" => TokenGetAuthenticatedAdminError::MappingNotFound,
30324 "admin_not_active" => TokenGetAuthenticatedAdminError::AdminNotActive,
30325 _ => TokenGetAuthenticatedAdminError::Other,
30326 };
30327 crate::eat_json_fields(&mut map)?;
30328 Ok(value)
30329 }
30330 }
30331 const VARIANTS: &[&str] = &["mapping_not_found",
30332 "admin_not_active",
30333 "other"];
30334 deserializer.deserialize_struct("TokenGetAuthenticatedAdminError", VARIANTS, EnumVisitor)
30335 }
30336}
30337
30338impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminError {
30339 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30340 use serde::ser::SerializeStruct;
30342 match self {
30343 TokenGetAuthenticatedAdminError::MappingNotFound => {
30344 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
30346 s.serialize_field(".tag", "mapping_not_found")?;
30347 s.end()
30348 }
30349 TokenGetAuthenticatedAdminError::AdminNotActive => {
30350 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
30352 s.serialize_field(".tag", "admin_not_active")?;
30353 s.end()
30354 }
30355 TokenGetAuthenticatedAdminError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30356 }
30357 }
30358}
30359
30360impl ::std::error::Error for TokenGetAuthenticatedAdminError {
30361}
30362
30363impl ::std::fmt::Display for TokenGetAuthenticatedAdminError {
30364 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30365 match self {
30366 TokenGetAuthenticatedAdminError::MappingNotFound => f.write_str("The current token is not associated with a team admin, because mappings were not recorded when the token was created. Consider re-authorizing a new access token to record its authenticating admin."),
30367 TokenGetAuthenticatedAdminError::AdminNotActive => f.write_str("Either the team admin that authorized this token is no longer an active member of the team or no longer a team admin."),
30368 _ => write!(f, "{:?}", *self),
30369 }
30370 }
30371}
30372
30373#[derive(Debug, Clone, PartialEq, Eq)]
30375#[non_exhaustive] pub struct TokenGetAuthenticatedAdminResult {
30377 pub admin_profile: TeamMemberProfile,
30379}
30380
30381impl TokenGetAuthenticatedAdminResult {
30382 pub fn new(admin_profile: TeamMemberProfile) -> Self {
30383 TokenGetAuthenticatedAdminResult {
30384 admin_profile,
30385 }
30386 }
30387}
30388
30389const TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS: &[&str] = &["admin_profile"];
30390impl TokenGetAuthenticatedAdminResult {
30391 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30392 map: V,
30393 ) -> Result<TokenGetAuthenticatedAdminResult, V::Error> {
30394 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30395 }
30396
30397 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30398 mut map: V,
30399 optional: bool,
30400 ) -> Result<Option<TokenGetAuthenticatedAdminResult>, V::Error> {
30401 let mut field_admin_profile = None;
30402 let mut nothing = true;
30403 while let Some(key) = map.next_key::<&str>()? {
30404 nothing = false;
30405 match key {
30406 "admin_profile" => {
30407 if field_admin_profile.is_some() {
30408 return Err(::serde::de::Error::duplicate_field("admin_profile"));
30409 }
30410 field_admin_profile = Some(map.next_value()?);
30411 }
30412 _ => {
30413 map.next_value::<::serde_json::Value>()?;
30415 }
30416 }
30417 }
30418 if optional && nothing {
30419 return Ok(None);
30420 }
30421 let result = TokenGetAuthenticatedAdminResult {
30422 admin_profile: field_admin_profile.ok_or_else(|| ::serde::de::Error::missing_field("admin_profile"))?,
30423 };
30424 Ok(Some(result))
30425 }
30426
30427 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30428 &self,
30429 s: &mut S::SerializeStruct,
30430 ) -> Result<(), S::Error> {
30431 use serde::ser::SerializeStruct;
30432 s.serialize_field("admin_profile", &self.admin_profile)?;
30433 Ok(())
30434 }
30435}
30436
30437impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminResult {
30438 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30439 use serde::de::{MapAccess, Visitor};
30441 struct StructVisitor;
30442 impl<'de> Visitor<'de> for StructVisitor {
30443 type Value = TokenGetAuthenticatedAdminResult;
30444 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30445 f.write_str("a TokenGetAuthenticatedAdminResult struct")
30446 }
30447 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30448 TokenGetAuthenticatedAdminResult::internal_deserialize(map)
30449 }
30450 }
30451 deserializer.deserialize_struct("TokenGetAuthenticatedAdminResult", TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS, StructVisitor)
30452 }
30453}
30454
30455impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminResult {
30456 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30457 use serde::ser::SerializeStruct;
30459 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminResult", 1)?;
30460 self.internal_serialize::<S>(&mut s)?;
30461 s.end()
30462 }
30463}
30464
30465#[derive(Debug, Clone, PartialEq, Eq)]
30467#[non_exhaustive] pub enum UploadApiRateLimitValue {
30469 Unlimited,
30472 Limit(u32),
30474 Other,
30477}
30478
30479impl<'de> ::serde::de::Deserialize<'de> for UploadApiRateLimitValue {
30480 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30481 use serde::de::{self, MapAccess, Visitor};
30483 struct EnumVisitor;
30484 impl<'de> Visitor<'de> for EnumVisitor {
30485 type Value = UploadApiRateLimitValue;
30486 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30487 f.write_str("a UploadApiRateLimitValue structure")
30488 }
30489 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30490 let tag: &str = match map.next_key()? {
30491 Some(".tag") => map.next_value()?,
30492 _ => return Err(de::Error::missing_field(".tag"))
30493 };
30494 let value = match tag {
30495 "unlimited" => UploadApiRateLimitValue::Unlimited,
30496 "limit" => {
30497 match map.next_key()? {
30498 Some("limit") => UploadApiRateLimitValue::Limit(map.next_value()?),
30499 None => return Err(de::Error::missing_field("limit")),
30500 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30501 }
30502 }
30503 _ => UploadApiRateLimitValue::Other,
30504 };
30505 crate::eat_json_fields(&mut map)?;
30506 Ok(value)
30507 }
30508 }
30509 const VARIANTS: &[&str] = &["unlimited",
30510 "limit",
30511 "other"];
30512 deserializer.deserialize_struct("UploadApiRateLimitValue", VARIANTS, EnumVisitor)
30513 }
30514}
30515
30516impl ::serde::ser::Serialize for UploadApiRateLimitValue {
30517 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30518 use serde::ser::SerializeStruct;
30520 match self {
30521 UploadApiRateLimitValue::Unlimited => {
30522 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 1)?;
30524 s.serialize_field(".tag", "unlimited")?;
30525 s.end()
30526 }
30527 UploadApiRateLimitValue::Limit(x) => {
30528 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 2)?;
30530 s.serialize_field(".tag", "limit")?;
30531 s.serialize_field("limit", x)?;
30532 s.end()
30533 }
30534 UploadApiRateLimitValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30535 }
30536 }
30537}
30538
30539#[derive(Debug, Clone, PartialEq, Eq)]
30543#[non_exhaustive] pub enum UserAddResult {
30545 Success(UserSecondaryEmailsResult),
30547 InvalidUser(UserSelectorArg),
30549 Unverified(UserSelectorArg),
30551 PlaceholderUser(UserSelectorArg),
30553 Other,
30556}
30557
30558impl<'de> ::serde::de::Deserialize<'de> for UserAddResult {
30559 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30560 use serde::de::{self, MapAccess, Visitor};
30562 struct EnumVisitor;
30563 impl<'de> Visitor<'de> for EnumVisitor {
30564 type Value = UserAddResult;
30565 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30566 f.write_str("a UserAddResult structure")
30567 }
30568 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30569 let tag: &str = match map.next_key()? {
30570 Some(".tag") => map.next_value()?,
30571 _ => return Err(de::Error::missing_field(".tag"))
30572 };
30573 let value = match tag {
30574 "success" => UserAddResult::Success(UserSecondaryEmailsResult::internal_deserialize(&mut map)?),
30575 "invalid_user" => {
30576 match map.next_key()? {
30577 Some("invalid_user") => UserAddResult::InvalidUser(map.next_value()?),
30578 None => return Err(de::Error::missing_field("invalid_user")),
30579 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30580 }
30581 }
30582 "unverified" => {
30583 match map.next_key()? {
30584 Some("unverified") => UserAddResult::Unverified(map.next_value()?),
30585 None => return Err(de::Error::missing_field("unverified")),
30586 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30587 }
30588 }
30589 "placeholder_user" => {
30590 match map.next_key()? {
30591 Some("placeholder_user") => UserAddResult::PlaceholderUser(map.next_value()?),
30592 None => return Err(de::Error::missing_field("placeholder_user")),
30593 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30594 }
30595 }
30596 _ => UserAddResult::Other,
30597 };
30598 crate::eat_json_fields(&mut map)?;
30599 Ok(value)
30600 }
30601 }
30602 const VARIANTS: &[&str] = &["success",
30603 "invalid_user",
30604 "unverified",
30605 "placeholder_user",
30606 "other"];
30607 deserializer.deserialize_struct("UserAddResult", VARIANTS, EnumVisitor)
30608 }
30609}
30610
30611impl ::serde::ser::Serialize for UserAddResult {
30612 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30613 use serde::ser::SerializeStruct;
30615 match self {
30616 UserAddResult::Success(x) => {
30617 let mut s = serializer.serialize_struct("UserAddResult", 3)?;
30619 s.serialize_field(".tag", "success")?;
30620 x.internal_serialize::<S>(&mut s)?;
30621 s.end()
30622 }
30623 UserAddResult::InvalidUser(x) => {
30624 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
30626 s.serialize_field(".tag", "invalid_user")?;
30627 s.serialize_field("invalid_user", x)?;
30628 s.end()
30629 }
30630 UserAddResult::Unverified(x) => {
30631 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
30633 s.serialize_field(".tag", "unverified")?;
30634 s.serialize_field("unverified", x)?;
30635 s.end()
30636 }
30637 UserAddResult::PlaceholderUser(x) => {
30638 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
30640 s.serialize_field(".tag", "placeholder_user")?;
30641 s.serialize_field("placeholder_user", x)?;
30642 s.end()
30643 }
30644 UserAddResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30645 }
30646 }
30647}
30648
30649#[derive(Debug, Clone, PartialEq, Eq)]
30651#[non_exhaustive] pub struct UserCustomQuotaArg {
30653 pub user: UserSelectorArg,
30654 pub quota_gb: UserQuota,
30655}
30656
30657impl UserCustomQuotaArg {
30658 pub fn new(user: UserSelectorArg, quota_gb: UserQuota) -> Self {
30659 UserCustomQuotaArg {
30660 user,
30661 quota_gb,
30662 }
30663 }
30664}
30665
30666const USER_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["user",
30667 "quota_gb"];
30668impl UserCustomQuotaArg {
30669 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30670 map: V,
30671 ) -> Result<UserCustomQuotaArg, V::Error> {
30672 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30673 }
30674
30675 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30676 mut map: V,
30677 optional: bool,
30678 ) -> Result<Option<UserCustomQuotaArg>, V::Error> {
30679 let mut field_user = None;
30680 let mut field_quota_gb = None;
30681 let mut nothing = true;
30682 while let Some(key) = map.next_key::<&str>()? {
30683 nothing = false;
30684 match key {
30685 "user" => {
30686 if field_user.is_some() {
30687 return Err(::serde::de::Error::duplicate_field("user"));
30688 }
30689 field_user = Some(map.next_value()?);
30690 }
30691 "quota_gb" => {
30692 if field_quota_gb.is_some() {
30693 return Err(::serde::de::Error::duplicate_field("quota_gb"));
30694 }
30695 field_quota_gb = Some(map.next_value()?);
30696 }
30697 _ => {
30698 map.next_value::<::serde_json::Value>()?;
30700 }
30701 }
30702 }
30703 if optional && nothing {
30704 return Ok(None);
30705 }
30706 let result = UserCustomQuotaArg {
30707 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30708 quota_gb: field_quota_gb.ok_or_else(|| ::serde::de::Error::missing_field("quota_gb"))?,
30709 };
30710 Ok(Some(result))
30711 }
30712
30713 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30714 &self,
30715 s: &mut S::SerializeStruct,
30716 ) -> Result<(), S::Error> {
30717 use serde::ser::SerializeStruct;
30718 s.serialize_field("user", &self.user)?;
30719 s.serialize_field("quota_gb", &self.quota_gb)?;
30720 Ok(())
30721 }
30722}
30723
30724impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaArg {
30725 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30726 use serde::de::{MapAccess, Visitor};
30728 struct StructVisitor;
30729 impl<'de> Visitor<'de> for StructVisitor {
30730 type Value = UserCustomQuotaArg;
30731 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30732 f.write_str("a UserCustomQuotaArg struct")
30733 }
30734 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30735 UserCustomQuotaArg::internal_deserialize(map)
30736 }
30737 }
30738 deserializer.deserialize_struct("UserCustomQuotaArg", USER_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
30739 }
30740}
30741
30742impl ::serde::ser::Serialize for UserCustomQuotaArg {
30743 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30744 use serde::ser::SerializeStruct;
30746 let mut s = serializer.serialize_struct("UserCustomQuotaArg", 2)?;
30747 self.internal_serialize::<S>(&mut s)?;
30748 s.end()
30749 }
30750}
30751
30752#[derive(Debug, Clone, PartialEq, Eq)]
30755#[non_exhaustive] pub struct UserCustomQuotaResult {
30757 pub user: UserSelectorArg,
30758 pub quota_gb: Option<UserQuota>,
30759}
30760
30761impl UserCustomQuotaResult {
30762 pub fn new(user: UserSelectorArg) -> Self {
30763 UserCustomQuotaResult {
30764 user,
30765 quota_gb: None,
30766 }
30767 }
30768
30769 pub fn with_quota_gb(mut self, value: UserQuota) -> Self {
30770 self.quota_gb = Some(value);
30771 self
30772 }
30773}
30774
30775const USER_CUSTOM_QUOTA_RESULT_FIELDS: &[&str] = &["user",
30776 "quota_gb"];
30777impl UserCustomQuotaResult {
30778 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30779 map: V,
30780 ) -> Result<UserCustomQuotaResult, V::Error> {
30781 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30782 }
30783
30784 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30785 mut map: V,
30786 optional: bool,
30787 ) -> Result<Option<UserCustomQuotaResult>, V::Error> {
30788 let mut field_user = None;
30789 let mut field_quota_gb = None;
30790 let mut nothing = true;
30791 while let Some(key) = map.next_key::<&str>()? {
30792 nothing = false;
30793 match key {
30794 "user" => {
30795 if field_user.is_some() {
30796 return Err(::serde::de::Error::duplicate_field("user"));
30797 }
30798 field_user = Some(map.next_value()?);
30799 }
30800 "quota_gb" => {
30801 if field_quota_gb.is_some() {
30802 return Err(::serde::de::Error::duplicate_field("quota_gb"));
30803 }
30804 field_quota_gb = Some(map.next_value()?);
30805 }
30806 _ => {
30807 map.next_value::<::serde_json::Value>()?;
30809 }
30810 }
30811 }
30812 if optional && nothing {
30813 return Ok(None);
30814 }
30815 let result = UserCustomQuotaResult {
30816 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30817 quota_gb: field_quota_gb.and_then(Option::flatten),
30818 };
30819 Ok(Some(result))
30820 }
30821
30822 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30823 &self,
30824 s: &mut S::SerializeStruct,
30825 ) -> Result<(), S::Error> {
30826 use serde::ser::SerializeStruct;
30827 s.serialize_field("user", &self.user)?;
30828 if let Some(val) = &self.quota_gb {
30829 s.serialize_field("quota_gb", val)?;
30830 }
30831 Ok(())
30832 }
30833}
30834
30835impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaResult {
30836 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30837 use serde::de::{MapAccess, Visitor};
30839 struct StructVisitor;
30840 impl<'de> Visitor<'de> for StructVisitor {
30841 type Value = UserCustomQuotaResult;
30842 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30843 f.write_str("a UserCustomQuotaResult struct")
30844 }
30845 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30846 UserCustomQuotaResult::internal_deserialize(map)
30847 }
30848 }
30849 deserializer.deserialize_struct("UserCustomQuotaResult", USER_CUSTOM_QUOTA_RESULT_FIELDS, StructVisitor)
30850 }
30851}
30852
30853impl ::serde::ser::Serialize for UserCustomQuotaResult {
30854 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30855 use serde::ser::SerializeStruct;
30857 let mut s = serializer.serialize_struct("UserCustomQuotaResult", 2)?;
30858 self.internal_serialize::<S>(&mut s)?;
30859 s.end()
30860 }
30861}
30862
30863#[derive(Debug, Clone, PartialEq, Eq)]
30864#[non_exhaustive] pub struct UserDeleteEmailsResult {
30866 pub user: UserSelectorArg,
30867 pub results: Vec<DeleteSecondaryEmailResult>,
30868}
30869
30870impl UserDeleteEmailsResult {
30871 pub fn new(user: UserSelectorArg, results: Vec<DeleteSecondaryEmailResult>) -> Self {
30872 UserDeleteEmailsResult {
30873 user,
30874 results,
30875 }
30876 }
30877}
30878
30879const USER_DELETE_EMAILS_RESULT_FIELDS: &[&str] = &["user",
30880 "results"];
30881impl UserDeleteEmailsResult {
30882 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30883 map: V,
30884 ) -> Result<UserDeleteEmailsResult, V::Error> {
30885 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30886 }
30887
30888 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30889 mut map: V,
30890 optional: bool,
30891 ) -> Result<Option<UserDeleteEmailsResult>, V::Error> {
30892 let mut field_user = None;
30893 let mut field_results = None;
30894 let mut nothing = true;
30895 while let Some(key) = map.next_key::<&str>()? {
30896 nothing = false;
30897 match key {
30898 "user" => {
30899 if field_user.is_some() {
30900 return Err(::serde::de::Error::duplicate_field("user"));
30901 }
30902 field_user = Some(map.next_value()?);
30903 }
30904 "results" => {
30905 if field_results.is_some() {
30906 return Err(::serde::de::Error::duplicate_field("results"));
30907 }
30908 field_results = Some(map.next_value()?);
30909 }
30910 _ => {
30911 map.next_value::<::serde_json::Value>()?;
30913 }
30914 }
30915 }
30916 if optional && nothing {
30917 return Ok(None);
30918 }
30919 let result = UserDeleteEmailsResult {
30920 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30921 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
30922 };
30923 Ok(Some(result))
30924 }
30925
30926 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30927 &self,
30928 s: &mut S::SerializeStruct,
30929 ) -> Result<(), S::Error> {
30930 use serde::ser::SerializeStruct;
30931 s.serialize_field("user", &self.user)?;
30932 s.serialize_field("results", &self.results)?;
30933 Ok(())
30934 }
30935}
30936
30937impl<'de> ::serde::de::Deserialize<'de> for UserDeleteEmailsResult {
30938 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30939 use serde::de::{MapAccess, Visitor};
30941 struct StructVisitor;
30942 impl<'de> Visitor<'de> for StructVisitor {
30943 type Value = UserDeleteEmailsResult;
30944 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30945 f.write_str("a UserDeleteEmailsResult struct")
30946 }
30947 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30948 UserDeleteEmailsResult::internal_deserialize(map)
30949 }
30950 }
30951 deserializer.deserialize_struct("UserDeleteEmailsResult", USER_DELETE_EMAILS_RESULT_FIELDS, StructVisitor)
30952 }
30953}
30954
30955impl ::serde::ser::Serialize for UserDeleteEmailsResult {
30956 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30957 use serde::ser::SerializeStruct;
30959 let mut s = serializer.serialize_struct("UserDeleteEmailsResult", 2)?;
30960 self.internal_serialize::<S>(&mut s)?;
30961 s.end()
30962 }
30963}
30964
30965#[derive(Debug, Clone, PartialEq, Eq)]
30969#[non_exhaustive] pub enum UserDeleteResult {
30971 Success(UserDeleteEmailsResult),
30973 InvalidUser(UserSelectorArg),
30975 Other,
30978}
30979
30980impl<'de> ::serde::de::Deserialize<'de> for UserDeleteResult {
30981 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30982 use serde::de::{self, MapAccess, Visitor};
30984 struct EnumVisitor;
30985 impl<'de> Visitor<'de> for EnumVisitor {
30986 type Value = UserDeleteResult;
30987 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30988 f.write_str("a UserDeleteResult structure")
30989 }
30990 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30991 let tag: &str = match map.next_key()? {
30992 Some(".tag") => map.next_value()?,
30993 _ => return Err(de::Error::missing_field(".tag"))
30994 };
30995 let value = match tag {
30996 "success" => UserDeleteResult::Success(UserDeleteEmailsResult::internal_deserialize(&mut map)?),
30997 "invalid_user" => {
30998 match map.next_key()? {
30999 Some("invalid_user") => UserDeleteResult::InvalidUser(map.next_value()?),
31000 None => return Err(de::Error::missing_field("invalid_user")),
31001 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31002 }
31003 }
31004 _ => UserDeleteResult::Other,
31005 };
31006 crate::eat_json_fields(&mut map)?;
31007 Ok(value)
31008 }
31009 }
31010 const VARIANTS: &[&str] = &["success",
31011 "invalid_user",
31012 "other"];
31013 deserializer.deserialize_struct("UserDeleteResult", VARIANTS, EnumVisitor)
31014 }
31015}
31016
31017impl ::serde::ser::Serialize for UserDeleteResult {
31018 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31019 use serde::ser::SerializeStruct;
31021 match self {
31022 UserDeleteResult::Success(x) => {
31023 let mut s = serializer.serialize_struct("UserDeleteResult", 3)?;
31025 s.serialize_field(".tag", "success")?;
31026 x.internal_serialize::<S>(&mut s)?;
31027 s.end()
31028 }
31029 UserDeleteResult::InvalidUser(x) => {
31030 let mut s = serializer.serialize_struct("UserDeleteResult", 2)?;
31032 s.serialize_field(".tag", "invalid_user")?;
31033 s.serialize_field("invalid_user", x)?;
31034 s.end()
31035 }
31036 UserDeleteResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
31037 }
31038 }
31039}
31040
31041#[derive(Debug, Clone, PartialEq, Eq)]
31042#[non_exhaustive] pub struct UserResendEmailsResult {
31044 pub user: UserSelectorArg,
31045 pub results: Vec<ResendSecondaryEmailResult>,
31046}
31047
31048impl UserResendEmailsResult {
31049 pub fn new(user: UserSelectorArg, results: Vec<ResendSecondaryEmailResult>) -> Self {
31050 UserResendEmailsResult {
31051 user,
31052 results,
31053 }
31054 }
31055}
31056
31057const USER_RESEND_EMAILS_RESULT_FIELDS: &[&str] = &["user",
31058 "results"];
31059impl UserResendEmailsResult {
31060 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
31061 map: V,
31062 ) -> Result<UserResendEmailsResult, V::Error> {
31063 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
31064 }
31065
31066 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
31067 mut map: V,
31068 optional: bool,
31069 ) -> Result<Option<UserResendEmailsResult>, V::Error> {
31070 let mut field_user = None;
31071 let mut field_results = None;
31072 let mut nothing = true;
31073 while let Some(key) = map.next_key::<&str>()? {
31074 nothing = false;
31075 match key {
31076 "user" => {
31077 if field_user.is_some() {
31078 return Err(::serde::de::Error::duplicate_field("user"));
31079 }
31080 field_user = Some(map.next_value()?);
31081 }
31082 "results" => {
31083 if field_results.is_some() {
31084 return Err(::serde::de::Error::duplicate_field("results"));
31085 }
31086 field_results = Some(map.next_value()?);
31087 }
31088 _ => {
31089 map.next_value::<::serde_json::Value>()?;
31091 }
31092 }
31093 }
31094 if optional && nothing {
31095 return Ok(None);
31096 }
31097 let result = UserResendEmailsResult {
31098 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
31099 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
31100 };
31101 Ok(Some(result))
31102 }
31103
31104 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
31105 &self,
31106 s: &mut S::SerializeStruct,
31107 ) -> Result<(), S::Error> {
31108 use serde::ser::SerializeStruct;
31109 s.serialize_field("user", &self.user)?;
31110 s.serialize_field("results", &self.results)?;
31111 Ok(())
31112 }
31113}
31114
31115impl<'de> ::serde::de::Deserialize<'de> for UserResendEmailsResult {
31116 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31117 use serde::de::{MapAccess, Visitor};
31119 struct StructVisitor;
31120 impl<'de> Visitor<'de> for StructVisitor {
31121 type Value = UserResendEmailsResult;
31122 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31123 f.write_str("a UserResendEmailsResult struct")
31124 }
31125 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
31126 UserResendEmailsResult::internal_deserialize(map)
31127 }
31128 }
31129 deserializer.deserialize_struct("UserResendEmailsResult", USER_RESEND_EMAILS_RESULT_FIELDS, StructVisitor)
31130 }
31131}
31132
31133impl ::serde::ser::Serialize for UserResendEmailsResult {
31134 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31135 use serde::ser::SerializeStruct;
31137 let mut s = serializer.serialize_struct("UserResendEmailsResult", 2)?;
31138 self.internal_serialize::<S>(&mut s)?;
31139 s.end()
31140 }
31141}
31142
31143#[derive(Debug, Clone, PartialEq, Eq)]
31147#[non_exhaustive] pub enum UserResendResult {
31149 Success(UserResendEmailsResult),
31151 InvalidUser(UserSelectorArg),
31153 Other,
31156}
31157
31158impl<'de> ::serde::de::Deserialize<'de> for UserResendResult {
31159 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31160 use serde::de::{self, MapAccess, Visitor};
31162 struct EnumVisitor;
31163 impl<'de> Visitor<'de> for EnumVisitor {
31164 type Value = UserResendResult;
31165 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31166 f.write_str("a UserResendResult structure")
31167 }
31168 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
31169 let tag: &str = match map.next_key()? {
31170 Some(".tag") => map.next_value()?,
31171 _ => return Err(de::Error::missing_field(".tag"))
31172 };
31173 let value = match tag {
31174 "success" => UserResendResult::Success(UserResendEmailsResult::internal_deserialize(&mut map)?),
31175 "invalid_user" => {
31176 match map.next_key()? {
31177 Some("invalid_user") => UserResendResult::InvalidUser(map.next_value()?),
31178 None => return Err(de::Error::missing_field("invalid_user")),
31179 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31180 }
31181 }
31182 _ => UserResendResult::Other,
31183 };
31184 crate::eat_json_fields(&mut map)?;
31185 Ok(value)
31186 }
31187 }
31188 const VARIANTS: &[&str] = &["success",
31189 "invalid_user",
31190 "other"];
31191 deserializer.deserialize_struct("UserResendResult", VARIANTS, EnumVisitor)
31192 }
31193}
31194
31195impl ::serde::ser::Serialize for UserResendResult {
31196 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31197 use serde::ser::SerializeStruct;
31199 match self {
31200 UserResendResult::Success(x) => {
31201 let mut s = serializer.serialize_struct("UserResendResult", 3)?;
31203 s.serialize_field(".tag", "success")?;
31204 x.internal_serialize::<S>(&mut s)?;
31205 s.end()
31206 }
31207 UserResendResult::InvalidUser(x) => {
31208 let mut s = serializer.serialize_struct("UserResendResult", 2)?;
31210 s.serialize_field(".tag", "invalid_user")?;
31211 s.serialize_field("invalid_user", x)?;
31212 s.end()
31213 }
31214 UserResendResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
31215 }
31216 }
31217}
31218
31219#[derive(Debug, Clone, PartialEq, Eq)]
31221#[non_exhaustive] pub struct UserSecondaryEmailsArg {
31223 pub user: UserSelectorArg,
31224 pub secondary_emails: Vec<crate::types::common::EmailAddress>,
31225}
31226
31227impl UserSecondaryEmailsArg {
31228 pub fn new(
31229 user: UserSelectorArg,
31230 secondary_emails: Vec<crate::types::common::EmailAddress>,
31231 ) -> Self {
31232 UserSecondaryEmailsArg {
31233 user,
31234 secondary_emails,
31235 }
31236 }
31237}
31238
31239const USER_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["user",
31240 "secondary_emails"];
31241impl UserSecondaryEmailsArg {
31242 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
31243 map: V,
31244 ) -> Result<UserSecondaryEmailsArg, V::Error> {
31245 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
31246 }
31247
31248 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
31249 mut map: V,
31250 optional: bool,
31251 ) -> Result<Option<UserSecondaryEmailsArg>, V::Error> {
31252 let mut field_user = None;
31253 let mut field_secondary_emails = None;
31254 let mut nothing = true;
31255 while let Some(key) = map.next_key::<&str>()? {
31256 nothing = false;
31257 match key {
31258 "user" => {
31259 if field_user.is_some() {
31260 return Err(::serde::de::Error::duplicate_field("user"));
31261 }
31262 field_user = Some(map.next_value()?);
31263 }
31264 "secondary_emails" => {
31265 if field_secondary_emails.is_some() {
31266 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
31267 }
31268 field_secondary_emails = Some(map.next_value()?);
31269 }
31270 _ => {
31271 map.next_value::<::serde_json::Value>()?;
31273 }
31274 }
31275 }
31276 if optional && nothing {
31277 return Ok(None);
31278 }
31279 let result = UserSecondaryEmailsArg {
31280 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
31281 secondary_emails: field_secondary_emails.ok_or_else(|| ::serde::de::Error::missing_field("secondary_emails"))?,
31282 };
31283 Ok(Some(result))
31284 }
31285
31286 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
31287 &self,
31288 s: &mut S::SerializeStruct,
31289 ) -> Result<(), S::Error> {
31290 use serde::ser::SerializeStruct;
31291 s.serialize_field("user", &self.user)?;
31292 s.serialize_field("secondary_emails", &self.secondary_emails)?;
31293 Ok(())
31294 }
31295}
31296
31297impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsArg {
31298 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31299 use serde::de::{MapAccess, Visitor};
31301 struct StructVisitor;
31302 impl<'de> Visitor<'de> for StructVisitor {
31303 type Value = UserSecondaryEmailsArg;
31304 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31305 f.write_str("a UserSecondaryEmailsArg struct")
31306 }
31307 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
31308 UserSecondaryEmailsArg::internal_deserialize(map)
31309 }
31310 }
31311 deserializer.deserialize_struct("UserSecondaryEmailsArg", USER_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
31312 }
31313}
31314
31315impl ::serde::ser::Serialize for UserSecondaryEmailsArg {
31316 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31317 use serde::ser::SerializeStruct;
31319 let mut s = serializer.serialize_struct("UserSecondaryEmailsArg", 2)?;
31320 self.internal_serialize::<S>(&mut s)?;
31321 s.end()
31322 }
31323}
31324
31325#[derive(Debug, Clone, PartialEq, Eq)]
31326#[non_exhaustive] pub struct UserSecondaryEmailsResult {
31328 pub user: UserSelectorArg,
31329 pub results: Vec<AddSecondaryEmailResult>,
31330}
31331
31332impl UserSecondaryEmailsResult {
31333 pub fn new(user: UserSelectorArg, results: Vec<AddSecondaryEmailResult>) -> Self {
31334 UserSecondaryEmailsResult {
31335 user,
31336 results,
31337 }
31338 }
31339}
31340
31341const USER_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["user",
31342 "results"];
31343impl UserSecondaryEmailsResult {
31344 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
31345 map: V,
31346 ) -> Result<UserSecondaryEmailsResult, V::Error> {
31347 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
31348 }
31349
31350 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
31351 mut map: V,
31352 optional: bool,
31353 ) -> Result<Option<UserSecondaryEmailsResult>, V::Error> {
31354 let mut field_user = None;
31355 let mut field_results = None;
31356 let mut nothing = true;
31357 while let Some(key) = map.next_key::<&str>()? {
31358 nothing = false;
31359 match key {
31360 "user" => {
31361 if field_user.is_some() {
31362 return Err(::serde::de::Error::duplicate_field("user"));
31363 }
31364 field_user = Some(map.next_value()?);
31365 }
31366 "results" => {
31367 if field_results.is_some() {
31368 return Err(::serde::de::Error::duplicate_field("results"));
31369 }
31370 field_results = Some(map.next_value()?);
31371 }
31372 _ => {
31373 map.next_value::<::serde_json::Value>()?;
31375 }
31376 }
31377 }
31378 if optional && nothing {
31379 return Ok(None);
31380 }
31381 let result = UserSecondaryEmailsResult {
31382 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
31383 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
31384 };
31385 Ok(Some(result))
31386 }
31387
31388 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
31389 &self,
31390 s: &mut S::SerializeStruct,
31391 ) -> Result<(), S::Error> {
31392 use serde::ser::SerializeStruct;
31393 s.serialize_field("user", &self.user)?;
31394 s.serialize_field("results", &self.results)?;
31395 Ok(())
31396 }
31397}
31398
31399impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsResult {
31400 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31401 use serde::de::{MapAccess, Visitor};
31403 struct StructVisitor;
31404 impl<'de> Visitor<'de> for StructVisitor {
31405 type Value = UserSecondaryEmailsResult;
31406 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31407 f.write_str("a UserSecondaryEmailsResult struct")
31408 }
31409 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
31410 UserSecondaryEmailsResult::internal_deserialize(map)
31411 }
31412 }
31413 deserializer.deserialize_struct("UserSecondaryEmailsResult", USER_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
31414 }
31415}
31416
31417impl ::serde::ser::Serialize for UserSecondaryEmailsResult {
31418 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31419 use serde::ser::SerializeStruct;
31421 let mut s = serializer.serialize_struct("UserSecondaryEmailsResult", 2)?;
31422 self.internal_serialize::<S>(&mut s)?;
31423 s.end()
31424 }
31425}
31426
31427#[derive(Debug, Clone, PartialEq, Eq)]
31429pub enum UserSelectorArg {
31430 TeamMemberId(crate::types::team_common::TeamMemberId),
31431 ExternalId(crate::types::team_common::MemberExternalId),
31432 Email(crate::types::common::EmailAddress),
31433}
31434
31435impl<'de> ::serde::de::Deserialize<'de> for UserSelectorArg {
31436 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31437 use serde::de::{self, MapAccess, Visitor};
31439 struct EnumVisitor;
31440 impl<'de> Visitor<'de> for EnumVisitor {
31441 type Value = UserSelectorArg;
31442 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31443 f.write_str("a UserSelectorArg structure")
31444 }
31445 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
31446 let tag: &str = match map.next_key()? {
31447 Some(".tag") => map.next_value()?,
31448 _ => return Err(de::Error::missing_field(".tag"))
31449 };
31450 let value = match tag {
31451 "team_member_id" => {
31452 match map.next_key()? {
31453 Some("team_member_id") => UserSelectorArg::TeamMemberId(map.next_value()?),
31454 None => return Err(de::Error::missing_field("team_member_id")),
31455 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31456 }
31457 }
31458 "external_id" => {
31459 match map.next_key()? {
31460 Some("external_id") => UserSelectorArg::ExternalId(map.next_value()?),
31461 None => return Err(de::Error::missing_field("external_id")),
31462 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31463 }
31464 }
31465 "email" => {
31466 match map.next_key()? {
31467 Some("email") => UserSelectorArg::Email(map.next_value()?),
31468 None => return Err(de::Error::missing_field("email")),
31469 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31470 }
31471 }
31472 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
31473 };
31474 crate::eat_json_fields(&mut map)?;
31475 Ok(value)
31476 }
31477 }
31478 const VARIANTS: &[&str] = &["team_member_id",
31479 "external_id",
31480 "email"];
31481 deserializer.deserialize_struct("UserSelectorArg", VARIANTS, EnumVisitor)
31482 }
31483}
31484
31485impl ::serde::ser::Serialize for UserSelectorArg {
31486 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31487 use serde::ser::SerializeStruct;
31489 match self {
31490 UserSelectorArg::TeamMemberId(x) => {
31491 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
31493 s.serialize_field(".tag", "team_member_id")?;
31494 s.serialize_field("team_member_id", x)?;
31495 s.end()
31496 }
31497 UserSelectorArg::ExternalId(x) => {
31498 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
31500 s.serialize_field(".tag", "external_id")?;
31501 s.serialize_field("external_id", x)?;
31502 s.end()
31503 }
31504 UserSelectorArg::Email(x) => {
31505 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
31507 s.serialize_field(".tag", "email")?;
31508 s.serialize_field("email", x)?;
31509 s.end()
31510 }
31511 }
31512 }
31513}
31514
31515#[derive(Debug, Clone, PartialEq, Eq)]
31517pub enum UserSelectorError {
31518 UserNotFound,
31521}
31522
31523impl<'de> ::serde::de::Deserialize<'de> for UserSelectorError {
31524 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31525 use serde::de::{self, MapAccess, Visitor};
31527 struct EnumVisitor;
31528 impl<'de> Visitor<'de> for EnumVisitor {
31529 type Value = UserSelectorError;
31530 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31531 f.write_str("a UserSelectorError structure")
31532 }
31533 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
31534 let tag: &str = match map.next_key()? {
31535 Some(".tag") => map.next_value()?,
31536 _ => return Err(de::Error::missing_field(".tag"))
31537 };
31538 let value = match tag {
31539 "user_not_found" => UserSelectorError::UserNotFound,
31540 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
31541 };
31542 crate::eat_json_fields(&mut map)?;
31543 Ok(value)
31544 }
31545 }
31546 const VARIANTS: &[&str] = &["user_not_found"];
31547 deserializer.deserialize_struct("UserSelectorError", VARIANTS, EnumVisitor)
31548 }
31549}
31550
31551impl ::serde::ser::Serialize for UserSelectorError {
31552 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31553 use serde::ser::SerializeStruct;
31555 match self {
31556 UserSelectorError::UserNotFound => {
31557 let mut s = serializer.serialize_struct("UserSelectorError", 1)?;
31559 s.serialize_field(".tag", "user_not_found")?;
31560 s.end()
31561 }
31562 }
31563 }
31564}
31565
31566impl ::std::error::Error for UserSelectorError {
31567}
31568
31569impl ::std::fmt::Display for UserSelectorError {
31570 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31571 match self {
31572 UserSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
31573 }
31574 }
31575}
31576
31577#[derive(Debug, Clone, PartialEq, Eq)]
31579pub enum UsersSelectorArg {
31580 TeamMemberIds(Vec<crate::types::team_common::TeamMemberId>),
31582 ExternalIds(Vec<crate::types::team_common::MemberExternalId>),
31584 Emails(Vec<crate::types::common::EmailAddress>),
31586}
31587
31588impl<'de> ::serde::de::Deserialize<'de> for UsersSelectorArg {
31589 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
31590 use serde::de::{self, MapAccess, Visitor};
31592 struct EnumVisitor;
31593 impl<'de> Visitor<'de> for EnumVisitor {
31594 type Value = UsersSelectorArg;
31595 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
31596 f.write_str("a UsersSelectorArg structure")
31597 }
31598 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
31599 let tag: &str = match map.next_key()? {
31600 Some(".tag") => map.next_value()?,
31601 _ => return Err(de::Error::missing_field(".tag"))
31602 };
31603 let value = match tag {
31604 "team_member_ids" => {
31605 match map.next_key()? {
31606 Some("team_member_ids") => UsersSelectorArg::TeamMemberIds(map.next_value()?),
31607 None => return Err(de::Error::missing_field("team_member_ids")),
31608 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31609 }
31610 }
31611 "external_ids" => {
31612 match map.next_key()? {
31613 Some("external_ids") => UsersSelectorArg::ExternalIds(map.next_value()?),
31614 None => return Err(de::Error::missing_field("external_ids")),
31615 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31616 }
31617 }
31618 "emails" => {
31619 match map.next_key()? {
31620 Some("emails") => UsersSelectorArg::Emails(map.next_value()?),
31621 None => return Err(de::Error::missing_field("emails")),
31622 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
31623 }
31624 }
31625 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
31626 };
31627 crate::eat_json_fields(&mut map)?;
31628 Ok(value)
31629 }
31630 }
31631 const VARIANTS: &[&str] = &["team_member_ids",
31632 "external_ids",
31633 "emails"];
31634 deserializer.deserialize_struct("UsersSelectorArg", VARIANTS, EnumVisitor)
31635 }
31636}
31637
31638impl ::serde::ser::Serialize for UsersSelectorArg {
31639 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
31640 use serde::ser::SerializeStruct;
31642 match self {
31643 UsersSelectorArg::TeamMemberIds(x) => {
31644 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
31646 s.serialize_field(".tag", "team_member_ids")?;
31647 s.serialize_field("team_member_ids", x)?;
31648 s.end()
31649 }
31650 UsersSelectorArg::ExternalIds(x) => {
31651 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
31653 s.serialize_field(".tag", "external_ids")?;
31654 s.serialize_field("external_ids", x)?;
31655 s.end()
31656 }
31657 UsersSelectorArg::Emails(x) => {
31658 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
31660 s.serialize_field(".tag", "emails")?;
31661 s.serialize_field("emails", x)?;
31662 s.end()
31663 }
31664 }
31665 }
31666}
31667