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 enum CustomQuotaError {
1199 TooManyUsers,
1201 Other,
1204}
1205
1206impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaError {
1207 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1208 use serde::de::{self, MapAccess, Visitor};
1210 struct EnumVisitor;
1211 impl<'de> Visitor<'de> for EnumVisitor {
1212 type Value = CustomQuotaError;
1213 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1214 f.write_str("a CustomQuotaError structure")
1215 }
1216 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1217 let tag: &str = match map.next_key()? {
1218 Some(".tag") => map.next_value()?,
1219 _ => return Err(de::Error::missing_field(".tag"))
1220 };
1221 let value = match tag {
1222 "too_many_users" => CustomQuotaError::TooManyUsers,
1223 _ => CustomQuotaError::Other,
1224 };
1225 crate::eat_json_fields(&mut map)?;
1226 Ok(value)
1227 }
1228 }
1229 const VARIANTS: &[&str] = &["too_many_users",
1230 "other"];
1231 deserializer.deserialize_struct("CustomQuotaError", VARIANTS, EnumVisitor)
1232 }
1233}
1234
1235impl ::serde::ser::Serialize for CustomQuotaError {
1236 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1237 use serde::ser::SerializeStruct;
1239 match self {
1240 CustomQuotaError::TooManyUsers => {
1241 let mut s = serializer.serialize_struct("CustomQuotaError", 1)?;
1243 s.serialize_field(".tag", "too_many_users")?;
1244 s.end()
1245 }
1246 CustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1247 }
1248 }
1249}
1250
1251impl ::std::error::Error for CustomQuotaError {
1252}
1253
1254impl ::std::fmt::Display for CustomQuotaError {
1255 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1256 match self {
1257 CustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
1258 _ => write!(f, "{:?}", *self),
1259 }
1260 }
1261}
1262
1263#[derive(Debug, Clone, PartialEq, Eq)]
1265#[non_exhaustive] pub enum CustomQuotaResult {
1267 Success(UserCustomQuotaResult),
1269 InvalidUser(UserSelectorArg),
1271 Other,
1274}
1275
1276impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaResult {
1277 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1278 use serde::de::{self, MapAccess, Visitor};
1280 struct EnumVisitor;
1281 impl<'de> Visitor<'de> for EnumVisitor {
1282 type Value = CustomQuotaResult;
1283 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1284 f.write_str("a CustomQuotaResult structure")
1285 }
1286 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1287 let tag: &str = match map.next_key()? {
1288 Some(".tag") => map.next_value()?,
1289 _ => return Err(de::Error::missing_field(".tag"))
1290 };
1291 let value = match tag {
1292 "success" => CustomQuotaResult::Success(UserCustomQuotaResult::internal_deserialize(&mut map)?),
1293 "invalid_user" => {
1294 match map.next_key()? {
1295 Some("invalid_user") => CustomQuotaResult::InvalidUser(map.next_value()?),
1296 None => return Err(de::Error::missing_field("invalid_user")),
1297 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1298 }
1299 }
1300 _ => CustomQuotaResult::Other,
1301 };
1302 crate::eat_json_fields(&mut map)?;
1303 Ok(value)
1304 }
1305 }
1306 const VARIANTS: &[&str] = &["success",
1307 "invalid_user",
1308 "other"];
1309 deserializer.deserialize_struct("CustomQuotaResult", VARIANTS, EnumVisitor)
1310 }
1311}
1312
1313impl ::serde::ser::Serialize for CustomQuotaResult {
1314 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1315 use serde::ser::SerializeStruct;
1317 match self {
1318 CustomQuotaResult::Success(x) => {
1319 let mut s = serializer.serialize_struct("CustomQuotaResult", 3)?;
1321 s.serialize_field(".tag", "success")?;
1322 x.internal_serialize::<S>(&mut s)?;
1323 s.end()
1324 }
1325 CustomQuotaResult::InvalidUser(x) => {
1326 let mut s = serializer.serialize_struct("CustomQuotaResult", 2)?;
1328 s.serialize_field(".tag", "invalid_user")?;
1329 s.serialize_field("invalid_user", x)?;
1330 s.end()
1331 }
1332 CustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1333 }
1334 }
1335}
1336
1337#[derive(Debug, Clone, PartialEq, Eq)]
1338#[non_exhaustive] pub struct CustomQuotaUsersArg {
1340 pub users: Vec<UserSelectorArg>,
1342}
1343
1344impl CustomQuotaUsersArg {
1345 pub fn new(users: Vec<UserSelectorArg>) -> Self {
1346 CustomQuotaUsersArg {
1347 users,
1348 }
1349 }
1350}
1351
1352const CUSTOM_QUOTA_USERS_ARG_FIELDS: &[&str] = &["users"];
1353impl CustomQuotaUsersArg {
1354 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1355 map: V,
1356 ) -> Result<CustomQuotaUsersArg, V::Error> {
1357 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1358 }
1359
1360 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1361 mut map: V,
1362 optional: bool,
1363 ) -> Result<Option<CustomQuotaUsersArg>, V::Error> {
1364 let mut field_users = None;
1365 let mut nothing = true;
1366 while let Some(key) = map.next_key::<&str>()? {
1367 nothing = false;
1368 match key {
1369 "users" => {
1370 if field_users.is_some() {
1371 return Err(::serde::de::Error::duplicate_field("users"));
1372 }
1373 field_users = Some(map.next_value()?);
1374 }
1375 _ => {
1376 map.next_value::<::serde_json::Value>()?;
1378 }
1379 }
1380 }
1381 if optional && nothing {
1382 return Ok(None);
1383 }
1384 let result = CustomQuotaUsersArg {
1385 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
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("users", &self.users)?;
1396 Ok(())
1397 }
1398}
1399
1400impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaUsersArg {
1401 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1402 use serde::de::{MapAccess, Visitor};
1404 struct StructVisitor;
1405 impl<'de> Visitor<'de> for StructVisitor {
1406 type Value = CustomQuotaUsersArg;
1407 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1408 f.write_str("a CustomQuotaUsersArg struct")
1409 }
1410 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1411 CustomQuotaUsersArg::internal_deserialize(map)
1412 }
1413 }
1414 deserializer.deserialize_struct("CustomQuotaUsersArg", CUSTOM_QUOTA_USERS_ARG_FIELDS, StructVisitor)
1415 }
1416}
1417
1418impl ::serde::ser::Serialize for CustomQuotaUsersArg {
1419 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1420 use serde::ser::SerializeStruct;
1422 let mut s = serializer.serialize_struct("CustomQuotaUsersArg", 1)?;
1423 self.internal_serialize::<S>(&mut s)?;
1424 s.end()
1425 }
1426}
1427
1428#[derive(Debug, Clone, PartialEq, Eq, Default)]
1430#[non_exhaustive] pub struct DateRange {
1432 pub start_date: Option<crate::types::common::Date>,
1435 pub end_date: Option<crate::types::common::Date>,
1437}
1438
1439impl DateRange {
1440 pub fn with_start_date(mut self, value: crate::types::common::Date) -> Self {
1441 self.start_date = Some(value);
1442 self
1443 }
1444
1445 pub fn with_end_date(mut self, value: crate::types::common::Date) -> Self {
1446 self.end_date = Some(value);
1447 self
1448 }
1449}
1450
1451const DATE_RANGE_FIELDS: &[&str] = &["start_date",
1452 "end_date"];
1453impl DateRange {
1454 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1456 mut map: V,
1457 ) -> Result<DateRange, V::Error> {
1458 let mut field_start_date = None;
1459 let mut field_end_date = None;
1460 while let Some(key) = map.next_key::<&str>()? {
1461 match key {
1462 "start_date" => {
1463 if field_start_date.is_some() {
1464 return Err(::serde::de::Error::duplicate_field("start_date"));
1465 }
1466 field_start_date = Some(map.next_value()?);
1467 }
1468 "end_date" => {
1469 if field_end_date.is_some() {
1470 return Err(::serde::de::Error::duplicate_field("end_date"));
1471 }
1472 field_end_date = Some(map.next_value()?);
1473 }
1474 _ => {
1475 map.next_value::<::serde_json::Value>()?;
1477 }
1478 }
1479 }
1480 let result = DateRange {
1481 start_date: field_start_date.and_then(Option::flatten),
1482 end_date: field_end_date.and_then(Option::flatten),
1483 };
1484 Ok(result)
1485 }
1486
1487 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1488 &self,
1489 s: &mut S::SerializeStruct,
1490 ) -> Result<(), S::Error> {
1491 use serde::ser::SerializeStruct;
1492 if let Some(val) = &self.start_date {
1493 s.serialize_field("start_date", val)?;
1494 }
1495 if let Some(val) = &self.end_date {
1496 s.serialize_field("end_date", val)?;
1497 }
1498 Ok(())
1499 }
1500}
1501
1502impl<'de> ::serde::de::Deserialize<'de> for DateRange {
1503 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1504 use serde::de::{MapAccess, Visitor};
1506 struct StructVisitor;
1507 impl<'de> Visitor<'de> for StructVisitor {
1508 type Value = DateRange;
1509 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1510 f.write_str("a DateRange struct")
1511 }
1512 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1513 DateRange::internal_deserialize(map)
1514 }
1515 }
1516 deserializer.deserialize_struct("DateRange", DATE_RANGE_FIELDS, StructVisitor)
1517 }
1518}
1519
1520impl ::serde::ser::Serialize for DateRange {
1521 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1522 use serde::ser::SerializeStruct;
1524 let mut s = serializer.serialize_struct("DateRange", 2)?;
1525 self.internal_serialize::<S>(&mut s)?;
1526 s.end()
1527 }
1528}
1529
1530#[derive(Debug, Clone, PartialEq, Eq)]
1532#[non_exhaustive] pub enum DateRangeError {
1534 Other,
1537}
1538
1539impl<'de> ::serde::de::Deserialize<'de> for DateRangeError {
1540 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1541 use serde::de::{self, MapAccess, Visitor};
1543 struct EnumVisitor;
1544 impl<'de> Visitor<'de> for EnumVisitor {
1545 type Value = DateRangeError;
1546 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1547 f.write_str("a DateRangeError structure")
1548 }
1549 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1550 let tag: &str = match map.next_key()? {
1551 Some(".tag") => map.next_value()?,
1552 _ => return Err(de::Error::missing_field(".tag"))
1553 };
1554 let _ = tag;
1556 crate::eat_json_fields(&mut map)?;
1557 Ok(DateRangeError::Other)
1558 }
1559 }
1560 const VARIANTS: &[&str] = &["other"];
1561 deserializer.deserialize_struct("DateRangeError", VARIANTS, EnumVisitor)
1562 }
1563}
1564
1565impl ::serde::ser::Serialize for DateRangeError {
1566 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1567 #![allow(unused_variables)]
1569 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
1570 }
1571}
1572
1573impl ::std::error::Error for DateRangeError {
1574}
1575
1576impl ::std::fmt::Display for DateRangeError {
1577 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1578 write!(f, "{:?}", *self)
1579 }
1580}
1581
1582#[derive(Debug, Clone, PartialEq, Eq)]
1586#[non_exhaustive] pub enum DeleteSecondaryEmailResult {
1588 Success(crate::types::common::EmailAddress),
1590 NotFound(crate::types::common::EmailAddress),
1592 CannotRemovePrimary(crate::types::common::EmailAddress),
1594 Other,
1597}
1598
1599impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailResult {
1600 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1601 use serde::de::{self, MapAccess, Visitor};
1603 struct EnumVisitor;
1604 impl<'de> Visitor<'de> for EnumVisitor {
1605 type Value = DeleteSecondaryEmailResult;
1606 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1607 f.write_str("a DeleteSecondaryEmailResult structure")
1608 }
1609 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1610 let tag: &str = match map.next_key()? {
1611 Some(".tag") => map.next_value()?,
1612 _ => return Err(de::Error::missing_field(".tag"))
1613 };
1614 let value = match tag {
1615 "success" => {
1616 match map.next_key()? {
1617 Some("success") => DeleteSecondaryEmailResult::Success(map.next_value()?),
1618 None => return Err(de::Error::missing_field("success")),
1619 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1620 }
1621 }
1622 "not_found" => {
1623 match map.next_key()? {
1624 Some("not_found") => DeleteSecondaryEmailResult::NotFound(map.next_value()?),
1625 None => return Err(de::Error::missing_field("not_found")),
1626 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1627 }
1628 }
1629 "cannot_remove_primary" => {
1630 match map.next_key()? {
1631 Some("cannot_remove_primary") => DeleteSecondaryEmailResult::CannotRemovePrimary(map.next_value()?),
1632 None => return Err(de::Error::missing_field("cannot_remove_primary")),
1633 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1634 }
1635 }
1636 _ => DeleteSecondaryEmailResult::Other,
1637 };
1638 crate::eat_json_fields(&mut map)?;
1639 Ok(value)
1640 }
1641 }
1642 const VARIANTS: &[&str] = &["success",
1643 "not_found",
1644 "cannot_remove_primary",
1645 "other"];
1646 deserializer.deserialize_struct("DeleteSecondaryEmailResult", VARIANTS, EnumVisitor)
1647 }
1648}
1649
1650impl ::serde::ser::Serialize for DeleteSecondaryEmailResult {
1651 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1652 use serde::ser::SerializeStruct;
1654 match self {
1655 DeleteSecondaryEmailResult::Success(x) => {
1656 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
1658 s.serialize_field(".tag", "success")?;
1659 s.serialize_field("success", x)?;
1660 s.end()
1661 }
1662 DeleteSecondaryEmailResult::NotFound(x) => {
1663 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
1665 s.serialize_field(".tag", "not_found")?;
1666 s.serialize_field("not_found", x)?;
1667 s.end()
1668 }
1669 DeleteSecondaryEmailResult::CannotRemovePrimary(x) => {
1670 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
1672 s.serialize_field(".tag", "cannot_remove_primary")?;
1673 s.serialize_field("cannot_remove_primary", x)?;
1674 s.end()
1675 }
1676 DeleteSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1677 }
1678 }
1679}
1680
1681#[derive(Debug, Clone, PartialEq, Eq)]
1682#[non_exhaustive] pub struct DeleteSecondaryEmailsArg {
1684 pub emails_to_delete: Vec<UserSecondaryEmailsArg>,
1686}
1687
1688impl DeleteSecondaryEmailsArg {
1689 pub fn new(emails_to_delete: Vec<UserSecondaryEmailsArg>) -> Self {
1690 DeleteSecondaryEmailsArg {
1691 emails_to_delete,
1692 }
1693 }
1694}
1695
1696const DELETE_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["emails_to_delete"];
1697impl DeleteSecondaryEmailsArg {
1698 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1699 map: V,
1700 ) -> Result<DeleteSecondaryEmailsArg, V::Error> {
1701 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1702 }
1703
1704 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1705 mut map: V,
1706 optional: bool,
1707 ) -> Result<Option<DeleteSecondaryEmailsArg>, V::Error> {
1708 let mut field_emails_to_delete = None;
1709 let mut nothing = true;
1710 while let Some(key) = map.next_key::<&str>()? {
1711 nothing = false;
1712 match key {
1713 "emails_to_delete" => {
1714 if field_emails_to_delete.is_some() {
1715 return Err(::serde::de::Error::duplicate_field("emails_to_delete"));
1716 }
1717 field_emails_to_delete = Some(map.next_value()?);
1718 }
1719 _ => {
1720 map.next_value::<::serde_json::Value>()?;
1722 }
1723 }
1724 }
1725 if optional && nothing {
1726 return Ok(None);
1727 }
1728 let result = DeleteSecondaryEmailsArg {
1729 emails_to_delete: field_emails_to_delete.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_delete"))?,
1730 };
1731 Ok(Some(result))
1732 }
1733
1734 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1735 &self,
1736 s: &mut S::SerializeStruct,
1737 ) -> Result<(), S::Error> {
1738 use serde::ser::SerializeStruct;
1739 s.serialize_field("emails_to_delete", &self.emails_to_delete)?;
1740 Ok(())
1741 }
1742}
1743
1744impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailsArg {
1745 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1746 use serde::de::{MapAccess, Visitor};
1748 struct StructVisitor;
1749 impl<'de> Visitor<'de> for StructVisitor {
1750 type Value = DeleteSecondaryEmailsArg;
1751 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1752 f.write_str("a DeleteSecondaryEmailsArg struct")
1753 }
1754 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1755 DeleteSecondaryEmailsArg::internal_deserialize(map)
1756 }
1757 }
1758 deserializer.deserialize_struct("DeleteSecondaryEmailsArg", DELETE_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
1759 }
1760}
1761
1762impl ::serde::ser::Serialize for DeleteSecondaryEmailsArg {
1763 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1764 use serde::ser::SerializeStruct;
1766 let mut s = serializer.serialize_struct("DeleteSecondaryEmailsArg", 1)?;
1767 self.internal_serialize::<S>(&mut s)?;
1768 s.end()
1769 }
1770}
1771
1772#[derive(Debug, Clone, PartialEq, Eq)]
1773#[non_exhaustive] pub struct DeleteSecondaryEmailsResult {
1775 pub results: Vec<UserDeleteResult>,
1776}
1777
1778impl DeleteSecondaryEmailsResult {
1779 pub fn new(results: Vec<UserDeleteResult>) -> Self {
1780 DeleteSecondaryEmailsResult {
1781 results,
1782 }
1783 }
1784}
1785
1786const DELETE_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["results"];
1787impl DeleteSecondaryEmailsResult {
1788 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1789 map: V,
1790 ) -> Result<DeleteSecondaryEmailsResult, V::Error> {
1791 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1792 }
1793
1794 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1795 mut map: V,
1796 optional: bool,
1797 ) -> Result<Option<DeleteSecondaryEmailsResult>, V::Error> {
1798 let mut field_results = None;
1799 let mut nothing = true;
1800 while let Some(key) = map.next_key::<&str>()? {
1801 nothing = false;
1802 match key {
1803 "results" => {
1804 if field_results.is_some() {
1805 return Err(::serde::de::Error::duplicate_field("results"));
1806 }
1807 field_results = Some(map.next_value()?);
1808 }
1809 _ => {
1810 map.next_value::<::serde_json::Value>()?;
1812 }
1813 }
1814 }
1815 if optional && nothing {
1816 return Ok(None);
1817 }
1818 let result = DeleteSecondaryEmailsResult {
1819 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
1820 };
1821 Ok(Some(result))
1822 }
1823
1824 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1825 &self,
1826 s: &mut S::SerializeStruct,
1827 ) -> Result<(), S::Error> {
1828 use serde::ser::SerializeStruct;
1829 s.serialize_field("results", &self.results)?;
1830 Ok(())
1831 }
1832}
1833
1834impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailsResult {
1835 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1836 use serde::de::{MapAccess, Visitor};
1838 struct StructVisitor;
1839 impl<'de> Visitor<'de> for StructVisitor {
1840 type Value = DeleteSecondaryEmailsResult;
1841 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1842 f.write_str("a DeleteSecondaryEmailsResult struct")
1843 }
1844 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1845 DeleteSecondaryEmailsResult::internal_deserialize(map)
1846 }
1847 }
1848 deserializer.deserialize_struct("DeleteSecondaryEmailsResult", DELETE_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
1849 }
1850}
1851
1852impl ::serde::ser::Serialize for DeleteSecondaryEmailsResult {
1853 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1854 use serde::ser::SerializeStruct;
1856 let mut s = serializer.serialize_struct("DeleteSecondaryEmailsResult", 1)?;
1857 self.internal_serialize::<S>(&mut s)?;
1858 s.end()
1859 }
1860}
1861
1862#[derive(Debug, Clone, PartialEq, Eq)]
1864#[non_exhaustive] pub struct DesktopClientSession {
1866 pub session_id: String,
1868 pub host_name: String,
1870 pub client_type: DesktopPlatform,
1872 pub client_version: String,
1874 pub platform: String,
1876 pub is_delete_on_unlink_supported: bool,
1878 pub ip_address: Option<String>,
1880 pub country: Option<String>,
1882 pub created: Option<crate::types::common::DropboxTimestamp>,
1884 pub updated: Option<crate::types::common::DropboxTimestamp>,
1886}
1887
1888impl DesktopClientSession {
1889 pub fn new(
1890 session_id: String,
1891 host_name: String,
1892 client_type: DesktopPlatform,
1893 client_version: String,
1894 platform: String,
1895 is_delete_on_unlink_supported: bool,
1896 ) -> Self {
1897 DesktopClientSession {
1898 session_id,
1899 host_name,
1900 client_type,
1901 client_version,
1902 platform,
1903 is_delete_on_unlink_supported,
1904 ip_address: None,
1905 country: None,
1906 created: None,
1907 updated: None,
1908 }
1909 }
1910
1911 pub fn with_ip_address(mut self, value: String) -> Self {
1912 self.ip_address = Some(value);
1913 self
1914 }
1915
1916 pub fn with_country(mut self, value: String) -> Self {
1917 self.country = Some(value);
1918 self
1919 }
1920
1921 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
1922 self.created = Some(value);
1923 self
1924 }
1925
1926 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
1927 self.updated = Some(value);
1928 self
1929 }
1930}
1931
1932const DESKTOP_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
1933 "host_name",
1934 "client_type",
1935 "client_version",
1936 "platform",
1937 "is_delete_on_unlink_supported",
1938 "ip_address",
1939 "country",
1940 "created",
1941 "updated"];
1942impl DesktopClientSession {
1943 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1944 map: V,
1945 ) -> Result<DesktopClientSession, V::Error> {
1946 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1947 }
1948
1949 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1950 mut map: V,
1951 optional: bool,
1952 ) -> Result<Option<DesktopClientSession>, V::Error> {
1953 let mut field_session_id = None;
1954 let mut field_host_name = None;
1955 let mut field_client_type = None;
1956 let mut field_client_version = None;
1957 let mut field_platform = None;
1958 let mut field_is_delete_on_unlink_supported = None;
1959 let mut field_ip_address = None;
1960 let mut field_country = None;
1961 let mut field_created = None;
1962 let mut field_updated = None;
1963 let mut nothing = true;
1964 while let Some(key) = map.next_key::<&str>()? {
1965 nothing = false;
1966 match key {
1967 "session_id" => {
1968 if field_session_id.is_some() {
1969 return Err(::serde::de::Error::duplicate_field("session_id"));
1970 }
1971 field_session_id = Some(map.next_value()?);
1972 }
1973 "host_name" => {
1974 if field_host_name.is_some() {
1975 return Err(::serde::de::Error::duplicate_field("host_name"));
1976 }
1977 field_host_name = Some(map.next_value()?);
1978 }
1979 "client_type" => {
1980 if field_client_type.is_some() {
1981 return Err(::serde::de::Error::duplicate_field("client_type"));
1982 }
1983 field_client_type = Some(map.next_value()?);
1984 }
1985 "client_version" => {
1986 if field_client_version.is_some() {
1987 return Err(::serde::de::Error::duplicate_field("client_version"));
1988 }
1989 field_client_version = Some(map.next_value()?);
1990 }
1991 "platform" => {
1992 if field_platform.is_some() {
1993 return Err(::serde::de::Error::duplicate_field("platform"));
1994 }
1995 field_platform = Some(map.next_value()?);
1996 }
1997 "is_delete_on_unlink_supported" => {
1998 if field_is_delete_on_unlink_supported.is_some() {
1999 return Err(::serde::de::Error::duplicate_field("is_delete_on_unlink_supported"));
2000 }
2001 field_is_delete_on_unlink_supported = Some(map.next_value()?);
2002 }
2003 "ip_address" => {
2004 if field_ip_address.is_some() {
2005 return Err(::serde::de::Error::duplicate_field("ip_address"));
2006 }
2007 field_ip_address = Some(map.next_value()?);
2008 }
2009 "country" => {
2010 if field_country.is_some() {
2011 return Err(::serde::de::Error::duplicate_field("country"));
2012 }
2013 field_country = Some(map.next_value()?);
2014 }
2015 "created" => {
2016 if field_created.is_some() {
2017 return Err(::serde::de::Error::duplicate_field("created"));
2018 }
2019 field_created = Some(map.next_value()?);
2020 }
2021 "updated" => {
2022 if field_updated.is_some() {
2023 return Err(::serde::de::Error::duplicate_field("updated"));
2024 }
2025 field_updated = Some(map.next_value()?);
2026 }
2027 _ => {
2028 map.next_value::<::serde_json::Value>()?;
2030 }
2031 }
2032 }
2033 if optional && nothing {
2034 return Ok(None);
2035 }
2036 let result = DesktopClientSession {
2037 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2038 host_name: field_host_name.ok_or_else(|| ::serde::de::Error::missing_field("host_name"))?,
2039 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
2040 client_version: field_client_version.ok_or_else(|| ::serde::de::Error::missing_field("client_version"))?,
2041 platform: field_platform.ok_or_else(|| ::serde::de::Error::missing_field("platform"))?,
2042 is_delete_on_unlink_supported: field_is_delete_on_unlink_supported.ok_or_else(|| ::serde::de::Error::missing_field("is_delete_on_unlink_supported"))?,
2043 ip_address: field_ip_address.and_then(Option::flatten),
2044 country: field_country.and_then(Option::flatten),
2045 created: field_created.and_then(Option::flatten),
2046 updated: field_updated.and_then(Option::flatten),
2047 };
2048 Ok(Some(result))
2049 }
2050
2051 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2052 &self,
2053 s: &mut S::SerializeStruct,
2054 ) -> Result<(), S::Error> {
2055 use serde::ser::SerializeStruct;
2056 s.serialize_field("session_id", &self.session_id)?;
2057 s.serialize_field("host_name", &self.host_name)?;
2058 s.serialize_field("client_type", &self.client_type)?;
2059 s.serialize_field("client_version", &self.client_version)?;
2060 s.serialize_field("platform", &self.platform)?;
2061 s.serialize_field("is_delete_on_unlink_supported", &self.is_delete_on_unlink_supported)?;
2062 if let Some(val) = &self.ip_address {
2063 s.serialize_field("ip_address", val)?;
2064 }
2065 if let Some(val) = &self.country {
2066 s.serialize_field("country", val)?;
2067 }
2068 if let Some(val) = &self.created {
2069 s.serialize_field("created", val)?;
2070 }
2071 if let Some(val) = &self.updated {
2072 s.serialize_field("updated", val)?;
2073 }
2074 Ok(())
2075 }
2076}
2077
2078impl<'de> ::serde::de::Deserialize<'de> for DesktopClientSession {
2079 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2080 use serde::de::{MapAccess, Visitor};
2082 struct StructVisitor;
2083 impl<'de> Visitor<'de> for StructVisitor {
2084 type Value = DesktopClientSession;
2085 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2086 f.write_str("a DesktopClientSession struct")
2087 }
2088 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2089 DesktopClientSession::internal_deserialize(map)
2090 }
2091 }
2092 deserializer.deserialize_struct("DesktopClientSession", DESKTOP_CLIENT_SESSION_FIELDS, StructVisitor)
2093 }
2094}
2095
2096impl ::serde::ser::Serialize for DesktopClientSession {
2097 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2098 use serde::ser::SerializeStruct;
2100 let mut s = serializer.serialize_struct("DesktopClientSession", 10)?;
2101 self.internal_serialize::<S>(&mut s)?;
2102 s.end()
2103 }
2104}
2105
2106impl From<DesktopClientSession> for DeviceSession {
2108 fn from(subtype: DesktopClientSession) -> Self {
2109 Self {
2110 session_id: subtype.session_id,
2111 ip_address: subtype.ip_address,
2112 country: subtype.country,
2113 created: subtype.created,
2114 updated: subtype.updated,
2115 }
2116 }
2117}
2118#[derive(Debug, Clone, PartialEq, Eq)]
2119#[non_exhaustive] pub enum DesktopPlatform {
2121 Windows,
2123 Mac,
2125 Linux,
2127 Other,
2130}
2131
2132impl<'de> ::serde::de::Deserialize<'de> for DesktopPlatform {
2133 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2134 use serde::de::{self, MapAccess, Visitor};
2136 struct EnumVisitor;
2137 impl<'de> Visitor<'de> for EnumVisitor {
2138 type Value = DesktopPlatform;
2139 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2140 f.write_str("a DesktopPlatform structure")
2141 }
2142 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2143 let tag: &str = match map.next_key()? {
2144 Some(".tag") => map.next_value()?,
2145 _ => return Err(de::Error::missing_field(".tag"))
2146 };
2147 let value = match tag {
2148 "windows" => DesktopPlatform::Windows,
2149 "mac" => DesktopPlatform::Mac,
2150 "linux" => DesktopPlatform::Linux,
2151 _ => DesktopPlatform::Other,
2152 };
2153 crate::eat_json_fields(&mut map)?;
2154 Ok(value)
2155 }
2156 }
2157 const VARIANTS: &[&str] = &["windows",
2158 "mac",
2159 "linux",
2160 "other"];
2161 deserializer.deserialize_struct("DesktopPlatform", VARIANTS, EnumVisitor)
2162 }
2163}
2164
2165impl ::serde::ser::Serialize for DesktopPlatform {
2166 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2167 use serde::ser::SerializeStruct;
2169 match self {
2170 DesktopPlatform::Windows => {
2171 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
2173 s.serialize_field(".tag", "windows")?;
2174 s.end()
2175 }
2176 DesktopPlatform::Mac => {
2177 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
2179 s.serialize_field(".tag", "mac")?;
2180 s.end()
2181 }
2182 DesktopPlatform::Linux => {
2183 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
2185 s.serialize_field(".tag", "linux")?;
2186 s.end()
2187 }
2188 DesktopPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2189 }
2190 }
2191}
2192
2193#[derive(Debug, Clone, PartialEq, Eq)]
2194#[non_exhaustive] pub struct DeviceSession {
2196 pub session_id: String,
2198 pub ip_address: Option<String>,
2200 pub country: Option<String>,
2202 pub created: Option<crate::types::common::DropboxTimestamp>,
2204 pub updated: Option<crate::types::common::DropboxTimestamp>,
2206}
2207
2208impl DeviceSession {
2209 pub fn new(session_id: String) -> Self {
2210 DeviceSession {
2211 session_id,
2212 ip_address: None,
2213 country: None,
2214 created: None,
2215 updated: None,
2216 }
2217 }
2218
2219 pub fn with_ip_address(mut self, value: String) -> Self {
2220 self.ip_address = Some(value);
2221 self
2222 }
2223
2224 pub fn with_country(mut self, value: String) -> Self {
2225 self.country = Some(value);
2226 self
2227 }
2228
2229 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
2230 self.created = Some(value);
2231 self
2232 }
2233
2234 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
2235 self.updated = Some(value);
2236 self
2237 }
2238}
2239
2240const DEVICE_SESSION_FIELDS: &[&str] = &["session_id",
2241 "ip_address",
2242 "country",
2243 "created",
2244 "updated"];
2245impl DeviceSession {
2246 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2247 map: V,
2248 ) -> Result<DeviceSession, V::Error> {
2249 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2250 }
2251
2252 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2253 mut map: V,
2254 optional: bool,
2255 ) -> Result<Option<DeviceSession>, V::Error> {
2256 let mut field_session_id = None;
2257 let mut field_ip_address = None;
2258 let mut field_country = None;
2259 let mut field_created = None;
2260 let mut field_updated = None;
2261 let mut nothing = true;
2262 while let Some(key) = map.next_key::<&str>()? {
2263 nothing = false;
2264 match key {
2265 "session_id" => {
2266 if field_session_id.is_some() {
2267 return Err(::serde::de::Error::duplicate_field("session_id"));
2268 }
2269 field_session_id = Some(map.next_value()?);
2270 }
2271 "ip_address" => {
2272 if field_ip_address.is_some() {
2273 return Err(::serde::de::Error::duplicate_field("ip_address"));
2274 }
2275 field_ip_address = Some(map.next_value()?);
2276 }
2277 "country" => {
2278 if field_country.is_some() {
2279 return Err(::serde::de::Error::duplicate_field("country"));
2280 }
2281 field_country = Some(map.next_value()?);
2282 }
2283 "created" => {
2284 if field_created.is_some() {
2285 return Err(::serde::de::Error::duplicate_field("created"));
2286 }
2287 field_created = Some(map.next_value()?);
2288 }
2289 "updated" => {
2290 if field_updated.is_some() {
2291 return Err(::serde::de::Error::duplicate_field("updated"));
2292 }
2293 field_updated = Some(map.next_value()?);
2294 }
2295 _ => {
2296 map.next_value::<::serde_json::Value>()?;
2298 }
2299 }
2300 }
2301 if optional && nothing {
2302 return Ok(None);
2303 }
2304 let result = DeviceSession {
2305 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2306 ip_address: field_ip_address.and_then(Option::flatten),
2307 country: field_country.and_then(Option::flatten),
2308 created: field_created.and_then(Option::flatten),
2309 updated: field_updated.and_then(Option::flatten),
2310 };
2311 Ok(Some(result))
2312 }
2313
2314 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2315 &self,
2316 s: &mut S::SerializeStruct,
2317 ) -> Result<(), S::Error> {
2318 use serde::ser::SerializeStruct;
2319 s.serialize_field("session_id", &self.session_id)?;
2320 if let Some(val) = &self.ip_address {
2321 s.serialize_field("ip_address", val)?;
2322 }
2323 if let Some(val) = &self.country {
2324 s.serialize_field("country", val)?;
2325 }
2326 if let Some(val) = &self.created {
2327 s.serialize_field("created", val)?;
2328 }
2329 if let Some(val) = &self.updated {
2330 s.serialize_field("updated", val)?;
2331 }
2332 Ok(())
2333 }
2334}
2335
2336impl<'de> ::serde::de::Deserialize<'de> for DeviceSession {
2337 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2338 use serde::de::{MapAccess, Visitor};
2340 struct StructVisitor;
2341 impl<'de> Visitor<'de> for StructVisitor {
2342 type Value = DeviceSession;
2343 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2344 f.write_str("a DeviceSession struct")
2345 }
2346 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2347 DeviceSession::internal_deserialize(map)
2348 }
2349 }
2350 deserializer.deserialize_struct("DeviceSession", DEVICE_SESSION_FIELDS, StructVisitor)
2351 }
2352}
2353
2354impl ::serde::ser::Serialize for DeviceSession {
2355 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2356 use serde::ser::SerializeStruct;
2358 let mut s = serializer.serialize_struct("DeviceSession", 5)?;
2359 self.internal_serialize::<S>(&mut s)?;
2360 s.end()
2361 }
2362}
2363
2364#[derive(Debug, Clone, PartialEq, Eq)]
2365#[non_exhaustive] pub struct DeviceSessionArg {
2367 pub session_id: String,
2369 pub team_member_id: String,
2371}
2372
2373impl DeviceSessionArg {
2374 pub fn new(session_id: String, team_member_id: String) -> Self {
2375 DeviceSessionArg {
2376 session_id,
2377 team_member_id,
2378 }
2379 }
2380}
2381
2382const DEVICE_SESSION_ARG_FIELDS: &[&str] = &["session_id",
2383 "team_member_id"];
2384impl DeviceSessionArg {
2385 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2386 map: V,
2387 ) -> Result<DeviceSessionArg, V::Error> {
2388 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2389 }
2390
2391 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2392 mut map: V,
2393 optional: bool,
2394 ) -> Result<Option<DeviceSessionArg>, V::Error> {
2395 let mut field_session_id = None;
2396 let mut field_team_member_id = None;
2397 let mut nothing = true;
2398 while let Some(key) = map.next_key::<&str>()? {
2399 nothing = false;
2400 match key {
2401 "session_id" => {
2402 if field_session_id.is_some() {
2403 return Err(::serde::de::Error::duplicate_field("session_id"));
2404 }
2405 field_session_id = Some(map.next_value()?);
2406 }
2407 "team_member_id" => {
2408 if field_team_member_id.is_some() {
2409 return Err(::serde::de::Error::duplicate_field("team_member_id"));
2410 }
2411 field_team_member_id = Some(map.next_value()?);
2412 }
2413 _ => {
2414 map.next_value::<::serde_json::Value>()?;
2416 }
2417 }
2418 }
2419 if optional && nothing {
2420 return Ok(None);
2421 }
2422 let result = DeviceSessionArg {
2423 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2424 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
2425 };
2426 Ok(Some(result))
2427 }
2428
2429 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2430 &self,
2431 s: &mut S::SerializeStruct,
2432 ) -> Result<(), S::Error> {
2433 use serde::ser::SerializeStruct;
2434 s.serialize_field("session_id", &self.session_id)?;
2435 s.serialize_field("team_member_id", &self.team_member_id)?;
2436 Ok(())
2437 }
2438}
2439
2440impl<'de> ::serde::de::Deserialize<'de> for DeviceSessionArg {
2441 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2442 use serde::de::{MapAccess, Visitor};
2444 struct StructVisitor;
2445 impl<'de> Visitor<'de> for StructVisitor {
2446 type Value = DeviceSessionArg;
2447 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2448 f.write_str("a DeviceSessionArg struct")
2449 }
2450 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2451 DeviceSessionArg::internal_deserialize(map)
2452 }
2453 }
2454 deserializer.deserialize_struct("DeviceSessionArg", DEVICE_SESSION_ARG_FIELDS, StructVisitor)
2455 }
2456}
2457
2458impl ::serde::ser::Serialize for DeviceSessionArg {
2459 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2460 use serde::ser::SerializeStruct;
2462 let mut s = serializer.serialize_struct("DeviceSessionArg", 2)?;
2463 self.internal_serialize::<S>(&mut s)?;
2464 s.end()
2465 }
2466}
2467
2468#[derive(Debug, Clone, PartialEq, Eq)]
2472#[non_exhaustive] pub struct DevicesActive {
2474 pub windows: NumberPerDay,
2476 pub macos: NumberPerDay,
2478 pub linux: NumberPerDay,
2480 pub ios: NumberPerDay,
2482 pub android: NumberPerDay,
2484 pub other: NumberPerDay,
2486 pub total: NumberPerDay,
2488}
2489
2490impl DevicesActive {
2491 pub fn new(
2492 windows: NumberPerDay,
2493 macos: NumberPerDay,
2494 linux: NumberPerDay,
2495 ios: NumberPerDay,
2496 android: NumberPerDay,
2497 other: NumberPerDay,
2498 total: NumberPerDay,
2499 ) -> Self {
2500 DevicesActive {
2501 windows,
2502 macos,
2503 linux,
2504 ios,
2505 android,
2506 other,
2507 total,
2508 }
2509 }
2510}
2511
2512const DEVICES_ACTIVE_FIELDS: &[&str] = &["windows",
2513 "macos",
2514 "linux",
2515 "ios",
2516 "android",
2517 "other",
2518 "total"];
2519impl DevicesActive {
2520 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2521 map: V,
2522 ) -> Result<DevicesActive, V::Error> {
2523 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2524 }
2525
2526 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2527 mut map: V,
2528 optional: bool,
2529 ) -> Result<Option<DevicesActive>, V::Error> {
2530 let mut field_windows = None;
2531 let mut field_macos = None;
2532 let mut field_linux = None;
2533 let mut field_ios = None;
2534 let mut field_android = None;
2535 let mut field_other = None;
2536 let mut field_total = None;
2537 let mut nothing = true;
2538 while let Some(key) = map.next_key::<&str>()? {
2539 nothing = false;
2540 match key {
2541 "windows" => {
2542 if field_windows.is_some() {
2543 return Err(::serde::de::Error::duplicate_field("windows"));
2544 }
2545 field_windows = Some(map.next_value()?);
2546 }
2547 "macos" => {
2548 if field_macos.is_some() {
2549 return Err(::serde::de::Error::duplicate_field("macos"));
2550 }
2551 field_macos = Some(map.next_value()?);
2552 }
2553 "linux" => {
2554 if field_linux.is_some() {
2555 return Err(::serde::de::Error::duplicate_field("linux"));
2556 }
2557 field_linux = Some(map.next_value()?);
2558 }
2559 "ios" => {
2560 if field_ios.is_some() {
2561 return Err(::serde::de::Error::duplicate_field("ios"));
2562 }
2563 field_ios = Some(map.next_value()?);
2564 }
2565 "android" => {
2566 if field_android.is_some() {
2567 return Err(::serde::de::Error::duplicate_field("android"));
2568 }
2569 field_android = Some(map.next_value()?);
2570 }
2571 "other" => {
2572 if field_other.is_some() {
2573 return Err(::serde::de::Error::duplicate_field("other"));
2574 }
2575 field_other = Some(map.next_value()?);
2576 }
2577 "total" => {
2578 if field_total.is_some() {
2579 return Err(::serde::de::Error::duplicate_field("total"));
2580 }
2581 field_total = Some(map.next_value()?);
2582 }
2583 _ => {
2584 map.next_value::<::serde_json::Value>()?;
2586 }
2587 }
2588 }
2589 if optional && nothing {
2590 return Ok(None);
2591 }
2592 let result = DevicesActive {
2593 windows: field_windows.ok_or_else(|| ::serde::de::Error::missing_field("windows"))?,
2594 macos: field_macos.ok_or_else(|| ::serde::de::Error::missing_field("macos"))?,
2595 linux: field_linux.ok_or_else(|| ::serde::de::Error::missing_field("linux"))?,
2596 ios: field_ios.ok_or_else(|| ::serde::de::Error::missing_field("ios"))?,
2597 android: field_android.ok_or_else(|| ::serde::de::Error::missing_field("android"))?,
2598 other: field_other.ok_or_else(|| ::serde::de::Error::missing_field("other"))?,
2599 total: field_total.ok_or_else(|| ::serde::de::Error::missing_field("total"))?,
2600 };
2601 Ok(Some(result))
2602 }
2603
2604 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2605 &self,
2606 s: &mut S::SerializeStruct,
2607 ) -> Result<(), S::Error> {
2608 use serde::ser::SerializeStruct;
2609 s.serialize_field("windows", &self.windows)?;
2610 s.serialize_field("macos", &self.macos)?;
2611 s.serialize_field("linux", &self.linux)?;
2612 s.serialize_field("ios", &self.ios)?;
2613 s.serialize_field("android", &self.android)?;
2614 s.serialize_field("other", &self.other)?;
2615 s.serialize_field("total", &self.total)?;
2616 Ok(())
2617 }
2618}
2619
2620impl<'de> ::serde::de::Deserialize<'de> for DevicesActive {
2621 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2622 use serde::de::{MapAccess, Visitor};
2624 struct StructVisitor;
2625 impl<'de> Visitor<'de> for StructVisitor {
2626 type Value = DevicesActive;
2627 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2628 f.write_str("a DevicesActive struct")
2629 }
2630 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2631 DevicesActive::internal_deserialize(map)
2632 }
2633 }
2634 deserializer.deserialize_struct("DevicesActive", DEVICES_ACTIVE_FIELDS, StructVisitor)
2635 }
2636}
2637
2638impl ::serde::ser::Serialize for DevicesActive {
2639 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2640 use serde::ser::SerializeStruct;
2642 let mut s = serializer.serialize_struct("DevicesActive", 7)?;
2643 self.internal_serialize::<S>(&mut s)?;
2644 s.end()
2645 }
2646}
2647
2648#[derive(Debug, Clone, PartialEq, Eq)]
2650#[non_exhaustive] pub struct ExcludedUsersListArg {
2652 pub limit: u32,
2654}
2655
2656impl Default for ExcludedUsersListArg {
2657 fn default() -> Self {
2658 ExcludedUsersListArg {
2659 limit: 1000,
2660 }
2661 }
2662}
2663
2664impl ExcludedUsersListArg {
2665 pub fn with_limit(mut self, value: u32) -> Self {
2666 self.limit = value;
2667 self
2668 }
2669}
2670
2671const EXCLUDED_USERS_LIST_ARG_FIELDS: &[&str] = &["limit"];
2672impl ExcludedUsersListArg {
2673 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2675 mut map: V,
2676 ) -> Result<ExcludedUsersListArg, V::Error> {
2677 let mut field_limit = None;
2678 while let Some(key) = map.next_key::<&str>()? {
2679 match key {
2680 "limit" => {
2681 if field_limit.is_some() {
2682 return Err(::serde::de::Error::duplicate_field("limit"));
2683 }
2684 field_limit = Some(map.next_value()?);
2685 }
2686 _ => {
2687 map.next_value::<::serde_json::Value>()?;
2689 }
2690 }
2691 }
2692 let result = ExcludedUsersListArg {
2693 limit: field_limit.unwrap_or(1000),
2694 };
2695 Ok(result)
2696 }
2697
2698 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2699 &self,
2700 s: &mut S::SerializeStruct,
2701 ) -> Result<(), S::Error> {
2702 use serde::ser::SerializeStruct;
2703 if self.limit != 1000 {
2704 s.serialize_field("limit", &self.limit)?;
2705 }
2706 Ok(())
2707 }
2708}
2709
2710impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListArg {
2711 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2712 use serde::de::{MapAccess, Visitor};
2714 struct StructVisitor;
2715 impl<'de> Visitor<'de> for StructVisitor {
2716 type Value = ExcludedUsersListArg;
2717 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2718 f.write_str("a ExcludedUsersListArg struct")
2719 }
2720 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2721 ExcludedUsersListArg::internal_deserialize(map)
2722 }
2723 }
2724 deserializer.deserialize_struct("ExcludedUsersListArg", EXCLUDED_USERS_LIST_ARG_FIELDS, StructVisitor)
2725 }
2726}
2727
2728impl ::serde::ser::Serialize for ExcludedUsersListArg {
2729 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2730 use serde::ser::SerializeStruct;
2732 let mut s = serializer.serialize_struct("ExcludedUsersListArg", 1)?;
2733 self.internal_serialize::<S>(&mut s)?;
2734 s.end()
2735 }
2736}
2737
2738#[derive(Debug, Clone, PartialEq, Eq)]
2740#[non_exhaustive] pub struct ExcludedUsersListContinueArg {
2742 pub cursor: String,
2744}
2745
2746impl ExcludedUsersListContinueArg {
2747 pub fn new(cursor: String) -> Self {
2748 ExcludedUsersListContinueArg {
2749 cursor,
2750 }
2751 }
2752}
2753
2754const EXCLUDED_USERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
2755impl ExcludedUsersListContinueArg {
2756 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2757 map: V,
2758 ) -> Result<ExcludedUsersListContinueArg, V::Error> {
2759 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2760 }
2761
2762 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2763 mut map: V,
2764 optional: bool,
2765 ) -> Result<Option<ExcludedUsersListContinueArg>, V::Error> {
2766 let mut field_cursor = None;
2767 let mut nothing = true;
2768 while let Some(key) = map.next_key::<&str>()? {
2769 nothing = false;
2770 match key {
2771 "cursor" => {
2772 if field_cursor.is_some() {
2773 return Err(::serde::de::Error::duplicate_field("cursor"));
2774 }
2775 field_cursor = Some(map.next_value()?);
2776 }
2777 _ => {
2778 map.next_value::<::serde_json::Value>()?;
2780 }
2781 }
2782 }
2783 if optional && nothing {
2784 return Ok(None);
2785 }
2786 let result = ExcludedUsersListContinueArg {
2787 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
2788 };
2789 Ok(Some(result))
2790 }
2791
2792 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2793 &self,
2794 s: &mut S::SerializeStruct,
2795 ) -> Result<(), S::Error> {
2796 use serde::ser::SerializeStruct;
2797 s.serialize_field("cursor", &self.cursor)?;
2798 Ok(())
2799 }
2800}
2801
2802impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListContinueArg {
2803 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2804 use serde::de::{MapAccess, Visitor};
2806 struct StructVisitor;
2807 impl<'de> Visitor<'de> for StructVisitor {
2808 type Value = ExcludedUsersListContinueArg;
2809 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2810 f.write_str("a ExcludedUsersListContinueArg struct")
2811 }
2812 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2813 ExcludedUsersListContinueArg::internal_deserialize(map)
2814 }
2815 }
2816 deserializer.deserialize_struct("ExcludedUsersListContinueArg", EXCLUDED_USERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
2817 }
2818}
2819
2820impl ::serde::ser::Serialize for ExcludedUsersListContinueArg {
2821 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2822 use serde::ser::SerializeStruct;
2824 let mut s = serializer.serialize_struct("ExcludedUsersListContinueArg", 1)?;
2825 self.internal_serialize::<S>(&mut s)?;
2826 s.end()
2827 }
2828}
2829
2830#[derive(Debug, Clone, PartialEq, Eq)]
2832#[non_exhaustive] pub enum ExcludedUsersListContinueError {
2834 InvalidCursor,
2836 Other,
2839}
2840
2841impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListContinueError {
2842 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2843 use serde::de::{self, MapAccess, Visitor};
2845 struct EnumVisitor;
2846 impl<'de> Visitor<'de> for EnumVisitor {
2847 type Value = ExcludedUsersListContinueError;
2848 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2849 f.write_str("a ExcludedUsersListContinueError structure")
2850 }
2851 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2852 let tag: &str = match map.next_key()? {
2853 Some(".tag") => map.next_value()?,
2854 _ => return Err(de::Error::missing_field(".tag"))
2855 };
2856 let value = match tag {
2857 "invalid_cursor" => ExcludedUsersListContinueError::InvalidCursor,
2858 _ => ExcludedUsersListContinueError::Other,
2859 };
2860 crate::eat_json_fields(&mut map)?;
2861 Ok(value)
2862 }
2863 }
2864 const VARIANTS: &[&str] = &["invalid_cursor",
2865 "other"];
2866 deserializer.deserialize_struct("ExcludedUsersListContinueError", VARIANTS, EnumVisitor)
2867 }
2868}
2869
2870impl ::serde::ser::Serialize for ExcludedUsersListContinueError {
2871 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2872 use serde::ser::SerializeStruct;
2874 match self {
2875 ExcludedUsersListContinueError::InvalidCursor => {
2876 let mut s = serializer.serialize_struct("ExcludedUsersListContinueError", 1)?;
2878 s.serialize_field(".tag", "invalid_cursor")?;
2879 s.end()
2880 }
2881 ExcludedUsersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2882 }
2883 }
2884}
2885
2886impl ::std::error::Error for ExcludedUsersListContinueError {
2887}
2888
2889impl ::std::fmt::Display for ExcludedUsersListContinueError {
2890 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2891 match self {
2892 ExcludedUsersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
2893 _ => write!(f, "{:?}", *self),
2894 }
2895 }
2896}
2897
2898#[derive(Debug, Clone, PartialEq, Eq)]
2900#[non_exhaustive] pub enum ExcludedUsersListError {
2902 ListError,
2904 Other,
2907}
2908
2909impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListError {
2910 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2911 use serde::de::{self, MapAccess, Visitor};
2913 struct EnumVisitor;
2914 impl<'de> Visitor<'de> for EnumVisitor {
2915 type Value = ExcludedUsersListError;
2916 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2917 f.write_str("a ExcludedUsersListError structure")
2918 }
2919 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2920 let tag: &str = match map.next_key()? {
2921 Some(".tag") => map.next_value()?,
2922 _ => return Err(de::Error::missing_field(".tag"))
2923 };
2924 let value = match tag {
2925 "list_error" => ExcludedUsersListError::ListError,
2926 _ => ExcludedUsersListError::Other,
2927 };
2928 crate::eat_json_fields(&mut map)?;
2929 Ok(value)
2930 }
2931 }
2932 const VARIANTS: &[&str] = &["list_error",
2933 "other"];
2934 deserializer.deserialize_struct("ExcludedUsersListError", VARIANTS, EnumVisitor)
2935 }
2936}
2937
2938impl ::serde::ser::Serialize for ExcludedUsersListError {
2939 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2940 use serde::ser::SerializeStruct;
2942 match self {
2943 ExcludedUsersListError::ListError => {
2944 let mut s = serializer.serialize_struct("ExcludedUsersListError", 1)?;
2946 s.serialize_field(".tag", "list_error")?;
2947 s.end()
2948 }
2949 ExcludedUsersListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2950 }
2951 }
2952}
2953
2954impl ::std::error::Error for ExcludedUsersListError {
2955}
2956
2957impl ::std::fmt::Display for ExcludedUsersListError {
2958 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2959 match self {
2960 ExcludedUsersListError::ListError => f.write_str("An error occurred."),
2961 _ => write!(f, "{:?}", *self),
2962 }
2963 }
2964}
2965
2966#[derive(Debug, Clone, PartialEq, Eq)]
2968#[non_exhaustive] pub struct ExcludedUsersListResult {
2970 pub users: Vec<MemberProfile>,
2971 pub has_more: bool,
2976 pub cursor: Option<String>,
2980}
2981
2982impl ExcludedUsersListResult {
2983 pub fn new(users: Vec<MemberProfile>, has_more: bool) -> Self {
2984 ExcludedUsersListResult {
2985 users,
2986 has_more,
2987 cursor: None,
2988 }
2989 }
2990
2991 pub fn with_cursor(mut self, value: String) -> Self {
2992 self.cursor = Some(value);
2993 self
2994 }
2995}
2996
2997const EXCLUDED_USERS_LIST_RESULT_FIELDS: &[&str] = &["users",
2998 "has_more",
2999 "cursor"];
3000impl ExcludedUsersListResult {
3001 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3002 map: V,
3003 ) -> Result<ExcludedUsersListResult, V::Error> {
3004 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3005 }
3006
3007 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3008 mut map: V,
3009 optional: bool,
3010 ) -> Result<Option<ExcludedUsersListResult>, V::Error> {
3011 let mut field_users = None;
3012 let mut field_has_more = None;
3013 let mut field_cursor = None;
3014 let mut nothing = true;
3015 while let Some(key) = map.next_key::<&str>()? {
3016 nothing = false;
3017 match key {
3018 "users" => {
3019 if field_users.is_some() {
3020 return Err(::serde::de::Error::duplicate_field("users"));
3021 }
3022 field_users = Some(map.next_value()?);
3023 }
3024 "has_more" => {
3025 if field_has_more.is_some() {
3026 return Err(::serde::de::Error::duplicate_field("has_more"));
3027 }
3028 field_has_more = Some(map.next_value()?);
3029 }
3030 "cursor" => {
3031 if field_cursor.is_some() {
3032 return Err(::serde::de::Error::duplicate_field("cursor"));
3033 }
3034 field_cursor = Some(map.next_value()?);
3035 }
3036 _ => {
3037 map.next_value::<::serde_json::Value>()?;
3039 }
3040 }
3041 }
3042 if optional && nothing {
3043 return Ok(None);
3044 }
3045 let result = ExcludedUsersListResult {
3046 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
3047 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
3048 cursor: field_cursor.and_then(Option::flatten),
3049 };
3050 Ok(Some(result))
3051 }
3052
3053 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3054 &self,
3055 s: &mut S::SerializeStruct,
3056 ) -> Result<(), S::Error> {
3057 use serde::ser::SerializeStruct;
3058 s.serialize_field("users", &self.users)?;
3059 s.serialize_field("has_more", &self.has_more)?;
3060 if let Some(val) = &self.cursor {
3061 s.serialize_field("cursor", val)?;
3062 }
3063 Ok(())
3064 }
3065}
3066
3067impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListResult {
3068 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3069 use serde::de::{MapAccess, Visitor};
3071 struct StructVisitor;
3072 impl<'de> Visitor<'de> for StructVisitor {
3073 type Value = ExcludedUsersListResult;
3074 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3075 f.write_str("a ExcludedUsersListResult struct")
3076 }
3077 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3078 ExcludedUsersListResult::internal_deserialize(map)
3079 }
3080 }
3081 deserializer.deserialize_struct("ExcludedUsersListResult", EXCLUDED_USERS_LIST_RESULT_FIELDS, StructVisitor)
3082 }
3083}
3084
3085impl ::serde::ser::Serialize for ExcludedUsersListResult {
3086 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3087 use serde::ser::SerializeStruct;
3089 let mut s = serializer.serialize_struct("ExcludedUsersListResult", 3)?;
3090 self.internal_serialize::<S>(&mut s)?;
3091 s.end()
3092 }
3093}
3094
3095#[derive(Debug, Clone, PartialEq, Eq, Default)]
3098#[non_exhaustive] pub struct ExcludedUsersUpdateArg {
3100 pub users: Option<Vec<UserSelectorArg>>,
3102}
3103
3104impl ExcludedUsersUpdateArg {
3105 pub fn with_users(mut self, value: Vec<UserSelectorArg>) -> Self {
3106 self.users = Some(value);
3107 self
3108 }
3109}
3110
3111const EXCLUDED_USERS_UPDATE_ARG_FIELDS: &[&str] = &["users"];
3112impl ExcludedUsersUpdateArg {
3113 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3115 mut map: V,
3116 ) -> Result<ExcludedUsersUpdateArg, V::Error> {
3117 let mut field_users = None;
3118 while let Some(key) = map.next_key::<&str>()? {
3119 match key {
3120 "users" => {
3121 if field_users.is_some() {
3122 return Err(::serde::de::Error::duplicate_field("users"));
3123 }
3124 field_users = Some(map.next_value()?);
3125 }
3126 _ => {
3127 map.next_value::<::serde_json::Value>()?;
3129 }
3130 }
3131 }
3132 let result = ExcludedUsersUpdateArg {
3133 users: field_users.and_then(Option::flatten),
3134 };
3135 Ok(result)
3136 }
3137
3138 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3139 &self,
3140 s: &mut S::SerializeStruct,
3141 ) -> Result<(), S::Error> {
3142 use serde::ser::SerializeStruct;
3143 if let Some(val) = &self.users {
3144 s.serialize_field("users", val)?;
3145 }
3146 Ok(())
3147 }
3148}
3149
3150impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateArg {
3151 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3152 use serde::de::{MapAccess, Visitor};
3154 struct StructVisitor;
3155 impl<'de> Visitor<'de> for StructVisitor {
3156 type Value = ExcludedUsersUpdateArg;
3157 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3158 f.write_str("a ExcludedUsersUpdateArg struct")
3159 }
3160 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3161 ExcludedUsersUpdateArg::internal_deserialize(map)
3162 }
3163 }
3164 deserializer.deserialize_struct("ExcludedUsersUpdateArg", EXCLUDED_USERS_UPDATE_ARG_FIELDS, StructVisitor)
3165 }
3166}
3167
3168impl ::serde::ser::Serialize for ExcludedUsersUpdateArg {
3169 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3170 use serde::ser::SerializeStruct;
3172 let mut s = serializer.serialize_struct("ExcludedUsersUpdateArg", 1)?;
3173 self.internal_serialize::<S>(&mut s)?;
3174 s.end()
3175 }
3176}
3177
3178#[derive(Debug, Clone, PartialEq, Eq)]
3180#[non_exhaustive] pub enum ExcludedUsersUpdateError {
3182 UsersNotInTeam,
3184 TooManyUsers,
3186 Other,
3189}
3190
3191impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateError {
3192 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3193 use serde::de::{self, MapAccess, Visitor};
3195 struct EnumVisitor;
3196 impl<'de> Visitor<'de> for EnumVisitor {
3197 type Value = ExcludedUsersUpdateError;
3198 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3199 f.write_str("a ExcludedUsersUpdateError structure")
3200 }
3201 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3202 let tag: &str = match map.next_key()? {
3203 Some(".tag") => map.next_value()?,
3204 _ => return Err(de::Error::missing_field(".tag"))
3205 };
3206 let value = match tag {
3207 "users_not_in_team" => ExcludedUsersUpdateError::UsersNotInTeam,
3208 "too_many_users" => ExcludedUsersUpdateError::TooManyUsers,
3209 _ => ExcludedUsersUpdateError::Other,
3210 };
3211 crate::eat_json_fields(&mut map)?;
3212 Ok(value)
3213 }
3214 }
3215 const VARIANTS: &[&str] = &["users_not_in_team",
3216 "too_many_users",
3217 "other"];
3218 deserializer.deserialize_struct("ExcludedUsersUpdateError", VARIANTS, EnumVisitor)
3219 }
3220}
3221
3222impl ::serde::ser::Serialize for ExcludedUsersUpdateError {
3223 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3224 use serde::ser::SerializeStruct;
3226 match self {
3227 ExcludedUsersUpdateError::UsersNotInTeam => {
3228 let mut s = serializer.serialize_struct("ExcludedUsersUpdateError", 1)?;
3230 s.serialize_field(".tag", "users_not_in_team")?;
3231 s.end()
3232 }
3233 ExcludedUsersUpdateError::TooManyUsers => {
3234 let mut s = serializer.serialize_struct("ExcludedUsersUpdateError", 1)?;
3236 s.serialize_field(".tag", "too_many_users")?;
3237 s.end()
3238 }
3239 ExcludedUsersUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3240 }
3241 }
3242}
3243
3244impl ::std::error::Error for ExcludedUsersUpdateError {
3245}
3246
3247impl ::std::fmt::Display for ExcludedUsersUpdateError {
3248 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3249 match self {
3250 ExcludedUsersUpdateError::UsersNotInTeam => f.write_str("At least one of the users is not part of your team."),
3251 ExcludedUsersUpdateError::TooManyUsers => f.write_str("A maximum of 1000 users for each of addition/removal can be supplied."),
3252 _ => write!(f, "{:?}", *self),
3253 }
3254 }
3255}
3256
3257#[derive(Debug, Clone, PartialEq, Eq)]
3259#[non_exhaustive] pub struct ExcludedUsersUpdateResult {
3261 pub status: ExcludedUsersUpdateStatus,
3263}
3264
3265impl ExcludedUsersUpdateResult {
3266 pub fn new(status: ExcludedUsersUpdateStatus) -> Self {
3267 ExcludedUsersUpdateResult {
3268 status,
3269 }
3270 }
3271}
3272
3273const EXCLUDED_USERS_UPDATE_RESULT_FIELDS: &[&str] = &["status"];
3274impl ExcludedUsersUpdateResult {
3275 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3276 map: V,
3277 ) -> Result<ExcludedUsersUpdateResult, V::Error> {
3278 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3279 }
3280
3281 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3282 mut map: V,
3283 optional: bool,
3284 ) -> Result<Option<ExcludedUsersUpdateResult>, V::Error> {
3285 let mut field_status = None;
3286 let mut nothing = true;
3287 while let Some(key) = map.next_key::<&str>()? {
3288 nothing = false;
3289 match key {
3290 "status" => {
3291 if field_status.is_some() {
3292 return Err(::serde::de::Error::duplicate_field("status"));
3293 }
3294 field_status = Some(map.next_value()?);
3295 }
3296 _ => {
3297 map.next_value::<::serde_json::Value>()?;
3299 }
3300 }
3301 }
3302 if optional && nothing {
3303 return Ok(None);
3304 }
3305 let result = ExcludedUsersUpdateResult {
3306 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
3307 };
3308 Ok(Some(result))
3309 }
3310
3311 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3312 &self,
3313 s: &mut S::SerializeStruct,
3314 ) -> Result<(), S::Error> {
3315 use serde::ser::SerializeStruct;
3316 s.serialize_field("status", &self.status)?;
3317 Ok(())
3318 }
3319}
3320
3321impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateResult {
3322 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3323 use serde::de::{MapAccess, Visitor};
3325 struct StructVisitor;
3326 impl<'de> Visitor<'de> for StructVisitor {
3327 type Value = ExcludedUsersUpdateResult;
3328 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3329 f.write_str("a ExcludedUsersUpdateResult struct")
3330 }
3331 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3332 ExcludedUsersUpdateResult::internal_deserialize(map)
3333 }
3334 }
3335 deserializer.deserialize_struct("ExcludedUsersUpdateResult", EXCLUDED_USERS_UPDATE_RESULT_FIELDS, StructVisitor)
3336 }
3337}
3338
3339impl ::serde::ser::Serialize for ExcludedUsersUpdateResult {
3340 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3341 use serde::ser::SerializeStruct;
3343 let mut s = serializer.serialize_struct("ExcludedUsersUpdateResult", 1)?;
3344 self.internal_serialize::<S>(&mut s)?;
3345 s.end()
3346 }
3347}
3348
3349#[derive(Debug, Clone, PartialEq, Eq)]
3351#[non_exhaustive] pub enum ExcludedUsersUpdateStatus {
3353 Success,
3355 Other,
3358}
3359
3360impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateStatus {
3361 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3362 use serde::de::{self, MapAccess, Visitor};
3364 struct EnumVisitor;
3365 impl<'de> Visitor<'de> for EnumVisitor {
3366 type Value = ExcludedUsersUpdateStatus;
3367 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3368 f.write_str("a ExcludedUsersUpdateStatus structure")
3369 }
3370 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3371 let tag: &str = match map.next_key()? {
3372 Some(".tag") => map.next_value()?,
3373 _ => return Err(de::Error::missing_field(".tag"))
3374 };
3375 let value = match tag {
3376 "success" => ExcludedUsersUpdateStatus::Success,
3377 _ => ExcludedUsersUpdateStatus::Other,
3378 };
3379 crate::eat_json_fields(&mut map)?;
3380 Ok(value)
3381 }
3382 }
3383 const VARIANTS: &[&str] = &["success",
3384 "other"];
3385 deserializer.deserialize_struct("ExcludedUsersUpdateStatus", VARIANTS, EnumVisitor)
3386 }
3387}
3388
3389impl ::serde::ser::Serialize for ExcludedUsersUpdateStatus {
3390 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3391 use serde::ser::SerializeStruct;
3393 match self {
3394 ExcludedUsersUpdateStatus::Success => {
3395 let mut s = serializer.serialize_struct("ExcludedUsersUpdateStatus", 1)?;
3397 s.serialize_field(".tag", "success")?;
3398 s.end()
3399 }
3400 ExcludedUsersUpdateStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3401 }
3402 }
3403}
3404
3405#[derive(Debug, Clone, PartialEq, Eq)]
3407#[non_exhaustive] pub enum Feature {
3409 UploadApiRateLimit,
3411 HasTeamSharedDropbox,
3413 HasTeamFileEvents,
3415 HasTeamSelectiveSync,
3417 HasDistinctMemberHomes,
3419 Other,
3422}
3423
3424impl<'de> ::serde::de::Deserialize<'de> for Feature {
3425 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3426 use serde::de::{self, MapAccess, Visitor};
3428 struct EnumVisitor;
3429 impl<'de> Visitor<'de> for EnumVisitor {
3430 type Value = Feature;
3431 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3432 f.write_str("a Feature structure")
3433 }
3434 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3435 let tag: &str = match map.next_key()? {
3436 Some(".tag") => map.next_value()?,
3437 _ => return Err(de::Error::missing_field(".tag"))
3438 };
3439 let value = match tag {
3440 "upload_api_rate_limit" => Feature::UploadApiRateLimit,
3441 "has_team_shared_dropbox" => Feature::HasTeamSharedDropbox,
3442 "has_team_file_events" => Feature::HasTeamFileEvents,
3443 "has_team_selective_sync" => Feature::HasTeamSelectiveSync,
3444 "has_distinct_member_homes" => Feature::HasDistinctMemberHomes,
3445 _ => Feature::Other,
3446 };
3447 crate::eat_json_fields(&mut map)?;
3448 Ok(value)
3449 }
3450 }
3451 const VARIANTS: &[&str] = &["upload_api_rate_limit",
3452 "has_team_shared_dropbox",
3453 "has_team_file_events",
3454 "has_team_selective_sync",
3455 "has_distinct_member_homes",
3456 "other"];
3457 deserializer.deserialize_struct("Feature", VARIANTS, EnumVisitor)
3458 }
3459}
3460
3461impl ::serde::ser::Serialize for Feature {
3462 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3463 use serde::ser::SerializeStruct;
3465 match self {
3466 Feature::UploadApiRateLimit => {
3467 let mut s = serializer.serialize_struct("Feature", 1)?;
3469 s.serialize_field(".tag", "upload_api_rate_limit")?;
3470 s.end()
3471 }
3472 Feature::HasTeamSharedDropbox => {
3473 let mut s = serializer.serialize_struct("Feature", 1)?;
3475 s.serialize_field(".tag", "has_team_shared_dropbox")?;
3476 s.end()
3477 }
3478 Feature::HasTeamFileEvents => {
3479 let mut s = serializer.serialize_struct("Feature", 1)?;
3481 s.serialize_field(".tag", "has_team_file_events")?;
3482 s.end()
3483 }
3484 Feature::HasTeamSelectiveSync => {
3485 let mut s = serializer.serialize_struct("Feature", 1)?;
3487 s.serialize_field(".tag", "has_team_selective_sync")?;
3488 s.end()
3489 }
3490 Feature::HasDistinctMemberHomes => {
3491 let mut s = serializer.serialize_struct("Feature", 1)?;
3493 s.serialize_field(".tag", "has_distinct_member_homes")?;
3494 s.end()
3495 }
3496 Feature::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3497 }
3498 }
3499}
3500
3501#[derive(Debug, Clone, PartialEq, Eq)]
3504#[non_exhaustive] pub enum FeatureValue {
3506 UploadApiRateLimit(UploadApiRateLimitValue),
3507 HasTeamSharedDropbox(HasTeamSharedDropboxValue),
3508 HasTeamFileEvents(HasTeamFileEventsValue),
3509 HasTeamSelectiveSync(HasTeamSelectiveSyncValue),
3510 HasDistinctMemberHomes(HasDistinctMemberHomesValue),
3511 Other,
3514}
3515
3516impl<'de> ::serde::de::Deserialize<'de> for FeatureValue {
3517 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3518 use serde::de::{self, MapAccess, Visitor};
3520 struct EnumVisitor;
3521 impl<'de> Visitor<'de> for EnumVisitor {
3522 type Value = FeatureValue;
3523 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3524 f.write_str("a FeatureValue structure")
3525 }
3526 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3527 let tag: &str = match map.next_key()? {
3528 Some(".tag") => map.next_value()?,
3529 _ => return Err(de::Error::missing_field(".tag"))
3530 };
3531 let value = match tag {
3532 "upload_api_rate_limit" => {
3533 match map.next_key()? {
3534 Some("upload_api_rate_limit") => FeatureValue::UploadApiRateLimit(map.next_value()?),
3535 None => return Err(de::Error::missing_field("upload_api_rate_limit")),
3536 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3537 }
3538 }
3539 "has_team_shared_dropbox" => {
3540 match map.next_key()? {
3541 Some("has_team_shared_dropbox") => FeatureValue::HasTeamSharedDropbox(map.next_value()?),
3542 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
3543 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3544 }
3545 }
3546 "has_team_file_events" => {
3547 match map.next_key()? {
3548 Some("has_team_file_events") => FeatureValue::HasTeamFileEvents(map.next_value()?),
3549 None => return Err(de::Error::missing_field("has_team_file_events")),
3550 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3551 }
3552 }
3553 "has_team_selective_sync" => {
3554 match map.next_key()? {
3555 Some("has_team_selective_sync") => FeatureValue::HasTeamSelectiveSync(map.next_value()?),
3556 None => return Err(de::Error::missing_field("has_team_selective_sync")),
3557 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3558 }
3559 }
3560 "has_distinct_member_homes" => {
3561 match map.next_key()? {
3562 Some("has_distinct_member_homes") => FeatureValue::HasDistinctMemberHomes(map.next_value()?),
3563 None => return Err(de::Error::missing_field("has_distinct_member_homes")),
3564 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3565 }
3566 }
3567 _ => FeatureValue::Other,
3568 };
3569 crate::eat_json_fields(&mut map)?;
3570 Ok(value)
3571 }
3572 }
3573 const VARIANTS: &[&str] = &["upload_api_rate_limit",
3574 "has_team_shared_dropbox",
3575 "has_team_file_events",
3576 "has_team_selective_sync",
3577 "has_distinct_member_homes",
3578 "other"];
3579 deserializer.deserialize_struct("FeatureValue", VARIANTS, EnumVisitor)
3580 }
3581}
3582
3583impl ::serde::ser::Serialize for FeatureValue {
3584 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3585 use serde::ser::SerializeStruct;
3587 match self {
3588 FeatureValue::UploadApiRateLimit(x) => {
3589 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3591 s.serialize_field(".tag", "upload_api_rate_limit")?;
3592 s.serialize_field("upload_api_rate_limit", x)?;
3593 s.end()
3594 }
3595 FeatureValue::HasTeamSharedDropbox(x) => {
3596 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3598 s.serialize_field(".tag", "has_team_shared_dropbox")?;
3599 s.serialize_field("has_team_shared_dropbox", x)?;
3600 s.end()
3601 }
3602 FeatureValue::HasTeamFileEvents(x) => {
3603 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3605 s.serialize_field(".tag", "has_team_file_events")?;
3606 s.serialize_field("has_team_file_events", x)?;
3607 s.end()
3608 }
3609 FeatureValue::HasTeamSelectiveSync(x) => {
3610 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3612 s.serialize_field(".tag", "has_team_selective_sync")?;
3613 s.serialize_field("has_team_selective_sync", x)?;
3614 s.end()
3615 }
3616 FeatureValue::HasDistinctMemberHomes(x) => {
3617 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3619 s.serialize_field(".tag", "has_distinct_member_homes")?;
3620 s.serialize_field("has_distinct_member_homes", x)?;
3621 s.end()
3622 }
3623 FeatureValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3624 }
3625 }
3626}
3627
3628#[derive(Debug, Clone, PartialEq, Eq)]
3629#[non_exhaustive] pub struct FeaturesGetValuesBatchArg {
3631 pub features: Vec<Feature>,
3634}
3635
3636impl FeaturesGetValuesBatchArg {
3637 pub fn new(features: Vec<Feature>) -> Self {
3638 FeaturesGetValuesBatchArg {
3639 features,
3640 }
3641 }
3642}
3643
3644const FEATURES_GET_VALUES_BATCH_ARG_FIELDS: &[&str] = &["features"];
3645impl FeaturesGetValuesBatchArg {
3646 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3647 map: V,
3648 ) -> Result<FeaturesGetValuesBatchArg, V::Error> {
3649 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3650 }
3651
3652 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3653 mut map: V,
3654 optional: bool,
3655 ) -> Result<Option<FeaturesGetValuesBatchArg>, V::Error> {
3656 let mut field_features = None;
3657 let mut nothing = true;
3658 while let Some(key) = map.next_key::<&str>()? {
3659 nothing = false;
3660 match key {
3661 "features" => {
3662 if field_features.is_some() {
3663 return Err(::serde::de::Error::duplicate_field("features"));
3664 }
3665 field_features = Some(map.next_value()?);
3666 }
3667 _ => {
3668 map.next_value::<::serde_json::Value>()?;
3670 }
3671 }
3672 }
3673 if optional && nothing {
3674 return Ok(None);
3675 }
3676 let result = FeaturesGetValuesBatchArg {
3677 features: field_features.ok_or_else(|| ::serde::de::Error::missing_field("features"))?,
3678 };
3679 Ok(Some(result))
3680 }
3681
3682 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3683 &self,
3684 s: &mut S::SerializeStruct,
3685 ) -> Result<(), S::Error> {
3686 use serde::ser::SerializeStruct;
3687 s.serialize_field("features", &self.features)?;
3688 Ok(())
3689 }
3690}
3691
3692impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchArg {
3693 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3694 use serde::de::{MapAccess, Visitor};
3696 struct StructVisitor;
3697 impl<'de> Visitor<'de> for StructVisitor {
3698 type Value = FeaturesGetValuesBatchArg;
3699 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3700 f.write_str("a FeaturesGetValuesBatchArg struct")
3701 }
3702 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3703 FeaturesGetValuesBatchArg::internal_deserialize(map)
3704 }
3705 }
3706 deserializer.deserialize_struct("FeaturesGetValuesBatchArg", FEATURES_GET_VALUES_BATCH_ARG_FIELDS, StructVisitor)
3707 }
3708}
3709
3710impl ::serde::ser::Serialize for FeaturesGetValuesBatchArg {
3711 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3712 use serde::ser::SerializeStruct;
3714 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchArg", 1)?;
3715 self.internal_serialize::<S>(&mut s)?;
3716 s.end()
3717 }
3718}
3719
3720#[derive(Debug, Clone, PartialEq, Eq)]
3721#[non_exhaustive] pub enum FeaturesGetValuesBatchError {
3723 EmptyFeaturesList,
3726 Other,
3729}
3730
3731impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchError {
3732 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3733 use serde::de::{self, MapAccess, Visitor};
3735 struct EnumVisitor;
3736 impl<'de> Visitor<'de> for EnumVisitor {
3737 type Value = FeaturesGetValuesBatchError;
3738 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3739 f.write_str("a FeaturesGetValuesBatchError structure")
3740 }
3741 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3742 let tag: &str = match map.next_key()? {
3743 Some(".tag") => map.next_value()?,
3744 _ => return Err(de::Error::missing_field(".tag"))
3745 };
3746 let value = match tag {
3747 "empty_features_list" => FeaturesGetValuesBatchError::EmptyFeaturesList,
3748 _ => FeaturesGetValuesBatchError::Other,
3749 };
3750 crate::eat_json_fields(&mut map)?;
3751 Ok(value)
3752 }
3753 }
3754 const VARIANTS: &[&str] = &["empty_features_list",
3755 "other"];
3756 deserializer.deserialize_struct("FeaturesGetValuesBatchError", VARIANTS, EnumVisitor)
3757 }
3758}
3759
3760impl ::serde::ser::Serialize for FeaturesGetValuesBatchError {
3761 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3762 use serde::ser::SerializeStruct;
3764 match self {
3765 FeaturesGetValuesBatchError::EmptyFeaturesList => {
3766 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchError", 1)?;
3768 s.serialize_field(".tag", "empty_features_list")?;
3769 s.end()
3770 }
3771 FeaturesGetValuesBatchError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3772 }
3773 }
3774}
3775
3776impl ::std::error::Error for FeaturesGetValuesBatchError {
3777}
3778
3779impl ::std::fmt::Display for FeaturesGetValuesBatchError {
3780 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3781 write!(f, "{:?}", *self)
3782 }
3783}
3784
3785#[derive(Debug, Clone, PartialEq, Eq)]
3786#[non_exhaustive] pub struct FeaturesGetValuesBatchResult {
3788 pub values: Vec<FeatureValue>,
3789}
3790
3791impl FeaturesGetValuesBatchResult {
3792 pub fn new(values: Vec<FeatureValue>) -> Self {
3793 FeaturesGetValuesBatchResult {
3794 values,
3795 }
3796 }
3797}
3798
3799const FEATURES_GET_VALUES_BATCH_RESULT_FIELDS: &[&str] = &["values"];
3800impl FeaturesGetValuesBatchResult {
3801 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3802 map: V,
3803 ) -> Result<FeaturesGetValuesBatchResult, V::Error> {
3804 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3805 }
3806
3807 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3808 mut map: V,
3809 optional: bool,
3810 ) -> Result<Option<FeaturesGetValuesBatchResult>, V::Error> {
3811 let mut field_values = None;
3812 let mut nothing = true;
3813 while let Some(key) = map.next_key::<&str>()? {
3814 nothing = false;
3815 match key {
3816 "values" => {
3817 if field_values.is_some() {
3818 return Err(::serde::de::Error::duplicate_field("values"));
3819 }
3820 field_values = Some(map.next_value()?);
3821 }
3822 _ => {
3823 map.next_value::<::serde_json::Value>()?;
3825 }
3826 }
3827 }
3828 if optional && nothing {
3829 return Ok(None);
3830 }
3831 let result = FeaturesGetValuesBatchResult {
3832 values: field_values.ok_or_else(|| ::serde::de::Error::missing_field("values"))?,
3833 };
3834 Ok(Some(result))
3835 }
3836
3837 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3838 &self,
3839 s: &mut S::SerializeStruct,
3840 ) -> Result<(), S::Error> {
3841 use serde::ser::SerializeStruct;
3842 s.serialize_field("values", &self.values)?;
3843 Ok(())
3844 }
3845}
3846
3847impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchResult {
3848 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3849 use serde::de::{MapAccess, Visitor};
3851 struct StructVisitor;
3852 impl<'de> Visitor<'de> for StructVisitor {
3853 type Value = FeaturesGetValuesBatchResult;
3854 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3855 f.write_str("a FeaturesGetValuesBatchResult struct")
3856 }
3857 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3858 FeaturesGetValuesBatchResult::internal_deserialize(map)
3859 }
3860 }
3861 deserializer.deserialize_struct("FeaturesGetValuesBatchResult", FEATURES_GET_VALUES_BATCH_RESULT_FIELDS, StructVisitor)
3862 }
3863}
3864
3865impl ::serde::ser::Serialize for FeaturesGetValuesBatchResult {
3866 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3867 use serde::ser::SerializeStruct;
3869 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchResult", 1)?;
3870 self.internal_serialize::<S>(&mut s)?;
3871 s.end()
3872 }
3873}
3874
3875#[derive(Debug, Clone, PartialEq, Eq)]
3878#[non_exhaustive] pub struct GetActivityReport {
3880 pub start_date: String,
3882 pub adds: NumberPerDay,
3884 pub edits: NumberPerDay,
3887 pub deletes: NumberPerDay,
3889 pub active_users_28_day: NumberPerDay,
3891 pub active_users_7_day: NumberPerDay,
3893 pub active_users_1_day: NumberPerDay,
3895 pub active_shared_folders_28_day: NumberPerDay,
3897 pub active_shared_folders_7_day: NumberPerDay,
3899 pub active_shared_folders_1_day: NumberPerDay,
3901 pub shared_links_created: NumberPerDay,
3903 pub shared_links_viewed_by_team: NumberPerDay,
3905 pub shared_links_viewed_by_outside_user: NumberPerDay,
3908 pub shared_links_viewed_by_not_logged_in: NumberPerDay,
3910 pub shared_links_viewed_total: NumberPerDay,
3912}
3913
3914impl GetActivityReport {
3915 pub fn new(
3916 start_date: String,
3917 adds: NumberPerDay,
3918 edits: NumberPerDay,
3919 deletes: NumberPerDay,
3920 active_users_28_day: NumberPerDay,
3921 active_users_7_day: NumberPerDay,
3922 active_users_1_day: NumberPerDay,
3923 active_shared_folders_28_day: NumberPerDay,
3924 active_shared_folders_7_day: NumberPerDay,
3925 active_shared_folders_1_day: NumberPerDay,
3926 shared_links_created: NumberPerDay,
3927 shared_links_viewed_by_team: NumberPerDay,
3928 shared_links_viewed_by_outside_user: NumberPerDay,
3929 shared_links_viewed_by_not_logged_in: NumberPerDay,
3930 shared_links_viewed_total: NumberPerDay,
3931 ) -> Self {
3932 GetActivityReport {
3933 start_date,
3934 adds,
3935 edits,
3936 deletes,
3937 active_users_28_day,
3938 active_users_7_day,
3939 active_users_1_day,
3940 active_shared_folders_28_day,
3941 active_shared_folders_7_day,
3942 active_shared_folders_1_day,
3943 shared_links_created,
3944 shared_links_viewed_by_team,
3945 shared_links_viewed_by_outside_user,
3946 shared_links_viewed_by_not_logged_in,
3947 shared_links_viewed_total,
3948 }
3949 }
3950}
3951
3952const GET_ACTIVITY_REPORT_FIELDS: &[&str] = &["start_date",
3953 "adds",
3954 "edits",
3955 "deletes",
3956 "active_users_28_day",
3957 "active_users_7_day",
3958 "active_users_1_day",
3959 "active_shared_folders_28_day",
3960 "active_shared_folders_7_day",
3961 "active_shared_folders_1_day",
3962 "shared_links_created",
3963 "shared_links_viewed_by_team",
3964 "shared_links_viewed_by_outside_user",
3965 "shared_links_viewed_by_not_logged_in",
3966 "shared_links_viewed_total"];
3967impl GetActivityReport {
3968 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3969 map: V,
3970 ) -> Result<GetActivityReport, V::Error> {
3971 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3972 }
3973
3974 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3975 mut map: V,
3976 optional: bool,
3977 ) -> Result<Option<GetActivityReport>, V::Error> {
3978 let mut field_start_date = None;
3979 let mut field_adds = None;
3980 let mut field_edits = None;
3981 let mut field_deletes = None;
3982 let mut field_active_users_28_day = None;
3983 let mut field_active_users_7_day = None;
3984 let mut field_active_users_1_day = None;
3985 let mut field_active_shared_folders_28_day = None;
3986 let mut field_active_shared_folders_7_day = None;
3987 let mut field_active_shared_folders_1_day = None;
3988 let mut field_shared_links_created = None;
3989 let mut field_shared_links_viewed_by_team = None;
3990 let mut field_shared_links_viewed_by_outside_user = None;
3991 let mut field_shared_links_viewed_by_not_logged_in = None;
3992 let mut field_shared_links_viewed_total = None;
3993 let mut nothing = true;
3994 while let Some(key) = map.next_key::<&str>()? {
3995 nothing = false;
3996 match key {
3997 "start_date" => {
3998 if field_start_date.is_some() {
3999 return Err(::serde::de::Error::duplicate_field("start_date"));
4000 }
4001 field_start_date = Some(map.next_value()?);
4002 }
4003 "adds" => {
4004 if field_adds.is_some() {
4005 return Err(::serde::de::Error::duplicate_field("adds"));
4006 }
4007 field_adds = Some(map.next_value()?);
4008 }
4009 "edits" => {
4010 if field_edits.is_some() {
4011 return Err(::serde::de::Error::duplicate_field("edits"));
4012 }
4013 field_edits = Some(map.next_value()?);
4014 }
4015 "deletes" => {
4016 if field_deletes.is_some() {
4017 return Err(::serde::de::Error::duplicate_field("deletes"));
4018 }
4019 field_deletes = Some(map.next_value()?);
4020 }
4021 "active_users_28_day" => {
4022 if field_active_users_28_day.is_some() {
4023 return Err(::serde::de::Error::duplicate_field("active_users_28_day"));
4024 }
4025 field_active_users_28_day = Some(map.next_value()?);
4026 }
4027 "active_users_7_day" => {
4028 if field_active_users_7_day.is_some() {
4029 return Err(::serde::de::Error::duplicate_field("active_users_7_day"));
4030 }
4031 field_active_users_7_day = Some(map.next_value()?);
4032 }
4033 "active_users_1_day" => {
4034 if field_active_users_1_day.is_some() {
4035 return Err(::serde::de::Error::duplicate_field("active_users_1_day"));
4036 }
4037 field_active_users_1_day = Some(map.next_value()?);
4038 }
4039 "active_shared_folders_28_day" => {
4040 if field_active_shared_folders_28_day.is_some() {
4041 return Err(::serde::de::Error::duplicate_field("active_shared_folders_28_day"));
4042 }
4043 field_active_shared_folders_28_day = Some(map.next_value()?);
4044 }
4045 "active_shared_folders_7_day" => {
4046 if field_active_shared_folders_7_day.is_some() {
4047 return Err(::serde::de::Error::duplicate_field("active_shared_folders_7_day"));
4048 }
4049 field_active_shared_folders_7_day = Some(map.next_value()?);
4050 }
4051 "active_shared_folders_1_day" => {
4052 if field_active_shared_folders_1_day.is_some() {
4053 return Err(::serde::de::Error::duplicate_field("active_shared_folders_1_day"));
4054 }
4055 field_active_shared_folders_1_day = Some(map.next_value()?);
4056 }
4057 "shared_links_created" => {
4058 if field_shared_links_created.is_some() {
4059 return Err(::serde::de::Error::duplicate_field("shared_links_created"));
4060 }
4061 field_shared_links_created = Some(map.next_value()?);
4062 }
4063 "shared_links_viewed_by_team" => {
4064 if field_shared_links_viewed_by_team.is_some() {
4065 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_team"));
4066 }
4067 field_shared_links_viewed_by_team = Some(map.next_value()?);
4068 }
4069 "shared_links_viewed_by_outside_user" => {
4070 if field_shared_links_viewed_by_outside_user.is_some() {
4071 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_outside_user"));
4072 }
4073 field_shared_links_viewed_by_outside_user = Some(map.next_value()?);
4074 }
4075 "shared_links_viewed_by_not_logged_in" => {
4076 if field_shared_links_viewed_by_not_logged_in.is_some() {
4077 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_not_logged_in"));
4078 }
4079 field_shared_links_viewed_by_not_logged_in = Some(map.next_value()?);
4080 }
4081 "shared_links_viewed_total" => {
4082 if field_shared_links_viewed_total.is_some() {
4083 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_total"));
4084 }
4085 field_shared_links_viewed_total = Some(map.next_value()?);
4086 }
4087 _ => {
4088 map.next_value::<::serde_json::Value>()?;
4090 }
4091 }
4092 }
4093 if optional && nothing {
4094 return Ok(None);
4095 }
4096 let result = GetActivityReport {
4097 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4098 adds: field_adds.ok_or_else(|| ::serde::de::Error::missing_field("adds"))?,
4099 edits: field_edits.ok_or_else(|| ::serde::de::Error::missing_field("edits"))?,
4100 deletes: field_deletes.ok_or_else(|| ::serde::de::Error::missing_field("deletes"))?,
4101 active_users_28_day: field_active_users_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_28_day"))?,
4102 active_users_7_day: field_active_users_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_7_day"))?,
4103 active_users_1_day: field_active_users_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_1_day"))?,
4104 active_shared_folders_28_day: field_active_shared_folders_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_28_day"))?,
4105 active_shared_folders_7_day: field_active_shared_folders_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_7_day"))?,
4106 active_shared_folders_1_day: field_active_shared_folders_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_1_day"))?,
4107 shared_links_created: field_shared_links_created.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_created"))?,
4108 shared_links_viewed_by_team: field_shared_links_viewed_by_team.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_by_team"))?,
4109 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"))?,
4110 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"))?,
4111 shared_links_viewed_total: field_shared_links_viewed_total.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_total"))?,
4112 };
4113 Ok(Some(result))
4114 }
4115
4116 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4117 &self,
4118 s: &mut S::SerializeStruct,
4119 ) -> Result<(), S::Error> {
4120 use serde::ser::SerializeStruct;
4121 s.serialize_field("start_date", &self.start_date)?;
4122 s.serialize_field("adds", &self.adds)?;
4123 s.serialize_field("edits", &self.edits)?;
4124 s.serialize_field("deletes", &self.deletes)?;
4125 s.serialize_field("active_users_28_day", &self.active_users_28_day)?;
4126 s.serialize_field("active_users_7_day", &self.active_users_7_day)?;
4127 s.serialize_field("active_users_1_day", &self.active_users_1_day)?;
4128 s.serialize_field("active_shared_folders_28_day", &self.active_shared_folders_28_day)?;
4129 s.serialize_field("active_shared_folders_7_day", &self.active_shared_folders_7_day)?;
4130 s.serialize_field("active_shared_folders_1_day", &self.active_shared_folders_1_day)?;
4131 s.serialize_field("shared_links_created", &self.shared_links_created)?;
4132 s.serialize_field("shared_links_viewed_by_team", &self.shared_links_viewed_by_team)?;
4133 s.serialize_field("shared_links_viewed_by_outside_user", &self.shared_links_viewed_by_outside_user)?;
4134 s.serialize_field("shared_links_viewed_by_not_logged_in", &self.shared_links_viewed_by_not_logged_in)?;
4135 s.serialize_field("shared_links_viewed_total", &self.shared_links_viewed_total)?;
4136 Ok(())
4137 }
4138}
4139
4140impl<'de> ::serde::de::Deserialize<'de> for GetActivityReport {
4141 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4142 use serde::de::{MapAccess, Visitor};
4144 struct StructVisitor;
4145 impl<'de> Visitor<'de> for StructVisitor {
4146 type Value = GetActivityReport;
4147 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4148 f.write_str("a GetActivityReport struct")
4149 }
4150 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4151 GetActivityReport::internal_deserialize(map)
4152 }
4153 }
4154 deserializer.deserialize_struct("GetActivityReport", GET_ACTIVITY_REPORT_FIELDS, StructVisitor)
4155 }
4156}
4157
4158impl ::serde::ser::Serialize for GetActivityReport {
4159 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4160 use serde::ser::SerializeStruct;
4162 let mut s = serializer.serialize_struct("GetActivityReport", 15)?;
4163 self.internal_serialize::<S>(&mut s)?;
4164 s.end()
4165 }
4166}
4167
4168impl From<GetActivityReport> for BaseDfbReport {
4170 fn from(subtype: GetActivityReport) -> Self {
4171 Self {
4172 start_date: subtype.start_date,
4173 }
4174 }
4175}
4176#[derive(Debug, Clone, PartialEq, Eq)]
4180#[non_exhaustive] pub struct GetDevicesReport {
4182 pub start_date: String,
4184 pub active_1_day: DevicesActive,
4186 pub active_7_day: DevicesActive,
4188 pub active_28_day: DevicesActive,
4190}
4191
4192impl GetDevicesReport {
4193 pub fn new(
4194 start_date: String,
4195 active_1_day: DevicesActive,
4196 active_7_day: DevicesActive,
4197 active_28_day: DevicesActive,
4198 ) -> Self {
4199 GetDevicesReport {
4200 start_date,
4201 active_1_day,
4202 active_7_day,
4203 active_28_day,
4204 }
4205 }
4206}
4207
4208const GET_DEVICES_REPORT_FIELDS: &[&str] = &["start_date",
4209 "active_1_day",
4210 "active_7_day",
4211 "active_28_day"];
4212impl GetDevicesReport {
4213 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4214 map: V,
4215 ) -> Result<GetDevicesReport, V::Error> {
4216 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4217 }
4218
4219 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4220 mut map: V,
4221 optional: bool,
4222 ) -> Result<Option<GetDevicesReport>, V::Error> {
4223 let mut field_start_date = None;
4224 let mut field_active_1_day = None;
4225 let mut field_active_7_day = None;
4226 let mut field_active_28_day = None;
4227 let mut nothing = true;
4228 while let Some(key) = map.next_key::<&str>()? {
4229 nothing = false;
4230 match key {
4231 "start_date" => {
4232 if field_start_date.is_some() {
4233 return Err(::serde::de::Error::duplicate_field("start_date"));
4234 }
4235 field_start_date = Some(map.next_value()?);
4236 }
4237 "active_1_day" => {
4238 if field_active_1_day.is_some() {
4239 return Err(::serde::de::Error::duplicate_field("active_1_day"));
4240 }
4241 field_active_1_day = Some(map.next_value()?);
4242 }
4243 "active_7_day" => {
4244 if field_active_7_day.is_some() {
4245 return Err(::serde::de::Error::duplicate_field("active_7_day"));
4246 }
4247 field_active_7_day = Some(map.next_value()?);
4248 }
4249 "active_28_day" => {
4250 if field_active_28_day.is_some() {
4251 return Err(::serde::de::Error::duplicate_field("active_28_day"));
4252 }
4253 field_active_28_day = Some(map.next_value()?);
4254 }
4255 _ => {
4256 map.next_value::<::serde_json::Value>()?;
4258 }
4259 }
4260 }
4261 if optional && nothing {
4262 return Ok(None);
4263 }
4264 let result = GetDevicesReport {
4265 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4266 active_1_day: field_active_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_1_day"))?,
4267 active_7_day: field_active_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_7_day"))?,
4268 active_28_day: field_active_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_28_day"))?,
4269 };
4270 Ok(Some(result))
4271 }
4272
4273 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4274 &self,
4275 s: &mut S::SerializeStruct,
4276 ) -> Result<(), S::Error> {
4277 use serde::ser::SerializeStruct;
4278 s.serialize_field("start_date", &self.start_date)?;
4279 s.serialize_field("active_1_day", &self.active_1_day)?;
4280 s.serialize_field("active_7_day", &self.active_7_day)?;
4281 s.serialize_field("active_28_day", &self.active_28_day)?;
4282 Ok(())
4283 }
4284}
4285
4286impl<'de> ::serde::de::Deserialize<'de> for GetDevicesReport {
4287 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4288 use serde::de::{MapAccess, Visitor};
4290 struct StructVisitor;
4291 impl<'de> Visitor<'de> for StructVisitor {
4292 type Value = GetDevicesReport;
4293 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4294 f.write_str("a GetDevicesReport struct")
4295 }
4296 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4297 GetDevicesReport::internal_deserialize(map)
4298 }
4299 }
4300 deserializer.deserialize_struct("GetDevicesReport", GET_DEVICES_REPORT_FIELDS, StructVisitor)
4301 }
4302}
4303
4304impl ::serde::ser::Serialize for GetDevicesReport {
4305 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4306 use serde::ser::SerializeStruct;
4308 let mut s = serializer.serialize_struct("GetDevicesReport", 4)?;
4309 self.internal_serialize::<S>(&mut s)?;
4310 s.end()
4311 }
4312}
4313
4314impl From<GetDevicesReport> for BaseDfbReport {
4316 fn from(subtype: GetDevicesReport) -> Self {
4317 Self {
4318 start_date: subtype.start_date,
4319 }
4320 }
4321}
4322#[derive(Debug, Clone, PartialEq, Eq)]
4325#[non_exhaustive] pub struct GetMembershipReport {
4327 pub start_date: String,
4329 pub team_size: NumberPerDay,
4331 pub pending_invites: NumberPerDay,
4333 pub members_joined: NumberPerDay,
4335 pub suspended_members: NumberPerDay,
4337 pub licenses: NumberPerDay,
4339}
4340
4341impl GetMembershipReport {
4342 pub fn new(
4343 start_date: String,
4344 team_size: NumberPerDay,
4345 pending_invites: NumberPerDay,
4346 members_joined: NumberPerDay,
4347 suspended_members: NumberPerDay,
4348 licenses: NumberPerDay,
4349 ) -> Self {
4350 GetMembershipReport {
4351 start_date,
4352 team_size,
4353 pending_invites,
4354 members_joined,
4355 suspended_members,
4356 licenses,
4357 }
4358 }
4359}
4360
4361const GET_MEMBERSHIP_REPORT_FIELDS: &[&str] = &["start_date",
4362 "team_size",
4363 "pending_invites",
4364 "members_joined",
4365 "suspended_members",
4366 "licenses"];
4367impl GetMembershipReport {
4368 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4369 map: V,
4370 ) -> Result<GetMembershipReport, V::Error> {
4371 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4372 }
4373
4374 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4375 mut map: V,
4376 optional: bool,
4377 ) -> Result<Option<GetMembershipReport>, V::Error> {
4378 let mut field_start_date = None;
4379 let mut field_team_size = None;
4380 let mut field_pending_invites = None;
4381 let mut field_members_joined = None;
4382 let mut field_suspended_members = None;
4383 let mut field_licenses = None;
4384 let mut nothing = true;
4385 while let Some(key) = map.next_key::<&str>()? {
4386 nothing = false;
4387 match key {
4388 "start_date" => {
4389 if field_start_date.is_some() {
4390 return Err(::serde::de::Error::duplicate_field("start_date"));
4391 }
4392 field_start_date = Some(map.next_value()?);
4393 }
4394 "team_size" => {
4395 if field_team_size.is_some() {
4396 return Err(::serde::de::Error::duplicate_field("team_size"));
4397 }
4398 field_team_size = Some(map.next_value()?);
4399 }
4400 "pending_invites" => {
4401 if field_pending_invites.is_some() {
4402 return Err(::serde::de::Error::duplicate_field("pending_invites"));
4403 }
4404 field_pending_invites = Some(map.next_value()?);
4405 }
4406 "members_joined" => {
4407 if field_members_joined.is_some() {
4408 return Err(::serde::de::Error::duplicate_field("members_joined"));
4409 }
4410 field_members_joined = Some(map.next_value()?);
4411 }
4412 "suspended_members" => {
4413 if field_suspended_members.is_some() {
4414 return Err(::serde::de::Error::duplicate_field("suspended_members"));
4415 }
4416 field_suspended_members = Some(map.next_value()?);
4417 }
4418 "licenses" => {
4419 if field_licenses.is_some() {
4420 return Err(::serde::de::Error::duplicate_field("licenses"));
4421 }
4422 field_licenses = Some(map.next_value()?);
4423 }
4424 _ => {
4425 map.next_value::<::serde_json::Value>()?;
4427 }
4428 }
4429 }
4430 if optional && nothing {
4431 return Ok(None);
4432 }
4433 let result = GetMembershipReport {
4434 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4435 team_size: field_team_size.ok_or_else(|| ::serde::de::Error::missing_field("team_size"))?,
4436 pending_invites: field_pending_invites.ok_or_else(|| ::serde::de::Error::missing_field("pending_invites"))?,
4437 members_joined: field_members_joined.ok_or_else(|| ::serde::de::Error::missing_field("members_joined"))?,
4438 suspended_members: field_suspended_members.ok_or_else(|| ::serde::de::Error::missing_field("suspended_members"))?,
4439 licenses: field_licenses.ok_or_else(|| ::serde::de::Error::missing_field("licenses"))?,
4440 };
4441 Ok(Some(result))
4442 }
4443
4444 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4445 &self,
4446 s: &mut S::SerializeStruct,
4447 ) -> Result<(), S::Error> {
4448 use serde::ser::SerializeStruct;
4449 s.serialize_field("start_date", &self.start_date)?;
4450 s.serialize_field("team_size", &self.team_size)?;
4451 s.serialize_field("pending_invites", &self.pending_invites)?;
4452 s.serialize_field("members_joined", &self.members_joined)?;
4453 s.serialize_field("suspended_members", &self.suspended_members)?;
4454 s.serialize_field("licenses", &self.licenses)?;
4455 Ok(())
4456 }
4457}
4458
4459impl<'de> ::serde::de::Deserialize<'de> for GetMembershipReport {
4460 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4461 use serde::de::{MapAccess, Visitor};
4463 struct StructVisitor;
4464 impl<'de> Visitor<'de> for StructVisitor {
4465 type Value = GetMembershipReport;
4466 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4467 f.write_str("a GetMembershipReport struct")
4468 }
4469 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4470 GetMembershipReport::internal_deserialize(map)
4471 }
4472 }
4473 deserializer.deserialize_struct("GetMembershipReport", GET_MEMBERSHIP_REPORT_FIELDS, StructVisitor)
4474 }
4475}
4476
4477impl ::serde::ser::Serialize for GetMembershipReport {
4478 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4479 use serde::ser::SerializeStruct;
4481 let mut s = serializer.serialize_struct("GetMembershipReport", 6)?;
4482 self.internal_serialize::<S>(&mut s)?;
4483 s.end()
4484 }
4485}
4486
4487impl From<GetMembershipReport> for BaseDfbReport {
4489 fn from(subtype: GetMembershipReport) -> Self {
4490 Self {
4491 start_date: subtype.start_date,
4492 }
4493 }
4494}
4495#[derive(Debug, Clone, PartialEq, Eq)]
4498#[non_exhaustive] pub struct GetStorageReport {
4500 pub start_date: String,
4502 pub total_usage: NumberPerDay,
4504 pub shared_usage: NumberPerDay,
4506 pub unshared_usage: NumberPerDay,
4508 pub shared_folders: NumberPerDay,
4510 pub member_storage_map: Vec<Vec<StorageBucket>>,
4515}
4516
4517impl GetStorageReport {
4518 pub fn new(
4519 start_date: String,
4520 total_usage: NumberPerDay,
4521 shared_usage: NumberPerDay,
4522 unshared_usage: NumberPerDay,
4523 shared_folders: NumberPerDay,
4524 member_storage_map: Vec<Vec<StorageBucket>>,
4525 ) -> Self {
4526 GetStorageReport {
4527 start_date,
4528 total_usage,
4529 shared_usage,
4530 unshared_usage,
4531 shared_folders,
4532 member_storage_map,
4533 }
4534 }
4535}
4536
4537const GET_STORAGE_REPORT_FIELDS: &[&str] = &["start_date",
4538 "total_usage",
4539 "shared_usage",
4540 "unshared_usage",
4541 "shared_folders",
4542 "member_storage_map"];
4543impl GetStorageReport {
4544 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4545 map: V,
4546 ) -> Result<GetStorageReport, V::Error> {
4547 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4548 }
4549
4550 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4551 mut map: V,
4552 optional: bool,
4553 ) -> Result<Option<GetStorageReport>, V::Error> {
4554 let mut field_start_date = None;
4555 let mut field_total_usage = None;
4556 let mut field_shared_usage = None;
4557 let mut field_unshared_usage = None;
4558 let mut field_shared_folders = None;
4559 let mut field_member_storage_map = None;
4560 let mut nothing = true;
4561 while let Some(key) = map.next_key::<&str>()? {
4562 nothing = false;
4563 match key {
4564 "start_date" => {
4565 if field_start_date.is_some() {
4566 return Err(::serde::de::Error::duplicate_field("start_date"));
4567 }
4568 field_start_date = Some(map.next_value()?);
4569 }
4570 "total_usage" => {
4571 if field_total_usage.is_some() {
4572 return Err(::serde::de::Error::duplicate_field("total_usage"));
4573 }
4574 field_total_usage = Some(map.next_value()?);
4575 }
4576 "shared_usage" => {
4577 if field_shared_usage.is_some() {
4578 return Err(::serde::de::Error::duplicate_field("shared_usage"));
4579 }
4580 field_shared_usage = Some(map.next_value()?);
4581 }
4582 "unshared_usage" => {
4583 if field_unshared_usage.is_some() {
4584 return Err(::serde::de::Error::duplicate_field("unshared_usage"));
4585 }
4586 field_unshared_usage = Some(map.next_value()?);
4587 }
4588 "shared_folders" => {
4589 if field_shared_folders.is_some() {
4590 return Err(::serde::de::Error::duplicate_field("shared_folders"));
4591 }
4592 field_shared_folders = Some(map.next_value()?);
4593 }
4594 "member_storage_map" => {
4595 if field_member_storage_map.is_some() {
4596 return Err(::serde::de::Error::duplicate_field("member_storage_map"));
4597 }
4598 field_member_storage_map = Some(map.next_value()?);
4599 }
4600 _ => {
4601 map.next_value::<::serde_json::Value>()?;
4603 }
4604 }
4605 }
4606 if optional && nothing {
4607 return Ok(None);
4608 }
4609 let result = GetStorageReport {
4610 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4611 total_usage: field_total_usage.ok_or_else(|| ::serde::de::Error::missing_field("total_usage"))?,
4612 shared_usage: field_shared_usage.ok_or_else(|| ::serde::de::Error::missing_field("shared_usage"))?,
4613 unshared_usage: field_unshared_usage.ok_or_else(|| ::serde::de::Error::missing_field("unshared_usage"))?,
4614 shared_folders: field_shared_folders.ok_or_else(|| ::serde::de::Error::missing_field("shared_folders"))?,
4615 member_storage_map: field_member_storage_map.ok_or_else(|| ::serde::de::Error::missing_field("member_storage_map"))?,
4616 };
4617 Ok(Some(result))
4618 }
4619
4620 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4621 &self,
4622 s: &mut S::SerializeStruct,
4623 ) -> Result<(), S::Error> {
4624 use serde::ser::SerializeStruct;
4625 s.serialize_field("start_date", &self.start_date)?;
4626 s.serialize_field("total_usage", &self.total_usage)?;
4627 s.serialize_field("shared_usage", &self.shared_usage)?;
4628 s.serialize_field("unshared_usage", &self.unshared_usage)?;
4629 s.serialize_field("shared_folders", &self.shared_folders)?;
4630 s.serialize_field("member_storage_map", &self.member_storage_map)?;
4631 Ok(())
4632 }
4633}
4634
4635impl<'de> ::serde::de::Deserialize<'de> for GetStorageReport {
4636 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4637 use serde::de::{MapAccess, Visitor};
4639 struct StructVisitor;
4640 impl<'de> Visitor<'de> for StructVisitor {
4641 type Value = GetStorageReport;
4642 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4643 f.write_str("a GetStorageReport struct")
4644 }
4645 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4646 GetStorageReport::internal_deserialize(map)
4647 }
4648 }
4649 deserializer.deserialize_struct("GetStorageReport", GET_STORAGE_REPORT_FIELDS, StructVisitor)
4650 }
4651}
4652
4653impl ::serde::ser::Serialize for GetStorageReport {
4654 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4655 use serde::ser::SerializeStruct;
4657 let mut s = serializer.serialize_struct("GetStorageReport", 6)?;
4658 self.internal_serialize::<S>(&mut s)?;
4659 s.end()
4660 }
4661}
4662
4663impl From<GetStorageReport> for BaseDfbReport {
4665 fn from(subtype: GetStorageReport) -> Self {
4666 Self {
4667 start_date: subtype.start_date,
4668 }
4669 }
4670}
4671#[derive(Debug, Clone, PartialEq, Eq)]
4673pub enum GroupAccessType {
4674 Member,
4676 Owner,
4678}
4679
4680impl<'de> ::serde::de::Deserialize<'de> for GroupAccessType {
4681 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4682 use serde::de::{self, MapAccess, Visitor};
4684 struct EnumVisitor;
4685 impl<'de> Visitor<'de> for EnumVisitor {
4686 type Value = GroupAccessType;
4687 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4688 f.write_str("a GroupAccessType structure")
4689 }
4690 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4691 let tag: &str = match map.next_key()? {
4692 Some(".tag") => map.next_value()?,
4693 _ => return Err(de::Error::missing_field(".tag"))
4694 };
4695 let value = match tag {
4696 "member" => GroupAccessType::Member,
4697 "owner" => GroupAccessType::Owner,
4698 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
4699 };
4700 crate::eat_json_fields(&mut map)?;
4701 Ok(value)
4702 }
4703 }
4704 const VARIANTS: &[&str] = &["member",
4705 "owner"];
4706 deserializer.deserialize_struct("GroupAccessType", VARIANTS, EnumVisitor)
4707 }
4708}
4709
4710impl ::serde::ser::Serialize for GroupAccessType {
4711 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4712 use serde::ser::SerializeStruct;
4714 match self {
4715 GroupAccessType::Member => {
4716 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
4718 s.serialize_field(".tag", "member")?;
4719 s.end()
4720 }
4721 GroupAccessType::Owner => {
4722 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
4724 s.serialize_field(".tag", "owner")?;
4725 s.end()
4726 }
4727 }
4728 }
4729}
4730
4731#[derive(Debug, Clone, PartialEq, Eq)]
4732#[non_exhaustive] pub struct GroupCreateArg {
4734 pub group_name: String,
4736 pub add_creator_as_owner: bool,
4738 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
4740 pub group_management_type: Option<crate::types::team_common::GroupManagementType>,
4742}
4743
4744impl GroupCreateArg {
4745 pub fn new(group_name: String) -> Self {
4746 GroupCreateArg {
4747 group_name,
4748 add_creator_as_owner: false,
4749 group_external_id: None,
4750 group_management_type: None,
4751 }
4752 }
4753
4754 pub fn with_add_creator_as_owner(mut self, value: bool) -> Self {
4755 self.add_creator_as_owner = value;
4756 self
4757 }
4758
4759 pub fn with_group_external_id(
4760 mut self,
4761 value: crate::types::team_common::GroupExternalId,
4762 ) -> Self {
4763 self.group_external_id = Some(value);
4764 self
4765 }
4766
4767 pub fn with_group_management_type(
4768 mut self,
4769 value: crate::types::team_common::GroupManagementType,
4770 ) -> Self {
4771 self.group_management_type = Some(value);
4772 self
4773 }
4774}
4775
4776const GROUP_CREATE_ARG_FIELDS: &[&str] = &["group_name",
4777 "add_creator_as_owner",
4778 "group_external_id",
4779 "group_management_type"];
4780impl GroupCreateArg {
4781 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4782 map: V,
4783 ) -> Result<GroupCreateArg, V::Error> {
4784 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4785 }
4786
4787 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4788 mut map: V,
4789 optional: bool,
4790 ) -> Result<Option<GroupCreateArg>, V::Error> {
4791 let mut field_group_name = None;
4792 let mut field_add_creator_as_owner = None;
4793 let mut field_group_external_id = None;
4794 let mut field_group_management_type = None;
4795 let mut nothing = true;
4796 while let Some(key) = map.next_key::<&str>()? {
4797 nothing = false;
4798 match key {
4799 "group_name" => {
4800 if field_group_name.is_some() {
4801 return Err(::serde::de::Error::duplicate_field("group_name"));
4802 }
4803 field_group_name = Some(map.next_value()?);
4804 }
4805 "add_creator_as_owner" => {
4806 if field_add_creator_as_owner.is_some() {
4807 return Err(::serde::de::Error::duplicate_field("add_creator_as_owner"));
4808 }
4809 field_add_creator_as_owner = Some(map.next_value()?);
4810 }
4811 "group_external_id" => {
4812 if field_group_external_id.is_some() {
4813 return Err(::serde::de::Error::duplicate_field("group_external_id"));
4814 }
4815 field_group_external_id = Some(map.next_value()?);
4816 }
4817 "group_management_type" => {
4818 if field_group_management_type.is_some() {
4819 return Err(::serde::de::Error::duplicate_field("group_management_type"));
4820 }
4821 field_group_management_type = Some(map.next_value()?);
4822 }
4823 _ => {
4824 map.next_value::<::serde_json::Value>()?;
4826 }
4827 }
4828 }
4829 if optional && nothing {
4830 return Ok(None);
4831 }
4832 let result = GroupCreateArg {
4833 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
4834 add_creator_as_owner: field_add_creator_as_owner.unwrap_or(false),
4835 group_external_id: field_group_external_id.and_then(Option::flatten),
4836 group_management_type: field_group_management_type.and_then(Option::flatten),
4837 };
4838 Ok(Some(result))
4839 }
4840
4841 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4842 &self,
4843 s: &mut S::SerializeStruct,
4844 ) -> Result<(), S::Error> {
4845 use serde::ser::SerializeStruct;
4846 s.serialize_field("group_name", &self.group_name)?;
4847 if self.add_creator_as_owner {
4848 s.serialize_field("add_creator_as_owner", &self.add_creator_as_owner)?;
4849 }
4850 if let Some(val) = &self.group_external_id {
4851 s.serialize_field("group_external_id", val)?;
4852 }
4853 if let Some(val) = &self.group_management_type {
4854 s.serialize_field("group_management_type", val)?;
4855 }
4856 Ok(())
4857 }
4858}
4859
4860impl<'de> ::serde::de::Deserialize<'de> for GroupCreateArg {
4861 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4862 use serde::de::{MapAccess, Visitor};
4864 struct StructVisitor;
4865 impl<'de> Visitor<'de> for StructVisitor {
4866 type Value = GroupCreateArg;
4867 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4868 f.write_str("a GroupCreateArg struct")
4869 }
4870 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4871 GroupCreateArg::internal_deserialize(map)
4872 }
4873 }
4874 deserializer.deserialize_struct("GroupCreateArg", GROUP_CREATE_ARG_FIELDS, StructVisitor)
4875 }
4876}
4877
4878impl ::serde::ser::Serialize for GroupCreateArg {
4879 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4880 use serde::ser::SerializeStruct;
4882 let mut s = serializer.serialize_struct("GroupCreateArg", 4)?;
4883 self.internal_serialize::<S>(&mut s)?;
4884 s.end()
4885 }
4886}
4887
4888#[derive(Debug, Clone, PartialEq, Eq)]
4889#[non_exhaustive] pub enum GroupCreateError {
4891 GroupNameAlreadyUsed,
4893 GroupNameInvalid,
4895 ExternalIdAlreadyInUse,
4897 SystemManagedGroupDisallowed,
4899 Other,
4902}
4903
4904impl<'de> ::serde::de::Deserialize<'de> for GroupCreateError {
4905 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4906 use serde::de::{self, MapAccess, Visitor};
4908 struct EnumVisitor;
4909 impl<'de> Visitor<'de> for EnumVisitor {
4910 type Value = GroupCreateError;
4911 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4912 f.write_str("a GroupCreateError structure")
4913 }
4914 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4915 let tag: &str = match map.next_key()? {
4916 Some(".tag") => map.next_value()?,
4917 _ => return Err(de::Error::missing_field(".tag"))
4918 };
4919 let value = match tag {
4920 "group_name_already_used" => GroupCreateError::GroupNameAlreadyUsed,
4921 "group_name_invalid" => GroupCreateError::GroupNameInvalid,
4922 "external_id_already_in_use" => GroupCreateError::ExternalIdAlreadyInUse,
4923 "system_managed_group_disallowed" => GroupCreateError::SystemManagedGroupDisallowed,
4924 _ => GroupCreateError::Other,
4925 };
4926 crate::eat_json_fields(&mut map)?;
4927 Ok(value)
4928 }
4929 }
4930 const VARIANTS: &[&str] = &["group_name_already_used",
4931 "group_name_invalid",
4932 "external_id_already_in_use",
4933 "system_managed_group_disallowed",
4934 "other"];
4935 deserializer.deserialize_struct("GroupCreateError", VARIANTS, EnumVisitor)
4936 }
4937}
4938
4939impl ::serde::ser::Serialize for GroupCreateError {
4940 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4941 use serde::ser::SerializeStruct;
4943 match self {
4944 GroupCreateError::GroupNameAlreadyUsed => {
4945 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4947 s.serialize_field(".tag", "group_name_already_used")?;
4948 s.end()
4949 }
4950 GroupCreateError::GroupNameInvalid => {
4951 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4953 s.serialize_field(".tag", "group_name_invalid")?;
4954 s.end()
4955 }
4956 GroupCreateError::ExternalIdAlreadyInUse => {
4957 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4959 s.serialize_field(".tag", "external_id_already_in_use")?;
4960 s.end()
4961 }
4962 GroupCreateError::SystemManagedGroupDisallowed => {
4963 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4965 s.serialize_field(".tag", "system_managed_group_disallowed")?;
4966 s.end()
4967 }
4968 GroupCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4969 }
4970 }
4971}
4972
4973impl ::std::error::Error for GroupCreateError {
4974}
4975
4976impl ::std::fmt::Display for GroupCreateError {
4977 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4978 match self {
4979 GroupCreateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
4980 GroupCreateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
4981 GroupCreateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
4982 GroupCreateError::SystemManagedGroupDisallowed => f.write_str("System-managed group cannot be manually created."),
4983 _ => write!(f, "{:?}", *self),
4984 }
4985 }
4986}
4987
4988#[derive(Debug, Clone, PartialEq, Eq)]
4989#[non_exhaustive] pub enum GroupDeleteError {
4991 GroupNotFound,
4993 SystemManagedGroupDisallowed,
4995 GroupAlreadyDeleted,
4997 Other,
5000}
5001
5002impl<'de> ::serde::de::Deserialize<'de> for GroupDeleteError {
5003 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5004 use serde::de::{self, MapAccess, Visitor};
5006 struct EnumVisitor;
5007 impl<'de> Visitor<'de> for EnumVisitor {
5008 type Value = GroupDeleteError;
5009 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5010 f.write_str("a GroupDeleteError structure")
5011 }
5012 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5013 let tag: &str = match map.next_key()? {
5014 Some(".tag") => map.next_value()?,
5015 _ => return Err(de::Error::missing_field(".tag"))
5016 };
5017 let value = match tag {
5018 "group_not_found" => GroupDeleteError::GroupNotFound,
5019 "system_managed_group_disallowed" => GroupDeleteError::SystemManagedGroupDisallowed,
5020 "group_already_deleted" => GroupDeleteError::GroupAlreadyDeleted,
5021 _ => GroupDeleteError::Other,
5022 };
5023 crate::eat_json_fields(&mut map)?;
5024 Ok(value)
5025 }
5026 }
5027 const VARIANTS: &[&str] = &["group_not_found",
5028 "other",
5029 "system_managed_group_disallowed",
5030 "group_already_deleted"];
5031 deserializer.deserialize_struct("GroupDeleteError", VARIANTS, EnumVisitor)
5032 }
5033}
5034
5035impl ::serde::ser::Serialize for GroupDeleteError {
5036 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5037 use serde::ser::SerializeStruct;
5039 match self {
5040 GroupDeleteError::GroupNotFound => {
5041 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5043 s.serialize_field(".tag", "group_not_found")?;
5044 s.end()
5045 }
5046 GroupDeleteError::SystemManagedGroupDisallowed => {
5047 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5049 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5050 s.end()
5051 }
5052 GroupDeleteError::GroupAlreadyDeleted => {
5053 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5055 s.serialize_field(".tag", "group_already_deleted")?;
5056 s.end()
5057 }
5058 GroupDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5059 }
5060 }
5061}
5062
5063impl ::std::error::Error for GroupDeleteError {
5064}
5065
5066impl ::std::fmt::Display for GroupDeleteError {
5067 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5068 match self {
5069 GroupDeleteError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5070 GroupDeleteError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5071 GroupDeleteError::GroupAlreadyDeleted => f.write_str("This group has already been deleted."),
5072 _ => write!(f, "{:?}", *self),
5073 }
5074 }
5075}
5076
5077impl From<GroupSelectorWithTeamGroupError> for GroupDeleteError {
5079 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5080 match parent {
5081 GroupSelectorWithTeamGroupError::GroupNotFound => GroupDeleteError::GroupNotFound,
5082 GroupSelectorWithTeamGroupError::Other => GroupDeleteError::Other,
5083 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupDeleteError::SystemManagedGroupDisallowed,
5084 }
5085 }
5086}
5087#[derive(Debug, Clone, PartialEq, Eq)]
5089#[non_exhaustive] pub struct GroupFullInfo {
5091 pub group_name: String,
5092 pub group_id: crate::types::team_common::GroupId,
5093 pub group_management_type: crate::types::team_common::GroupManagementType,
5095 pub created: u64,
5097 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
5099 pub member_count: Option<u32>,
5101 pub members: Option<Vec<GroupMemberInfo>>,
5103}
5104
5105impl GroupFullInfo {
5106 pub fn new(
5107 group_name: String,
5108 group_id: crate::types::team_common::GroupId,
5109 group_management_type: crate::types::team_common::GroupManagementType,
5110 created: u64,
5111 ) -> Self {
5112 GroupFullInfo {
5113 group_name,
5114 group_id,
5115 group_management_type,
5116 created,
5117 group_external_id: None,
5118 member_count: None,
5119 members: None,
5120 }
5121 }
5122
5123 pub fn with_group_external_id(
5124 mut self,
5125 value: crate::types::team_common::GroupExternalId,
5126 ) -> Self {
5127 self.group_external_id = Some(value);
5128 self
5129 }
5130
5131 pub fn with_member_count(mut self, value: u32) -> Self {
5132 self.member_count = Some(value);
5133 self
5134 }
5135
5136 pub fn with_members(mut self, value: Vec<GroupMemberInfo>) -> Self {
5137 self.members = Some(value);
5138 self
5139 }
5140}
5141
5142const GROUP_FULL_INFO_FIELDS: &[&str] = &["group_name",
5143 "group_id",
5144 "group_management_type",
5145 "created",
5146 "group_external_id",
5147 "member_count",
5148 "members"];
5149impl GroupFullInfo {
5150 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5151 map: V,
5152 ) -> Result<GroupFullInfo, V::Error> {
5153 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5154 }
5155
5156 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5157 mut map: V,
5158 optional: bool,
5159 ) -> Result<Option<GroupFullInfo>, V::Error> {
5160 let mut field_group_name = None;
5161 let mut field_group_id = None;
5162 let mut field_group_management_type = None;
5163 let mut field_created = None;
5164 let mut field_group_external_id = None;
5165 let mut field_member_count = None;
5166 let mut field_members = None;
5167 let mut nothing = true;
5168 while let Some(key) = map.next_key::<&str>()? {
5169 nothing = false;
5170 match key {
5171 "group_name" => {
5172 if field_group_name.is_some() {
5173 return Err(::serde::de::Error::duplicate_field("group_name"));
5174 }
5175 field_group_name = Some(map.next_value()?);
5176 }
5177 "group_id" => {
5178 if field_group_id.is_some() {
5179 return Err(::serde::de::Error::duplicate_field("group_id"));
5180 }
5181 field_group_id = Some(map.next_value()?);
5182 }
5183 "group_management_type" => {
5184 if field_group_management_type.is_some() {
5185 return Err(::serde::de::Error::duplicate_field("group_management_type"));
5186 }
5187 field_group_management_type = Some(map.next_value()?);
5188 }
5189 "created" => {
5190 if field_created.is_some() {
5191 return Err(::serde::de::Error::duplicate_field("created"));
5192 }
5193 field_created = Some(map.next_value()?);
5194 }
5195 "group_external_id" => {
5196 if field_group_external_id.is_some() {
5197 return Err(::serde::de::Error::duplicate_field("group_external_id"));
5198 }
5199 field_group_external_id = Some(map.next_value()?);
5200 }
5201 "member_count" => {
5202 if field_member_count.is_some() {
5203 return Err(::serde::de::Error::duplicate_field("member_count"));
5204 }
5205 field_member_count = Some(map.next_value()?);
5206 }
5207 "members" => {
5208 if field_members.is_some() {
5209 return Err(::serde::de::Error::duplicate_field("members"));
5210 }
5211 field_members = Some(map.next_value()?);
5212 }
5213 _ => {
5214 map.next_value::<::serde_json::Value>()?;
5216 }
5217 }
5218 }
5219 if optional && nothing {
5220 return Ok(None);
5221 }
5222 let result = GroupFullInfo {
5223 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
5224 group_id: field_group_id.ok_or_else(|| ::serde::de::Error::missing_field("group_id"))?,
5225 group_management_type: field_group_management_type.ok_or_else(|| ::serde::de::Error::missing_field("group_management_type"))?,
5226 created: field_created.ok_or_else(|| ::serde::de::Error::missing_field("created"))?,
5227 group_external_id: field_group_external_id.and_then(Option::flatten),
5228 member_count: field_member_count.and_then(Option::flatten),
5229 members: field_members.and_then(Option::flatten),
5230 };
5231 Ok(Some(result))
5232 }
5233
5234 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5235 &self,
5236 s: &mut S::SerializeStruct,
5237 ) -> Result<(), S::Error> {
5238 use serde::ser::SerializeStruct;
5239 s.serialize_field("group_name", &self.group_name)?;
5240 s.serialize_field("group_id", &self.group_id)?;
5241 s.serialize_field("group_management_type", &self.group_management_type)?;
5242 s.serialize_field("created", &self.created)?;
5243 if let Some(val) = &self.group_external_id {
5244 s.serialize_field("group_external_id", val)?;
5245 }
5246 if let Some(val) = &self.member_count {
5247 s.serialize_field("member_count", val)?;
5248 }
5249 if let Some(val) = &self.members {
5250 s.serialize_field("members", val)?;
5251 }
5252 Ok(())
5253 }
5254}
5255
5256impl<'de> ::serde::de::Deserialize<'de> for GroupFullInfo {
5257 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5258 use serde::de::{MapAccess, Visitor};
5260 struct StructVisitor;
5261 impl<'de> Visitor<'de> for StructVisitor {
5262 type Value = GroupFullInfo;
5263 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5264 f.write_str("a GroupFullInfo struct")
5265 }
5266 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5267 GroupFullInfo::internal_deserialize(map)
5268 }
5269 }
5270 deserializer.deserialize_struct("GroupFullInfo", GROUP_FULL_INFO_FIELDS, StructVisitor)
5271 }
5272}
5273
5274impl ::serde::ser::Serialize for GroupFullInfo {
5275 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5276 use serde::ser::SerializeStruct;
5278 let mut s = serializer.serialize_struct("GroupFullInfo", 7)?;
5279 self.internal_serialize::<S>(&mut s)?;
5280 s.end()
5281 }
5282}
5283
5284impl From<GroupFullInfo> for crate::types::team_common::GroupSummary {
5286 fn from(subtype: GroupFullInfo) -> Self {
5287 Self {
5288 group_name: subtype.group_name,
5289 group_id: subtype.group_id,
5290 group_management_type: subtype.group_management_type,
5291 group_external_id: subtype.group_external_id,
5292 member_count: subtype.member_count,
5293 }
5294 }
5295}
5296#[derive(Debug, Clone, PartialEq, Eq)]
5298#[non_exhaustive] pub struct GroupMemberInfo {
5300 pub profile: MemberProfile,
5302 pub access_type: GroupAccessType,
5304}
5305
5306impl GroupMemberInfo {
5307 pub fn new(profile: MemberProfile, access_type: GroupAccessType) -> Self {
5308 GroupMemberInfo {
5309 profile,
5310 access_type,
5311 }
5312 }
5313}
5314
5315const GROUP_MEMBER_INFO_FIELDS: &[&str] = &["profile",
5316 "access_type"];
5317impl GroupMemberInfo {
5318 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5319 map: V,
5320 ) -> Result<GroupMemberInfo, V::Error> {
5321 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5322 }
5323
5324 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5325 mut map: V,
5326 optional: bool,
5327 ) -> Result<Option<GroupMemberInfo>, V::Error> {
5328 let mut field_profile = None;
5329 let mut field_access_type = None;
5330 let mut nothing = true;
5331 while let Some(key) = map.next_key::<&str>()? {
5332 nothing = false;
5333 match key {
5334 "profile" => {
5335 if field_profile.is_some() {
5336 return Err(::serde::de::Error::duplicate_field("profile"));
5337 }
5338 field_profile = Some(map.next_value()?);
5339 }
5340 "access_type" => {
5341 if field_access_type.is_some() {
5342 return Err(::serde::de::Error::duplicate_field("access_type"));
5343 }
5344 field_access_type = Some(map.next_value()?);
5345 }
5346 _ => {
5347 map.next_value::<::serde_json::Value>()?;
5349 }
5350 }
5351 }
5352 if optional && nothing {
5353 return Ok(None);
5354 }
5355 let result = GroupMemberInfo {
5356 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
5357 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
5358 };
5359 Ok(Some(result))
5360 }
5361
5362 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5363 &self,
5364 s: &mut S::SerializeStruct,
5365 ) -> Result<(), S::Error> {
5366 use serde::ser::SerializeStruct;
5367 s.serialize_field("profile", &self.profile)?;
5368 s.serialize_field("access_type", &self.access_type)?;
5369 Ok(())
5370 }
5371}
5372
5373impl<'de> ::serde::de::Deserialize<'de> for GroupMemberInfo {
5374 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5375 use serde::de::{MapAccess, Visitor};
5377 struct StructVisitor;
5378 impl<'de> Visitor<'de> for StructVisitor {
5379 type Value = GroupMemberInfo;
5380 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5381 f.write_str("a GroupMemberInfo struct")
5382 }
5383 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5384 GroupMemberInfo::internal_deserialize(map)
5385 }
5386 }
5387 deserializer.deserialize_struct("GroupMemberInfo", GROUP_MEMBER_INFO_FIELDS, StructVisitor)
5388 }
5389}
5390
5391impl ::serde::ser::Serialize for GroupMemberInfo {
5392 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5393 use serde::ser::SerializeStruct;
5395 let mut s = serializer.serialize_struct("GroupMemberInfo", 2)?;
5396 self.internal_serialize::<S>(&mut s)?;
5397 s.end()
5398 }
5399}
5400
5401#[derive(Debug, Clone, PartialEq, Eq)]
5403#[non_exhaustive] pub struct GroupMemberSelector {
5405 pub group: GroupSelector,
5407 pub user: UserSelectorArg,
5409}
5410
5411impl GroupMemberSelector {
5412 pub fn new(group: GroupSelector, user: UserSelectorArg) -> Self {
5413 GroupMemberSelector {
5414 group,
5415 user,
5416 }
5417 }
5418}
5419
5420const GROUP_MEMBER_SELECTOR_FIELDS: &[&str] = &["group",
5421 "user"];
5422impl GroupMemberSelector {
5423 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5424 map: V,
5425 ) -> Result<GroupMemberSelector, V::Error> {
5426 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5427 }
5428
5429 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5430 mut map: V,
5431 optional: bool,
5432 ) -> Result<Option<GroupMemberSelector>, V::Error> {
5433 let mut field_group = None;
5434 let mut field_user = None;
5435 let mut nothing = true;
5436 while let Some(key) = map.next_key::<&str>()? {
5437 nothing = false;
5438 match key {
5439 "group" => {
5440 if field_group.is_some() {
5441 return Err(::serde::de::Error::duplicate_field("group"));
5442 }
5443 field_group = Some(map.next_value()?);
5444 }
5445 "user" => {
5446 if field_user.is_some() {
5447 return Err(::serde::de::Error::duplicate_field("user"));
5448 }
5449 field_user = Some(map.next_value()?);
5450 }
5451 _ => {
5452 map.next_value::<::serde_json::Value>()?;
5454 }
5455 }
5456 }
5457 if optional && nothing {
5458 return Ok(None);
5459 }
5460 let result = GroupMemberSelector {
5461 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
5462 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
5463 };
5464 Ok(Some(result))
5465 }
5466
5467 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5468 &self,
5469 s: &mut S::SerializeStruct,
5470 ) -> Result<(), S::Error> {
5471 use serde::ser::SerializeStruct;
5472 s.serialize_field("group", &self.group)?;
5473 s.serialize_field("user", &self.user)?;
5474 Ok(())
5475 }
5476}
5477
5478impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelector {
5479 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5480 use serde::de::{MapAccess, Visitor};
5482 struct StructVisitor;
5483 impl<'de> Visitor<'de> for StructVisitor {
5484 type Value = GroupMemberSelector;
5485 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5486 f.write_str("a GroupMemberSelector struct")
5487 }
5488 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5489 GroupMemberSelector::internal_deserialize(map)
5490 }
5491 }
5492 deserializer.deserialize_struct("GroupMemberSelector", GROUP_MEMBER_SELECTOR_FIELDS, StructVisitor)
5493 }
5494}
5495
5496impl ::serde::ser::Serialize for GroupMemberSelector {
5497 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5498 use serde::ser::SerializeStruct;
5500 let mut s = serializer.serialize_struct("GroupMemberSelector", 2)?;
5501 self.internal_serialize::<S>(&mut s)?;
5502 s.end()
5503 }
5504}
5505
5506#[derive(Debug, Clone, PartialEq, Eq)]
5509#[non_exhaustive] pub enum GroupMemberSelectorError {
5511 GroupNotFound,
5513 SystemManagedGroupDisallowed,
5515 MemberNotInGroup,
5517 Other,
5520}
5521
5522impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelectorError {
5523 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5524 use serde::de::{self, MapAccess, Visitor};
5526 struct EnumVisitor;
5527 impl<'de> Visitor<'de> for EnumVisitor {
5528 type Value = GroupMemberSelectorError;
5529 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5530 f.write_str("a GroupMemberSelectorError structure")
5531 }
5532 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5533 let tag: &str = match map.next_key()? {
5534 Some(".tag") => map.next_value()?,
5535 _ => return Err(de::Error::missing_field(".tag"))
5536 };
5537 let value = match tag {
5538 "group_not_found" => GroupMemberSelectorError::GroupNotFound,
5539 "system_managed_group_disallowed" => GroupMemberSelectorError::SystemManagedGroupDisallowed,
5540 "member_not_in_group" => GroupMemberSelectorError::MemberNotInGroup,
5541 _ => GroupMemberSelectorError::Other,
5542 };
5543 crate::eat_json_fields(&mut map)?;
5544 Ok(value)
5545 }
5546 }
5547 const VARIANTS: &[&str] = &["group_not_found",
5548 "other",
5549 "system_managed_group_disallowed",
5550 "member_not_in_group"];
5551 deserializer.deserialize_struct("GroupMemberSelectorError", VARIANTS, EnumVisitor)
5552 }
5553}
5554
5555impl ::serde::ser::Serialize for GroupMemberSelectorError {
5556 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5557 use serde::ser::SerializeStruct;
5559 match self {
5560 GroupMemberSelectorError::GroupNotFound => {
5561 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5563 s.serialize_field(".tag", "group_not_found")?;
5564 s.end()
5565 }
5566 GroupMemberSelectorError::SystemManagedGroupDisallowed => {
5567 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5569 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5570 s.end()
5571 }
5572 GroupMemberSelectorError::MemberNotInGroup => {
5573 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5575 s.serialize_field(".tag", "member_not_in_group")?;
5576 s.end()
5577 }
5578 GroupMemberSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5579 }
5580 }
5581}
5582
5583impl ::std::error::Error for GroupMemberSelectorError {
5584}
5585
5586impl ::std::fmt::Display for GroupMemberSelectorError {
5587 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5588 match self {
5589 GroupMemberSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5590 GroupMemberSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5591 GroupMemberSelectorError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
5592 _ => write!(f, "{:?}", *self),
5593 }
5594 }
5595}
5596
5597impl From<GroupSelectorWithTeamGroupError> for GroupMemberSelectorError {
5599 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5600 match parent {
5601 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMemberSelectorError::GroupNotFound,
5602 GroupSelectorWithTeamGroupError::Other => GroupMemberSelectorError::Other,
5603 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMemberSelectorError::SystemManagedGroupDisallowed,
5604 }
5605 }
5606}
5607#[derive(Debug, Clone, PartialEq, Eq)]
5608#[non_exhaustive] pub enum GroupMemberSetAccessTypeError {
5610 GroupNotFound,
5612 SystemManagedGroupDisallowed,
5614 MemberNotInGroup,
5616 UserCannotBeManagerOfCompanyManagedGroup,
5618 Other,
5621}
5622
5623impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSetAccessTypeError {
5624 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5625 use serde::de::{self, MapAccess, Visitor};
5627 struct EnumVisitor;
5628 impl<'de> Visitor<'de> for EnumVisitor {
5629 type Value = GroupMemberSetAccessTypeError;
5630 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5631 f.write_str("a GroupMemberSetAccessTypeError structure")
5632 }
5633 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5634 let tag: &str = match map.next_key()? {
5635 Some(".tag") => map.next_value()?,
5636 _ => return Err(de::Error::missing_field(".tag"))
5637 };
5638 let value = match tag {
5639 "group_not_found" => GroupMemberSetAccessTypeError::GroupNotFound,
5640 "system_managed_group_disallowed" => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
5641 "member_not_in_group" => GroupMemberSetAccessTypeError::MemberNotInGroup,
5642 "user_cannot_be_manager_of_company_managed_group" => GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup,
5643 _ => GroupMemberSetAccessTypeError::Other,
5644 };
5645 crate::eat_json_fields(&mut map)?;
5646 Ok(value)
5647 }
5648 }
5649 const VARIANTS: &[&str] = &["group_not_found",
5650 "other",
5651 "system_managed_group_disallowed",
5652 "member_not_in_group",
5653 "user_cannot_be_manager_of_company_managed_group"];
5654 deserializer.deserialize_struct("GroupMemberSetAccessTypeError", VARIANTS, EnumVisitor)
5655 }
5656}
5657
5658impl ::serde::ser::Serialize for GroupMemberSetAccessTypeError {
5659 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5660 use serde::ser::SerializeStruct;
5662 match self {
5663 GroupMemberSetAccessTypeError::GroupNotFound => {
5664 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5666 s.serialize_field(".tag", "group_not_found")?;
5667 s.end()
5668 }
5669 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => {
5670 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5672 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5673 s.end()
5674 }
5675 GroupMemberSetAccessTypeError::MemberNotInGroup => {
5676 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5678 s.serialize_field(".tag", "member_not_in_group")?;
5679 s.end()
5680 }
5681 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => {
5682 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5684 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
5685 s.end()
5686 }
5687 GroupMemberSetAccessTypeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5688 }
5689 }
5690}
5691
5692impl ::std::error::Error for GroupMemberSetAccessTypeError {
5693}
5694
5695impl ::std::fmt::Display for GroupMemberSetAccessTypeError {
5696 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5697 match self {
5698 GroupMemberSetAccessTypeError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5699 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5700 GroupMemberSetAccessTypeError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
5701 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => f.write_str("A company managed group cannot be managed by a user."),
5702 _ => write!(f, "{:?}", *self),
5703 }
5704 }
5705}
5706
5707impl From<GroupMemberSelectorError> for GroupMemberSetAccessTypeError {
5709 fn from(parent: GroupMemberSelectorError) -> Self {
5710 match parent {
5711 GroupMemberSelectorError::GroupNotFound => GroupMemberSetAccessTypeError::GroupNotFound,
5712 GroupMemberSelectorError::Other => GroupMemberSetAccessTypeError::Other,
5713 GroupMemberSelectorError::SystemManagedGroupDisallowed => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
5714 GroupMemberSelectorError::MemberNotInGroup => GroupMemberSetAccessTypeError::MemberNotInGroup,
5715 }
5716 }
5717}
5718#[derive(Debug, Clone, PartialEq, Eq)]
5719#[non_exhaustive] pub struct GroupMembersAddArg {
5721 pub group: GroupSelector,
5723 pub members: Vec<MemberAccess>,
5725 pub return_members: bool,
5729}
5730
5731impl GroupMembersAddArg {
5732 pub fn new(group: GroupSelector, members: Vec<MemberAccess>) -> Self {
5733 GroupMembersAddArg {
5734 group,
5735 members,
5736 return_members: true,
5737 }
5738 }
5739
5740 pub fn with_return_members(mut self, value: bool) -> Self {
5741 self.return_members = value;
5742 self
5743 }
5744}
5745
5746const GROUP_MEMBERS_ADD_ARG_FIELDS: &[&str] = &["group",
5747 "members",
5748 "return_members"];
5749impl GroupMembersAddArg {
5750 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5751 map: V,
5752 ) -> Result<GroupMembersAddArg, V::Error> {
5753 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5754 }
5755
5756 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5757 mut map: V,
5758 optional: bool,
5759 ) -> Result<Option<GroupMembersAddArg>, V::Error> {
5760 let mut field_group = None;
5761 let mut field_members = None;
5762 let mut field_return_members = None;
5763 let mut nothing = true;
5764 while let Some(key) = map.next_key::<&str>()? {
5765 nothing = false;
5766 match key {
5767 "group" => {
5768 if field_group.is_some() {
5769 return Err(::serde::de::Error::duplicate_field("group"));
5770 }
5771 field_group = Some(map.next_value()?);
5772 }
5773 "members" => {
5774 if field_members.is_some() {
5775 return Err(::serde::de::Error::duplicate_field("members"));
5776 }
5777 field_members = Some(map.next_value()?);
5778 }
5779 "return_members" => {
5780 if field_return_members.is_some() {
5781 return Err(::serde::de::Error::duplicate_field("return_members"));
5782 }
5783 field_return_members = Some(map.next_value()?);
5784 }
5785 _ => {
5786 map.next_value::<::serde_json::Value>()?;
5788 }
5789 }
5790 }
5791 if optional && nothing {
5792 return Ok(None);
5793 }
5794 let result = GroupMembersAddArg {
5795 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
5796 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
5797 return_members: field_return_members.unwrap_or(true),
5798 };
5799 Ok(Some(result))
5800 }
5801
5802 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5803 &self,
5804 s: &mut S::SerializeStruct,
5805 ) -> Result<(), S::Error> {
5806 use serde::ser::SerializeStruct;
5807 s.serialize_field("group", &self.group)?;
5808 s.serialize_field("members", &self.members)?;
5809 if !self.return_members {
5810 s.serialize_field("return_members", &self.return_members)?;
5811 }
5812 Ok(())
5813 }
5814}
5815
5816impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddArg {
5817 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5818 use serde::de::{MapAccess, Visitor};
5820 struct StructVisitor;
5821 impl<'de> Visitor<'de> for StructVisitor {
5822 type Value = GroupMembersAddArg;
5823 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5824 f.write_str("a GroupMembersAddArg struct")
5825 }
5826 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5827 GroupMembersAddArg::internal_deserialize(map)
5828 }
5829 }
5830 deserializer.deserialize_struct("GroupMembersAddArg", GROUP_MEMBERS_ADD_ARG_FIELDS, StructVisitor)
5831 }
5832}
5833
5834impl ::serde::ser::Serialize for GroupMembersAddArg {
5835 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5836 use serde::ser::SerializeStruct;
5838 let mut s = serializer.serialize_struct("GroupMembersAddArg", 3)?;
5839 self.internal_serialize::<S>(&mut s)?;
5840 s.end()
5841 }
5842}
5843
5844impl From<GroupMembersAddArg> for IncludeMembersArg {
5846 fn from(subtype: GroupMembersAddArg) -> Self {
5847 Self {
5848 return_members: subtype.return_members,
5849 }
5850 }
5851}
5852#[derive(Debug, Clone, PartialEq, Eq)]
5853#[non_exhaustive] pub enum GroupMembersAddError {
5855 GroupNotFound,
5857 SystemManagedGroupDisallowed,
5859 DuplicateUser,
5862 GroupNotInTeam,
5864 MembersNotInTeam(Vec<String>),
5869 UsersNotFound(Vec<String>),
5871 UserMustBeActiveToBeOwner,
5873 UserCannotBeManagerOfCompanyManagedGroup(Vec<String>),
5875 Other,
5878}
5879
5880impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddError {
5881 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5882 use serde::de::{self, MapAccess, Visitor};
5884 struct EnumVisitor;
5885 impl<'de> Visitor<'de> for EnumVisitor {
5886 type Value = GroupMembersAddError;
5887 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5888 f.write_str("a GroupMembersAddError structure")
5889 }
5890 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5891 let tag: &str = match map.next_key()? {
5892 Some(".tag") => map.next_value()?,
5893 _ => return Err(de::Error::missing_field(".tag"))
5894 };
5895 let value = match tag {
5896 "group_not_found" => GroupMembersAddError::GroupNotFound,
5897 "system_managed_group_disallowed" => GroupMembersAddError::SystemManagedGroupDisallowed,
5898 "duplicate_user" => GroupMembersAddError::DuplicateUser,
5899 "group_not_in_team" => GroupMembersAddError::GroupNotInTeam,
5900 "members_not_in_team" => {
5901 match map.next_key()? {
5902 Some("members_not_in_team") => GroupMembersAddError::MembersNotInTeam(map.next_value()?),
5903 None => return Err(de::Error::missing_field("members_not_in_team")),
5904 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5905 }
5906 }
5907 "users_not_found" => {
5908 match map.next_key()? {
5909 Some("users_not_found") => GroupMembersAddError::UsersNotFound(map.next_value()?),
5910 None => return Err(de::Error::missing_field("users_not_found")),
5911 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5912 }
5913 }
5914 "user_must_be_active_to_be_owner" => GroupMembersAddError::UserMustBeActiveToBeOwner,
5915 "user_cannot_be_manager_of_company_managed_group" => {
5916 match map.next_key()? {
5917 Some("user_cannot_be_manager_of_company_managed_group") => GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(map.next_value()?),
5918 None => return Err(de::Error::missing_field("user_cannot_be_manager_of_company_managed_group")),
5919 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5920 }
5921 }
5922 _ => GroupMembersAddError::Other,
5923 };
5924 crate::eat_json_fields(&mut map)?;
5925 Ok(value)
5926 }
5927 }
5928 const VARIANTS: &[&str] = &["group_not_found",
5929 "other",
5930 "system_managed_group_disallowed",
5931 "duplicate_user",
5932 "group_not_in_team",
5933 "members_not_in_team",
5934 "users_not_found",
5935 "user_must_be_active_to_be_owner",
5936 "user_cannot_be_manager_of_company_managed_group"];
5937 deserializer.deserialize_struct("GroupMembersAddError", VARIANTS, EnumVisitor)
5938 }
5939}
5940
5941impl ::serde::ser::Serialize for GroupMembersAddError {
5942 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5943 use serde::ser::SerializeStruct;
5945 match self {
5946 GroupMembersAddError::GroupNotFound => {
5947 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5949 s.serialize_field(".tag", "group_not_found")?;
5950 s.end()
5951 }
5952 GroupMembersAddError::SystemManagedGroupDisallowed => {
5953 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5955 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5956 s.end()
5957 }
5958 GroupMembersAddError::DuplicateUser => {
5959 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5961 s.serialize_field(".tag", "duplicate_user")?;
5962 s.end()
5963 }
5964 GroupMembersAddError::GroupNotInTeam => {
5965 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5967 s.serialize_field(".tag", "group_not_in_team")?;
5968 s.end()
5969 }
5970 GroupMembersAddError::MembersNotInTeam(x) => {
5971 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5973 s.serialize_field(".tag", "members_not_in_team")?;
5974 s.serialize_field("members_not_in_team", x)?;
5975 s.end()
5976 }
5977 GroupMembersAddError::UsersNotFound(x) => {
5978 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5980 s.serialize_field(".tag", "users_not_found")?;
5981 s.serialize_field("users_not_found", x)?;
5982 s.end()
5983 }
5984 GroupMembersAddError::UserMustBeActiveToBeOwner => {
5985 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5987 s.serialize_field(".tag", "user_must_be_active_to_be_owner")?;
5988 s.end()
5989 }
5990 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(x) => {
5991 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5993 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
5994 s.serialize_field("user_cannot_be_manager_of_company_managed_group", x)?;
5995 s.end()
5996 }
5997 GroupMembersAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5998 }
5999 }
6000}
6001
6002impl ::std::error::Error for GroupMembersAddError {
6003}
6004
6005impl ::std::fmt::Display for GroupMembersAddError {
6006 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6007 match self {
6008 GroupMembersAddError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6009 GroupMembersAddError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6010 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."),
6011 GroupMembersAddError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot add members to a group that is outside of your team."),
6012 GroupMembersAddError::MembersNotInTeam(inner) => write!(f, "members_not_in_team: {:?}", inner),
6013 GroupMembersAddError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
6014 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(inner) => write!(f, "A company-managed group cannot be managed by a user: {:?}", inner),
6015 _ => write!(f, "{:?}", *self),
6016 }
6017 }
6018}
6019
6020impl From<GroupSelectorWithTeamGroupError> for GroupMembersAddError {
6022 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6023 match parent {
6024 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersAddError::GroupNotFound,
6025 GroupSelectorWithTeamGroupError::Other => GroupMembersAddError::Other,
6026 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersAddError::SystemManagedGroupDisallowed,
6027 }
6028 }
6029}
6030#[derive(Debug, Clone, PartialEq, Eq)]
6033#[non_exhaustive] pub struct GroupMembersChangeResult {
6035 pub group_info: GroupFullInfo,
6037 #[deprecated]
6041 pub async_job_id: crate::types::dbx_async::AsyncJobId,
6042}
6043
6044impl GroupMembersChangeResult {
6045 pub fn new(
6046 group_info: GroupFullInfo,
6047 async_job_id: crate::types::dbx_async::AsyncJobId,
6048 ) -> Self {
6049 GroupMembersChangeResult {
6050 group_info,
6051 #[allow(deprecated)] async_job_id,
6052 }
6053 }
6054}
6055
6056const GROUP_MEMBERS_CHANGE_RESULT_FIELDS: &[&str] = &["group_info",
6057 "async_job_id"];
6058impl GroupMembersChangeResult {
6059 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6060 map: V,
6061 ) -> Result<GroupMembersChangeResult, V::Error> {
6062 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6063 }
6064
6065 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6066 mut map: V,
6067 optional: bool,
6068 ) -> Result<Option<GroupMembersChangeResult>, V::Error> {
6069 let mut field_group_info = None;
6070 let mut field_async_job_id = None;
6071 let mut nothing = true;
6072 while let Some(key) = map.next_key::<&str>()? {
6073 nothing = false;
6074 match key {
6075 "group_info" => {
6076 if field_group_info.is_some() {
6077 return Err(::serde::de::Error::duplicate_field("group_info"));
6078 }
6079 field_group_info = Some(map.next_value()?);
6080 }
6081 "async_job_id" => {
6082 if field_async_job_id.is_some() {
6083 return Err(::serde::de::Error::duplicate_field("async_job_id"));
6084 }
6085 field_async_job_id = Some(map.next_value()?);
6086 }
6087 _ => {
6088 map.next_value::<::serde_json::Value>()?;
6090 }
6091 }
6092 }
6093 if optional && nothing {
6094 return Ok(None);
6095 }
6096 let result = GroupMembersChangeResult {
6097 group_info: field_group_info.ok_or_else(|| ::serde::de::Error::missing_field("group_info"))?,
6098 #[allow(deprecated)] async_job_id: field_async_job_id.ok_or_else(|| ::serde::de::Error::missing_field("async_job_id"))?,
6099 };
6100 Ok(Some(result))
6101 }
6102
6103 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6104 &self,
6105 s: &mut S::SerializeStruct,
6106 ) -> Result<(), S::Error> {
6107 use serde::ser::SerializeStruct;
6108 s.serialize_field("group_info", &self.group_info)?;
6109 #[allow(deprecated)]
6110 s.serialize_field("async_job_id", &self.async_job_id)?;
6111 Ok(())
6112 }
6113}
6114
6115impl<'de> ::serde::de::Deserialize<'de> for GroupMembersChangeResult {
6116 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6117 use serde::de::{MapAccess, Visitor};
6119 struct StructVisitor;
6120 impl<'de> Visitor<'de> for StructVisitor {
6121 type Value = GroupMembersChangeResult;
6122 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6123 f.write_str("a GroupMembersChangeResult struct")
6124 }
6125 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6126 GroupMembersChangeResult::internal_deserialize(map)
6127 }
6128 }
6129 deserializer.deserialize_struct("GroupMembersChangeResult", GROUP_MEMBERS_CHANGE_RESULT_FIELDS, StructVisitor)
6130 }
6131}
6132
6133impl ::serde::ser::Serialize for GroupMembersChangeResult {
6134 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6135 use serde::ser::SerializeStruct;
6137 let mut s = serializer.serialize_struct("GroupMembersChangeResult", 2)?;
6138 self.internal_serialize::<S>(&mut s)?;
6139 s.end()
6140 }
6141}
6142
6143#[derive(Debug, Clone, PartialEq, Eq)]
6144#[non_exhaustive] pub struct GroupMembersRemoveArg {
6146 pub group: GroupSelector,
6148 pub users: Vec<UserSelectorArg>,
6150 pub return_members: bool,
6154}
6155
6156impl GroupMembersRemoveArg {
6157 pub fn new(group: GroupSelector, users: Vec<UserSelectorArg>) -> Self {
6158 GroupMembersRemoveArg {
6159 group,
6160 users,
6161 return_members: true,
6162 }
6163 }
6164
6165 pub fn with_return_members(mut self, value: bool) -> Self {
6166 self.return_members = value;
6167 self
6168 }
6169}
6170
6171const GROUP_MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["group",
6172 "users",
6173 "return_members"];
6174impl GroupMembersRemoveArg {
6175 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6176 map: V,
6177 ) -> Result<GroupMembersRemoveArg, V::Error> {
6178 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6179 }
6180
6181 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6182 mut map: V,
6183 optional: bool,
6184 ) -> Result<Option<GroupMembersRemoveArg>, V::Error> {
6185 let mut field_group = None;
6186 let mut field_users = None;
6187 let mut field_return_members = None;
6188 let mut nothing = true;
6189 while let Some(key) = map.next_key::<&str>()? {
6190 nothing = false;
6191 match key {
6192 "group" => {
6193 if field_group.is_some() {
6194 return Err(::serde::de::Error::duplicate_field("group"));
6195 }
6196 field_group = Some(map.next_value()?);
6197 }
6198 "users" => {
6199 if field_users.is_some() {
6200 return Err(::serde::de::Error::duplicate_field("users"));
6201 }
6202 field_users = Some(map.next_value()?);
6203 }
6204 "return_members" => {
6205 if field_return_members.is_some() {
6206 return Err(::serde::de::Error::duplicate_field("return_members"));
6207 }
6208 field_return_members = Some(map.next_value()?);
6209 }
6210 _ => {
6211 map.next_value::<::serde_json::Value>()?;
6213 }
6214 }
6215 }
6216 if optional && nothing {
6217 return Ok(None);
6218 }
6219 let result = GroupMembersRemoveArg {
6220 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6221 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
6222 return_members: field_return_members.unwrap_or(true),
6223 };
6224 Ok(Some(result))
6225 }
6226
6227 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6228 &self,
6229 s: &mut S::SerializeStruct,
6230 ) -> Result<(), S::Error> {
6231 use serde::ser::SerializeStruct;
6232 s.serialize_field("group", &self.group)?;
6233 s.serialize_field("users", &self.users)?;
6234 if !self.return_members {
6235 s.serialize_field("return_members", &self.return_members)?;
6236 }
6237 Ok(())
6238 }
6239}
6240
6241impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveArg {
6242 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6243 use serde::de::{MapAccess, Visitor};
6245 struct StructVisitor;
6246 impl<'de> Visitor<'de> for StructVisitor {
6247 type Value = GroupMembersRemoveArg;
6248 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6249 f.write_str("a GroupMembersRemoveArg struct")
6250 }
6251 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6252 GroupMembersRemoveArg::internal_deserialize(map)
6253 }
6254 }
6255 deserializer.deserialize_struct("GroupMembersRemoveArg", GROUP_MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
6256 }
6257}
6258
6259impl ::serde::ser::Serialize for GroupMembersRemoveArg {
6260 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6261 use serde::ser::SerializeStruct;
6263 let mut s = serializer.serialize_struct("GroupMembersRemoveArg", 3)?;
6264 self.internal_serialize::<S>(&mut s)?;
6265 s.end()
6266 }
6267}
6268
6269impl From<GroupMembersRemoveArg> for IncludeMembersArg {
6271 fn from(subtype: GroupMembersRemoveArg) -> Self {
6272 Self {
6273 return_members: subtype.return_members,
6274 }
6275 }
6276}
6277#[derive(Debug, Clone, PartialEq, Eq)]
6278#[non_exhaustive] pub enum GroupMembersRemoveError {
6280 GroupNotFound,
6282 SystemManagedGroupDisallowed,
6284 MemberNotInGroup,
6286 GroupNotInTeam,
6289 MembersNotInTeam(Vec<String>),
6291 UsersNotFound(Vec<String>),
6293 Other,
6296}
6297
6298impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveError {
6299 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6300 use serde::de::{self, MapAccess, Visitor};
6302 struct EnumVisitor;
6303 impl<'de> Visitor<'de> for EnumVisitor {
6304 type Value = GroupMembersRemoveError;
6305 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6306 f.write_str("a GroupMembersRemoveError structure")
6307 }
6308 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6309 let tag: &str = match map.next_key()? {
6310 Some(".tag") => map.next_value()?,
6311 _ => return Err(de::Error::missing_field(".tag"))
6312 };
6313 let value = match tag {
6314 "group_not_found" => GroupMembersRemoveError::GroupNotFound,
6315 "system_managed_group_disallowed" => GroupMembersRemoveError::SystemManagedGroupDisallowed,
6316 "member_not_in_group" => GroupMembersRemoveError::MemberNotInGroup,
6317 "group_not_in_team" => GroupMembersRemoveError::GroupNotInTeam,
6318 "members_not_in_team" => {
6319 match map.next_key()? {
6320 Some("members_not_in_team") => GroupMembersRemoveError::MembersNotInTeam(map.next_value()?),
6321 None => return Err(de::Error::missing_field("members_not_in_team")),
6322 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6323 }
6324 }
6325 "users_not_found" => {
6326 match map.next_key()? {
6327 Some("users_not_found") => GroupMembersRemoveError::UsersNotFound(map.next_value()?),
6328 None => return Err(de::Error::missing_field("users_not_found")),
6329 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6330 }
6331 }
6332 _ => GroupMembersRemoveError::Other,
6333 };
6334 crate::eat_json_fields(&mut map)?;
6335 Ok(value)
6336 }
6337 }
6338 const VARIANTS: &[&str] = &["group_not_found",
6339 "other",
6340 "system_managed_group_disallowed",
6341 "member_not_in_group",
6342 "group_not_in_team",
6343 "members_not_in_team",
6344 "users_not_found"];
6345 deserializer.deserialize_struct("GroupMembersRemoveError", VARIANTS, EnumVisitor)
6346 }
6347}
6348
6349impl ::serde::ser::Serialize for GroupMembersRemoveError {
6350 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6351 use serde::ser::SerializeStruct;
6353 match self {
6354 GroupMembersRemoveError::GroupNotFound => {
6355 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6357 s.serialize_field(".tag", "group_not_found")?;
6358 s.end()
6359 }
6360 GroupMembersRemoveError::SystemManagedGroupDisallowed => {
6361 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6363 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6364 s.end()
6365 }
6366 GroupMembersRemoveError::MemberNotInGroup => {
6367 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6369 s.serialize_field(".tag", "member_not_in_group")?;
6370 s.end()
6371 }
6372 GroupMembersRemoveError::GroupNotInTeam => {
6373 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6375 s.serialize_field(".tag", "group_not_in_team")?;
6376 s.end()
6377 }
6378 GroupMembersRemoveError::MembersNotInTeam(x) => {
6379 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
6381 s.serialize_field(".tag", "members_not_in_team")?;
6382 s.serialize_field("members_not_in_team", x)?;
6383 s.end()
6384 }
6385 GroupMembersRemoveError::UsersNotFound(x) => {
6386 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
6388 s.serialize_field(".tag", "users_not_found")?;
6389 s.serialize_field("users_not_found", x)?;
6390 s.end()
6391 }
6392 GroupMembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6393 }
6394 }
6395}
6396
6397impl ::std::error::Error for GroupMembersRemoveError {
6398}
6399
6400impl ::std::fmt::Display for GroupMembersRemoveError {
6401 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6402 match self {
6403 GroupMembersRemoveError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6404 GroupMembersRemoveError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6405 GroupMembersRemoveError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
6406 GroupMembersRemoveError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot remove members from a group that is outside of your team."),
6407 GroupMembersRemoveError::MembersNotInTeam(inner) => write!(f, "These members are not part of your team: {:?}", inner),
6408 GroupMembersRemoveError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
6409 _ => write!(f, "{:?}", *self),
6410 }
6411 }
6412}
6413
6414impl From<GroupMembersSelectorError> for GroupMembersRemoveError {
6416 fn from(parent: GroupMembersSelectorError) -> Self {
6417 match parent {
6418 GroupMembersSelectorError::GroupNotFound => GroupMembersRemoveError::GroupNotFound,
6419 GroupMembersSelectorError::Other => GroupMembersRemoveError::Other,
6420 GroupMembersSelectorError::SystemManagedGroupDisallowed => GroupMembersRemoveError::SystemManagedGroupDisallowed,
6421 GroupMembersSelectorError::MemberNotInGroup => GroupMembersRemoveError::MemberNotInGroup,
6422 }
6423 }
6424}
6425#[derive(Debug, Clone, PartialEq, Eq)]
6427#[non_exhaustive] pub struct GroupMembersSelector {
6429 pub group: GroupSelector,
6431 pub users: UsersSelectorArg,
6433}
6434
6435impl GroupMembersSelector {
6436 pub fn new(group: GroupSelector, users: UsersSelectorArg) -> Self {
6437 GroupMembersSelector {
6438 group,
6439 users,
6440 }
6441 }
6442}
6443
6444const GROUP_MEMBERS_SELECTOR_FIELDS: &[&str] = &["group",
6445 "users"];
6446impl GroupMembersSelector {
6447 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6448 map: V,
6449 ) -> Result<GroupMembersSelector, V::Error> {
6450 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6451 }
6452
6453 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6454 mut map: V,
6455 optional: bool,
6456 ) -> Result<Option<GroupMembersSelector>, V::Error> {
6457 let mut field_group = None;
6458 let mut field_users = None;
6459 let mut nothing = true;
6460 while let Some(key) = map.next_key::<&str>()? {
6461 nothing = false;
6462 match key {
6463 "group" => {
6464 if field_group.is_some() {
6465 return Err(::serde::de::Error::duplicate_field("group"));
6466 }
6467 field_group = Some(map.next_value()?);
6468 }
6469 "users" => {
6470 if field_users.is_some() {
6471 return Err(::serde::de::Error::duplicate_field("users"));
6472 }
6473 field_users = Some(map.next_value()?);
6474 }
6475 _ => {
6476 map.next_value::<::serde_json::Value>()?;
6478 }
6479 }
6480 }
6481 if optional && nothing {
6482 return Ok(None);
6483 }
6484 let result = GroupMembersSelector {
6485 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6486 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
6487 };
6488 Ok(Some(result))
6489 }
6490
6491 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6492 &self,
6493 s: &mut S::SerializeStruct,
6494 ) -> Result<(), S::Error> {
6495 use serde::ser::SerializeStruct;
6496 s.serialize_field("group", &self.group)?;
6497 s.serialize_field("users", &self.users)?;
6498 Ok(())
6499 }
6500}
6501
6502impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelector {
6503 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6504 use serde::de::{MapAccess, Visitor};
6506 struct StructVisitor;
6507 impl<'de> Visitor<'de> for StructVisitor {
6508 type Value = GroupMembersSelector;
6509 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6510 f.write_str("a GroupMembersSelector struct")
6511 }
6512 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6513 GroupMembersSelector::internal_deserialize(map)
6514 }
6515 }
6516 deserializer.deserialize_struct("GroupMembersSelector", GROUP_MEMBERS_SELECTOR_FIELDS, StructVisitor)
6517 }
6518}
6519
6520impl ::serde::ser::Serialize for GroupMembersSelector {
6521 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6522 use serde::ser::SerializeStruct;
6524 let mut s = serializer.serialize_struct("GroupMembersSelector", 2)?;
6525 self.internal_serialize::<S>(&mut s)?;
6526 s.end()
6527 }
6528}
6529
6530#[derive(Debug, Clone, PartialEq, Eq)]
6533#[non_exhaustive] pub enum GroupMembersSelectorError {
6535 GroupNotFound,
6537 SystemManagedGroupDisallowed,
6539 MemberNotInGroup,
6541 Other,
6544}
6545
6546impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelectorError {
6547 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6548 use serde::de::{self, MapAccess, Visitor};
6550 struct EnumVisitor;
6551 impl<'de> Visitor<'de> for EnumVisitor {
6552 type Value = GroupMembersSelectorError;
6553 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6554 f.write_str("a GroupMembersSelectorError structure")
6555 }
6556 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6557 let tag: &str = match map.next_key()? {
6558 Some(".tag") => map.next_value()?,
6559 _ => return Err(de::Error::missing_field(".tag"))
6560 };
6561 let value = match tag {
6562 "group_not_found" => GroupMembersSelectorError::GroupNotFound,
6563 "system_managed_group_disallowed" => GroupMembersSelectorError::SystemManagedGroupDisallowed,
6564 "member_not_in_group" => GroupMembersSelectorError::MemberNotInGroup,
6565 _ => GroupMembersSelectorError::Other,
6566 };
6567 crate::eat_json_fields(&mut map)?;
6568 Ok(value)
6569 }
6570 }
6571 const VARIANTS: &[&str] = &["group_not_found",
6572 "other",
6573 "system_managed_group_disallowed",
6574 "member_not_in_group"];
6575 deserializer.deserialize_struct("GroupMembersSelectorError", VARIANTS, EnumVisitor)
6576 }
6577}
6578
6579impl ::serde::ser::Serialize for GroupMembersSelectorError {
6580 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6581 use serde::ser::SerializeStruct;
6583 match self {
6584 GroupMembersSelectorError::GroupNotFound => {
6585 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6587 s.serialize_field(".tag", "group_not_found")?;
6588 s.end()
6589 }
6590 GroupMembersSelectorError::SystemManagedGroupDisallowed => {
6591 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6593 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6594 s.end()
6595 }
6596 GroupMembersSelectorError::MemberNotInGroup => {
6597 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6599 s.serialize_field(".tag", "member_not_in_group")?;
6600 s.end()
6601 }
6602 GroupMembersSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6603 }
6604 }
6605}
6606
6607impl ::std::error::Error for GroupMembersSelectorError {
6608}
6609
6610impl ::std::fmt::Display for GroupMembersSelectorError {
6611 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6612 match self {
6613 GroupMembersSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6614 GroupMembersSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6615 GroupMembersSelectorError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
6616 _ => write!(f, "{:?}", *self),
6617 }
6618 }
6619}
6620
6621impl From<GroupSelectorWithTeamGroupError> for GroupMembersSelectorError {
6623 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6624 match parent {
6625 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersSelectorError::GroupNotFound,
6626 GroupSelectorWithTeamGroupError::Other => GroupMembersSelectorError::Other,
6627 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersSelectorError::SystemManagedGroupDisallowed,
6628 }
6629 }
6630}
6631#[derive(Debug, Clone, PartialEq, Eq)]
6632#[non_exhaustive] pub struct GroupMembersSetAccessTypeArg {
6634 pub group: GroupSelector,
6636 pub user: UserSelectorArg,
6638 pub access_type: GroupAccessType,
6640 pub return_members: bool,
6644}
6645
6646impl GroupMembersSetAccessTypeArg {
6647 pub fn new(group: GroupSelector, user: UserSelectorArg, access_type: GroupAccessType) -> Self {
6648 GroupMembersSetAccessTypeArg {
6649 group,
6650 user,
6651 access_type,
6652 return_members: true,
6653 }
6654 }
6655
6656 pub fn with_return_members(mut self, value: bool) -> Self {
6657 self.return_members = value;
6658 self
6659 }
6660}
6661
6662const GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS: &[&str] = &["group",
6663 "user",
6664 "access_type",
6665 "return_members"];
6666impl GroupMembersSetAccessTypeArg {
6667 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6668 map: V,
6669 ) -> Result<GroupMembersSetAccessTypeArg, V::Error> {
6670 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6671 }
6672
6673 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6674 mut map: V,
6675 optional: bool,
6676 ) -> Result<Option<GroupMembersSetAccessTypeArg>, V::Error> {
6677 let mut field_group = None;
6678 let mut field_user = None;
6679 let mut field_access_type = None;
6680 let mut field_return_members = None;
6681 let mut nothing = true;
6682 while let Some(key) = map.next_key::<&str>()? {
6683 nothing = false;
6684 match key {
6685 "group" => {
6686 if field_group.is_some() {
6687 return Err(::serde::de::Error::duplicate_field("group"));
6688 }
6689 field_group = Some(map.next_value()?);
6690 }
6691 "user" => {
6692 if field_user.is_some() {
6693 return Err(::serde::de::Error::duplicate_field("user"));
6694 }
6695 field_user = Some(map.next_value()?);
6696 }
6697 "access_type" => {
6698 if field_access_type.is_some() {
6699 return Err(::serde::de::Error::duplicate_field("access_type"));
6700 }
6701 field_access_type = Some(map.next_value()?);
6702 }
6703 "return_members" => {
6704 if field_return_members.is_some() {
6705 return Err(::serde::de::Error::duplicate_field("return_members"));
6706 }
6707 field_return_members = Some(map.next_value()?);
6708 }
6709 _ => {
6710 map.next_value::<::serde_json::Value>()?;
6712 }
6713 }
6714 }
6715 if optional && nothing {
6716 return Ok(None);
6717 }
6718 let result = GroupMembersSetAccessTypeArg {
6719 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6720 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
6721 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
6722 return_members: field_return_members.unwrap_or(true),
6723 };
6724 Ok(Some(result))
6725 }
6726
6727 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6728 &self,
6729 s: &mut S::SerializeStruct,
6730 ) -> Result<(), S::Error> {
6731 use serde::ser::SerializeStruct;
6732 s.serialize_field("group", &self.group)?;
6733 s.serialize_field("user", &self.user)?;
6734 s.serialize_field("access_type", &self.access_type)?;
6735 if !self.return_members {
6736 s.serialize_field("return_members", &self.return_members)?;
6737 }
6738 Ok(())
6739 }
6740}
6741
6742impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSetAccessTypeArg {
6743 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6744 use serde::de::{MapAccess, Visitor};
6746 struct StructVisitor;
6747 impl<'de> Visitor<'de> for StructVisitor {
6748 type Value = GroupMembersSetAccessTypeArg;
6749 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6750 f.write_str("a GroupMembersSetAccessTypeArg struct")
6751 }
6752 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6753 GroupMembersSetAccessTypeArg::internal_deserialize(map)
6754 }
6755 }
6756 deserializer.deserialize_struct("GroupMembersSetAccessTypeArg", GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS, StructVisitor)
6757 }
6758}
6759
6760impl ::serde::ser::Serialize for GroupMembersSetAccessTypeArg {
6761 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6762 use serde::ser::SerializeStruct;
6764 let mut s = serializer.serialize_struct("GroupMembersSetAccessTypeArg", 4)?;
6765 self.internal_serialize::<S>(&mut s)?;
6766 s.end()
6767 }
6768}
6769
6770impl From<GroupMembersSetAccessTypeArg> for GroupMemberSelector {
6772 fn from(subtype: GroupMembersSetAccessTypeArg) -> Self {
6773 Self {
6774 group: subtype.group,
6775 user: subtype.user,
6776 }
6777 }
6778}
6779#[derive(Debug, Clone, PartialEq, Eq)]
6781pub enum GroupSelector {
6782 GroupId(crate::types::team_common::GroupId),
6784 GroupExternalId(crate::types::team_common::GroupExternalId),
6786}
6787
6788impl<'de> ::serde::de::Deserialize<'de> for GroupSelector {
6789 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6790 use serde::de::{self, MapAccess, Visitor};
6792 struct EnumVisitor;
6793 impl<'de> Visitor<'de> for EnumVisitor {
6794 type Value = GroupSelector;
6795 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6796 f.write_str("a GroupSelector structure")
6797 }
6798 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6799 let tag: &str = match map.next_key()? {
6800 Some(".tag") => map.next_value()?,
6801 _ => return Err(de::Error::missing_field(".tag"))
6802 };
6803 let value = match tag {
6804 "group_id" => {
6805 match map.next_key()? {
6806 Some("group_id") => GroupSelector::GroupId(map.next_value()?),
6807 None => return Err(de::Error::missing_field("group_id")),
6808 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6809 }
6810 }
6811 "group_external_id" => {
6812 match map.next_key()? {
6813 Some("group_external_id") => GroupSelector::GroupExternalId(map.next_value()?),
6814 None => return Err(de::Error::missing_field("group_external_id")),
6815 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6816 }
6817 }
6818 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
6819 };
6820 crate::eat_json_fields(&mut map)?;
6821 Ok(value)
6822 }
6823 }
6824 const VARIANTS: &[&str] = &["group_id",
6825 "group_external_id"];
6826 deserializer.deserialize_struct("GroupSelector", VARIANTS, EnumVisitor)
6827 }
6828}
6829
6830impl ::serde::ser::Serialize for GroupSelector {
6831 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6832 use serde::ser::SerializeStruct;
6834 match self {
6835 GroupSelector::GroupId(x) => {
6836 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
6838 s.serialize_field(".tag", "group_id")?;
6839 s.serialize_field("group_id", x)?;
6840 s.end()
6841 }
6842 GroupSelector::GroupExternalId(x) => {
6843 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
6845 s.serialize_field(".tag", "group_external_id")?;
6846 s.serialize_field("group_external_id", x)?;
6847 s.end()
6848 }
6849 }
6850 }
6851}
6852
6853#[derive(Debug, Clone, PartialEq, Eq)]
6855#[non_exhaustive] pub enum GroupSelectorError {
6857 GroupNotFound,
6859 Other,
6862}
6863
6864impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorError {
6865 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6866 use serde::de::{self, MapAccess, Visitor};
6868 struct EnumVisitor;
6869 impl<'de> Visitor<'de> for EnumVisitor {
6870 type Value = GroupSelectorError;
6871 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6872 f.write_str("a GroupSelectorError structure")
6873 }
6874 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6875 let tag: &str = match map.next_key()? {
6876 Some(".tag") => map.next_value()?,
6877 _ => return Err(de::Error::missing_field(".tag"))
6878 };
6879 let value = match tag {
6880 "group_not_found" => GroupSelectorError::GroupNotFound,
6881 _ => GroupSelectorError::Other,
6882 };
6883 crate::eat_json_fields(&mut map)?;
6884 Ok(value)
6885 }
6886 }
6887 const VARIANTS: &[&str] = &["group_not_found",
6888 "other"];
6889 deserializer.deserialize_struct("GroupSelectorError", VARIANTS, EnumVisitor)
6890 }
6891}
6892
6893impl ::serde::ser::Serialize for GroupSelectorError {
6894 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6895 use serde::ser::SerializeStruct;
6897 match self {
6898 GroupSelectorError::GroupNotFound => {
6899 let mut s = serializer.serialize_struct("GroupSelectorError", 1)?;
6901 s.serialize_field(".tag", "group_not_found")?;
6902 s.end()
6903 }
6904 GroupSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6905 }
6906 }
6907}
6908
6909impl ::std::error::Error for GroupSelectorError {
6910}
6911
6912impl ::std::fmt::Display for GroupSelectorError {
6913 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6914 match self {
6915 GroupSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6916 _ => write!(f, "{:?}", *self),
6917 }
6918 }
6919}
6920
6921#[derive(Debug, Clone, PartialEq, Eq)]
6924#[non_exhaustive] pub enum GroupSelectorWithTeamGroupError {
6926 GroupNotFound,
6928 SystemManagedGroupDisallowed,
6930 Other,
6933}
6934
6935impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorWithTeamGroupError {
6936 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6937 use serde::de::{self, MapAccess, Visitor};
6939 struct EnumVisitor;
6940 impl<'de> Visitor<'de> for EnumVisitor {
6941 type Value = GroupSelectorWithTeamGroupError;
6942 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6943 f.write_str("a GroupSelectorWithTeamGroupError structure")
6944 }
6945 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6946 let tag: &str = match map.next_key()? {
6947 Some(".tag") => map.next_value()?,
6948 _ => return Err(de::Error::missing_field(".tag"))
6949 };
6950 let value = match tag {
6951 "group_not_found" => GroupSelectorWithTeamGroupError::GroupNotFound,
6952 "system_managed_group_disallowed" => GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed,
6953 _ => GroupSelectorWithTeamGroupError::Other,
6954 };
6955 crate::eat_json_fields(&mut map)?;
6956 Ok(value)
6957 }
6958 }
6959 const VARIANTS: &[&str] = &["group_not_found",
6960 "other",
6961 "system_managed_group_disallowed"];
6962 deserializer.deserialize_struct("GroupSelectorWithTeamGroupError", VARIANTS, EnumVisitor)
6963 }
6964}
6965
6966impl ::serde::ser::Serialize for GroupSelectorWithTeamGroupError {
6967 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6968 use serde::ser::SerializeStruct;
6970 match self {
6971 GroupSelectorWithTeamGroupError::GroupNotFound => {
6972 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
6974 s.serialize_field(".tag", "group_not_found")?;
6975 s.end()
6976 }
6977 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => {
6978 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
6980 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6981 s.end()
6982 }
6983 GroupSelectorWithTeamGroupError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6984 }
6985 }
6986}
6987
6988impl ::std::error::Error for GroupSelectorWithTeamGroupError {
6989}
6990
6991impl ::std::fmt::Display for GroupSelectorWithTeamGroupError {
6992 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6993 match self {
6994 GroupSelectorWithTeamGroupError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6995 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6996 _ => write!(f, "{:?}", *self),
6997 }
6998 }
6999}
7000
7001impl From<GroupSelectorError> for GroupSelectorWithTeamGroupError {
7003 fn from(parent: GroupSelectorError) -> Self {
7004 match parent {
7005 GroupSelectorError::GroupNotFound => GroupSelectorWithTeamGroupError::GroupNotFound,
7006 GroupSelectorError::Other => GroupSelectorWithTeamGroupError::Other,
7007 }
7008 }
7009}
7010#[derive(Debug, Clone, PartialEq, Eq)]
7011#[non_exhaustive] pub struct GroupUpdateArgs {
7013 pub group: GroupSelector,
7015 pub return_members: bool,
7019 pub new_group_name: Option<String>,
7021 pub new_group_external_id: Option<crate::types::team_common::GroupExternalId>,
7024 pub new_group_management_type: Option<crate::types::team_common::GroupManagementType>,
7026}
7027
7028impl GroupUpdateArgs {
7029 pub fn new(group: GroupSelector) -> Self {
7030 GroupUpdateArgs {
7031 group,
7032 return_members: true,
7033 new_group_name: None,
7034 new_group_external_id: None,
7035 new_group_management_type: None,
7036 }
7037 }
7038
7039 pub fn with_return_members(mut self, value: bool) -> Self {
7040 self.return_members = value;
7041 self
7042 }
7043
7044 pub fn with_new_group_name(mut self, value: String) -> Self {
7045 self.new_group_name = Some(value);
7046 self
7047 }
7048
7049 pub fn with_new_group_external_id(
7050 mut self,
7051 value: crate::types::team_common::GroupExternalId,
7052 ) -> Self {
7053 self.new_group_external_id = Some(value);
7054 self
7055 }
7056
7057 pub fn with_new_group_management_type(
7058 mut self,
7059 value: crate::types::team_common::GroupManagementType,
7060 ) -> Self {
7061 self.new_group_management_type = Some(value);
7062 self
7063 }
7064}
7065
7066const GROUP_UPDATE_ARGS_FIELDS: &[&str] = &["group",
7067 "return_members",
7068 "new_group_name",
7069 "new_group_external_id",
7070 "new_group_management_type"];
7071impl GroupUpdateArgs {
7072 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7073 map: V,
7074 ) -> Result<GroupUpdateArgs, V::Error> {
7075 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7076 }
7077
7078 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7079 mut map: V,
7080 optional: bool,
7081 ) -> Result<Option<GroupUpdateArgs>, V::Error> {
7082 let mut field_group = None;
7083 let mut field_return_members = None;
7084 let mut field_new_group_name = None;
7085 let mut field_new_group_external_id = None;
7086 let mut field_new_group_management_type = None;
7087 let mut nothing = true;
7088 while let Some(key) = map.next_key::<&str>()? {
7089 nothing = false;
7090 match key {
7091 "group" => {
7092 if field_group.is_some() {
7093 return Err(::serde::de::Error::duplicate_field("group"));
7094 }
7095 field_group = Some(map.next_value()?);
7096 }
7097 "return_members" => {
7098 if field_return_members.is_some() {
7099 return Err(::serde::de::Error::duplicate_field("return_members"));
7100 }
7101 field_return_members = Some(map.next_value()?);
7102 }
7103 "new_group_name" => {
7104 if field_new_group_name.is_some() {
7105 return Err(::serde::de::Error::duplicate_field("new_group_name"));
7106 }
7107 field_new_group_name = Some(map.next_value()?);
7108 }
7109 "new_group_external_id" => {
7110 if field_new_group_external_id.is_some() {
7111 return Err(::serde::de::Error::duplicate_field("new_group_external_id"));
7112 }
7113 field_new_group_external_id = Some(map.next_value()?);
7114 }
7115 "new_group_management_type" => {
7116 if field_new_group_management_type.is_some() {
7117 return Err(::serde::de::Error::duplicate_field("new_group_management_type"));
7118 }
7119 field_new_group_management_type = Some(map.next_value()?);
7120 }
7121 _ => {
7122 map.next_value::<::serde_json::Value>()?;
7124 }
7125 }
7126 }
7127 if optional && nothing {
7128 return Ok(None);
7129 }
7130 let result = GroupUpdateArgs {
7131 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7132 return_members: field_return_members.unwrap_or(true),
7133 new_group_name: field_new_group_name.and_then(Option::flatten),
7134 new_group_external_id: field_new_group_external_id.and_then(Option::flatten),
7135 new_group_management_type: field_new_group_management_type.and_then(Option::flatten),
7136 };
7137 Ok(Some(result))
7138 }
7139
7140 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7141 &self,
7142 s: &mut S::SerializeStruct,
7143 ) -> Result<(), S::Error> {
7144 use serde::ser::SerializeStruct;
7145 s.serialize_field("group", &self.group)?;
7146 if !self.return_members {
7147 s.serialize_field("return_members", &self.return_members)?;
7148 }
7149 if let Some(val) = &self.new_group_name {
7150 s.serialize_field("new_group_name", val)?;
7151 }
7152 if let Some(val) = &self.new_group_external_id {
7153 s.serialize_field("new_group_external_id", val)?;
7154 }
7155 if let Some(val) = &self.new_group_management_type {
7156 s.serialize_field("new_group_management_type", val)?;
7157 }
7158 Ok(())
7159 }
7160}
7161
7162impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateArgs {
7163 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7164 use serde::de::{MapAccess, Visitor};
7166 struct StructVisitor;
7167 impl<'de> Visitor<'de> for StructVisitor {
7168 type Value = GroupUpdateArgs;
7169 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7170 f.write_str("a GroupUpdateArgs struct")
7171 }
7172 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7173 GroupUpdateArgs::internal_deserialize(map)
7174 }
7175 }
7176 deserializer.deserialize_struct("GroupUpdateArgs", GROUP_UPDATE_ARGS_FIELDS, StructVisitor)
7177 }
7178}
7179
7180impl ::serde::ser::Serialize for GroupUpdateArgs {
7181 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7182 use serde::ser::SerializeStruct;
7184 let mut s = serializer.serialize_struct("GroupUpdateArgs", 5)?;
7185 self.internal_serialize::<S>(&mut s)?;
7186 s.end()
7187 }
7188}
7189
7190impl From<GroupUpdateArgs> for IncludeMembersArg {
7192 fn from(subtype: GroupUpdateArgs) -> Self {
7193 Self {
7194 return_members: subtype.return_members,
7195 }
7196 }
7197}
7198#[derive(Debug, Clone, PartialEq, Eq)]
7199#[non_exhaustive] pub enum GroupUpdateError {
7201 GroupNotFound,
7203 SystemManagedGroupDisallowed,
7205 GroupNameAlreadyUsed,
7207 GroupNameInvalid,
7209 ExternalIdAlreadyInUse,
7211 Other,
7214}
7215
7216impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateError {
7217 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7218 use serde::de::{self, MapAccess, Visitor};
7220 struct EnumVisitor;
7221 impl<'de> Visitor<'de> for EnumVisitor {
7222 type Value = GroupUpdateError;
7223 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7224 f.write_str("a GroupUpdateError structure")
7225 }
7226 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7227 let tag: &str = match map.next_key()? {
7228 Some(".tag") => map.next_value()?,
7229 _ => return Err(de::Error::missing_field(".tag"))
7230 };
7231 let value = match tag {
7232 "group_not_found" => GroupUpdateError::GroupNotFound,
7233 "system_managed_group_disallowed" => GroupUpdateError::SystemManagedGroupDisallowed,
7234 "group_name_already_used" => GroupUpdateError::GroupNameAlreadyUsed,
7235 "group_name_invalid" => GroupUpdateError::GroupNameInvalid,
7236 "external_id_already_in_use" => GroupUpdateError::ExternalIdAlreadyInUse,
7237 _ => GroupUpdateError::Other,
7238 };
7239 crate::eat_json_fields(&mut map)?;
7240 Ok(value)
7241 }
7242 }
7243 const VARIANTS: &[&str] = &["group_not_found",
7244 "other",
7245 "system_managed_group_disallowed",
7246 "group_name_already_used",
7247 "group_name_invalid",
7248 "external_id_already_in_use"];
7249 deserializer.deserialize_struct("GroupUpdateError", VARIANTS, EnumVisitor)
7250 }
7251}
7252
7253impl ::serde::ser::Serialize for GroupUpdateError {
7254 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7255 use serde::ser::SerializeStruct;
7257 match self {
7258 GroupUpdateError::GroupNotFound => {
7259 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7261 s.serialize_field(".tag", "group_not_found")?;
7262 s.end()
7263 }
7264 GroupUpdateError::SystemManagedGroupDisallowed => {
7265 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7267 s.serialize_field(".tag", "system_managed_group_disallowed")?;
7268 s.end()
7269 }
7270 GroupUpdateError::GroupNameAlreadyUsed => {
7271 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7273 s.serialize_field(".tag", "group_name_already_used")?;
7274 s.end()
7275 }
7276 GroupUpdateError::GroupNameInvalid => {
7277 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7279 s.serialize_field(".tag", "group_name_invalid")?;
7280 s.end()
7281 }
7282 GroupUpdateError::ExternalIdAlreadyInUse => {
7283 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7285 s.serialize_field(".tag", "external_id_already_in_use")?;
7286 s.end()
7287 }
7288 GroupUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7289 }
7290 }
7291}
7292
7293impl ::std::error::Error for GroupUpdateError {
7294}
7295
7296impl ::std::fmt::Display for GroupUpdateError {
7297 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7298 match self {
7299 GroupUpdateError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7300 GroupUpdateError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
7301 GroupUpdateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
7302 GroupUpdateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
7303 GroupUpdateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
7304 _ => write!(f, "{:?}", *self),
7305 }
7306 }
7307}
7308
7309impl From<GroupSelectorWithTeamGroupError> for GroupUpdateError {
7311 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
7312 match parent {
7313 GroupSelectorWithTeamGroupError::GroupNotFound => GroupUpdateError::GroupNotFound,
7314 GroupSelectorWithTeamGroupError::Other => GroupUpdateError::Other,
7315 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupUpdateError::SystemManagedGroupDisallowed,
7316 }
7317 }
7318}
7319#[derive(Debug, Clone, PartialEq, Eq)]
7320#[non_exhaustive] pub enum GroupsGetInfoError {
7322 GroupNotOnTeam,
7324 Other,
7327}
7328
7329impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoError {
7330 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7331 use serde::de::{self, MapAccess, Visitor};
7333 struct EnumVisitor;
7334 impl<'de> Visitor<'de> for EnumVisitor {
7335 type Value = GroupsGetInfoError;
7336 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7337 f.write_str("a GroupsGetInfoError structure")
7338 }
7339 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7340 let tag: &str = match map.next_key()? {
7341 Some(".tag") => map.next_value()?,
7342 _ => return Err(de::Error::missing_field(".tag"))
7343 };
7344 let value = match tag {
7345 "group_not_on_team" => GroupsGetInfoError::GroupNotOnTeam,
7346 _ => GroupsGetInfoError::Other,
7347 };
7348 crate::eat_json_fields(&mut map)?;
7349 Ok(value)
7350 }
7351 }
7352 const VARIANTS: &[&str] = &["group_not_on_team",
7353 "other"];
7354 deserializer.deserialize_struct("GroupsGetInfoError", VARIANTS, EnumVisitor)
7355 }
7356}
7357
7358impl ::serde::ser::Serialize for GroupsGetInfoError {
7359 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7360 use serde::ser::SerializeStruct;
7362 match self {
7363 GroupsGetInfoError::GroupNotOnTeam => {
7364 let mut s = serializer.serialize_struct("GroupsGetInfoError", 1)?;
7366 s.serialize_field(".tag", "group_not_on_team")?;
7367 s.end()
7368 }
7369 GroupsGetInfoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7370 }
7371 }
7372}
7373
7374impl ::std::error::Error for GroupsGetInfoError {
7375}
7376
7377impl ::std::fmt::Display for GroupsGetInfoError {
7378 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7379 match self {
7380 GroupsGetInfoError::GroupNotOnTeam => f.write_str("The group is not on your team."),
7381 _ => write!(f, "{:?}", *self),
7382 }
7383 }
7384}
7385
7386#[derive(Debug, Clone, PartialEq, Eq)]
7387pub enum GroupsGetInfoItem {
7388 IdNotFound(String),
7392 GroupInfo(GroupFullInfo),
7394}
7395
7396impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoItem {
7397 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7398 use serde::de::{self, MapAccess, Visitor};
7400 struct EnumVisitor;
7401 impl<'de> Visitor<'de> for EnumVisitor {
7402 type Value = GroupsGetInfoItem;
7403 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7404 f.write_str("a GroupsGetInfoItem structure")
7405 }
7406 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7407 let tag: &str = match map.next_key()? {
7408 Some(".tag") => map.next_value()?,
7409 _ => return Err(de::Error::missing_field(".tag"))
7410 };
7411 let value = match tag {
7412 "id_not_found" => {
7413 match map.next_key()? {
7414 Some("id_not_found") => GroupsGetInfoItem::IdNotFound(map.next_value()?),
7415 None => return Err(de::Error::missing_field("id_not_found")),
7416 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7417 }
7418 }
7419 "group_info" => GroupsGetInfoItem::GroupInfo(GroupFullInfo::internal_deserialize(&mut map)?),
7420 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
7421 };
7422 crate::eat_json_fields(&mut map)?;
7423 Ok(value)
7424 }
7425 }
7426 const VARIANTS: &[&str] = &["id_not_found",
7427 "group_info"];
7428 deserializer.deserialize_struct("GroupsGetInfoItem", VARIANTS, EnumVisitor)
7429 }
7430}
7431
7432impl ::serde::ser::Serialize for GroupsGetInfoItem {
7433 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7434 use serde::ser::SerializeStruct;
7436 match self {
7437 GroupsGetInfoItem::IdNotFound(x) => {
7438 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 2)?;
7440 s.serialize_field(".tag", "id_not_found")?;
7441 s.serialize_field("id_not_found", x)?;
7442 s.end()
7443 }
7444 GroupsGetInfoItem::GroupInfo(x) => {
7445 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 8)?;
7447 s.serialize_field(".tag", "group_info")?;
7448 x.internal_serialize::<S>(&mut s)?;
7449 s.end()
7450 }
7451 }
7452 }
7453}
7454
7455#[derive(Debug, Clone, PartialEq, Eq)]
7456#[non_exhaustive] pub struct GroupsListArg {
7458 pub limit: u32,
7460}
7461
7462impl Default for GroupsListArg {
7463 fn default() -> Self {
7464 GroupsListArg {
7465 limit: 1000,
7466 }
7467 }
7468}
7469
7470impl GroupsListArg {
7471 pub fn with_limit(mut self, value: u32) -> Self {
7472 self.limit = value;
7473 self
7474 }
7475}
7476
7477const GROUPS_LIST_ARG_FIELDS: &[&str] = &["limit"];
7478impl GroupsListArg {
7479 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7481 mut map: V,
7482 ) -> Result<GroupsListArg, V::Error> {
7483 let mut field_limit = None;
7484 while let Some(key) = map.next_key::<&str>()? {
7485 match key {
7486 "limit" => {
7487 if field_limit.is_some() {
7488 return Err(::serde::de::Error::duplicate_field("limit"));
7489 }
7490 field_limit = Some(map.next_value()?);
7491 }
7492 _ => {
7493 map.next_value::<::serde_json::Value>()?;
7495 }
7496 }
7497 }
7498 let result = GroupsListArg {
7499 limit: field_limit.unwrap_or(1000),
7500 };
7501 Ok(result)
7502 }
7503
7504 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7505 &self,
7506 s: &mut S::SerializeStruct,
7507 ) -> Result<(), S::Error> {
7508 use serde::ser::SerializeStruct;
7509 if self.limit != 1000 {
7510 s.serialize_field("limit", &self.limit)?;
7511 }
7512 Ok(())
7513 }
7514}
7515
7516impl<'de> ::serde::de::Deserialize<'de> for GroupsListArg {
7517 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7518 use serde::de::{MapAccess, Visitor};
7520 struct StructVisitor;
7521 impl<'de> Visitor<'de> for StructVisitor {
7522 type Value = GroupsListArg;
7523 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7524 f.write_str("a GroupsListArg struct")
7525 }
7526 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7527 GroupsListArg::internal_deserialize(map)
7528 }
7529 }
7530 deserializer.deserialize_struct("GroupsListArg", GROUPS_LIST_ARG_FIELDS, StructVisitor)
7531 }
7532}
7533
7534impl ::serde::ser::Serialize for GroupsListArg {
7535 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7536 use serde::ser::SerializeStruct;
7538 let mut s = serializer.serialize_struct("GroupsListArg", 1)?;
7539 self.internal_serialize::<S>(&mut s)?;
7540 s.end()
7541 }
7542}
7543
7544#[derive(Debug, Clone, PartialEq, Eq)]
7545#[non_exhaustive] pub struct GroupsListContinueArg {
7547 pub cursor: String,
7549}
7550
7551impl GroupsListContinueArg {
7552 pub fn new(cursor: String) -> Self {
7553 GroupsListContinueArg {
7554 cursor,
7555 }
7556 }
7557}
7558
7559const GROUPS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
7560impl GroupsListContinueArg {
7561 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7562 map: V,
7563 ) -> Result<GroupsListContinueArg, V::Error> {
7564 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7565 }
7566
7567 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7568 mut map: V,
7569 optional: bool,
7570 ) -> Result<Option<GroupsListContinueArg>, V::Error> {
7571 let mut field_cursor = None;
7572 let mut nothing = true;
7573 while let Some(key) = map.next_key::<&str>()? {
7574 nothing = false;
7575 match key {
7576 "cursor" => {
7577 if field_cursor.is_some() {
7578 return Err(::serde::de::Error::duplicate_field("cursor"));
7579 }
7580 field_cursor = Some(map.next_value()?);
7581 }
7582 _ => {
7583 map.next_value::<::serde_json::Value>()?;
7585 }
7586 }
7587 }
7588 if optional && nothing {
7589 return Ok(None);
7590 }
7591 let result = GroupsListContinueArg {
7592 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7593 };
7594 Ok(Some(result))
7595 }
7596
7597 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7598 &self,
7599 s: &mut S::SerializeStruct,
7600 ) -> Result<(), S::Error> {
7601 use serde::ser::SerializeStruct;
7602 s.serialize_field("cursor", &self.cursor)?;
7603 Ok(())
7604 }
7605}
7606
7607impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueArg {
7608 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7609 use serde::de::{MapAccess, Visitor};
7611 struct StructVisitor;
7612 impl<'de> Visitor<'de> for StructVisitor {
7613 type Value = GroupsListContinueArg;
7614 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7615 f.write_str("a GroupsListContinueArg struct")
7616 }
7617 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7618 GroupsListContinueArg::internal_deserialize(map)
7619 }
7620 }
7621 deserializer.deserialize_struct("GroupsListContinueArg", GROUPS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
7622 }
7623}
7624
7625impl ::serde::ser::Serialize for GroupsListContinueArg {
7626 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7627 use serde::ser::SerializeStruct;
7629 let mut s = serializer.serialize_struct("GroupsListContinueArg", 1)?;
7630 self.internal_serialize::<S>(&mut s)?;
7631 s.end()
7632 }
7633}
7634
7635#[derive(Debug, Clone, PartialEq, Eq)]
7636#[non_exhaustive] pub enum GroupsListContinueError {
7638 InvalidCursor,
7640 Other,
7643}
7644
7645impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueError {
7646 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7647 use serde::de::{self, MapAccess, Visitor};
7649 struct EnumVisitor;
7650 impl<'de> Visitor<'de> for EnumVisitor {
7651 type Value = GroupsListContinueError;
7652 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7653 f.write_str("a GroupsListContinueError structure")
7654 }
7655 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7656 let tag: &str = match map.next_key()? {
7657 Some(".tag") => map.next_value()?,
7658 _ => return Err(de::Error::missing_field(".tag"))
7659 };
7660 let value = match tag {
7661 "invalid_cursor" => GroupsListContinueError::InvalidCursor,
7662 _ => GroupsListContinueError::Other,
7663 };
7664 crate::eat_json_fields(&mut map)?;
7665 Ok(value)
7666 }
7667 }
7668 const VARIANTS: &[&str] = &["invalid_cursor",
7669 "other"];
7670 deserializer.deserialize_struct("GroupsListContinueError", VARIANTS, EnumVisitor)
7671 }
7672}
7673
7674impl ::serde::ser::Serialize for GroupsListContinueError {
7675 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7676 use serde::ser::SerializeStruct;
7678 match self {
7679 GroupsListContinueError::InvalidCursor => {
7680 let mut s = serializer.serialize_struct("GroupsListContinueError", 1)?;
7682 s.serialize_field(".tag", "invalid_cursor")?;
7683 s.end()
7684 }
7685 GroupsListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7686 }
7687 }
7688}
7689
7690impl ::std::error::Error for GroupsListContinueError {
7691}
7692
7693impl ::std::fmt::Display for GroupsListContinueError {
7694 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7695 match self {
7696 GroupsListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
7697 _ => write!(f, "{:?}", *self),
7698 }
7699 }
7700}
7701
7702#[derive(Debug, Clone, PartialEq, Eq)]
7703#[non_exhaustive] pub struct GroupsListResult {
7705 pub groups: Vec<crate::types::team_common::GroupSummary>,
7706 pub cursor: String,
7709 pub has_more: bool,
7712}
7713
7714impl GroupsListResult {
7715 pub fn new(
7716 groups: Vec<crate::types::team_common::GroupSummary>,
7717 cursor: String,
7718 has_more: bool,
7719 ) -> Self {
7720 GroupsListResult {
7721 groups,
7722 cursor,
7723 has_more,
7724 }
7725 }
7726}
7727
7728const GROUPS_LIST_RESULT_FIELDS: &[&str] = &["groups",
7729 "cursor",
7730 "has_more"];
7731impl GroupsListResult {
7732 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7733 map: V,
7734 ) -> Result<GroupsListResult, V::Error> {
7735 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7736 }
7737
7738 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7739 mut map: V,
7740 optional: bool,
7741 ) -> Result<Option<GroupsListResult>, V::Error> {
7742 let mut field_groups = None;
7743 let mut field_cursor = None;
7744 let mut field_has_more = None;
7745 let mut nothing = true;
7746 while let Some(key) = map.next_key::<&str>()? {
7747 nothing = false;
7748 match key {
7749 "groups" => {
7750 if field_groups.is_some() {
7751 return Err(::serde::de::Error::duplicate_field("groups"));
7752 }
7753 field_groups = Some(map.next_value()?);
7754 }
7755 "cursor" => {
7756 if field_cursor.is_some() {
7757 return Err(::serde::de::Error::duplicate_field("cursor"));
7758 }
7759 field_cursor = Some(map.next_value()?);
7760 }
7761 "has_more" => {
7762 if field_has_more.is_some() {
7763 return Err(::serde::de::Error::duplicate_field("has_more"));
7764 }
7765 field_has_more = Some(map.next_value()?);
7766 }
7767 _ => {
7768 map.next_value::<::serde_json::Value>()?;
7770 }
7771 }
7772 }
7773 if optional && nothing {
7774 return Ok(None);
7775 }
7776 let result = GroupsListResult {
7777 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
7778 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7779 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
7780 };
7781 Ok(Some(result))
7782 }
7783
7784 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7785 &self,
7786 s: &mut S::SerializeStruct,
7787 ) -> Result<(), S::Error> {
7788 use serde::ser::SerializeStruct;
7789 s.serialize_field("groups", &self.groups)?;
7790 s.serialize_field("cursor", &self.cursor)?;
7791 s.serialize_field("has_more", &self.has_more)?;
7792 Ok(())
7793 }
7794}
7795
7796impl<'de> ::serde::de::Deserialize<'de> for GroupsListResult {
7797 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7798 use serde::de::{MapAccess, Visitor};
7800 struct StructVisitor;
7801 impl<'de> Visitor<'de> for StructVisitor {
7802 type Value = GroupsListResult;
7803 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7804 f.write_str("a GroupsListResult struct")
7805 }
7806 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7807 GroupsListResult::internal_deserialize(map)
7808 }
7809 }
7810 deserializer.deserialize_struct("GroupsListResult", GROUPS_LIST_RESULT_FIELDS, StructVisitor)
7811 }
7812}
7813
7814impl ::serde::ser::Serialize for GroupsListResult {
7815 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7816 use serde::ser::SerializeStruct;
7818 let mut s = serializer.serialize_struct("GroupsListResult", 3)?;
7819 self.internal_serialize::<S>(&mut s)?;
7820 s.end()
7821 }
7822}
7823
7824#[derive(Debug, Clone, PartialEq, Eq)]
7825#[non_exhaustive] pub struct GroupsMembersListArg {
7827 pub group: GroupSelector,
7829 pub limit: u32,
7831}
7832
7833impl GroupsMembersListArg {
7834 pub fn new(group: GroupSelector) -> Self {
7835 GroupsMembersListArg {
7836 group,
7837 limit: 1000,
7838 }
7839 }
7840
7841 pub fn with_limit(mut self, value: u32) -> Self {
7842 self.limit = value;
7843 self
7844 }
7845}
7846
7847const GROUPS_MEMBERS_LIST_ARG_FIELDS: &[&str] = &["group",
7848 "limit"];
7849impl GroupsMembersListArg {
7850 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7851 map: V,
7852 ) -> Result<GroupsMembersListArg, V::Error> {
7853 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7854 }
7855
7856 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7857 mut map: V,
7858 optional: bool,
7859 ) -> Result<Option<GroupsMembersListArg>, V::Error> {
7860 let mut field_group = None;
7861 let mut field_limit = None;
7862 let mut nothing = true;
7863 while let Some(key) = map.next_key::<&str>()? {
7864 nothing = false;
7865 match key {
7866 "group" => {
7867 if field_group.is_some() {
7868 return Err(::serde::de::Error::duplicate_field("group"));
7869 }
7870 field_group = Some(map.next_value()?);
7871 }
7872 "limit" => {
7873 if field_limit.is_some() {
7874 return Err(::serde::de::Error::duplicate_field("limit"));
7875 }
7876 field_limit = Some(map.next_value()?);
7877 }
7878 _ => {
7879 map.next_value::<::serde_json::Value>()?;
7881 }
7882 }
7883 }
7884 if optional && nothing {
7885 return Ok(None);
7886 }
7887 let result = GroupsMembersListArg {
7888 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7889 limit: field_limit.unwrap_or(1000),
7890 };
7891 Ok(Some(result))
7892 }
7893
7894 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7895 &self,
7896 s: &mut S::SerializeStruct,
7897 ) -> Result<(), S::Error> {
7898 use serde::ser::SerializeStruct;
7899 s.serialize_field("group", &self.group)?;
7900 if self.limit != 1000 {
7901 s.serialize_field("limit", &self.limit)?;
7902 }
7903 Ok(())
7904 }
7905}
7906
7907impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListArg {
7908 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7909 use serde::de::{MapAccess, Visitor};
7911 struct StructVisitor;
7912 impl<'de> Visitor<'de> for StructVisitor {
7913 type Value = GroupsMembersListArg;
7914 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7915 f.write_str("a GroupsMembersListArg struct")
7916 }
7917 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7918 GroupsMembersListArg::internal_deserialize(map)
7919 }
7920 }
7921 deserializer.deserialize_struct("GroupsMembersListArg", GROUPS_MEMBERS_LIST_ARG_FIELDS, StructVisitor)
7922 }
7923}
7924
7925impl ::serde::ser::Serialize for GroupsMembersListArg {
7926 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7927 use serde::ser::SerializeStruct;
7929 let mut s = serializer.serialize_struct("GroupsMembersListArg", 2)?;
7930 self.internal_serialize::<S>(&mut s)?;
7931 s.end()
7932 }
7933}
7934
7935#[derive(Debug, Clone, PartialEq, Eq)]
7936#[non_exhaustive] pub struct GroupsMembersListContinueArg {
7938 pub cursor: String,
7940}
7941
7942impl GroupsMembersListContinueArg {
7943 pub fn new(cursor: String) -> Self {
7944 GroupsMembersListContinueArg {
7945 cursor,
7946 }
7947 }
7948}
7949
7950const GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
7951impl GroupsMembersListContinueArg {
7952 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7953 map: V,
7954 ) -> Result<GroupsMembersListContinueArg, V::Error> {
7955 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7956 }
7957
7958 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7959 mut map: V,
7960 optional: bool,
7961 ) -> Result<Option<GroupsMembersListContinueArg>, V::Error> {
7962 let mut field_cursor = None;
7963 let mut nothing = true;
7964 while let Some(key) = map.next_key::<&str>()? {
7965 nothing = false;
7966 match key {
7967 "cursor" => {
7968 if field_cursor.is_some() {
7969 return Err(::serde::de::Error::duplicate_field("cursor"));
7970 }
7971 field_cursor = Some(map.next_value()?);
7972 }
7973 _ => {
7974 map.next_value::<::serde_json::Value>()?;
7976 }
7977 }
7978 }
7979 if optional && nothing {
7980 return Ok(None);
7981 }
7982 let result = GroupsMembersListContinueArg {
7983 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7984 };
7985 Ok(Some(result))
7986 }
7987
7988 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7989 &self,
7990 s: &mut S::SerializeStruct,
7991 ) -> Result<(), S::Error> {
7992 use serde::ser::SerializeStruct;
7993 s.serialize_field("cursor", &self.cursor)?;
7994 Ok(())
7995 }
7996}
7997
7998impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueArg {
7999 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8000 use serde::de::{MapAccess, Visitor};
8002 struct StructVisitor;
8003 impl<'de> Visitor<'de> for StructVisitor {
8004 type Value = GroupsMembersListContinueArg;
8005 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8006 f.write_str("a GroupsMembersListContinueArg struct")
8007 }
8008 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8009 GroupsMembersListContinueArg::internal_deserialize(map)
8010 }
8011 }
8012 deserializer.deserialize_struct("GroupsMembersListContinueArg", GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
8013 }
8014}
8015
8016impl ::serde::ser::Serialize for GroupsMembersListContinueArg {
8017 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8018 use serde::ser::SerializeStruct;
8020 let mut s = serializer.serialize_struct("GroupsMembersListContinueArg", 1)?;
8021 self.internal_serialize::<S>(&mut s)?;
8022 s.end()
8023 }
8024}
8025
8026#[derive(Debug, Clone, PartialEq, Eq)]
8027#[non_exhaustive] pub enum GroupsMembersListContinueError {
8029 InvalidCursor,
8031 Other,
8034}
8035
8036impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueError {
8037 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8038 use serde::de::{self, MapAccess, Visitor};
8040 struct EnumVisitor;
8041 impl<'de> Visitor<'de> for EnumVisitor {
8042 type Value = GroupsMembersListContinueError;
8043 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8044 f.write_str("a GroupsMembersListContinueError structure")
8045 }
8046 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8047 let tag: &str = match map.next_key()? {
8048 Some(".tag") => map.next_value()?,
8049 _ => return Err(de::Error::missing_field(".tag"))
8050 };
8051 let value = match tag {
8052 "invalid_cursor" => GroupsMembersListContinueError::InvalidCursor,
8053 _ => GroupsMembersListContinueError::Other,
8054 };
8055 crate::eat_json_fields(&mut map)?;
8056 Ok(value)
8057 }
8058 }
8059 const VARIANTS: &[&str] = &["invalid_cursor",
8060 "other"];
8061 deserializer.deserialize_struct("GroupsMembersListContinueError", VARIANTS, EnumVisitor)
8062 }
8063}
8064
8065impl ::serde::ser::Serialize for GroupsMembersListContinueError {
8066 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8067 use serde::ser::SerializeStruct;
8069 match self {
8070 GroupsMembersListContinueError::InvalidCursor => {
8071 let mut s = serializer.serialize_struct("GroupsMembersListContinueError", 1)?;
8073 s.serialize_field(".tag", "invalid_cursor")?;
8074 s.end()
8075 }
8076 GroupsMembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8077 }
8078 }
8079}
8080
8081impl ::std::error::Error for GroupsMembersListContinueError {
8082}
8083
8084impl ::std::fmt::Display for GroupsMembersListContinueError {
8085 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8086 match self {
8087 GroupsMembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
8088 _ => write!(f, "{:?}", *self),
8089 }
8090 }
8091}
8092
8093#[derive(Debug, Clone, PartialEq, Eq)]
8094#[non_exhaustive] pub struct GroupsMembersListResult {
8096 pub members: Vec<GroupMemberInfo>,
8097 pub cursor: String,
8101 pub has_more: bool,
8105}
8106
8107impl GroupsMembersListResult {
8108 pub fn new(members: Vec<GroupMemberInfo>, cursor: String, has_more: bool) -> Self {
8109 GroupsMembersListResult {
8110 members,
8111 cursor,
8112 has_more,
8113 }
8114 }
8115}
8116
8117const GROUPS_MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
8118 "cursor",
8119 "has_more"];
8120impl GroupsMembersListResult {
8121 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8122 map: V,
8123 ) -> Result<GroupsMembersListResult, V::Error> {
8124 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8125 }
8126
8127 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8128 mut map: V,
8129 optional: bool,
8130 ) -> Result<Option<GroupsMembersListResult>, V::Error> {
8131 let mut field_members = None;
8132 let mut field_cursor = None;
8133 let mut field_has_more = None;
8134 let mut nothing = true;
8135 while let Some(key) = map.next_key::<&str>()? {
8136 nothing = false;
8137 match key {
8138 "members" => {
8139 if field_members.is_some() {
8140 return Err(::serde::de::Error::duplicate_field("members"));
8141 }
8142 field_members = Some(map.next_value()?);
8143 }
8144 "cursor" => {
8145 if field_cursor.is_some() {
8146 return Err(::serde::de::Error::duplicate_field("cursor"));
8147 }
8148 field_cursor = Some(map.next_value()?);
8149 }
8150 "has_more" => {
8151 if field_has_more.is_some() {
8152 return Err(::serde::de::Error::duplicate_field("has_more"));
8153 }
8154 field_has_more = Some(map.next_value()?);
8155 }
8156 _ => {
8157 map.next_value::<::serde_json::Value>()?;
8159 }
8160 }
8161 }
8162 if optional && nothing {
8163 return Ok(None);
8164 }
8165 let result = GroupsMembersListResult {
8166 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
8167 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
8168 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
8169 };
8170 Ok(Some(result))
8171 }
8172
8173 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8174 &self,
8175 s: &mut S::SerializeStruct,
8176 ) -> Result<(), S::Error> {
8177 use serde::ser::SerializeStruct;
8178 s.serialize_field("members", &self.members)?;
8179 s.serialize_field("cursor", &self.cursor)?;
8180 s.serialize_field("has_more", &self.has_more)?;
8181 Ok(())
8182 }
8183}
8184
8185impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListResult {
8186 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8187 use serde::de::{MapAccess, Visitor};
8189 struct StructVisitor;
8190 impl<'de> Visitor<'de> for StructVisitor {
8191 type Value = GroupsMembersListResult;
8192 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8193 f.write_str("a GroupsMembersListResult struct")
8194 }
8195 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8196 GroupsMembersListResult::internal_deserialize(map)
8197 }
8198 }
8199 deserializer.deserialize_struct("GroupsMembersListResult", GROUPS_MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
8200 }
8201}
8202
8203impl ::serde::ser::Serialize for GroupsMembersListResult {
8204 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8205 use serde::ser::SerializeStruct;
8207 let mut s = serializer.serialize_struct("GroupsMembersListResult", 3)?;
8208 self.internal_serialize::<S>(&mut s)?;
8209 s.end()
8210 }
8211}
8212
8213#[derive(Debug, Clone, PartialEq, Eq)]
8214#[non_exhaustive] pub enum GroupsPollError {
8216 InvalidAsyncJobId,
8218 InternalError,
8221 AccessDenied,
8223 Other,
8226}
8227
8228impl<'de> ::serde::de::Deserialize<'de> for GroupsPollError {
8229 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8230 use serde::de::{self, MapAccess, Visitor};
8232 struct EnumVisitor;
8233 impl<'de> Visitor<'de> for EnumVisitor {
8234 type Value = GroupsPollError;
8235 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8236 f.write_str("a GroupsPollError structure")
8237 }
8238 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8239 let tag: &str = match map.next_key()? {
8240 Some(".tag") => map.next_value()?,
8241 _ => return Err(de::Error::missing_field(".tag"))
8242 };
8243 let value = match tag {
8244 "invalid_async_job_id" => GroupsPollError::InvalidAsyncJobId,
8245 "internal_error" => GroupsPollError::InternalError,
8246 "access_denied" => GroupsPollError::AccessDenied,
8247 _ => GroupsPollError::Other,
8248 };
8249 crate::eat_json_fields(&mut map)?;
8250 Ok(value)
8251 }
8252 }
8253 const VARIANTS: &[&str] = &["invalid_async_job_id",
8254 "internal_error",
8255 "other",
8256 "access_denied"];
8257 deserializer.deserialize_struct("GroupsPollError", VARIANTS, EnumVisitor)
8258 }
8259}
8260
8261impl ::serde::ser::Serialize for GroupsPollError {
8262 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8263 use serde::ser::SerializeStruct;
8265 match self {
8266 GroupsPollError::InvalidAsyncJobId => {
8267 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8269 s.serialize_field(".tag", "invalid_async_job_id")?;
8270 s.end()
8271 }
8272 GroupsPollError::InternalError => {
8273 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8275 s.serialize_field(".tag", "internal_error")?;
8276 s.end()
8277 }
8278 GroupsPollError::AccessDenied => {
8279 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8281 s.serialize_field(".tag", "access_denied")?;
8282 s.end()
8283 }
8284 GroupsPollError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8285 }
8286 }
8287}
8288
8289impl ::std::error::Error for GroupsPollError {
8290}
8291
8292impl ::std::fmt::Display for GroupsPollError {
8293 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8294 match self {
8295 GroupsPollError::InvalidAsyncJobId => f.write_str("The job ID is invalid."),
8296 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."),
8297 GroupsPollError::AccessDenied => f.write_str("You are not allowed to poll this job."),
8298 _ => write!(f, "{:?}", *self),
8299 }
8300 }
8301}
8302
8303impl From<crate::types::dbx_async::PollError> for GroupsPollError {
8305 fn from(parent: crate::types::dbx_async::PollError) -> Self {
8306 match parent {
8307 crate::types::dbx_async::PollError::InvalidAsyncJobId => GroupsPollError::InvalidAsyncJobId,
8308 crate::types::dbx_async::PollError::InternalError => GroupsPollError::InternalError,
8309 crate::types::dbx_async::PollError::Other => GroupsPollError::Other,
8310 }
8311 }
8312}
8313#[derive(Debug, Clone, PartialEq, Eq)]
8315pub enum GroupsSelector {
8316 GroupIds(Vec<crate::types::team_common::GroupId>),
8318 GroupExternalIds(Vec<String>),
8320}
8321
8322impl<'de> ::serde::de::Deserialize<'de> for GroupsSelector {
8323 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8324 use serde::de::{self, MapAccess, Visitor};
8326 struct EnumVisitor;
8327 impl<'de> Visitor<'de> for EnumVisitor {
8328 type Value = GroupsSelector;
8329 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8330 f.write_str("a GroupsSelector structure")
8331 }
8332 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8333 let tag: &str = match map.next_key()? {
8334 Some(".tag") => map.next_value()?,
8335 _ => return Err(de::Error::missing_field(".tag"))
8336 };
8337 let value = match tag {
8338 "group_ids" => {
8339 match map.next_key()? {
8340 Some("group_ids") => GroupsSelector::GroupIds(map.next_value()?),
8341 None => return Err(de::Error::missing_field("group_ids")),
8342 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8343 }
8344 }
8345 "group_external_ids" => {
8346 match map.next_key()? {
8347 Some("group_external_ids") => GroupsSelector::GroupExternalIds(map.next_value()?),
8348 None => return Err(de::Error::missing_field("group_external_ids")),
8349 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8350 }
8351 }
8352 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
8353 };
8354 crate::eat_json_fields(&mut map)?;
8355 Ok(value)
8356 }
8357 }
8358 const VARIANTS: &[&str] = &["group_ids",
8359 "group_external_ids"];
8360 deserializer.deserialize_struct("GroupsSelector", VARIANTS, EnumVisitor)
8361 }
8362}
8363
8364impl ::serde::ser::Serialize for GroupsSelector {
8365 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8366 use serde::ser::SerializeStruct;
8368 match self {
8369 GroupsSelector::GroupIds(x) => {
8370 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
8372 s.serialize_field(".tag", "group_ids")?;
8373 s.serialize_field("group_ids", x)?;
8374 s.end()
8375 }
8376 GroupsSelector::GroupExternalIds(x) => {
8377 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
8379 s.serialize_field(".tag", "group_external_ids")?;
8380 s.serialize_field("group_external_ids", x)?;
8381 s.end()
8382 }
8383 }
8384 }
8385}
8386
8387#[derive(Debug, Clone, PartialEq, Eq)]
8389#[non_exhaustive] pub enum HasDistinctMemberHomesValue {
8391 HasDistinctMemberHomes(bool),
8393 Other,
8396}
8397
8398impl<'de> ::serde::de::Deserialize<'de> for HasDistinctMemberHomesValue {
8399 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8400 use serde::de::{self, MapAccess, Visitor};
8402 struct EnumVisitor;
8403 impl<'de> Visitor<'de> for EnumVisitor {
8404 type Value = HasDistinctMemberHomesValue;
8405 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8406 f.write_str("a HasDistinctMemberHomesValue structure")
8407 }
8408 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8409 let tag: &str = match map.next_key()? {
8410 Some(".tag") => map.next_value()?,
8411 _ => return Err(de::Error::missing_field(".tag"))
8412 };
8413 let value = match tag {
8414 "has_distinct_member_homes" => {
8415 match map.next_key()? {
8416 Some("has_distinct_member_homes") => HasDistinctMemberHomesValue::HasDistinctMemberHomes(map.next_value()?),
8417 None => return Err(de::Error::missing_field("has_distinct_member_homes")),
8418 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8419 }
8420 }
8421 _ => HasDistinctMemberHomesValue::Other,
8422 };
8423 crate::eat_json_fields(&mut map)?;
8424 Ok(value)
8425 }
8426 }
8427 const VARIANTS: &[&str] = &["has_distinct_member_homes",
8428 "other"];
8429 deserializer.deserialize_struct("HasDistinctMemberHomesValue", VARIANTS, EnumVisitor)
8430 }
8431}
8432
8433impl ::serde::ser::Serialize for HasDistinctMemberHomesValue {
8434 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8435 use serde::ser::SerializeStruct;
8437 match self {
8438 HasDistinctMemberHomesValue::HasDistinctMemberHomes(x) => {
8439 let mut s = serializer.serialize_struct("HasDistinctMemberHomesValue", 2)?;
8441 s.serialize_field(".tag", "has_distinct_member_homes")?;
8442 s.serialize_field("has_distinct_member_homes", x)?;
8443 s.end()
8444 }
8445 HasDistinctMemberHomesValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8446 }
8447 }
8448}
8449
8450#[derive(Debug, Clone, PartialEq, Eq)]
8452#[non_exhaustive] pub enum HasTeamFileEventsValue {
8454 Enabled(bool),
8456 Other,
8459}
8460
8461impl<'de> ::serde::de::Deserialize<'de> for HasTeamFileEventsValue {
8462 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8463 use serde::de::{self, MapAccess, Visitor};
8465 struct EnumVisitor;
8466 impl<'de> Visitor<'de> for EnumVisitor {
8467 type Value = HasTeamFileEventsValue;
8468 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8469 f.write_str("a HasTeamFileEventsValue structure")
8470 }
8471 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8472 let tag: &str = match map.next_key()? {
8473 Some(".tag") => map.next_value()?,
8474 _ => return Err(de::Error::missing_field(".tag"))
8475 };
8476 let value = match tag {
8477 "enabled" => {
8478 match map.next_key()? {
8479 Some("enabled") => HasTeamFileEventsValue::Enabled(map.next_value()?),
8480 None => return Err(de::Error::missing_field("enabled")),
8481 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8482 }
8483 }
8484 _ => HasTeamFileEventsValue::Other,
8485 };
8486 crate::eat_json_fields(&mut map)?;
8487 Ok(value)
8488 }
8489 }
8490 const VARIANTS: &[&str] = &["enabled",
8491 "other"];
8492 deserializer.deserialize_struct("HasTeamFileEventsValue", VARIANTS, EnumVisitor)
8493 }
8494}
8495
8496impl ::serde::ser::Serialize for HasTeamFileEventsValue {
8497 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8498 use serde::ser::SerializeStruct;
8500 match self {
8501 HasTeamFileEventsValue::Enabled(x) => {
8502 let mut s = serializer.serialize_struct("HasTeamFileEventsValue", 2)?;
8504 s.serialize_field(".tag", "enabled")?;
8505 s.serialize_field("enabled", x)?;
8506 s.end()
8507 }
8508 HasTeamFileEventsValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8509 }
8510 }
8511}
8512
8513#[derive(Debug, Clone, PartialEq, Eq)]
8515#[non_exhaustive] pub enum HasTeamSelectiveSyncValue {
8517 HasTeamSelectiveSync(bool),
8519 Other,
8522}
8523
8524impl<'de> ::serde::de::Deserialize<'de> for HasTeamSelectiveSyncValue {
8525 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8526 use serde::de::{self, MapAccess, Visitor};
8528 struct EnumVisitor;
8529 impl<'de> Visitor<'de> for EnumVisitor {
8530 type Value = HasTeamSelectiveSyncValue;
8531 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8532 f.write_str("a HasTeamSelectiveSyncValue structure")
8533 }
8534 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8535 let tag: &str = match map.next_key()? {
8536 Some(".tag") => map.next_value()?,
8537 _ => return Err(de::Error::missing_field(".tag"))
8538 };
8539 let value = match tag {
8540 "has_team_selective_sync" => {
8541 match map.next_key()? {
8542 Some("has_team_selective_sync") => HasTeamSelectiveSyncValue::HasTeamSelectiveSync(map.next_value()?),
8543 None => return Err(de::Error::missing_field("has_team_selective_sync")),
8544 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8545 }
8546 }
8547 _ => HasTeamSelectiveSyncValue::Other,
8548 };
8549 crate::eat_json_fields(&mut map)?;
8550 Ok(value)
8551 }
8552 }
8553 const VARIANTS: &[&str] = &["has_team_selective_sync",
8554 "other"];
8555 deserializer.deserialize_struct("HasTeamSelectiveSyncValue", VARIANTS, EnumVisitor)
8556 }
8557}
8558
8559impl ::serde::ser::Serialize for HasTeamSelectiveSyncValue {
8560 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8561 use serde::ser::SerializeStruct;
8563 match self {
8564 HasTeamSelectiveSyncValue::HasTeamSelectiveSync(x) => {
8565 let mut s = serializer.serialize_struct("HasTeamSelectiveSyncValue", 2)?;
8567 s.serialize_field(".tag", "has_team_selective_sync")?;
8568 s.serialize_field("has_team_selective_sync", x)?;
8569 s.end()
8570 }
8571 HasTeamSelectiveSyncValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8572 }
8573 }
8574}
8575
8576#[derive(Debug, Clone, PartialEq, Eq)]
8578#[non_exhaustive] pub enum HasTeamSharedDropboxValue {
8580 HasTeamSharedDropbox(bool),
8582 Other,
8585}
8586
8587impl<'de> ::serde::de::Deserialize<'de> for HasTeamSharedDropboxValue {
8588 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8589 use serde::de::{self, MapAccess, Visitor};
8591 struct EnumVisitor;
8592 impl<'de> Visitor<'de> for EnumVisitor {
8593 type Value = HasTeamSharedDropboxValue;
8594 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8595 f.write_str("a HasTeamSharedDropboxValue structure")
8596 }
8597 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8598 let tag: &str = match map.next_key()? {
8599 Some(".tag") => map.next_value()?,
8600 _ => return Err(de::Error::missing_field(".tag"))
8601 };
8602 let value = match tag {
8603 "has_team_shared_dropbox" => {
8604 match map.next_key()? {
8605 Some("has_team_shared_dropbox") => HasTeamSharedDropboxValue::HasTeamSharedDropbox(map.next_value()?),
8606 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
8607 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8608 }
8609 }
8610 _ => HasTeamSharedDropboxValue::Other,
8611 };
8612 crate::eat_json_fields(&mut map)?;
8613 Ok(value)
8614 }
8615 }
8616 const VARIANTS: &[&str] = &["has_team_shared_dropbox",
8617 "other"];
8618 deserializer.deserialize_struct("HasTeamSharedDropboxValue", VARIANTS, EnumVisitor)
8619 }
8620}
8621
8622impl ::serde::ser::Serialize for HasTeamSharedDropboxValue {
8623 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8624 use serde::ser::SerializeStruct;
8626 match self {
8627 HasTeamSharedDropboxValue::HasTeamSharedDropbox(x) => {
8628 let mut s = serializer.serialize_struct("HasTeamSharedDropboxValue", 2)?;
8630 s.serialize_field(".tag", "has_team_shared_dropbox")?;
8631 s.serialize_field("has_team_shared_dropbox", x)?;
8632 s.end()
8633 }
8634 HasTeamSharedDropboxValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8635 }
8636 }
8637}
8638
8639#[derive(Debug, Clone, PartialEq, Eq)]
8640#[non_exhaustive] pub struct IncludeMembersArg {
8642 pub return_members: bool,
8646}
8647
8648impl Default for IncludeMembersArg {
8649 fn default() -> Self {
8650 IncludeMembersArg {
8651 return_members: true,
8652 }
8653 }
8654}
8655
8656impl IncludeMembersArg {
8657 pub fn with_return_members(mut self, value: bool) -> Self {
8658 self.return_members = value;
8659 self
8660 }
8661}
8662
8663const INCLUDE_MEMBERS_ARG_FIELDS: &[&str] = &["return_members"];
8664impl IncludeMembersArg {
8665 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8667 mut map: V,
8668 ) -> Result<IncludeMembersArg, V::Error> {
8669 let mut field_return_members = None;
8670 while let Some(key) = map.next_key::<&str>()? {
8671 match key {
8672 "return_members" => {
8673 if field_return_members.is_some() {
8674 return Err(::serde::de::Error::duplicate_field("return_members"));
8675 }
8676 field_return_members = Some(map.next_value()?);
8677 }
8678 _ => {
8679 map.next_value::<::serde_json::Value>()?;
8681 }
8682 }
8683 }
8684 let result = IncludeMembersArg {
8685 return_members: field_return_members.unwrap_or(true),
8686 };
8687 Ok(result)
8688 }
8689
8690 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8691 &self,
8692 s: &mut S::SerializeStruct,
8693 ) -> Result<(), S::Error> {
8694 use serde::ser::SerializeStruct;
8695 if !self.return_members {
8696 s.serialize_field("return_members", &self.return_members)?;
8697 }
8698 Ok(())
8699 }
8700}
8701
8702impl<'de> ::serde::de::Deserialize<'de> for IncludeMembersArg {
8703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8704 use serde::de::{MapAccess, Visitor};
8706 struct StructVisitor;
8707 impl<'de> Visitor<'de> for StructVisitor {
8708 type Value = IncludeMembersArg;
8709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8710 f.write_str("a IncludeMembersArg struct")
8711 }
8712 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8713 IncludeMembersArg::internal_deserialize(map)
8714 }
8715 }
8716 deserializer.deserialize_struct("IncludeMembersArg", INCLUDE_MEMBERS_ARG_FIELDS, StructVisitor)
8717 }
8718}
8719
8720impl ::serde::ser::Serialize for IncludeMembersArg {
8721 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8722 use serde::ser::SerializeStruct;
8724 let mut s = serializer.serialize_struct("IncludeMembersArg", 1)?;
8725 self.internal_serialize::<S>(&mut s)?;
8726 s.end()
8727 }
8728}
8729
8730#[derive(Debug, Clone, PartialEq, Eq)]
8731#[non_exhaustive] pub struct LegalHoldHeldRevisionMetadata {
8733 pub new_filename: String,
8735 pub original_revision_id: crate::types::files::Rev,
8737 pub original_file_path: Path,
8739 pub server_modified: crate::types::common::DropboxTimestamp,
8741 pub author_member_id: crate::types::team_common::TeamMemberId,
8743 pub author_member_status: TeamMemberStatus,
8745 pub author_email: crate::types::common::EmailAddress,
8747 pub file_type: String,
8749 pub size: u64,
8751 pub content_hash: crate::types::files::Sha256HexHash,
8755}
8756
8757impl LegalHoldHeldRevisionMetadata {
8758 pub fn new(
8759 new_filename: String,
8760 original_revision_id: crate::types::files::Rev,
8761 original_file_path: Path,
8762 server_modified: crate::types::common::DropboxTimestamp,
8763 author_member_id: crate::types::team_common::TeamMemberId,
8764 author_member_status: TeamMemberStatus,
8765 author_email: crate::types::common::EmailAddress,
8766 file_type: String,
8767 size: u64,
8768 content_hash: crate::types::files::Sha256HexHash,
8769 ) -> Self {
8770 LegalHoldHeldRevisionMetadata {
8771 new_filename,
8772 original_revision_id,
8773 original_file_path,
8774 server_modified,
8775 author_member_id,
8776 author_member_status,
8777 author_email,
8778 file_type,
8779 size,
8780 content_hash,
8781 }
8782 }
8783}
8784
8785const LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS: &[&str] = &["new_filename",
8786 "original_revision_id",
8787 "original_file_path",
8788 "server_modified",
8789 "author_member_id",
8790 "author_member_status",
8791 "author_email",
8792 "file_type",
8793 "size",
8794 "content_hash"];
8795impl LegalHoldHeldRevisionMetadata {
8796 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8797 map: V,
8798 ) -> Result<LegalHoldHeldRevisionMetadata, V::Error> {
8799 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8800 }
8801
8802 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8803 mut map: V,
8804 optional: bool,
8805 ) -> Result<Option<LegalHoldHeldRevisionMetadata>, V::Error> {
8806 let mut field_new_filename = None;
8807 let mut field_original_revision_id = None;
8808 let mut field_original_file_path = None;
8809 let mut field_server_modified = None;
8810 let mut field_author_member_id = None;
8811 let mut field_author_member_status = None;
8812 let mut field_author_email = None;
8813 let mut field_file_type = None;
8814 let mut field_size = None;
8815 let mut field_content_hash = None;
8816 let mut nothing = true;
8817 while let Some(key) = map.next_key::<&str>()? {
8818 nothing = false;
8819 match key {
8820 "new_filename" => {
8821 if field_new_filename.is_some() {
8822 return Err(::serde::de::Error::duplicate_field("new_filename"));
8823 }
8824 field_new_filename = Some(map.next_value()?);
8825 }
8826 "original_revision_id" => {
8827 if field_original_revision_id.is_some() {
8828 return Err(::serde::de::Error::duplicate_field("original_revision_id"));
8829 }
8830 field_original_revision_id = Some(map.next_value()?);
8831 }
8832 "original_file_path" => {
8833 if field_original_file_path.is_some() {
8834 return Err(::serde::de::Error::duplicate_field("original_file_path"));
8835 }
8836 field_original_file_path = Some(map.next_value()?);
8837 }
8838 "server_modified" => {
8839 if field_server_modified.is_some() {
8840 return Err(::serde::de::Error::duplicate_field("server_modified"));
8841 }
8842 field_server_modified = Some(map.next_value()?);
8843 }
8844 "author_member_id" => {
8845 if field_author_member_id.is_some() {
8846 return Err(::serde::de::Error::duplicate_field("author_member_id"));
8847 }
8848 field_author_member_id = Some(map.next_value()?);
8849 }
8850 "author_member_status" => {
8851 if field_author_member_status.is_some() {
8852 return Err(::serde::de::Error::duplicate_field("author_member_status"));
8853 }
8854 field_author_member_status = Some(map.next_value()?);
8855 }
8856 "author_email" => {
8857 if field_author_email.is_some() {
8858 return Err(::serde::de::Error::duplicate_field("author_email"));
8859 }
8860 field_author_email = Some(map.next_value()?);
8861 }
8862 "file_type" => {
8863 if field_file_type.is_some() {
8864 return Err(::serde::de::Error::duplicate_field("file_type"));
8865 }
8866 field_file_type = Some(map.next_value()?);
8867 }
8868 "size" => {
8869 if field_size.is_some() {
8870 return Err(::serde::de::Error::duplicate_field("size"));
8871 }
8872 field_size = Some(map.next_value()?);
8873 }
8874 "content_hash" => {
8875 if field_content_hash.is_some() {
8876 return Err(::serde::de::Error::duplicate_field("content_hash"));
8877 }
8878 field_content_hash = Some(map.next_value()?);
8879 }
8880 _ => {
8881 map.next_value::<::serde_json::Value>()?;
8883 }
8884 }
8885 }
8886 if optional && nothing {
8887 return Ok(None);
8888 }
8889 let result = LegalHoldHeldRevisionMetadata {
8890 new_filename: field_new_filename.ok_or_else(|| ::serde::de::Error::missing_field("new_filename"))?,
8891 original_revision_id: field_original_revision_id.ok_or_else(|| ::serde::de::Error::missing_field("original_revision_id"))?,
8892 original_file_path: field_original_file_path.ok_or_else(|| ::serde::de::Error::missing_field("original_file_path"))?,
8893 server_modified: field_server_modified.ok_or_else(|| ::serde::de::Error::missing_field("server_modified"))?,
8894 author_member_id: field_author_member_id.ok_or_else(|| ::serde::de::Error::missing_field("author_member_id"))?,
8895 author_member_status: field_author_member_status.ok_or_else(|| ::serde::de::Error::missing_field("author_member_status"))?,
8896 author_email: field_author_email.ok_or_else(|| ::serde::de::Error::missing_field("author_email"))?,
8897 file_type: field_file_type.ok_or_else(|| ::serde::de::Error::missing_field("file_type"))?,
8898 size: field_size.ok_or_else(|| ::serde::de::Error::missing_field("size"))?,
8899 content_hash: field_content_hash.ok_or_else(|| ::serde::de::Error::missing_field("content_hash"))?,
8900 };
8901 Ok(Some(result))
8902 }
8903
8904 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8905 &self,
8906 s: &mut S::SerializeStruct,
8907 ) -> Result<(), S::Error> {
8908 use serde::ser::SerializeStruct;
8909 s.serialize_field("new_filename", &self.new_filename)?;
8910 s.serialize_field("original_revision_id", &self.original_revision_id)?;
8911 s.serialize_field("original_file_path", &self.original_file_path)?;
8912 s.serialize_field("server_modified", &self.server_modified)?;
8913 s.serialize_field("author_member_id", &self.author_member_id)?;
8914 s.serialize_field("author_member_status", &self.author_member_status)?;
8915 s.serialize_field("author_email", &self.author_email)?;
8916 s.serialize_field("file_type", &self.file_type)?;
8917 s.serialize_field("size", &self.size)?;
8918 s.serialize_field("content_hash", &self.content_hash)?;
8919 Ok(())
8920 }
8921}
8922
8923impl<'de> ::serde::de::Deserialize<'de> for LegalHoldHeldRevisionMetadata {
8924 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8925 use serde::de::{MapAccess, Visitor};
8927 struct StructVisitor;
8928 impl<'de> Visitor<'de> for StructVisitor {
8929 type Value = LegalHoldHeldRevisionMetadata;
8930 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8931 f.write_str("a LegalHoldHeldRevisionMetadata struct")
8932 }
8933 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8934 LegalHoldHeldRevisionMetadata::internal_deserialize(map)
8935 }
8936 }
8937 deserializer.deserialize_struct("LegalHoldHeldRevisionMetadata", LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS, StructVisitor)
8938 }
8939}
8940
8941impl ::serde::ser::Serialize for LegalHoldHeldRevisionMetadata {
8942 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8943 use serde::ser::SerializeStruct;
8945 let mut s = serializer.serialize_struct("LegalHoldHeldRevisionMetadata", 10)?;
8946 self.internal_serialize::<S>(&mut s)?;
8947 s.end()
8948 }
8949}
8950
8951#[derive(Debug, Clone, PartialEq, Eq)]
8952#[non_exhaustive] pub struct LegalHoldPolicy {
8954 pub id: LegalHoldId,
8956 pub name: LegalHoldPolicyName,
8958 pub members: MembersInfo,
8960 pub status: LegalHoldStatus,
8962 pub start_date: crate::types::common::DropboxTimestamp,
8964 pub description: Option<LegalHoldPolicyDescription>,
8966 pub activation_time: Option<crate::types::common::DropboxTimestamp>,
8968 pub end_date: Option<crate::types::common::DropboxTimestamp>,
8970}
8971
8972impl LegalHoldPolicy {
8973 pub fn new(
8974 id: LegalHoldId,
8975 name: LegalHoldPolicyName,
8976 members: MembersInfo,
8977 status: LegalHoldStatus,
8978 start_date: crate::types::common::DropboxTimestamp,
8979 ) -> Self {
8980 LegalHoldPolicy {
8981 id,
8982 name,
8983 members,
8984 status,
8985 start_date,
8986 description: None,
8987 activation_time: None,
8988 end_date: None,
8989 }
8990 }
8991
8992 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
8993 self.description = Some(value);
8994 self
8995 }
8996
8997 pub fn with_activation_time(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
8998 self.activation_time = Some(value);
8999 self
9000 }
9001
9002 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
9003 self.end_date = Some(value);
9004 self
9005 }
9006}
9007
9008const LEGAL_HOLD_POLICY_FIELDS: &[&str] = &["id",
9009 "name",
9010 "members",
9011 "status",
9012 "start_date",
9013 "description",
9014 "activation_time",
9015 "end_date"];
9016impl LegalHoldPolicy {
9017 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9018 map: V,
9019 ) -> Result<LegalHoldPolicy, V::Error> {
9020 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9021 }
9022
9023 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9024 mut map: V,
9025 optional: bool,
9026 ) -> Result<Option<LegalHoldPolicy>, V::Error> {
9027 let mut field_id = None;
9028 let mut field_name = None;
9029 let mut field_members = None;
9030 let mut field_status = None;
9031 let mut field_start_date = None;
9032 let mut field_description = None;
9033 let mut field_activation_time = None;
9034 let mut field_end_date = None;
9035 let mut nothing = true;
9036 while let Some(key) = map.next_key::<&str>()? {
9037 nothing = false;
9038 match key {
9039 "id" => {
9040 if field_id.is_some() {
9041 return Err(::serde::de::Error::duplicate_field("id"));
9042 }
9043 field_id = Some(map.next_value()?);
9044 }
9045 "name" => {
9046 if field_name.is_some() {
9047 return Err(::serde::de::Error::duplicate_field("name"));
9048 }
9049 field_name = Some(map.next_value()?);
9050 }
9051 "members" => {
9052 if field_members.is_some() {
9053 return Err(::serde::de::Error::duplicate_field("members"));
9054 }
9055 field_members = Some(map.next_value()?);
9056 }
9057 "status" => {
9058 if field_status.is_some() {
9059 return Err(::serde::de::Error::duplicate_field("status"));
9060 }
9061 field_status = Some(map.next_value()?);
9062 }
9063 "start_date" => {
9064 if field_start_date.is_some() {
9065 return Err(::serde::de::Error::duplicate_field("start_date"));
9066 }
9067 field_start_date = Some(map.next_value()?);
9068 }
9069 "description" => {
9070 if field_description.is_some() {
9071 return Err(::serde::de::Error::duplicate_field("description"));
9072 }
9073 field_description = Some(map.next_value()?);
9074 }
9075 "activation_time" => {
9076 if field_activation_time.is_some() {
9077 return Err(::serde::de::Error::duplicate_field("activation_time"));
9078 }
9079 field_activation_time = Some(map.next_value()?);
9080 }
9081 "end_date" => {
9082 if field_end_date.is_some() {
9083 return Err(::serde::de::Error::duplicate_field("end_date"));
9084 }
9085 field_end_date = Some(map.next_value()?);
9086 }
9087 _ => {
9088 map.next_value::<::serde_json::Value>()?;
9090 }
9091 }
9092 }
9093 if optional && nothing {
9094 return Ok(None);
9095 }
9096 let result = LegalHoldPolicy {
9097 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9098 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
9099 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
9100 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
9101 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
9102 description: field_description.and_then(Option::flatten),
9103 activation_time: field_activation_time.and_then(Option::flatten),
9104 end_date: field_end_date.and_then(Option::flatten),
9105 };
9106 Ok(Some(result))
9107 }
9108
9109 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9110 &self,
9111 s: &mut S::SerializeStruct,
9112 ) -> Result<(), S::Error> {
9113 use serde::ser::SerializeStruct;
9114 s.serialize_field("id", &self.id)?;
9115 s.serialize_field("name", &self.name)?;
9116 s.serialize_field("members", &self.members)?;
9117 s.serialize_field("status", &self.status)?;
9118 s.serialize_field("start_date", &self.start_date)?;
9119 if let Some(val) = &self.description {
9120 s.serialize_field("description", val)?;
9121 }
9122 if let Some(val) = &self.activation_time {
9123 s.serialize_field("activation_time", val)?;
9124 }
9125 if let Some(val) = &self.end_date {
9126 s.serialize_field("end_date", val)?;
9127 }
9128 Ok(())
9129 }
9130}
9131
9132impl<'de> ::serde::de::Deserialize<'de> for LegalHoldPolicy {
9133 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9134 use serde::de::{MapAccess, Visitor};
9136 struct StructVisitor;
9137 impl<'de> Visitor<'de> for StructVisitor {
9138 type Value = LegalHoldPolicy;
9139 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9140 f.write_str("a LegalHoldPolicy struct")
9141 }
9142 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9143 LegalHoldPolicy::internal_deserialize(map)
9144 }
9145 }
9146 deserializer.deserialize_struct("LegalHoldPolicy", LEGAL_HOLD_POLICY_FIELDS, StructVisitor)
9147 }
9148}
9149
9150impl ::serde::ser::Serialize for LegalHoldPolicy {
9151 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9152 use serde::ser::SerializeStruct;
9154 let mut s = serializer.serialize_struct("LegalHoldPolicy", 8)?;
9155 self.internal_serialize::<S>(&mut s)?;
9156 s.end()
9157 }
9158}
9159
9160#[derive(Debug, Clone, PartialEq, Eq)]
9161#[non_exhaustive] pub enum LegalHoldStatus {
9163 Active,
9165 Released,
9167 Activating,
9169 Updating,
9171 Exporting,
9173 Releasing,
9175 Other,
9178}
9179
9180impl<'de> ::serde::de::Deserialize<'de> for LegalHoldStatus {
9181 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9182 use serde::de::{self, MapAccess, Visitor};
9184 struct EnumVisitor;
9185 impl<'de> Visitor<'de> for EnumVisitor {
9186 type Value = LegalHoldStatus;
9187 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9188 f.write_str("a LegalHoldStatus structure")
9189 }
9190 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9191 let tag: &str = match map.next_key()? {
9192 Some(".tag") => map.next_value()?,
9193 _ => return Err(de::Error::missing_field(".tag"))
9194 };
9195 let value = match tag {
9196 "active" => LegalHoldStatus::Active,
9197 "released" => LegalHoldStatus::Released,
9198 "activating" => LegalHoldStatus::Activating,
9199 "updating" => LegalHoldStatus::Updating,
9200 "exporting" => LegalHoldStatus::Exporting,
9201 "releasing" => LegalHoldStatus::Releasing,
9202 _ => LegalHoldStatus::Other,
9203 };
9204 crate::eat_json_fields(&mut map)?;
9205 Ok(value)
9206 }
9207 }
9208 const VARIANTS: &[&str] = &["active",
9209 "released",
9210 "activating",
9211 "updating",
9212 "exporting",
9213 "releasing",
9214 "other"];
9215 deserializer.deserialize_struct("LegalHoldStatus", VARIANTS, EnumVisitor)
9216 }
9217}
9218
9219impl ::serde::ser::Serialize for LegalHoldStatus {
9220 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9221 use serde::ser::SerializeStruct;
9223 match self {
9224 LegalHoldStatus::Active => {
9225 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9227 s.serialize_field(".tag", "active")?;
9228 s.end()
9229 }
9230 LegalHoldStatus::Released => {
9231 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9233 s.serialize_field(".tag", "released")?;
9234 s.end()
9235 }
9236 LegalHoldStatus::Activating => {
9237 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9239 s.serialize_field(".tag", "activating")?;
9240 s.end()
9241 }
9242 LegalHoldStatus::Updating => {
9243 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9245 s.serialize_field(".tag", "updating")?;
9246 s.end()
9247 }
9248 LegalHoldStatus::Exporting => {
9249 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9251 s.serialize_field(".tag", "exporting")?;
9252 s.end()
9253 }
9254 LegalHoldStatus::Releasing => {
9255 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9257 s.serialize_field(".tag", "releasing")?;
9258 s.end()
9259 }
9260 LegalHoldStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9261 }
9262 }
9263}
9264
9265#[derive(Debug, Clone, PartialEq, Eq)]
9266#[non_exhaustive] pub enum LegalHoldsError {
9268 UnknownLegalHoldError,
9270 InsufficientPermissions,
9272 Other,
9275}
9276
9277impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsError {
9278 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9279 use serde::de::{self, MapAccess, Visitor};
9281 struct EnumVisitor;
9282 impl<'de> Visitor<'de> for EnumVisitor {
9283 type Value = LegalHoldsError;
9284 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9285 f.write_str("a LegalHoldsError structure")
9286 }
9287 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9288 let tag: &str = match map.next_key()? {
9289 Some(".tag") => map.next_value()?,
9290 _ => return Err(de::Error::missing_field(".tag"))
9291 };
9292 let value = match tag {
9293 "unknown_legal_hold_error" => LegalHoldsError::UnknownLegalHoldError,
9294 "insufficient_permissions" => LegalHoldsError::InsufficientPermissions,
9295 _ => LegalHoldsError::Other,
9296 };
9297 crate::eat_json_fields(&mut map)?;
9298 Ok(value)
9299 }
9300 }
9301 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9302 "insufficient_permissions",
9303 "other"];
9304 deserializer.deserialize_struct("LegalHoldsError", VARIANTS, EnumVisitor)
9305 }
9306}
9307
9308impl ::serde::ser::Serialize for LegalHoldsError {
9309 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9310 use serde::ser::SerializeStruct;
9312 match self {
9313 LegalHoldsError::UnknownLegalHoldError => {
9314 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
9316 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9317 s.end()
9318 }
9319 LegalHoldsError::InsufficientPermissions => {
9320 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
9322 s.serialize_field(".tag", "insufficient_permissions")?;
9323 s.end()
9324 }
9325 LegalHoldsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9326 }
9327 }
9328}
9329
9330impl ::std::error::Error for LegalHoldsError {
9331}
9332
9333impl ::std::fmt::Display for LegalHoldsError {
9334 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9335 match self {
9336 LegalHoldsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9337 LegalHoldsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9338 _ => write!(f, "{:?}", *self),
9339 }
9340 }
9341}
9342
9343#[derive(Debug, Clone, PartialEq, Eq)]
9344#[non_exhaustive] pub struct LegalHoldsGetPolicyArg {
9346 pub id: LegalHoldId,
9348}
9349
9350impl LegalHoldsGetPolicyArg {
9351 pub fn new(id: LegalHoldId) -> Self {
9352 LegalHoldsGetPolicyArg {
9353 id,
9354 }
9355 }
9356}
9357
9358const LEGAL_HOLDS_GET_POLICY_ARG_FIELDS: &[&str] = &["id"];
9359impl LegalHoldsGetPolicyArg {
9360 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9361 map: V,
9362 ) -> Result<LegalHoldsGetPolicyArg, V::Error> {
9363 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9364 }
9365
9366 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9367 mut map: V,
9368 optional: bool,
9369 ) -> Result<Option<LegalHoldsGetPolicyArg>, V::Error> {
9370 let mut field_id = None;
9371 let mut nothing = true;
9372 while let Some(key) = map.next_key::<&str>()? {
9373 nothing = false;
9374 match key {
9375 "id" => {
9376 if field_id.is_some() {
9377 return Err(::serde::de::Error::duplicate_field("id"));
9378 }
9379 field_id = Some(map.next_value()?);
9380 }
9381 _ => {
9382 map.next_value::<::serde_json::Value>()?;
9384 }
9385 }
9386 }
9387 if optional && nothing {
9388 return Ok(None);
9389 }
9390 let result = LegalHoldsGetPolicyArg {
9391 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9392 };
9393 Ok(Some(result))
9394 }
9395
9396 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9397 &self,
9398 s: &mut S::SerializeStruct,
9399 ) -> Result<(), S::Error> {
9400 use serde::ser::SerializeStruct;
9401 s.serialize_field("id", &self.id)?;
9402 Ok(())
9403 }
9404}
9405
9406impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyArg {
9407 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9408 use serde::de::{MapAccess, Visitor};
9410 struct StructVisitor;
9411 impl<'de> Visitor<'de> for StructVisitor {
9412 type Value = LegalHoldsGetPolicyArg;
9413 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9414 f.write_str("a LegalHoldsGetPolicyArg struct")
9415 }
9416 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9417 LegalHoldsGetPolicyArg::internal_deserialize(map)
9418 }
9419 }
9420 deserializer.deserialize_struct("LegalHoldsGetPolicyArg", LEGAL_HOLDS_GET_POLICY_ARG_FIELDS, StructVisitor)
9421 }
9422}
9423
9424impl ::serde::ser::Serialize for LegalHoldsGetPolicyArg {
9425 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9426 use serde::ser::SerializeStruct;
9428 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyArg", 1)?;
9429 self.internal_serialize::<S>(&mut s)?;
9430 s.end()
9431 }
9432}
9433
9434#[derive(Debug, Clone, PartialEq, Eq)]
9435#[non_exhaustive] pub enum LegalHoldsGetPolicyError {
9437 UnknownLegalHoldError,
9439 InsufficientPermissions,
9441 LegalHoldPolicyNotFound,
9443 Other,
9446}
9447
9448impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyError {
9449 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9450 use serde::de::{self, MapAccess, Visitor};
9452 struct EnumVisitor;
9453 impl<'de> Visitor<'de> for EnumVisitor {
9454 type Value = LegalHoldsGetPolicyError;
9455 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9456 f.write_str("a LegalHoldsGetPolicyError structure")
9457 }
9458 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9459 let tag: &str = match map.next_key()? {
9460 Some(".tag") => map.next_value()?,
9461 _ => return Err(de::Error::missing_field(".tag"))
9462 };
9463 let value = match tag {
9464 "unknown_legal_hold_error" => LegalHoldsGetPolicyError::UnknownLegalHoldError,
9465 "insufficient_permissions" => LegalHoldsGetPolicyError::InsufficientPermissions,
9466 "legal_hold_policy_not_found" => LegalHoldsGetPolicyError::LegalHoldPolicyNotFound,
9467 _ => LegalHoldsGetPolicyError::Other,
9468 };
9469 crate::eat_json_fields(&mut map)?;
9470 Ok(value)
9471 }
9472 }
9473 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9474 "insufficient_permissions",
9475 "other",
9476 "legal_hold_policy_not_found"];
9477 deserializer.deserialize_struct("LegalHoldsGetPolicyError", VARIANTS, EnumVisitor)
9478 }
9479}
9480
9481impl ::serde::ser::Serialize for LegalHoldsGetPolicyError {
9482 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9483 use serde::ser::SerializeStruct;
9485 match self {
9486 LegalHoldsGetPolicyError::UnknownLegalHoldError => {
9487 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9489 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9490 s.end()
9491 }
9492 LegalHoldsGetPolicyError::InsufficientPermissions => {
9493 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9495 s.serialize_field(".tag", "insufficient_permissions")?;
9496 s.end()
9497 }
9498 LegalHoldsGetPolicyError::LegalHoldPolicyNotFound => {
9499 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9501 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
9502 s.end()
9503 }
9504 LegalHoldsGetPolicyError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9505 }
9506 }
9507}
9508
9509impl ::std::error::Error for LegalHoldsGetPolicyError {
9510}
9511
9512impl ::std::fmt::Display for LegalHoldsGetPolicyError {
9513 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9514 match self {
9515 LegalHoldsGetPolicyError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9516 LegalHoldsGetPolicyError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9517 _ => write!(f, "{:?}", *self),
9518 }
9519 }
9520}
9521
9522impl From<LegalHoldsError> for LegalHoldsGetPolicyError {
9524 fn from(parent: LegalHoldsError) -> Self {
9525 match parent {
9526 LegalHoldsError::UnknownLegalHoldError => LegalHoldsGetPolicyError::UnknownLegalHoldError,
9527 LegalHoldsError::InsufficientPermissions => LegalHoldsGetPolicyError::InsufficientPermissions,
9528 LegalHoldsError::Other => LegalHoldsGetPolicyError::Other,
9529 }
9530 }
9531}
9532#[derive(Debug, Clone, PartialEq, Eq)]
9533#[non_exhaustive] pub struct LegalHoldsListHeldRevisionResult {
9535 pub entries: Vec<LegalHoldHeldRevisionMetadata>,
9537 pub has_more: bool,
9540 pub cursor: Option<ListHeldRevisionCursor>,
9544}
9545
9546impl LegalHoldsListHeldRevisionResult {
9547 pub fn new(entries: Vec<LegalHoldHeldRevisionMetadata>, has_more: bool) -> Self {
9548 LegalHoldsListHeldRevisionResult {
9549 entries,
9550 has_more,
9551 cursor: None,
9552 }
9553 }
9554
9555 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
9556 self.cursor = Some(value);
9557 self
9558 }
9559}
9560
9561const LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS: &[&str] = &["entries",
9562 "has_more",
9563 "cursor"];
9564impl LegalHoldsListHeldRevisionResult {
9565 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9566 map: V,
9567 ) -> Result<LegalHoldsListHeldRevisionResult, V::Error> {
9568 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9569 }
9570
9571 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9572 mut map: V,
9573 optional: bool,
9574 ) -> Result<Option<LegalHoldsListHeldRevisionResult>, V::Error> {
9575 let mut field_entries = None;
9576 let mut field_has_more = None;
9577 let mut field_cursor = None;
9578 let mut nothing = true;
9579 while let Some(key) = map.next_key::<&str>()? {
9580 nothing = false;
9581 match key {
9582 "entries" => {
9583 if field_entries.is_some() {
9584 return Err(::serde::de::Error::duplicate_field("entries"));
9585 }
9586 field_entries = Some(map.next_value()?);
9587 }
9588 "has_more" => {
9589 if field_has_more.is_some() {
9590 return Err(::serde::de::Error::duplicate_field("has_more"));
9591 }
9592 field_has_more = Some(map.next_value()?);
9593 }
9594 "cursor" => {
9595 if field_cursor.is_some() {
9596 return Err(::serde::de::Error::duplicate_field("cursor"));
9597 }
9598 field_cursor = Some(map.next_value()?);
9599 }
9600 _ => {
9601 map.next_value::<::serde_json::Value>()?;
9603 }
9604 }
9605 }
9606 if optional && nothing {
9607 return Ok(None);
9608 }
9609 let result = LegalHoldsListHeldRevisionResult {
9610 entries: field_entries.ok_or_else(|| ::serde::de::Error::missing_field("entries"))?,
9611 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
9612 cursor: field_cursor.and_then(Option::flatten),
9613 };
9614 Ok(Some(result))
9615 }
9616
9617 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9618 &self,
9619 s: &mut S::SerializeStruct,
9620 ) -> Result<(), S::Error> {
9621 use serde::ser::SerializeStruct;
9622 s.serialize_field("entries", &self.entries)?;
9623 s.serialize_field("has_more", &self.has_more)?;
9624 if let Some(val) = &self.cursor {
9625 s.serialize_field("cursor", val)?;
9626 }
9627 Ok(())
9628 }
9629}
9630
9631impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionResult {
9632 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9633 use serde::de::{MapAccess, Visitor};
9635 struct StructVisitor;
9636 impl<'de> Visitor<'de> for StructVisitor {
9637 type Value = LegalHoldsListHeldRevisionResult;
9638 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9639 f.write_str("a LegalHoldsListHeldRevisionResult struct")
9640 }
9641 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9642 LegalHoldsListHeldRevisionResult::internal_deserialize(map)
9643 }
9644 }
9645 deserializer.deserialize_struct("LegalHoldsListHeldRevisionResult", LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS, StructVisitor)
9646 }
9647}
9648
9649impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionResult {
9650 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9651 use serde::ser::SerializeStruct;
9653 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionResult", 3)?;
9654 self.internal_serialize::<S>(&mut s)?;
9655 s.end()
9656 }
9657}
9658
9659#[derive(Debug, Clone, PartialEq, Eq)]
9660#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsArg {
9662 pub id: LegalHoldId,
9664}
9665
9666impl LegalHoldsListHeldRevisionsArg {
9667 pub fn new(id: LegalHoldId) -> Self {
9668 LegalHoldsListHeldRevisionsArg {
9669 id,
9670 }
9671 }
9672}
9673
9674const LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS: &[&str] = &["id"];
9675impl LegalHoldsListHeldRevisionsArg {
9676 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9677 map: V,
9678 ) -> Result<LegalHoldsListHeldRevisionsArg, V::Error> {
9679 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9680 }
9681
9682 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9683 mut map: V,
9684 optional: bool,
9685 ) -> Result<Option<LegalHoldsListHeldRevisionsArg>, V::Error> {
9686 let mut field_id = None;
9687 let mut nothing = true;
9688 while let Some(key) = map.next_key::<&str>()? {
9689 nothing = false;
9690 match key {
9691 "id" => {
9692 if field_id.is_some() {
9693 return Err(::serde::de::Error::duplicate_field("id"));
9694 }
9695 field_id = Some(map.next_value()?);
9696 }
9697 _ => {
9698 map.next_value::<::serde_json::Value>()?;
9700 }
9701 }
9702 }
9703 if optional && nothing {
9704 return Ok(None);
9705 }
9706 let result = LegalHoldsListHeldRevisionsArg {
9707 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9708 };
9709 Ok(Some(result))
9710 }
9711
9712 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9713 &self,
9714 s: &mut S::SerializeStruct,
9715 ) -> Result<(), S::Error> {
9716 use serde::ser::SerializeStruct;
9717 s.serialize_field("id", &self.id)?;
9718 Ok(())
9719 }
9720}
9721
9722impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsArg {
9723 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9724 use serde::de::{MapAccess, Visitor};
9726 struct StructVisitor;
9727 impl<'de> Visitor<'de> for StructVisitor {
9728 type Value = LegalHoldsListHeldRevisionsArg;
9729 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9730 f.write_str("a LegalHoldsListHeldRevisionsArg struct")
9731 }
9732 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9733 LegalHoldsListHeldRevisionsArg::internal_deserialize(map)
9734 }
9735 }
9736 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS, StructVisitor)
9737 }
9738}
9739
9740impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsArg {
9741 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9742 use serde::ser::SerializeStruct;
9744 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsArg", 1)?;
9745 self.internal_serialize::<S>(&mut s)?;
9746 s.end()
9747 }
9748}
9749
9750#[derive(Debug, Clone, PartialEq, Eq)]
9751#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsContinueArg {
9753 pub id: LegalHoldId,
9755 pub cursor: Option<ListHeldRevisionCursor>,
9758}
9759
9760impl LegalHoldsListHeldRevisionsContinueArg {
9761 pub fn new(id: LegalHoldId) -> Self {
9762 LegalHoldsListHeldRevisionsContinueArg {
9763 id,
9764 cursor: None,
9765 }
9766 }
9767
9768 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
9769 self.cursor = Some(value);
9770 self
9771 }
9772}
9773
9774const LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS: &[&str] = &["id",
9775 "cursor"];
9776impl LegalHoldsListHeldRevisionsContinueArg {
9777 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9778 map: V,
9779 ) -> Result<LegalHoldsListHeldRevisionsContinueArg, V::Error> {
9780 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9781 }
9782
9783 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9784 mut map: V,
9785 optional: bool,
9786 ) -> Result<Option<LegalHoldsListHeldRevisionsContinueArg>, V::Error> {
9787 let mut field_id = None;
9788 let mut field_cursor = None;
9789 let mut nothing = true;
9790 while let Some(key) = map.next_key::<&str>()? {
9791 nothing = false;
9792 match key {
9793 "id" => {
9794 if field_id.is_some() {
9795 return Err(::serde::de::Error::duplicate_field("id"));
9796 }
9797 field_id = Some(map.next_value()?);
9798 }
9799 "cursor" => {
9800 if field_cursor.is_some() {
9801 return Err(::serde::de::Error::duplicate_field("cursor"));
9802 }
9803 field_cursor = Some(map.next_value()?);
9804 }
9805 _ => {
9806 map.next_value::<::serde_json::Value>()?;
9808 }
9809 }
9810 }
9811 if optional && nothing {
9812 return Ok(None);
9813 }
9814 let result = LegalHoldsListHeldRevisionsContinueArg {
9815 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9816 cursor: field_cursor.and_then(Option::flatten),
9817 };
9818 Ok(Some(result))
9819 }
9820
9821 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9822 &self,
9823 s: &mut S::SerializeStruct,
9824 ) -> Result<(), S::Error> {
9825 use serde::ser::SerializeStruct;
9826 s.serialize_field("id", &self.id)?;
9827 if let Some(val) = &self.cursor {
9828 s.serialize_field("cursor", val)?;
9829 }
9830 Ok(())
9831 }
9832}
9833
9834impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueArg {
9835 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9836 use serde::de::{MapAccess, Visitor};
9838 struct StructVisitor;
9839 impl<'de> Visitor<'de> for StructVisitor {
9840 type Value = LegalHoldsListHeldRevisionsContinueArg;
9841 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9842 f.write_str("a LegalHoldsListHeldRevisionsContinueArg struct")
9843 }
9844 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9845 LegalHoldsListHeldRevisionsContinueArg::internal_deserialize(map)
9846 }
9847 }
9848 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS, StructVisitor)
9849 }
9850}
9851
9852impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueArg {
9853 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9854 use serde::ser::SerializeStruct;
9856 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueArg", 2)?;
9857 self.internal_serialize::<S>(&mut s)?;
9858 s.end()
9859 }
9860}
9861
9862#[derive(Debug, Clone, PartialEq, Eq)]
9863#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsContinueError {
9865 UnknownLegalHoldError,
9867 TransientError,
9869 Reset,
9873 Other,
9876}
9877
9878impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueError {
9879 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9880 use serde::de::{self, MapAccess, Visitor};
9882 struct EnumVisitor;
9883 impl<'de> Visitor<'de> for EnumVisitor {
9884 type Value = LegalHoldsListHeldRevisionsContinueError;
9885 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9886 f.write_str("a LegalHoldsListHeldRevisionsContinueError structure")
9887 }
9888 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9889 let tag: &str = match map.next_key()? {
9890 Some(".tag") => map.next_value()?,
9891 _ => return Err(de::Error::missing_field(".tag"))
9892 };
9893 let value = match tag {
9894 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError,
9895 "transient_error" => LegalHoldsListHeldRevisionsContinueError::TransientError,
9896 "reset" => LegalHoldsListHeldRevisionsContinueError::Reset,
9897 _ => LegalHoldsListHeldRevisionsContinueError::Other,
9898 };
9899 crate::eat_json_fields(&mut map)?;
9900 Ok(value)
9901 }
9902 }
9903 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9904 "transient_error",
9905 "reset",
9906 "other"];
9907 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueError", VARIANTS, EnumVisitor)
9908 }
9909}
9910
9911impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueError {
9912 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9913 use serde::ser::SerializeStruct;
9915 match self {
9916 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => {
9917 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9919 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9920 s.end()
9921 }
9922 LegalHoldsListHeldRevisionsContinueError::TransientError => {
9923 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9925 s.serialize_field(".tag", "transient_error")?;
9926 s.end()
9927 }
9928 LegalHoldsListHeldRevisionsContinueError::Reset => {
9929 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9931 s.serialize_field(".tag", "reset")?;
9932 s.end()
9933 }
9934 LegalHoldsListHeldRevisionsContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9935 }
9936 }
9937}
9938
9939impl ::std::error::Error for LegalHoldsListHeldRevisionsContinueError {
9940}
9941
9942impl ::std::fmt::Display for LegalHoldsListHeldRevisionsContinueError {
9943 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9944 match self {
9945 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9946 LegalHoldsListHeldRevisionsContinueError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
9947 _ => write!(f, "{:?}", *self),
9948 }
9949 }
9950}
9951
9952#[derive(Debug, Clone, PartialEq, Eq)]
9953#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsError {
9955 UnknownLegalHoldError,
9957 InsufficientPermissions,
9959 TransientError,
9961 LegalHoldStillEmpty,
9963 InactiveLegalHold,
9965 Other,
9968}
9969
9970impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsError {
9971 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9972 use serde::de::{self, MapAccess, Visitor};
9974 struct EnumVisitor;
9975 impl<'de> Visitor<'de> for EnumVisitor {
9976 type Value = LegalHoldsListHeldRevisionsError;
9977 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9978 f.write_str("a LegalHoldsListHeldRevisionsError structure")
9979 }
9980 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9981 let tag: &str = match map.next_key()? {
9982 Some(".tag") => map.next_value()?,
9983 _ => return Err(de::Error::missing_field(".tag"))
9984 };
9985 let value = match tag {
9986 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
9987 "insufficient_permissions" => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
9988 "transient_error" => LegalHoldsListHeldRevisionsError::TransientError,
9989 "legal_hold_still_empty" => LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty,
9990 "inactive_legal_hold" => LegalHoldsListHeldRevisionsError::InactiveLegalHold,
9991 _ => LegalHoldsListHeldRevisionsError::Other,
9992 };
9993 crate::eat_json_fields(&mut map)?;
9994 Ok(value)
9995 }
9996 }
9997 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9998 "insufficient_permissions",
9999 "other",
10000 "transient_error",
10001 "legal_hold_still_empty",
10002 "inactive_legal_hold"];
10003 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsError", VARIANTS, EnumVisitor)
10004 }
10005}
10006
10007impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsError {
10008 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10009 use serde::ser::SerializeStruct;
10011 match self {
10012 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => {
10013 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10015 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10016 s.end()
10017 }
10018 LegalHoldsListHeldRevisionsError::InsufficientPermissions => {
10019 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10021 s.serialize_field(".tag", "insufficient_permissions")?;
10022 s.end()
10023 }
10024 LegalHoldsListHeldRevisionsError::TransientError => {
10025 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10027 s.serialize_field(".tag", "transient_error")?;
10028 s.end()
10029 }
10030 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => {
10031 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10033 s.serialize_field(".tag", "legal_hold_still_empty")?;
10034 s.end()
10035 }
10036 LegalHoldsListHeldRevisionsError::InactiveLegalHold => {
10037 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10039 s.serialize_field(".tag", "inactive_legal_hold")?;
10040 s.end()
10041 }
10042 LegalHoldsListHeldRevisionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10043 }
10044 }
10045}
10046
10047impl ::std::error::Error for LegalHoldsListHeldRevisionsError {
10048}
10049
10050impl ::std::fmt::Display for LegalHoldsListHeldRevisionsError {
10051 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10052 match self {
10053 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10054 LegalHoldsListHeldRevisionsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10055 LegalHoldsListHeldRevisionsError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10056 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => f.write_str("The legal hold is not holding any revisions yet."),
10057 LegalHoldsListHeldRevisionsError::InactiveLegalHold => f.write_str("Trying to list revisions for an inactive legal hold."),
10058 _ => write!(f, "{:?}", *self),
10059 }
10060 }
10061}
10062
10063impl From<LegalHoldsError> for LegalHoldsListHeldRevisionsError {
10065 fn from(parent: LegalHoldsError) -> Self {
10066 match parent {
10067 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
10068 LegalHoldsError::InsufficientPermissions => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
10069 LegalHoldsError::Other => LegalHoldsListHeldRevisionsError::Other,
10070 }
10071 }
10072}
10073#[derive(Debug, Clone, PartialEq, Eq, Default)]
10074#[non_exhaustive] pub struct LegalHoldsListPoliciesArg {
10076 pub include_released: bool,
10078}
10079
10080impl LegalHoldsListPoliciesArg {
10081 pub fn with_include_released(mut self, value: bool) -> Self {
10082 self.include_released = value;
10083 self
10084 }
10085}
10086
10087const LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS: &[&str] = &["include_released"];
10088impl LegalHoldsListPoliciesArg {
10089 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10091 mut map: V,
10092 ) -> Result<LegalHoldsListPoliciesArg, V::Error> {
10093 let mut field_include_released = None;
10094 while let Some(key) = map.next_key::<&str>()? {
10095 match key {
10096 "include_released" => {
10097 if field_include_released.is_some() {
10098 return Err(::serde::de::Error::duplicate_field("include_released"));
10099 }
10100 field_include_released = Some(map.next_value()?);
10101 }
10102 _ => {
10103 map.next_value::<::serde_json::Value>()?;
10105 }
10106 }
10107 }
10108 let result = LegalHoldsListPoliciesArg {
10109 include_released: field_include_released.unwrap_or(false),
10110 };
10111 Ok(result)
10112 }
10113
10114 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10115 &self,
10116 s: &mut S::SerializeStruct,
10117 ) -> Result<(), S::Error> {
10118 use serde::ser::SerializeStruct;
10119 if self.include_released {
10120 s.serialize_field("include_released", &self.include_released)?;
10121 }
10122 Ok(())
10123 }
10124}
10125
10126impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesArg {
10127 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10128 use serde::de::{MapAccess, Visitor};
10130 struct StructVisitor;
10131 impl<'de> Visitor<'de> for StructVisitor {
10132 type Value = LegalHoldsListPoliciesArg;
10133 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10134 f.write_str("a LegalHoldsListPoliciesArg struct")
10135 }
10136 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10137 LegalHoldsListPoliciesArg::internal_deserialize(map)
10138 }
10139 }
10140 deserializer.deserialize_struct("LegalHoldsListPoliciesArg", LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS, StructVisitor)
10141 }
10142}
10143
10144impl ::serde::ser::Serialize for LegalHoldsListPoliciesArg {
10145 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10146 use serde::ser::SerializeStruct;
10148 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesArg", 1)?;
10149 self.internal_serialize::<S>(&mut s)?;
10150 s.end()
10151 }
10152}
10153
10154#[derive(Debug, Clone, PartialEq, Eq)]
10155#[non_exhaustive] pub enum LegalHoldsListPoliciesError {
10157 UnknownLegalHoldError,
10159 InsufficientPermissions,
10161 TransientError,
10163 Other,
10166}
10167
10168impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesError {
10169 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10170 use serde::de::{self, MapAccess, Visitor};
10172 struct EnumVisitor;
10173 impl<'de> Visitor<'de> for EnumVisitor {
10174 type Value = LegalHoldsListPoliciesError;
10175 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10176 f.write_str("a LegalHoldsListPoliciesError structure")
10177 }
10178 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10179 let tag: &str = match map.next_key()? {
10180 Some(".tag") => map.next_value()?,
10181 _ => return Err(de::Error::missing_field(".tag"))
10182 };
10183 let value = match tag {
10184 "unknown_legal_hold_error" => LegalHoldsListPoliciesError::UnknownLegalHoldError,
10185 "insufficient_permissions" => LegalHoldsListPoliciesError::InsufficientPermissions,
10186 "transient_error" => LegalHoldsListPoliciesError::TransientError,
10187 _ => LegalHoldsListPoliciesError::Other,
10188 };
10189 crate::eat_json_fields(&mut map)?;
10190 Ok(value)
10191 }
10192 }
10193 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10194 "insufficient_permissions",
10195 "other",
10196 "transient_error"];
10197 deserializer.deserialize_struct("LegalHoldsListPoliciesError", VARIANTS, EnumVisitor)
10198 }
10199}
10200
10201impl ::serde::ser::Serialize for LegalHoldsListPoliciesError {
10202 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10203 use serde::ser::SerializeStruct;
10205 match self {
10206 LegalHoldsListPoliciesError::UnknownLegalHoldError => {
10207 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10209 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10210 s.end()
10211 }
10212 LegalHoldsListPoliciesError::InsufficientPermissions => {
10213 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10215 s.serialize_field(".tag", "insufficient_permissions")?;
10216 s.end()
10217 }
10218 LegalHoldsListPoliciesError::TransientError => {
10219 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10221 s.serialize_field(".tag", "transient_error")?;
10222 s.end()
10223 }
10224 LegalHoldsListPoliciesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10225 }
10226 }
10227}
10228
10229impl ::std::error::Error for LegalHoldsListPoliciesError {
10230}
10231
10232impl ::std::fmt::Display for LegalHoldsListPoliciesError {
10233 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10234 match self {
10235 LegalHoldsListPoliciesError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10236 LegalHoldsListPoliciesError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10237 LegalHoldsListPoliciesError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10238 _ => write!(f, "{:?}", *self),
10239 }
10240 }
10241}
10242
10243impl From<LegalHoldsError> for LegalHoldsListPoliciesError {
10245 fn from(parent: LegalHoldsError) -> Self {
10246 match parent {
10247 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListPoliciesError::UnknownLegalHoldError,
10248 LegalHoldsError::InsufficientPermissions => LegalHoldsListPoliciesError::InsufficientPermissions,
10249 LegalHoldsError::Other => LegalHoldsListPoliciesError::Other,
10250 }
10251 }
10252}
10253#[derive(Debug, Clone, PartialEq, Eq)]
10254#[non_exhaustive] pub struct LegalHoldsListPoliciesResult {
10256 pub policies: Vec<LegalHoldPolicy>,
10257}
10258
10259impl LegalHoldsListPoliciesResult {
10260 pub fn new(policies: Vec<LegalHoldPolicy>) -> Self {
10261 LegalHoldsListPoliciesResult {
10262 policies,
10263 }
10264 }
10265}
10266
10267const LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS: &[&str] = &["policies"];
10268impl LegalHoldsListPoliciesResult {
10269 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10270 map: V,
10271 ) -> Result<LegalHoldsListPoliciesResult, V::Error> {
10272 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10273 }
10274
10275 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10276 mut map: V,
10277 optional: bool,
10278 ) -> Result<Option<LegalHoldsListPoliciesResult>, V::Error> {
10279 let mut field_policies = None;
10280 let mut nothing = true;
10281 while let Some(key) = map.next_key::<&str>()? {
10282 nothing = false;
10283 match key {
10284 "policies" => {
10285 if field_policies.is_some() {
10286 return Err(::serde::de::Error::duplicate_field("policies"));
10287 }
10288 field_policies = Some(map.next_value()?);
10289 }
10290 _ => {
10291 map.next_value::<::serde_json::Value>()?;
10293 }
10294 }
10295 }
10296 if optional && nothing {
10297 return Ok(None);
10298 }
10299 let result = LegalHoldsListPoliciesResult {
10300 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
10301 };
10302 Ok(Some(result))
10303 }
10304
10305 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10306 &self,
10307 s: &mut S::SerializeStruct,
10308 ) -> Result<(), S::Error> {
10309 use serde::ser::SerializeStruct;
10310 s.serialize_field("policies", &self.policies)?;
10311 Ok(())
10312 }
10313}
10314
10315impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesResult {
10316 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10317 use serde::de::{MapAccess, Visitor};
10319 struct StructVisitor;
10320 impl<'de> Visitor<'de> for StructVisitor {
10321 type Value = LegalHoldsListPoliciesResult;
10322 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10323 f.write_str("a LegalHoldsListPoliciesResult struct")
10324 }
10325 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10326 LegalHoldsListPoliciesResult::internal_deserialize(map)
10327 }
10328 }
10329 deserializer.deserialize_struct("LegalHoldsListPoliciesResult", LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS, StructVisitor)
10330 }
10331}
10332
10333impl ::serde::ser::Serialize for LegalHoldsListPoliciesResult {
10334 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10335 use serde::ser::SerializeStruct;
10337 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesResult", 1)?;
10338 self.internal_serialize::<S>(&mut s)?;
10339 s.end()
10340 }
10341}
10342
10343#[derive(Debug, Clone, PartialEq, Eq)]
10344#[non_exhaustive] pub struct LegalHoldsPolicyCreateArg {
10346 pub name: LegalHoldPolicyName,
10348 pub members: Vec<crate::types::team_common::TeamMemberId>,
10350 pub description: Option<LegalHoldPolicyDescription>,
10352 pub start_date: Option<crate::types::common::DropboxTimestamp>,
10354 pub end_date: Option<crate::types::common::DropboxTimestamp>,
10356}
10357
10358impl LegalHoldsPolicyCreateArg {
10359 pub fn new(
10360 name: LegalHoldPolicyName,
10361 members: Vec<crate::types::team_common::TeamMemberId>,
10362 ) -> Self {
10363 LegalHoldsPolicyCreateArg {
10364 name,
10365 members,
10366 description: None,
10367 start_date: None,
10368 end_date: None,
10369 }
10370 }
10371
10372 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
10373 self.description = Some(value);
10374 self
10375 }
10376
10377 pub fn with_start_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
10378 self.start_date = Some(value);
10379 self
10380 }
10381
10382 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
10383 self.end_date = Some(value);
10384 self
10385 }
10386}
10387
10388const LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS: &[&str] = &["name",
10389 "members",
10390 "description",
10391 "start_date",
10392 "end_date"];
10393impl LegalHoldsPolicyCreateArg {
10394 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10395 map: V,
10396 ) -> Result<LegalHoldsPolicyCreateArg, V::Error> {
10397 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10398 }
10399
10400 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10401 mut map: V,
10402 optional: bool,
10403 ) -> Result<Option<LegalHoldsPolicyCreateArg>, V::Error> {
10404 let mut field_name = None;
10405 let mut field_members = None;
10406 let mut field_description = None;
10407 let mut field_start_date = None;
10408 let mut field_end_date = None;
10409 let mut nothing = true;
10410 while let Some(key) = map.next_key::<&str>()? {
10411 nothing = false;
10412 match key {
10413 "name" => {
10414 if field_name.is_some() {
10415 return Err(::serde::de::Error::duplicate_field("name"));
10416 }
10417 field_name = Some(map.next_value()?);
10418 }
10419 "members" => {
10420 if field_members.is_some() {
10421 return Err(::serde::de::Error::duplicate_field("members"));
10422 }
10423 field_members = Some(map.next_value()?);
10424 }
10425 "description" => {
10426 if field_description.is_some() {
10427 return Err(::serde::de::Error::duplicate_field("description"));
10428 }
10429 field_description = Some(map.next_value()?);
10430 }
10431 "start_date" => {
10432 if field_start_date.is_some() {
10433 return Err(::serde::de::Error::duplicate_field("start_date"));
10434 }
10435 field_start_date = Some(map.next_value()?);
10436 }
10437 "end_date" => {
10438 if field_end_date.is_some() {
10439 return Err(::serde::de::Error::duplicate_field("end_date"));
10440 }
10441 field_end_date = Some(map.next_value()?);
10442 }
10443 _ => {
10444 map.next_value::<::serde_json::Value>()?;
10446 }
10447 }
10448 }
10449 if optional && nothing {
10450 return Ok(None);
10451 }
10452 let result = LegalHoldsPolicyCreateArg {
10453 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
10454 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
10455 description: field_description.and_then(Option::flatten),
10456 start_date: field_start_date.and_then(Option::flatten),
10457 end_date: field_end_date.and_then(Option::flatten),
10458 };
10459 Ok(Some(result))
10460 }
10461
10462 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10463 &self,
10464 s: &mut S::SerializeStruct,
10465 ) -> Result<(), S::Error> {
10466 use serde::ser::SerializeStruct;
10467 s.serialize_field("name", &self.name)?;
10468 s.serialize_field("members", &self.members)?;
10469 if let Some(val) = &self.description {
10470 s.serialize_field("description", val)?;
10471 }
10472 if let Some(val) = &self.start_date {
10473 s.serialize_field("start_date", val)?;
10474 }
10475 if let Some(val) = &self.end_date {
10476 s.serialize_field("end_date", val)?;
10477 }
10478 Ok(())
10479 }
10480}
10481
10482impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateArg {
10483 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10484 use serde::de::{MapAccess, Visitor};
10486 struct StructVisitor;
10487 impl<'de> Visitor<'de> for StructVisitor {
10488 type Value = LegalHoldsPolicyCreateArg;
10489 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10490 f.write_str("a LegalHoldsPolicyCreateArg struct")
10491 }
10492 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10493 LegalHoldsPolicyCreateArg::internal_deserialize(map)
10494 }
10495 }
10496 deserializer.deserialize_struct("LegalHoldsPolicyCreateArg", LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS, StructVisitor)
10497 }
10498}
10499
10500impl ::serde::ser::Serialize for LegalHoldsPolicyCreateArg {
10501 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10502 use serde::ser::SerializeStruct;
10504 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateArg", 5)?;
10505 self.internal_serialize::<S>(&mut s)?;
10506 s.end()
10507 }
10508}
10509
10510#[derive(Debug, Clone, PartialEq, Eq)]
10511#[non_exhaustive] pub enum LegalHoldsPolicyCreateError {
10513 UnknownLegalHoldError,
10515 InsufficientPermissions,
10517 StartDateIsLaterThanEndDate,
10519 EmptyMembersList,
10521 InvalidMembers,
10523 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10525 TransientError,
10527 NameMustBeUnique,
10529 TeamExceededLegalHoldQuota,
10531 InvalidDate,
10533 Other,
10536}
10537
10538impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateError {
10539 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10540 use serde::de::{self, MapAccess, Visitor};
10542 struct EnumVisitor;
10543 impl<'de> Visitor<'de> for EnumVisitor {
10544 type Value = LegalHoldsPolicyCreateError;
10545 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10546 f.write_str("a LegalHoldsPolicyCreateError structure")
10547 }
10548 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10549 let tag: &str = match map.next_key()? {
10550 Some(".tag") => map.next_value()?,
10551 _ => return Err(de::Error::missing_field(".tag"))
10552 };
10553 let value = match tag {
10554 "unknown_legal_hold_error" => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
10555 "insufficient_permissions" => LegalHoldsPolicyCreateError::InsufficientPermissions,
10556 "start_date_is_later_than_end_date" => LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate,
10557 "empty_members_list" => LegalHoldsPolicyCreateError::EmptyMembersList,
10558 "invalid_members" => LegalHoldsPolicyCreateError::InvalidMembers,
10559 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10560 "transient_error" => LegalHoldsPolicyCreateError::TransientError,
10561 "name_must_be_unique" => LegalHoldsPolicyCreateError::NameMustBeUnique,
10562 "team_exceeded_legal_hold_quota" => LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota,
10563 "invalid_date" => LegalHoldsPolicyCreateError::InvalidDate,
10564 _ => LegalHoldsPolicyCreateError::Other,
10565 };
10566 crate::eat_json_fields(&mut map)?;
10567 Ok(value)
10568 }
10569 }
10570 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10571 "insufficient_permissions",
10572 "other",
10573 "start_date_is_later_than_end_date",
10574 "empty_members_list",
10575 "invalid_members",
10576 "number_of_users_on_hold_is_greater_than_hold_limitation",
10577 "transient_error",
10578 "name_must_be_unique",
10579 "team_exceeded_legal_hold_quota",
10580 "invalid_date"];
10581 deserializer.deserialize_struct("LegalHoldsPolicyCreateError", VARIANTS, EnumVisitor)
10582 }
10583}
10584
10585impl ::serde::ser::Serialize for LegalHoldsPolicyCreateError {
10586 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10587 use serde::ser::SerializeStruct;
10589 match self {
10590 LegalHoldsPolicyCreateError::UnknownLegalHoldError => {
10591 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10593 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10594 s.end()
10595 }
10596 LegalHoldsPolicyCreateError::InsufficientPermissions => {
10597 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10599 s.serialize_field(".tag", "insufficient_permissions")?;
10600 s.end()
10601 }
10602 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => {
10603 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10605 s.serialize_field(".tag", "start_date_is_later_than_end_date")?;
10606 s.end()
10607 }
10608 LegalHoldsPolicyCreateError::EmptyMembersList => {
10609 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10611 s.serialize_field(".tag", "empty_members_list")?;
10612 s.end()
10613 }
10614 LegalHoldsPolicyCreateError::InvalidMembers => {
10615 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10617 s.serialize_field(".tag", "invalid_members")?;
10618 s.end()
10619 }
10620 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
10621 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10623 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
10624 s.end()
10625 }
10626 LegalHoldsPolicyCreateError::TransientError => {
10627 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10629 s.serialize_field(".tag", "transient_error")?;
10630 s.end()
10631 }
10632 LegalHoldsPolicyCreateError::NameMustBeUnique => {
10633 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10635 s.serialize_field(".tag", "name_must_be_unique")?;
10636 s.end()
10637 }
10638 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => {
10639 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10641 s.serialize_field(".tag", "team_exceeded_legal_hold_quota")?;
10642 s.end()
10643 }
10644 LegalHoldsPolicyCreateError::InvalidDate => {
10645 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10647 s.serialize_field(".tag", "invalid_date")?;
10648 s.end()
10649 }
10650 LegalHoldsPolicyCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10651 }
10652 }
10653}
10654
10655impl ::std::error::Error for LegalHoldsPolicyCreateError {
10656}
10657
10658impl ::std::fmt::Display for LegalHoldsPolicyCreateError {
10659 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10660 match self {
10661 LegalHoldsPolicyCreateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10662 LegalHoldsPolicyCreateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10663 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => f.write_str("Start date must be earlier than end date."),
10664 LegalHoldsPolicyCreateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
10665 LegalHoldsPolicyCreateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
10666 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
10667 LegalHoldsPolicyCreateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10668 LegalHoldsPolicyCreateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
10669 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => f.write_str("Team exceeded legal hold quota."),
10670 LegalHoldsPolicyCreateError::InvalidDate => f.write_str("The provided date is invalid."),
10671 _ => write!(f, "{:?}", *self),
10672 }
10673 }
10674}
10675
10676impl From<LegalHoldsError> for LegalHoldsPolicyCreateError {
10678 fn from(parent: LegalHoldsError) -> Self {
10679 match parent {
10680 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
10681 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyCreateError::InsufficientPermissions,
10682 LegalHoldsError::Other => LegalHoldsPolicyCreateError::Other,
10683 }
10684 }
10685}
10686#[derive(Debug, Clone, PartialEq, Eq)]
10687#[non_exhaustive] pub struct LegalHoldsPolicyReleaseArg {
10689 pub id: LegalHoldId,
10691}
10692
10693impl LegalHoldsPolicyReleaseArg {
10694 pub fn new(id: LegalHoldId) -> Self {
10695 LegalHoldsPolicyReleaseArg {
10696 id,
10697 }
10698 }
10699}
10700
10701const LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS: &[&str] = &["id"];
10702impl LegalHoldsPolicyReleaseArg {
10703 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10704 map: V,
10705 ) -> Result<LegalHoldsPolicyReleaseArg, V::Error> {
10706 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10707 }
10708
10709 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10710 mut map: V,
10711 optional: bool,
10712 ) -> Result<Option<LegalHoldsPolicyReleaseArg>, V::Error> {
10713 let mut field_id = None;
10714 let mut nothing = true;
10715 while let Some(key) = map.next_key::<&str>()? {
10716 nothing = false;
10717 match key {
10718 "id" => {
10719 if field_id.is_some() {
10720 return Err(::serde::de::Error::duplicate_field("id"));
10721 }
10722 field_id = Some(map.next_value()?);
10723 }
10724 _ => {
10725 map.next_value::<::serde_json::Value>()?;
10727 }
10728 }
10729 }
10730 if optional && nothing {
10731 return Ok(None);
10732 }
10733 let result = LegalHoldsPolicyReleaseArg {
10734 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10735 };
10736 Ok(Some(result))
10737 }
10738
10739 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10740 &self,
10741 s: &mut S::SerializeStruct,
10742 ) -> Result<(), S::Error> {
10743 use serde::ser::SerializeStruct;
10744 s.serialize_field("id", &self.id)?;
10745 Ok(())
10746 }
10747}
10748
10749impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseArg {
10750 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10751 use serde::de::{MapAccess, Visitor};
10753 struct StructVisitor;
10754 impl<'de> Visitor<'de> for StructVisitor {
10755 type Value = LegalHoldsPolicyReleaseArg;
10756 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10757 f.write_str("a LegalHoldsPolicyReleaseArg struct")
10758 }
10759 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10760 LegalHoldsPolicyReleaseArg::internal_deserialize(map)
10761 }
10762 }
10763 deserializer.deserialize_struct("LegalHoldsPolicyReleaseArg", LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS, StructVisitor)
10764 }
10765}
10766
10767impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseArg {
10768 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10769 use serde::ser::SerializeStruct;
10771 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseArg", 1)?;
10772 self.internal_serialize::<S>(&mut s)?;
10773 s.end()
10774 }
10775}
10776
10777#[derive(Debug, Clone, PartialEq, Eq)]
10778#[non_exhaustive] pub enum LegalHoldsPolicyReleaseError {
10780 UnknownLegalHoldError,
10782 InsufficientPermissions,
10784 LegalHoldPerformingAnotherOperation,
10786 LegalHoldAlreadyReleasing,
10788 LegalHoldPolicyNotFound,
10791 Other,
10794}
10795
10796impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseError {
10797 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10798 use serde::de::{self, MapAccess, Visitor};
10800 struct EnumVisitor;
10801 impl<'de> Visitor<'de> for EnumVisitor {
10802 type Value = LegalHoldsPolicyReleaseError;
10803 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10804 f.write_str("a LegalHoldsPolicyReleaseError structure")
10805 }
10806 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10807 let tag: &str = match map.next_key()? {
10808 Some(".tag") => map.next_value()?,
10809 _ => return Err(de::Error::missing_field(".tag"))
10810 };
10811 let value = match tag {
10812 "unknown_legal_hold_error" => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
10813 "insufficient_permissions" => LegalHoldsPolicyReleaseError::InsufficientPermissions,
10814 "legal_hold_performing_another_operation" => LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation,
10815 "legal_hold_already_releasing" => LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing,
10816 "legal_hold_policy_not_found" => LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound,
10817 _ => LegalHoldsPolicyReleaseError::Other,
10818 };
10819 crate::eat_json_fields(&mut map)?;
10820 Ok(value)
10821 }
10822 }
10823 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10824 "insufficient_permissions",
10825 "other",
10826 "legal_hold_performing_another_operation",
10827 "legal_hold_already_releasing",
10828 "legal_hold_policy_not_found"];
10829 deserializer.deserialize_struct("LegalHoldsPolicyReleaseError", VARIANTS, EnumVisitor)
10830 }
10831}
10832
10833impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseError {
10834 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10835 use serde::ser::SerializeStruct;
10837 match self {
10838 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => {
10839 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10841 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10842 s.end()
10843 }
10844 LegalHoldsPolicyReleaseError::InsufficientPermissions => {
10845 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10847 s.serialize_field(".tag", "insufficient_permissions")?;
10848 s.end()
10849 }
10850 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => {
10851 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10853 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
10854 s.end()
10855 }
10856 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => {
10857 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10859 s.serialize_field(".tag", "legal_hold_already_releasing")?;
10860 s.end()
10861 }
10862 LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound => {
10863 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10865 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
10866 s.end()
10867 }
10868 LegalHoldsPolicyReleaseError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10869 }
10870 }
10871}
10872
10873impl ::std::error::Error for LegalHoldsPolicyReleaseError {
10874}
10875
10876impl ::std::fmt::Display for LegalHoldsPolicyReleaseError {
10877 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10878 match self {
10879 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10880 LegalHoldsPolicyReleaseError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10881 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
10882 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => f.write_str("Legal hold is currently performing a release or is already released."),
10883 _ => write!(f, "{:?}", *self),
10884 }
10885 }
10886}
10887
10888impl From<LegalHoldsError> for LegalHoldsPolicyReleaseError {
10890 fn from(parent: LegalHoldsError) -> Self {
10891 match parent {
10892 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
10893 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyReleaseError::InsufficientPermissions,
10894 LegalHoldsError::Other => LegalHoldsPolicyReleaseError::Other,
10895 }
10896 }
10897}
10898#[derive(Debug, Clone, PartialEq, Eq)]
10899#[non_exhaustive] pub struct LegalHoldsPolicyUpdateArg {
10901 pub id: LegalHoldId,
10903 pub name: Option<LegalHoldPolicyName>,
10905 pub description: Option<LegalHoldPolicyDescription>,
10907 pub members: Option<Vec<crate::types::team_common::TeamMemberId>>,
10909}
10910
10911impl LegalHoldsPolicyUpdateArg {
10912 pub fn new(id: LegalHoldId) -> Self {
10913 LegalHoldsPolicyUpdateArg {
10914 id,
10915 name: None,
10916 description: None,
10917 members: None,
10918 }
10919 }
10920
10921 pub fn with_name(mut self, value: LegalHoldPolicyName) -> Self {
10922 self.name = Some(value);
10923 self
10924 }
10925
10926 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
10927 self.description = Some(value);
10928 self
10929 }
10930
10931 pub fn with_members(mut self, value: Vec<crate::types::team_common::TeamMemberId>) -> Self {
10932 self.members = Some(value);
10933 self
10934 }
10935}
10936
10937const LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS: &[&str] = &["id",
10938 "name",
10939 "description",
10940 "members"];
10941impl LegalHoldsPolicyUpdateArg {
10942 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10943 map: V,
10944 ) -> Result<LegalHoldsPolicyUpdateArg, V::Error> {
10945 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10946 }
10947
10948 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10949 mut map: V,
10950 optional: bool,
10951 ) -> Result<Option<LegalHoldsPolicyUpdateArg>, V::Error> {
10952 let mut field_id = None;
10953 let mut field_name = None;
10954 let mut field_description = None;
10955 let mut field_members = None;
10956 let mut nothing = true;
10957 while let Some(key) = map.next_key::<&str>()? {
10958 nothing = false;
10959 match key {
10960 "id" => {
10961 if field_id.is_some() {
10962 return Err(::serde::de::Error::duplicate_field("id"));
10963 }
10964 field_id = Some(map.next_value()?);
10965 }
10966 "name" => {
10967 if field_name.is_some() {
10968 return Err(::serde::de::Error::duplicate_field("name"));
10969 }
10970 field_name = Some(map.next_value()?);
10971 }
10972 "description" => {
10973 if field_description.is_some() {
10974 return Err(::serde::de::Error::duplicate_field("description"));
10975 }
10976 field_description = Some(map.next_value()?);
10977 }
10978 "members" => {
10979 if field_members.is_some() {
10980 return Err(::serde::de::Error::duplicate_field("members"));
10981 }
10982 field_members = Some(map.next_value()?);
10983 }
10984 _ => {
10985 map.next_value::<::serde_json::Value>()?;
10987 }
10988 }
10989 }
10990 if optional && nothing {
10991 return Ok(None);
10992 }
10993 let result = LegalHoldsPolicyUpdateArg {
10994 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10995 name: field_name.and_then(Option::flatten),
10996 description: field_description.and_then(Option::flatten),
10997 members: field_members.and_then(Option::flatten),
10998 };
10999 Ok(Some(result))
11000 }
11001
11002 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11003 &self,
11004 s: &mut S::SerializeStruct,
11005 ) -> Result<(), S::Error> {
11006 use serde::ser::SerializeStruct;
11007 s.serialize_field("id", &self.id)?;
11008 if let Some(val) = &self.name {
11009 s.serialize_field("name", val)?;
11010 }
11011 if let Some(val) = &self.description {
11012 s.serialize_field("description", val)?;
11013 }
11014 if let Some(val) = &self.members {
11015 s.serialize_field("members", val)?;
11016 }
11017 Ok(())
11018 }
11019}
11020
11021impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateArg {
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 = LegalHoldsPolicyUpdateArg;
11028 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11029 f.write_str("a LegalHoldsPolicyUpdateArg struct")
11030 }
11031 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11032 LegalHoldsPolicyUpdateArg::internal_deserialize(map)
11033 }
11034 }
11035 deserializer.deserialize_struct("LegalHoldsPolicyUpdateArg", LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS, StructVisitor)
11036 }
11037}
11038
11039impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateArg {
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("LegalHoldsPolicyUpdateArg", 4)?;
11044 self.internal_serialize::<S>(&mut s)?;
11045 s.end()
11046 }
11047}
11048
11049#[derive(Debug, Clone, PartialEq, Eq)]
11050#[non_exhaustive] pub enum LegalHoldsPolicyUpdateError {
11052 UnknownLegalHoldError,
11054 InsufficientPermissions,
11056 TransientError,
11058 InactiveLegalHold,
11060 LegalHoldPerformingAnotherOperation,
11062 InvalidMembers,
11064 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11066 EmptyMembersList,
11068 NameMustBeUnique,
11070 LegalHoldPolicyNotFound,
11073 Other,
11076}
11077
11078impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateError {
11079 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11080 use serde::de::{self, MapAccess, Visitor};
11082 struct EnumVisitor;
11083 impl<'de> Visitor<'de> for EnumVisitor {
11084 type Value = LegalHoldsPolicyUpdateError;
11085 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11086 f.write_str("a LegalHoldsPolicyUpdateError structure")
11087 }
11088 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11089 let tag: &str = match map.next_key()? {
11090 Some(".tag") => map.next_value()?,
11091 _ => return Err(de::Error::missing_field(".tag"))
11092 };
11093 let value = match tag {
11094 "unknown_legal_hold_error" => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11095 "insufficient_permissions" => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11096 "transient_error" => LegalHoldsPolicyUpdateError::TransientError,
11097 "inactive_legal_hold" => LegalHoldsPolicyUpdateError::InactiveLegalHold,
11098 "legal_hold_performing_another_operation" => LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation,
11099 "invalid_members" => LegalHoldsPolicyUpdateError::InvalidMembers,
11100 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11101 "empty_members_list" => LegalHoldsPolicyUpdateError::EmptyMembersList,
11102 "name_must_be_unique" => LegalHoldsPolicyUpdateError::NameMustBeUnique,
11103 "legal_hold_policy_not_found" => LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound,
11104 _ => LegalHoldsPolicyUpdateError::Other,
11105 };
11106 crate::eat_json_fields(&mut map)?;
11107 Ok(value)
11108 }
11109 }
11110 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
11111 "insufficient_permissions",
11112 "other",
11113 "transient_error",
11114 "inactive_legal_hold",
11115 "legal_hold_performing_another_operation",
11116 "invalid_members",
11117 "number_of_users_on_hold_is_greater_than_hold_limitation",
11118 "empty_members_list",
11119 "name_must_be_unique",
11120 "legal_hold_policy_not_found"];
11121 deserializer.deserialize_struct("LegalHoldsPolicyUpdateError", VARIANTS, EnumVisitor)
11122 }
11123}
11124
11125impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateError {
11126 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11127 use serde::ser::SerializeStruct;
11129 match self {
11130 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => {
11131 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11133 s.serialize_field(".tag", "unknown_legal_hold_error")?;
11134 s.end()
11135 }
11136 LegalHoldsPolicyUpdateError::InsufficientPermissions => {
11137 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11139 s.serialize_field(".tag", "insufficient_permissions")?;
11140 s.end()
11141 }
11142 LegalHoldsPolicyUpdateError::TransientError => {
11143 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11145 s.serialize_field(".tag", "transient_error")?;
11146 s.end()
11147 }
11148 LegalHoldsPolicyUpdateError::InactiveLegalHold => {
11149 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11151 s.serialize_field(".tag", "inactive_legal_hold")?;
11152 s.end()
11153 }
11154 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => {
11155 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11157 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
11158 s.end()
11159 }
11160 LegalHoldsPolicyUpdateError::InvalidMembers => {
11161 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11163 s.serialize_field(".tag", "invalid_members")?;
11164 s.end()
11165 }
11166 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
11167 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11169 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
11170 s.end()
11171 }
11172 LegalHoldsPolicyUpdateError::EmptyMembersList => {
11173 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11175 s.serialize_field(".tag", "empty_members_list")?;
11176 s.end()
11177 }
11178 LegalHoldsPolicyUpdateError::NameMustBeUnique => {
11179 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11181 s.serialize_field(".tag", "name_must_be_unique")?;
11182 s.end()
11183 }
11184 LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound => {
11185 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11187 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
11188 s.end()
11189 }
11190 LegalHoldsPolicyUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11191 }
11192 }
11193}
11194
11195impl ::std::error::Error for LegalHoldsPolicyUpdateError {
11196}
11197
11198impl ::std::fmt::Display for LegalHoldsPolicyUpdateError {
11199 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11200 match self {
11201 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
11202 LegalHoldsPolicyUpdateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
11203 LegalHoldsPolicyUpdateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
11204 LegalHoldsPolicyUpdateError::InactiveLegalHold => f.write_str("Trying to release an inactive legal hold."),
11205 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
11206 LegalHoldsPolicyUpdateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
11207 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
11208 LegalHoldsPolicyUpdateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
11209 LegalHoldsPolicyUpdateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
11210 _ => write!(f, "{:?}", *self),
11211 }
11212 }
11213}
11214
11215impl From<LegalHoldsError> for LegalHoldsPolicyUpdateError {
11217 fn from(parent: LegalHoldsError) -> Self {
11218 match parent {
11219 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11220 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11221 LegalHoldsError::Other => LegalHoldsPolicyUpdateError::Other,
11222 }
11223 }
11224}
11225#[derive(Debug, Clone, PartialEq, Eq)]
11226#[non_exhaustive] pub struct ListMemberAppsArg {
11228 pub team_member_id: String,
11230}
11231
11232impl ListMemberAppsArg {
11233 pub fn new(team_member_id: String) -> Self {
11234 ListMemberAppsArg {
11235 team_member_id,
11236 }
11237 }
11238}
11239
11240const LIST_MEMBER_APPS_ARG_FIELDS: &[&str] = &["team_member_id"];
11241impl ListMemberAppsArg {
11242 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11243 map: V,
11244 ) -> Result<ListMemberAppsArg, V::Error> {
11245 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11246 }
11247
11248 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11249 mut map: V,
11250 optional: bool,
11251 ) -> Result<Option<ListMemberAppsArg>, V::Error> {
11252 let mut field_team_member_id = None;
11253 let mut nothing = true;
11254 while let Some(key) = map.next_key::<&str>()? {
11255 nothing = false;
11256 match key {
11257 "team_member_id" => {
11258 if field_team_member_id.is_some() {
11259 return Err(::serde::de::Error::duplicate_field("team_member_id"));
11260 }
11261 field_team_member_id = Some(map.next_value()?);
11262 }
11263 _ => {
11264 map.next_value::<::serde_json::Value>()?;
11266 }
11267 }
11268 }
11269 if optional && nothing {
11270 return Ok(None);
11271 }
11272 let result = ListMemberAppsArg {
11273 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
11274 };
11275 Ok(Some(result))
11276 }
11277
11278 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11279 &self,
11280 s: &mut S::SerializeStruct,
11281 ) -> Result<(), S::Error> {
11282 use serde::ser::SerializeStruct;
11283 s.serialize_field("team_member_id", &self.team_member_id)?;
11284 Ok(())
11285 }
11286}
11287
11288impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsArg {
11289 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11290 use serde::de::{MapAccess, Visitor};
11292 struct StructVisitor;
11293 impl<'de> Visitor<'de> for StructVisitor {
11294 type Value = ListMemberAppsArg;
11295 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11296 f.write_str("a ListMemberAppsArg struct")
11297 }
11298 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11299 ListMemberAppsArg::internal_deserialize(map)
11300 }
11301 }
11302 deserializer.deserialize_struct("ListMemberAppsArg", LIST_MEMBER_APPS_ARG_FIELDS, StructVisitor)
11303 }
11304}
11305
11306impl ::serde::ser::Serialize for ListMemberAppsArg {
11307 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11308 use serde::ser::SerializeStruct;
11310 let mut s = serializer.serialize_struct("ListMemberAppsArg", 1)?;
11311 self.internal_serialize::<S>(&mut s)?;
11312 s.end()
11313 }
11314}
11315
11316#[derive(Debug, Clone, PartialEq, Eq)]
11319#[non_exhaustive] pub enum ListMemberAppsError {
11321 MemberNotFound,
11323 Other,
11326}
11327
11328impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsError {
11329 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11330 use serde::de::{self, MapAccess, Visitor};
11332 struct EnumVisitor;
11333 impl<'de> Visitor<'de> for EnumVisitor {
11334 type Value = ListMemberAppsError;
11335 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11336 f.write_str("a ListMemberAppsError structure")
11337 }
11338 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11339 let tag: &str = match map.next_key()? {
11340 Some(".tag") => map.next_value()?,
11341 _ => return Err(de::Error::missing_field(".tag"))
11342 };
11343 let value = match tag {
11344 "member_not_found" => ListMemberAppsError::MemberNotFound,
11345 _ => ListMemberAppsError::Other,
11346 };
11347 crate::eat_json_fields(&mut map)?;
11348 Ok(value)
11349 }
11350 }
11351 const VARIANTS: &[&str] = &["member_not_found",
11352 "other"];
11353 deserializer.deserialize_struct("ListMemberAppsError", VARIANTS, EnumVisitor)
11354 }
11355}
11356
11357impl ::serde::ser::Serialize for ListMemberAppsError {
11358 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11359 use serde::ser::SerializeStruct;
11361 match self {
11362 ListMemberAppsError::MemberNotFound => {
11363 let mut s = serializer.serialize_struct("ListMemberAppsError", 1)?;
11365 s.serialize_field(".tag", "member_not_found")?;
11366 s.end()
11367 }
11368 ListMemberAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11369 }
11370 }
11371}
11372
11373impl ::std::error::Error for ListMemberAppsError {
11374}
11375
11376impl ::std::fmt::Display for ListMemberAppsError {
11377 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11378 match self {
11379 ListMemberAppsError::MemberNotFound => f.write_str("Member not found."),
11380 _ => write!(f, "{:?}", *self),
11381 }
11382 }
11383}
11384
11385#[derive(Debug, Clone, PartialEq, Eq)]
11386#[non_exhaustive] pub struct ListMemberAppsResult {
11388 pub linked_api_apps: Vec<ApiApp>,
11390}
11391
11392impl ListMemberAppsResult {
11393 pub fn new(linked_api_apps: Vec<ApiApp>) -> Self {
11394 ListMemberAppsResult {
11395 linked_api_apps,
11396 }
11397 }
11398}
11399
11400const LIST_MEMBER_APPS_RESULT_FIELDS: &[&str] = &["linked_api_apps"];
11401impl ListMemberAppsResult {
11402 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11403 map: V,
11404 ) -> Result<ListMemberAppsResult, V::Error> {
11405 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11406 }
11407
11408 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11409 mut map: V,
11410 optional: bool,
11411 ) -> Result<Option<ListMemberAppsResult>, V::Error> {
11412 let mut field_linked_api_apps = None;
11413 let mut nothing = true;
11414 while let Some(key) = map.next_key::<&str>()? {
11415 nothing = false;
11416 match key {
11417 "linked_api_apps" => {
11418 if field_linked_api_apps.is_some() {
11419 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
11420 }
11421 field_linked_api_apps = Some(map.next_value()?);
11422 }
11423 _ => {
11424 map.next_value::<::serde_json::Value>()?;
11426 }
11427 }
11428 }
11429 if optional && nothing {
11430 return Ok(None);
11431 }
11432 let result = ListMemberAppsResult {
11433 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
11434 };
11435 Ok(Some(result))
11436 }
11437
11438 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11439 &self,
11440 s: &mut S::SerializeStruct,
11441 ) -> Result<(), S::Error> {
11442 use serde::ser::SerializeStruct;
11443 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
11444 Ok(())
11445 }
11446}
11447
11448impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsResult {
11449 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11450 use serde::de::{MapAccess, Visitor};
11452 struct StructVisitor;
11453 impl<'de> Visitor<'de> for StructVisitor {
11454 type Value = ListMemberAppsResult;
11455 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11456 f.write_str("a ListMemberAppsResult struct")
11457 }
11458 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11459 ListMemberAppsResult::internal_deserialize(map)
11460 }
11461 }
11462 deserializer.deserialize_struct("ListMemberAppsResult", LIST_MEMBER_APPS_RESULT_FIELDS, StructVisitor)
11463 }
11464}
11465
11466impl ::serde::ser::Serialize for ListMemberAppsResult {
11467 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11468 use serde::ser::SerializeStruct;
11470 let mut s = serializer.serialize_struct("ListMemberAppsResult", 1)?;
11471 self.internal_serialize::<S>(&mut s)?;
11472 s.end()
11473 }
11474}
11475
11476#[derive(Debug, Clone, PartialEq, Eq)]
11477#[non_exhaustive] pub struct ListMemberDevicesArg {
11479 pub team_member_id: String,
11481 pub include_web_sessions: bool,
11483 pub include_desktop_clients: bool,
11485 pub include_mobile_clients: bool,
11487}
11488
11489impl ListMemberDevicesArg {
11490 pub fn new(team_member_id: String) -> Self {
11491 ListMemberDevicesArg {
11492 team_member_id,
11493 include_web_sessions: true,
11494 include_desktop_clients: true,
11495 include_mobile_clients: true,
11496 }
11497 }
11498
11499 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
11500 self.include_web_sessions = value;
11501 self
11502 }
11503
11504 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
11505 self.include_desktop_clients = value;
11506 self
11507 }
11508
11509 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
11510 self.include_mobile_clients = value;
11511 self
11512 }
11513}
11514
11515const LIST_MEMBER_DEVICES_ARG_FIELDS: &[&str] = &["team_member_id",
11516 "include_web_sessions",
11517 "include_desktop_clients",
11518 "include_mobile_clients"];
11519impl ListMemberDevicesArg {
11520 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11521 map: V,
11522 ) -> Result<ListMemberDevicesArg, V::Error> {
11523 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11524 }
11525
11526 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11527 mut map: V,
11528 optional: bool,
11529 ) -> Result<Option<ListMemberDevicesArg>, V::Error> {
11530 let mut field_team_member_id = None;
11531 let mut field_include_web_sessions = None;
11532 let mut field_include_desktop_clients = None;
11533 let mut field_include_mobile_clients = None;
11534 let mut nothing = true;
11535 while let Some(key) = map.next_key::<&str>()? {
11536 nothing = false;
11537 match key {
11538 "team_member_id" => {
11539 if field_team_member_id.is_some() {
11540 return Err(::serde::de::Error::duplicate_field("team_member_id"));
11541 }
11542 field_team_member_id = Some(map.next_value()?);
11543 }
11544 "include_web_sessions" => {
11545 if field_include_web_sessions.is_some() {
11546 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
11547 }
11548 field_include_web_sessions = Some(map.next_value()?);
11549 }
11550 "include_desktop_clients" => {
11551 if field_include_desktop_clients.is_some() {
11552 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
11553 }
11554 field_include_desktop_clients = Some(map.next_value()?);
11555 }
11556 "include_mobile_clients" => {
11557 if field_include_mobile_clients.is_some() {
11558 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
11559 }
11560 field_include_mobile_clients = Some(map.next_value()?);
11561 }
11562 _ => {
11563 map.next_value::<::serde_json::Value>()?;
11565 }
11566 }
11567 }
11568 if optional && nothing {
11569 return Ok(None);
11570 }
11571 let result = ListMemberDevicesArg {
11572 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
11573 include_web_sessions: field_include_web_sessions.unwrap_or(true),
11574 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
11575 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
11576 };
11577 Ok(Some(result))
11578 }
11579
11580 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11581 &self,
11582 s: &mut S::SerializeStruct,
11583 ) -> Result<(), S::Error> {
11584 use serde::ser::SerializeStruct;
11585 s.serialize_field("team_member_id", &self.team_member_id)?;
11586 if !self.include_web_sessions {
11587 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
11588 }
11589 if !self.include_desktop_clients {
11590 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
11591 }
11592 if !self.include_mobile_clients {
11593 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
11594 }
11595 Ok(())
11596 }
11597}
11598
11599impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesArg {
11600 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11601 use serde::de::{MapAccess, Visitor};
11603 struct StructVisitor;
11604 impl<'de> Visitor<'de> for StructVisitor {
11605 type Value = ListMemberDevicesArg;
11606 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11607 f.write_str("a ListMemberDevicesArg struct")
11608 }
11609 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11610 ListMemberDevicesArg::internal_deserialize(map)
11611 }
11612 }
11613 deserializer.deserialize_struct("ListMemberDevicesArg", LIST_MEMBER_DEVICES_ARG_FIELDS, StructVisitor)
11614 }
11615}
11616
11617impl ::serde::ser::Serialize for ListMemberDevicesArg {
11618 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11619 use serde::ser::SerializeStruct;
11621 let mut s = serializer.serialize_struct("ListMemberDevicesArg", 4)?;
11622 self.internal_serialize::<S>(&mut s)?;
11623 s.end()
11624 }
11625}
11626
11627#[derive(Debug, Clone, PartialEq, Eq)]
11628#[non_exhaustive] pub enum ListMemberDevicesError {
11630 MemberNotFound,
11632 Other,
11635}
11636
11637impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesError {
11638 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11639 use serde::de::{self, MapAccess, Visitor};
11641 struct EnumVisitor;
11642 impl<'de> Visitor<'de> for EnumVisitor {
11643 type Value = ListMemberDevicesError;
11644 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11645 f.write_str("a ListMemberDevicesError structure")
11646 }
11647 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11648 let tag: &str = match map.next_key()? {
11649 Some(".tag") => map.next_value()?,
11650 _ => return Err(de::Error::missing_field(".tag"))
11651 };
11652 let value = match tag {
11653 "member_not_found" => ListMemberDevicesError::MemberNotFound,
11654 _ => ListMemberDevicesError::Other,
11655 };
11656 crate::eat_json_fields(&mut map)?;
11657 Ok(value)
11658 }
11659 }
11660 const VARIANTS: &[&str] = &["member_not_found",
11661 "other"];
11662 deserializer.deserialize_struct("ListMemberDevicesError", VARIANTS, EnumVisitor)
11663 }
11664}
11665
11666impl ::serde::ser::Serialize for ListMemberDevicesError {
11667 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11668 use serde::ser::SerializeStruct;
11670 match self {
11671 ListMemberDevicesError::MemberNotFound => {
11672 let mut s = serializer.serialize_struct("ListMemberDevicesError", 1)?;
11674 s.serialize_field(".tag", "member_not_found")?;
11675 s.end()
11676 }
11677 ListMemberDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11678 }
11679 }
11680}
11681
11682impl ::std::error::Error for ListMemberDevicesError {
11683}
11684
11685impl ::std::fmt::Display for ListMemberDevicesError {
11686 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11687 match self {
11688 ListMemberDevicesError::MemberNotFound => f.write_str("Member not found."),
11689 _ => write!(f, "{:?}", *self),
11690 }
11691 }
11692}
11693
11694#[derive(Debug, Clone, PartialEq, Eq, Default)]
11695#[non_exhaustive] pub struct ListMemberDevicesResult {
11697 pub active_web_sessions: Option<Vec<ActiveWebSession>>,
11699 pub desktop_client_sessions: Option<Vec<DesktopClientSession>>,
11701 pub mobile_client_sessions: Option<Vec<MobileClientSession>>,
11703}
11704
11705impl ListMemberDevicesResult {
11706 pub fn with_active_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
11707 self.active_web_sessions = Some(value);
11708 self
11709 }
11710
11711 pub fn with_desktop_client_sessions(mut self, value: Vec<DesktopClientSession>) -> Self {
11712 self.desktop_client_sessions = Some(value);
11713 self
11714 }
11715
11716 pub fn with_mobile_client_sessions(mut self, value: Vec<MobileClientSession>) -> Self {
11717 self.mobile_client_sessions = Some(value);
11718 self
11719 }
11720}
11721
11722const LIST_MEMBER_DEVICES_RESULT_FIELDS: &[&str] = &["active_web_sessions",
11723 "desktop_client_sessions",
11724 "mobile_client_sessions"];
11725impl ListMemberDevicesResult {
11726 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11728 mut map: V,
11729 ) -> Result<ListMemberDevicesResult, V::Error> {
11730 let mut field_active_web_sessions = None;
11731 let mut field_desktop_client_sessions = None;
11732 let mut field_mobile_client_sessions = None;
11733 while let Some(key) = map.next_key::<&str>()? {
11734 match key {
11735 "active_web_sessions" => {
11736 if field_active_web_sessions.is_some() {
11737 return Err(::serde::de::Error::duplicate_field("active_web_sessions"));
11738 }
11739 field_active_web_sessions = Some(map.next_value()?);
11740 }
11741 "desktop_client_sessions" => {
11742 if field_desktop_client_sessions.is_some() {
11743 return Err(::serde::de::Error::duplicate_field("desktop_client_sessions"));
11744 }
11745 field_desktop_client_sessions = Some(map.next_value()?);
11746 }
11747 "mobile_client_sessions" => {
11748 if field_mobile_client_sessions.is_some() {
11749 return Err(::serde::de::Error::duplicate_field("mobile_client_sessions"));
11750 }
11751 field_mobile_client_sessions = Some(map.next_value()?);
11752 }
11753 _ => {
11754 map.next_value::<::serde_json::Value>()?;
11756 }
11757 }
11758 }
11759 let result = ListMemberDevicesResult {
11760 active_web_sessions: field_active_web_sessions.and_then(Option::flatten),
11761 desktop_client_sessions: field_desktop_client_sessions.and_then(Option::flatten),
11762 mobile_client_sessions: field_mobile_client_sessions.and_then(Option::flatten),
11763 };
11764 Ok(result)
11765 }
11766
11767 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11768 &self,
11769 s: &mut S::SerializeStruct,
11770 ) -> Result<(), S::Error> {
11771 use serde::ser::SerializeStruct;
11772 if let Some(val) = &self.active_web_sessions {
11773 s.serialize_field("active_web_sessions", val)?;
11774 }
11775 if let Some(val) = &self.desktop_client_sessions {
11776 s.serialize_field("desktop_client_sessions", val)?;
11777 }
11778 if let Some(val) = &self.mobile_client_sessions {
11779 s.serialize_field("mobile_client_sessions", val)?;
11780 }
11781 Ok(())
11782 }
11783}
11784
11785impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesResult {
11786 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11787 use serde::de::{MapAccess, Visitor};
11789 struct StructVisitor;
11790 impl<'de> Visitor<'de> for StructVisitor {
11791 type Value = ListMemberDevicesResult;
11792 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11793 f.write_str("a ListMemberDevicesResult struct")
11794 }
11795 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11796 ListMemberDevicesResult::internal_deserialize(map)
11797 }
11798 }
11799 deserializer.deserialize_struct("ListMemberDevicesResult", LIST_MEMBER_DEVICES_RESULT_FIELDS, StructVisitor)
11800 }
11801}
11802
11803impl ::serde::ser::Serialize for ListMemberDevicesResult {
11804 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11805 use serde::ser::SerializeStruct;
11807 let mut s = serializer.serialize_struct("ListMemberDevicesResult", 3)?;
11808 self.internal_serialize::<S>(&mut s)?;
11809 s.end()
11810 }
11811}
11812
11813#[derive(Debug, Clone, PartialEq, Eq, Default)]
11816#[non_exhaustive] pub struct ListMembersAppsArg {
11818 pub cursor: Option<String>,
11824}
11825
11826impl ListMembersAppsArg {
11827 pub fn with_cursor(mut self, value: String) -> Self {
11828 self.cursor = Some(value);
11829 self
11830 }
11831}
11832
11833const LIST_MEMBERS_APPS_ARG_FIELDS: &[&str] = &["cursor"];
11834impl ListMembersAppsArg {
11835 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11837 mut map: V,
11838 ) -> Result<ListMembersAppsArg, V::Error> {
11839 let mut field_cursor = None;
11840 while let Some(key) = map.next_key::<&str>()? {
11841 match key {
11842 "cursor" => {
11843 if field_cursor.is_some() {
11844 return Err(::serde::de::Error::duplicate_field("cursor"));
11845 }
11846 field_cursor = Some(map.next_value()?);
11847 }
11848 _ => {
11849 map.next_value::<::serde_json::Value>()?;
11851 }
11852 }
11853 }
11854 let result = ListMembersAppsArg {
11855 cursor: field_cursor.and_then(Option::flatten),
11856 };
11857 Ok(result)
11858 }
11859
11860 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11861 &self,
11862 s: &mut S::SerializeStruct,
11863 ) -> Result<(), S::Error> {
11864 use serde::ser::SerializeStruct;
11865 if let Some(val) = &self.cursor {
11866 s.serialize_field("cursor", val)?;
11867 }
11868 Ok(())
11869 }
11870}
11871
11872impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsArg {
11873 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11874 use serde::de::{MapAccess, Visitor};
11876 struct StructVisitor;
11877 impl<'de> Visitor<'de> for StructVisitor {
11878 type Value = ListMembersAppsArg;
11879 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11880 f.write_str("a ListMembersAppsArg struct")
11881 }
11882 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11883 ListMembersAppsArg::internal_deserialize(map)
11884 }
11885 }
11886 deserializer.deserialize_struct("ListMembersAppsArg", LIST_MEMBERS_APPS_ARG_FIELDS, StructVisitor)
11887 }
11888}
11889
11890impl ::serde::ser::Serialize for ListMembersAppsArg {
11891 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11892 use serde::ser::SerializeStruct;
11894 let mut s = serializer.serialize_struct("ListMembersAppsArg", 1)?;
11895 self.internal_serialize::<S>(&mut s)?;
11896 s.end()
11897 }
11898}
11899
11900#[derive(Debug, Clone, PartialEq, Eq)]
11903#[non_exhaustive] pub enum ListMembersAppsError {
11905 Reset,
11909 Other,
11912}
11913
11914impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsError {
11915 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11916 use serde::de::{self, MapAccess, Visitor};
11918 struct EnumVisitor;
11919 impl<'de> Visitor<'de> for EnumVisitor {
11920 type Value = ListMembersAppsError;
11921 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11922 f.write_str("a ListMembersAppsError structure")
11923 }
11924 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11925 let tag: &str = match map.next_key()? {
11926 Some(".tag") => map.next_value()?,
11927 _ => return Err(de::Error::missing_field(".tag"))
11928 };
11929 let value = match tag {
11930 "reset" => ListMembersAppsError::Reset,
11931 _ => ListMembersAppsError::Other,
11932 };
11933 crate::eat_json_fields(&mut map)?;
11934 Ok(value)
11935 }
11936 }
11937 const VARIANTS: &[&str] = &["reset",
11938 "other"];
11939 deserializer.deserialize_struct("ListMembersAppsError", VARIANTS, EnumVisitor)
11940 }
11941}
11942
11943impl ::serde::ser::Serialize for ListMembersAppsError {
11944 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11945 use serde::ser::SerializeStruct;
11947 match self {
11948 ListMembersAppsError::Reset => {
11949 let mut s = serializer.serialize_struct("ListMembersAppsError", 1)?;
11951 s.serialize_field(".tag", "reset")?;
11952 s.end()
11953 }
11954 ListMembersAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11955 }
11956 }
11957}
11958
11959impl ::std::error::Error for ListMembersAppsError {
11960}
11961
11962impl ::std::fmt::Display for ListMembersAppsError {
11963 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11964 write!(f, "{:?}", *self)
11965 }
11966}
11967
11968#[derive(Debug, Clone, PartialEq, Eq)]
11971#[non_exhaustive] pub struct ListMembersAppsResult {
11973 pub apps: Vec<MemberLinkedApps>,
11975 pub has_more: bool,
11979 pub cursor: Option<String>,
11983}
11984
11985impl ListMembersAppsResult {
11986 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
11987 ListMembersAppsResult {
11988 apps,
11989 has_more,
11990 cursor: None,
11991 }
11992 }
11993
11994 pub fn with_cursor(mut self, value: String) -> Self {
11995 self.cursor = Some(value);
11996 self
11997 }
11998}
11999
12000const LIST_MEMBERS_APPS_RESULT_FIELDS: &[&str] = &["apps",
12001 "has_more",
12002 "cursor"];
12003impl ListMembersAppsResult {
12004 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12005 map: V,
12006 ) -> Result<ListMembersAppsResult, V::Error> {
12007 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12008 }
12009
12010 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12011 mut map: V,
12012 optional: bool,
12013 ) -> Result<Option<ListMembersAppsResult>, V::Error> {
12014 let mut field_apps = None;
12015 let mut field_has_more = None;
12016 let mut field_cursor = None;
12017 let mut nothing = true;
12018 while let Some(key) = map.next_key::<&str>()? {
12019 nothing = false;
12020 match key {
12021 "apps" => {
12022 if field_apps.is_some() {
12023 return Err(::serde::de::Error::duplicate_field("apps"));
12024 }
12025 field_apps = Some(map.next_value()?);
12026 }
12027 "has_more" => {
12028 if field_has_more.is_some() {
12029 return Err(::serde::de::Error::duplicate_field("has_more"));
12030 }
12031 field_has_more = Some(map.next_value()?);
12032 }
12033 "cursor" => {
12034 if field_cursor.is_some() {
12035 return Err(::serde::de::Error::duplicate_field("cursor"));
12036 }
12037 field_cursor = Some(map.next_value()?);
12038 }
12039 _ => {
12040 map.next_value::<::serde_json::Value>()?;
12042 }
12043 }
12044 }
12045 if optional && nothing {
12046 return Ok(None);
12047 }
12048 let result = ListMembersAppsResult {
12049 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
12050 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12051 cursor: field_cursor.and_then(Option::flatten),
12052 };
12053 Ok(Some(result))
12054 }
12055
12056 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12057 &self,
12058 s: &mut S::SerializeStruct,
12059 ) -> Result<(), S::Error> {
12060 use serde::ser::SerializeStruct;
12061 s.serialize_field("apps", &self.apps)?;
12062 s.serialize_field("has_more", &self.has_more)?;
12063 if let Some(val) = &self.cursor {
12064 s.serialize_field("cursor", val)?;
12065 }
12066 Ok(())
12067 }
12068}
12069
12070impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsResult {
12071 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12072 use serde::de::{MapAccess, Visitor};
12074 struct StructVisitor;
12075 impl<'de> Visitor<'de> for StructVisitor {
12076 type Value = ListMembersAppsResult;
12077 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12078 f.write_str("a ListMembersAppsResult struct")
12079 }
12080 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12081 ListMembersAppsResult::internal_deserialize(map)
12082 }
12083 }
12084 deserializer.deserialize_struct("ListMembersAppsResult", LIST_MEMBERS_APPS_RESULT_FIELDS, StructVisitor)
12085 }
12086}
12087
12088impl ::serde::ser::Serialize for ListMembersAppsResult {
12089 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12090 use serde::ser::SerializeStruct;
12092 let mut s = serializer.serialize_struct("ListMembersAppsResult", 3)?;
12093 self.internal_serialize::<S>(&mut s)?;
12094 s.end()
12095 }
12096}
12097
12098#[derive(Debug, Clone, PartialEq, Eq)]
12099#[non_exhaustive] pub struct ListMembersDevicesArg {
12101 pub cursor: Option<String>,
12107 pub include_web_sessions: bool,
12109 pub include_desktop_clients: bool,
12111 pub include_mobile_clients: bool,
12113}
12114
12115impl Default for ListMembersDevicesArg {
12116 fn default() -> Self {
12117 ListMembersDevicesArg {
12118 cursor: None,
12119 include_web_sessions: true,
12120 include_desktop_clients: true,
12121 include_mobile_clients: true,
12122 }
12123 }
12124}
12125
12126impl ListMembersDevicesArg {
12127 pub fn with_cursor(mut self, value: String) -> Self {
12128 self.cursor = Some(value);
12129 self
12130 }
12131
12132 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12133 self.include_web_sessions = value;
12134 self
12135 }
12136
12137 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12138 self.include_desktop_clients = value;
12139 self
12140 }
12141
12142 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12143 self.include_mobile_clients = value;
12144 self
12145 }
12146}
12147
12148const LIST_MEMBERS_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
12149 "include_web_sessions",
12150 "include_desktop_clients",
12151 "include_mobile_clients"];
12152impl ListMembersDevicesArg {
12153 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12155 mut map: V,
12156 ) -> Result<ListMembersDevicesArg, V::Error> {
12157 let mut field_cursor = None;
12158 let mut field_include_web_sessions = None;
12159 let mut field_include_desktop_clients = None;
12160 let mut field_include_mobile_clients = None;
12161 while let Some(key) = map.next_key::<&str>()? {
12162 match key {
12163 "cursor" => {
12164 if field_cursor.is_some() {
12165 return Err(::serde::de::Error::duplicate_field("cursor"));
12166 }
12167 field_cursor = Some(map.next_value()?);
12168 }
12169 "include_web_sessions" => {
12170 if field_include_web_sessions.is_some() {
12171 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12172 }
12173 field_include_web_sessions = Some(map.next_value()?);
12174 }
12175 "include_desktop_clients" => {
12176 if field_include_desktop_clients.is_some() {
12177 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12178 }
12179 field_include_desktop_clients = Some(map.next_value()?);
12180 }
12181 "include_mobile_clients" => {
12182 if field_include_mobile_clients.is_some() {
12183 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12184 }
12185 field_include_mobile_clients = Some(map.next_value()?);
12186 }
12187 _ => {
12188 map.next_value::<::serde_json::Value>()?;
12190 }
12191 }
12192 }
12193 let result = ListMembersDevicesArg {
12194 cursor: field_cursor.and_then(Option::flatten),
12195 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12196 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12197 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12198 };
12199 Ok(result)
12200 }
12201
12202 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12203 &self,
12204 s: &mut S::SerializeStruct,
12205 ) -> Result<(), S::Error> {
12206 use serde::ser::SerializeStruct;
12207 if let Some(val) = &self.cursor {
12208 s.serialize_field("cursor", val)?;
12209 }
12210 if !self.include_web_sessions {
12211 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12212 }
12213 if !self.include_desktop_clients {
12214 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12215 }
12216 if !self.include_mobile_clients {
12217 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12218 }
12219 Ok(())
12220 }
12221}
12222
12223impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesArg {
12224 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12225 use serde::de::{MapAccess, Visitor};
12227 struct StructVisitor;
12228 impl<'de> Visitor<'de> for StructVisitor {
12229 type Value = ListMembersDevicesArg;
12230 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12231 f.write_str("a ListMembersDevicesArg struct")
12232 }
12233 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12234 ListMembersDevicesArg::internal_deserialize(map)
12235 }
12236 }
12237 deserializer.deserialize_struct("ListMembersDevicesArg", LIST_MEMBERS_DEVICES_ARG_FIELDS, StructVisitor)
12238 }
12239}
12240
12241impl ::serde::ser::Serialize for ListMembersDevicesArg {
12242 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12243 use serde::ser::SerializeStruct;
12245 let mut s = serializer.serialize_struct("ListMembersDevicesArg", 4)?;
12246 self.internal_serialize::<S>(&mut s)?;
12247 s.end()
12248 }
12249}
12250
12251#[derive(Debug, Clone, PartialEq, Eq)]
12252#[non_exhaustive] pub enum ListMembersDevicesError {
12254 Reset,
12258 Other,
12261}
12262
12263impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesError {
12264 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12265 use serde::de::{self, MapAccess, Visitor};
12267 struct EnumVisitor;
12268 impl<'de> Visitor<'de> for EnumVisitor {
12269 type Value = ListMembersDevicesError;
12270 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12271 f.write_str("a ListMembersDevicesError structure")
12272 }
12273 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12274 let tag: &str = match map.next_key()? {
12275 Some(".tag") => map.next_value()?,
12276 _ => return Err(de::Error::missing_field(".tag"))
12277 };
12278 let value = match tag {
12279 "reset" => ListMembersDevicesError::Reset,
12280 _ => ListMembersDevicesError::Other,
12281 };
12282 crate::eat_json_fields(&mut map)?;
12283 Ok(value)
12284 }
12285 }
12286 const VARIANTS: &[&str] = &["reset",
12287 "other"];
12288 deserializer.deserialize_struct("ListMembersDevicesError", VARIANTS, EnumVisitor)
12289 }
12290}
12291
12292impl ::serde::ser::Serialize for ListMembersDevicesError {
12293 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12294 use serde::ser::SerializeStruct;
12296 match self {
12297 ListMembersDevicesError::Reset => {
12298 let mut s = serializer.serialize_struct("ListMembersDevicesError", 1)?;
12300 s.serialize_field(".tag", "reset")?;
12301 s.end()
12302 }
12303 ListMembersDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12304 }
12305 }
12306}
12307
12308impl ::std::error::Error for ListMembersDevicesError {
12309}
12310
12311impl ::std::fmt::Display for ListMembersDevicesError {
12312 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12313 write!(f, "{:?}", *self)
12314 }
12315}
12316
12317#[derive(Debug, Clone, PartialEq, Eq)]
12318#[non_exhaustive] pub struct ListMembersDevicesResult {
12320 pub devices: Vec<MemberDevices>,
12322 pub has_more: bool,
12326 pub cursor: Option<String>,
12330}
12331
12332impl ListMembersDevicesResult {
12333 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
12334 ListMembersDevicesResult {
12335 devices,
12336 has_more,
12337 cursor: None,
12338 }
12339 }
12340
12341 pub fn with_cursor(mut self, value: String) -> Self {
12342 self.cursor = Some(value);
12343 self
12344 }
12345}
12346
12347const LIST_MEMBERS_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
12348 "has_more",
12349 "cursor"];
12350impl ListMembersDevicesResult {
12351 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12352 map: V,
12353 ) -> Result<ListMembersDevicesResult, V::Error> {
12354 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12355 }
12356
12357 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12358 mut map: V,
12359 optional: bool,
12360 ) -> Result<Option<ListMembersDevicesResult>, V::Error> {
12361 let mut field_devices = None;
12362 let mut field_has_more = None;
12363 let mut field_cursor = None;
12364 let mut nothing = true;
12365 while let Some(key) = map.next_key::<&str>()? {
12366 nothing = false;
12367 match key {
12368 "devices" => {
12369 if field_devices.is_some() {
12370 return Err(::serde::de::Error::duplicate_field("devices"));
12371 }
12372 field_devices = Some(map.next_value()?);
12373 }
12374 "has_more" => {
12375 if field_has_more.is_some() {
12376 return Err(::serde::de::Error::duplicate_field("has_more"));
12377 }
12378 field_has_more = Some(map.next_value()?);
12379 }
12380 "cursor" => {
12381 if field_cursor.is_some() {
12382 return Err(::serde::de::Error::duplicate_field("cursor"));
12383 }
12384 field_cursor = Some(map.next_value()?);
12385 }
12386 _ => {
12387 map.next_value::<::serde_json::Value>()?;
12389 }
12390 }
12391 }
12392 if optional && nothing {
12393 return Ok(None);
12394 }
12395 let result = ListMembersDevicesResult {
12396 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
12397 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12398 cursor: field_cursor.and_then(Option::flatten),
12399 };
12400 Ok(Some(result))
12401 }
12402
12403 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12404 &self,
12405 s: &mut S::SerializeStruct,
12406 ) -> Result<(), S::Error> {
12407 use serde::ser::SerializeStruct;
12408 s.serialize_field("devices", &self.devices)?;
12409 s.serialize_field("has_more", &self.has_more)?;
12410 if let Some(val) = &self.cursor {
12411 s.serialize_field("cursor", val)?;
12412 }
12413 Ok(())
12414 }
12415}
12416
12417impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesResult {
12418 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12419 use serde::de::{MapAccess, Visitor};
12421 struct StructVisitor;
12422 impl<'de> Visitor<'de> for StructVisitor {
12423 type Value = ListMembersDevicesResult;
12424 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12425 f.write_str("a ListMembersDevicesResult struct")
12426 }
12427 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12428 ListMembersDevicesResult::internal_deserialize(map)
12429 }
12430 }
12431 deserializer.deserialize_struct("ListMembersDevicesResult", LIST_MEMBERS_DEVICES_RESULT_FIELDS, StructVisitor)
12432 }
12433}
12434
12435impl ::serde::ser::Serialize for ListMembersDevicesResult {
12436 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12437 use serde::ser::SerializeStruct;
12439 let mut s = serializer.serialize_struct("ListMembersDevicesResult", 3)?;
12440 self.internal_serialize::<S>(&mut s)?;
12441 s.end()
12442 }
12443}
12444
12445#[derive(Debug, Clone, PartialEq, Eq, Default)]
12448#[non_exhaustive] pub struct ListTeamAppsArg {
12450 pub cursor: Option<String>,
12456}
12457
12458impl ListTeamAppsArg {
12459 pub fn with_cursor(mut self, value: String) -> Self {
12460 self.cursor = Some(value);
12461 self
12462 }
12463}
12464
12465const LIST_TEAM_APPS_ARG_FIELDS: &[&str] = &["cursor"];
12466impl ListTeamAppsArg {
12467 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12469 mut map: V,
12470 ) -> Result<ListTeamAppsArg, V::Error> {
12471 let mut field_cursor = None;
12472 while let Some(key) = map.next_key::<&str>()? {
12473 match key {
12474 "cursor" => {
12475 if field_cursor.is_some() {
12476 return Err(::serde::de::Error::duplicate_field("cursor"));
12477 }
12478 field_cursor = Some(map.next_value()?);
12479 }
12480 _ => {
12481 map.next_value::<::serde_json::Value>()?;
12483 }
12484 }
12485 }
12486 let result = ListTeamAppsArg {
12487 cursor: field_cursor.and_then(Option::flatten),
12488 };
12489 Ok(result)
12490 }
12491
12492 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12493 &self,
12494 s: &mut S::SerializeStruct,
12495 ) -> Result<(), S::Error> {
12496 use serde::ser::SerializeStruct;
12497 if let Some(val) = &self.cursor {
12498 s.serialize_field("cursor", val)?;
12499 }
12500 Ok(())
12501 }
12502}
12503
12504impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsArg {
12505 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12506 use serde::de::{MapAccess, Visitor};
12508 struct StructVisitor;
12509 impl<'de> Visitor<'de> for StructVisitor {
12510 type Value = ListTeamAppsArg;
12511 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12512 f.write_str("a ListTeamAppsArg struct")
12513 }
12514 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12515 ListTeamAppsArg::internal_deserialize(map)
12516 }
12517 }
12518 deserializer.deserialize_struct("ListTeamAppsArg", LIST_TEAM_APPS_ARG_FIELDS, StructVisitor)
12519 }
12520}
12521
12522impl ::serde::ser::Serialize for ListTeamAppsArg {
12523 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12524 use serde::ser::SerializeStruct;
12526 let mut s = serializer.serialize_struct("ListTeamAppsArg", 1)?;
12527 self.internal_serialize::<S>(&mut s)?;
12528 s.end()
12529 }
12530}
12531
12532#[derive(Debug, Clone, PartialEq, Eq)]
12535#[non_exhaustive] pub enum ListTeamAppsError {
12537 Reset,
12541 Other,
12544}
12545
12546impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsError {
12547 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12548 use serde::de::{self, MapAccess, Visitor};
12550 struct EnumVisitor;
12551 impl<'de> Visitor<'de> for EnumVisitor {
12552 type Value = ListTeamAppsError;
12553 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12554 f.write_str("a ListTeamAppsError structure")
12555 }
12556 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12557 let tag: &str = match map.next_key()? {
12558 Some(".tag") => map.next_value()?,
12559 _ => return Err(de::Error::missing_field(".tag"))
12560 };
12561 let value = match tag {
12562 "reset" => ListTeamAppsError::Reset,
12563 _ => ListTeamAppsError::Other,
12564 };
12565 crate::eat_json_fields(&mut map)?;
12566 Ok(value)
12567 }
12568 }
12569 const VARIANTS: &[&str] = &["reset",
12570 "other"];
12571 deserializer.deserialize_struct("ListTeamAppsError", VARIANTS, EnumVisitor)
12572 }
12573}
12574
12575impl ::serde::ser::Serialize for ListTeamAppsError {
12576 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12577 use serde::ser::SerializeStruct;
12579 match self {
12580 ListTeamAppsError::Reset => {
12581 let mut s = serializer.serialize_struct("ListTeamAppsError", 1)?;
12583 s.serialize_field(".tag", "reset")?;
12584 s.end()
12585 }
12586 ListTeamAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12587 }
12588 }
12589}
12590
12591impl ::std::error::Error for ListTeamAppsError {
12592}
12593
12594impl ::std::fmt::Display for ListTeamAppsError {
12595 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12596 write!(f, "{:?}", *self)
12597 }
12598}
12599
12600#[derive(Debug, Clone, PartialEq, Eq)]
12603#[non_exhaustive] pub struct ListTeamAppsResult {
12605 pub apps: Vec<MemberLinkedApps>,
12607 pub has_more: bool,
12611 pub cursor: Option<String>,
12615}
12616
12617impl ListTeamAppsResult {
12618 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
12619 ListTeamAppsResult {
12620 apps,
12621 has_more,
12622 cursor: None,
12623 }
12624 }
12625
12626 pub fn with_cursor(mut self, value: String) -> Self {
12627 self.cursor = Some(value);
12628 self
12629 }
12630}
12631
12632const LIST_TEAM_APPS_RESULT_FIELDS: &[&str] = &["apps",
12633 "has_more",
12634 "cursor"];
12635impl ListTeamAppsResult {
12636 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12637 map: V,
12638 ) -> Result<ListTeamAppsResult, V::Error> {
12639 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12640 }
12641
12642 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12643 mut map: V,
12644 optional: bool,
12645 ) -> Result<Option<ListTeamAppsResult>, V::Error> {
12646 let mut field_apps = None;
12647 let mut field_has_more = None;
12648 let mut field_cursor = None;
12649 let mut nothing = true;
12650 while let Some(key) = map.next_key::<&str>()? {
12651 nothing = false;
12652 match key {
12653 "apps" => {
12654 if field_apps.is_some() {
12655 return Err(::serde::de::Error::duplicate_field("apps"));
12656 }
12657 field_apps = Some(map.next_value()?);
12658 }
12659 "has_more" => {
12660 if field_has_more.is_some() {
12661 return Err(::serde::de::Error::duplicate_field("has_more"));
12662 }
12663 field_has_more = Some(map.next_value()?);
12664 }
12665 "cursor" => {
12666 if field_cursor.is_some() {
12667 return Err(::serde::de::Error::duplicate_field("cursor"));
12668 }
12669 field_cursor = Some(map.next_value()?);
12670 }
12671 _ => {
12672 map.next_value::<::serde_json::Value>()?;
12674 }
12675 }
12676 }
12677 if optional && nothing {
12678 return Ok(None);
12679 }
12680 let result = ListTeamAppsResult {
12681 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
12682 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12683 cursor: field_cursor.and_then(Option::flatten),
12684 };
12685 Ok(Some(result))
12686 }
12687
12688 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12689 &self,
12690 s: &mut S::SerializeStruct,
12691 ) -> Result<(), S::Error> {
12692 use serde::ser::SerializeStruct;
12693 s.serialize_field("apps", &self.apps)?;
12694 s.serialize_field("has_more", &self.has_more)?;
12695 if let Some(val) = &self.cursor {
12696 s.serialize_field("cursor", val)?;
12697 }
12698 Ok(())
12699 }
12700}
12701
12702impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsResult {
12703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12704 use serde::de::{MapAccess, Visitor};
12706 struct StructVisitor;
12707 impl<'de> Visitor<'de> for StructVisitor {
12708 type Value = ListTeamAppsResult;
12709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12710 f.write_str("a ListTeamAppsResult struct")
12711 }
12712 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12713 ListTeamAppsResult::internal_deserialize(map)
12714 }
12715 }
12716 deserializer.deserialize_struct("ListTeamAppsResult", LIST_TEAM_APPS_RESULT_FIELDS, StructVisitor)
12717 }
12718}
12719
12720impl ::serde::ser::Serialize for ListTeamAppsResult {
12721 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12722 use serde::ser::SerializeStruct;
12724 let mut s = serializer.serialize_struct("ListTeamAppsResult", 3)?;
12725 self.internal_serialize::<S>(&mut s)?;
12726 s.end()
12727 }
12728}
12729
12730#[derive(Debug, Clone, PartialEq, Eq)]
12731#[non_exhaustive] pub struct ListTeamDevicesArg {
12733 pub cursor: Option<String>,
12738 pub include_web_sessions: bool,
12740 pub include_desktop_clients: bool,
12742 pub include_mobile_clients: bool,
12744}
12745
12746impl Default for ListTeamDevicesArg {
12747 fn default() -> Self {
12748 ListTeamDevicesArg {
12749 cursor: None,
12750 include_web_sessions: true,
12751 include_desktop_clients: true,
12752 include_mobile_clients: true,
12753 }
12754 }
12755}
12756
12757impl ListTeamDevicesArg {
12758 pub fn with_cursor(mut self, value: String) -> Self {
12759 self.cursor = Some(value);
12760 self
12761 }
12762
12763 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12764 self.include_web_sessions = value;
12765 self
12766 }
12767
12768 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12769 self.include_desktop_clients = value;
12770 self
12771 }
12772
12773 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12774 self.include_mobile_clients = value;
12775 self
12776 }
12777}
12778
12779const LIST_TEAM_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
12780 "include_web_sessions",
12781 "include_desktop_clients",
12782 "include_mobile_clients"];
12783impl ListTeamDevicesArg {
12784 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12786 mut map: V,
12787 ) -> Result<ListTeamDevicesArg, V::Error> {
12788 let mut field_cursor = None;
12789 let mut field_include_web_sessions = None;
12790 let mut field_include_desktop_clients = None;
12791 let mut field_include_mobile_clients = None;
12792 while let Some(key) = map.next_key::<&str>()? {
12793 match key {
12794 "cursor" => {
12795 if field_cursor.is_some() {
12796 return Err(::serde::de::Error::duplicate_field("cursor"));
12797 }
12798 field_cursor = Some(map.next_value()?);
12799 }
12800 "include_web_sessions" => {
12801 if field_include_web_sessions.is_some() {
12802 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12803 }
12804 field_include_web_sessions = Some(map.next_value()?);
12805 }
12806 "include_desktop_clients" => {
12807 if field_include_desktop_clients.is_some() {
12808 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12809 }
12810 field_include_desktop_clients = Some(map.next_value()?);
12811 }
12812 "include_mobile_clients" => {
12813 if field_include_mobile_clients.is_some() {
12814 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12815 }
12816 field_include_mobile_clients = Some(map.next_value()?);
12817 }
12818 _ => {
12819 map.next_value::<::serde_json::Value>()?;
12821 }
12822 }
12823 }
12824 let result = ListTeamDevicesArg {
12825 cursor: field_cursor.and_then(Option::flatten),
12826 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12827 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12828 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12829 };
12830 Ok(result)
12831 }
12832
12833 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12834 &self,
12835 s: &mut S::SerializeStruct,
12836 ) -> Result<(), S::Error> {
12837 use serde::ser::SerializeStruct;
12838 if let Some(val) = &self.cursor {
12839 s.serialize_field("cursor", val)?;
12840 }
12841 if !self.include_web_sessions {
12842 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12843 }
12844 if !self.include_desktop_clients {
12845 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12846 }
12847 if !self.include_mobile_clients {
12848 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12849 }
12850 Ok(())
12851 }
12852}
12853
12854impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesArg {
12855 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12856 use serde::de::{MapAccess, Visitor};
12858 struct StructVisitor;
12859 impl<'de> Visitor<'de> for StructVisitor {
12860 type Value = ListTeamDevicesArg;
12861 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12862 f.write_str("a ListTeamDevicesArg struct")
12863 }
12864 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12865 ListTeamDevicesArg::internal_deserialize(map)
12866 }
12867 }
12868 deserializer.deserialize_struct("ListTeamDevicesArg", LIST_TEAM_DEVICES_ARG_FIELDS, StructVisitor)
12869 }
12870}
12871
12872impl ::serde::ser::Serialize for ListTeamDevicesArg {
12873 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12874 use serde::ser::SerializeStruct;
12876 let mut s = serializer.serialize_struct("ListTeamDevicesArg", 4)?;
12877 self.internal_serialize::<S>(&mut s)?;
12878 s.end()
12879 }
12880}
12881
12882#[derive(Debug, Clone, PartialEq, Eq)]
12883#[non_exhaustive] pub enum ListTeamDevicesError {
12885 Reset,
12889 Other,
12892}
12893
12894impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesError {
12895 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12896 use serde::de::{self, MapAccess, Visitor};
12898 struct EnumVisitor;
12899 impl<'de> Visitor<'de> for EnumVisitor {
12900 type Value = ListTeamDevicesError;
12901 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12902 f.write_str("a ListTeamDevicesError structure")
12903 }
12904 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12905 let tag: &str = match map.next_key()? {
12906 Some(".tag") => map.next_value()?,
12907 _ => return Err(de::Error::missing_field(".tag"))
12908 };
12909 let value = match tag {
12910 "reset" => ListTeamDevicesError::Reset,
12911 _ => ListTeamDevicesError::Other,
12912 };
12913 crate::eat_json_fields(&mut map)?;
12914 Ok(value)
12915 }
12916 }
12917 const VARIANTS: &[&str] = &["reset",
12918 "other"];
12919 deserializer.deserialize_struct("ListTeamDevicesError", VARIANTS, EnumVisitor)
12920 }
12921}
12922
12923impl ::serde::ser::Serialize for ListTeamDevicesError {
12924 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12925 use serde::ser::SerializeStruct;
12927 match self {
12928 ListTeamDevicesError::Reset => {
12929 let mut s = serializer.serialize_struct("ListTeamDevicesError", 1)?;
12931 s.serialize_field(".tag", "reset")?;
12932 s.end()
12933 }
12934 ListTeamDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12935 }
12936 }
12937}
12938
12939impl ::std::error::Error for ListTeamDevicesError {
12940}
12941
12942impl ::std::fmt::Display for ListTeamDevicesError {
12943 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12944 write!(f, "{:?}", *self)
12945 }
12946}
12947
12948#[derive(Debug, Clone, PartialEq, Eq)]
12949#[non_exhaustive] pub struct ListTeamDevicesResult {
12951 pub devices: Vec<MemberDevices>,
12953 pub has_more: bool,
12957 pub cursor: Option<String>,
12960}
12961
12962impl ListTeamDevicesResult {
12963 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
12964 ListTeamDevicesResult {
12965 devices,
12966 has_more,
12967 cursor: None,
12968 }
12969 }
12970
12971 pub fn with_cursor(mut self, value: String) -> Self {
12972 self.cursor = Some(value);
12973 self
12974 }
12975}
12976
12977const LIST_TEAM_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
12978 "has_more",
12979 "cursor"];
12980impl ListTeamDevicesResult {
12981 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12982 map: V,
12983 ) -> Result<ListTeamDevicesResult, V::Error> {
12984 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12985 }
12986
12987 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12988 mut map: V,
12989 optional: bool,
12990 ) -> Result<Option<ListTeamDevicesResult>, V::Error> {
12991 let mut field_devices = None;
12992 let mut field_has_more = None;
12993 let mut field_cursor = None;
12994 let mut nothing = true;
12995 while let Some(key) = map.next_key::<&str>()? {
12996 nothing = false;
12997 match key {
12998 "devices" => {
12999 if field_devices.is_some() {
13000 return Err(::serde::de::Error::duplicate_field("devices"));
13001 }
13002 field_devices = Some(map.next_value()?);
13003 }
13004 "has_more" => {
13005 if field_has_more.is_some() {
13006 return Err(::serde::de::Error::duplicate_field("has_more"));
13007 }
13008 field_has_more = Some(map.next_value()?);
13009 }
13010 "cursor" => {
13011 if field_cursor.is_some() {
13012 return Err(::serde::de::Error::duplicate_field("cursor"));
13013 }
13014 field_cursor = Some(map.next_value()?);
13015 }
13016 _ => {
13017 map.next_value::<::serde_json::Value>()?;
13019 }
13020 }
13021 }
13022 if optional && nothing {
13023 return Ok(None);
13024 }
13025 let result = ListTeamDevicesResult {
13026 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
13027 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
13028 cursor: field_cursor.and_then(Option::flatten),
13029 };
13030 Ok(Some(result))
13031 }
13032
13033 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13034 &self,
13035 s: &mut S::SerializeStruct,
13036 ) -> Result<(), S::Error> {
13037 use serde::ser::SerializeStruct;
13038 s.serialize_field("devices", &self.devices)?;
13039 s.serialize_field("has_more", &self.has_more)?;
13040 if let Some(val) = &self.cursor {
13041 s.serialize_field("cursor", val)?;
13042 }
13043 Ok(())
13044 }
13045}
13046
13047impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesResult {
13048 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13049 use serde::de::{MapAccess, Visitor};
13051 struct StructVisitor;
13052 impl<'de> Visitor<'de> for StructVisitor {
13053 type Value = ListTeamDevicesResult;
13054 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13055 f.write_str("a ListTeamDevicesResult struct")
13056 }
13057 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13058 ListTeamDevicesResult::internal_deserialize(map)
13059 }
13060 }
13061 deserializer.deserialize_struct("ListTeamDevicesResult", LIST_TEAM_DEVICES_RESULT_FIELDS, StructVisitor)
13062 }
13063}
13064
13065impl ::serde::ser::Serialize for ListTeamDevicesResult {
13066 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13067 use serde::ser::SerializeStruct;
13069 let mut s = serializer.serialize_struct("ListTeamDevicesResult", 3)?;
13070 self.internal_serialize::<S>(&mut s)?;
13071 s.end()
13072 }
13073}
13074
13075#[derive(Debug, Clone, PartialEq, Eq)]
13077#[non_exhaustive] pub struct MemberAccess {
13079 pub user: UserSelectorArg,
13081 pub access_type: GroupAccessType,
13083}
13084
13085impl MemberAccess {
13086 pub fn new(user: UserSelectorArg, access_type: GroupAccessType) -> Self {
13087 MemberAccess {
13088 user,
13089 access_type,
13090 }
13091 }
13092}
13093
13094const MEMBER_ACCESS_FIELDS: &[&str] = &["user",
13095 "access_type"];
13096impl MemberAccess {
13097 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13098 map: V,
13099 ) -> Result<MemberAccess, V::Error> {
13100 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13101 }
13102
13103 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13104 mut map: V,
13105 optional: bool,
13106 ) -> Result<Option<MemberAccess>, V::Error> {
13107 let mut field_user = None;
13108 let mut field_access_type = None;
13109 let mut nothing = true;
13110 while let Some(key) = map.next_key::<&str>()? {
13111 nothing = false;
13112 match key {
13113 "user" => {
13114 if field_user.is_some() {
13115 return Err(::serde::de::Error::duplicate_field("user"));
13116 }
13117 field_user = Some(map.next_value()?);
13118 }
13119 "access_type" => {
13120 if field_access_type.is_some() {
13121 return Err(::serde::de::Error::duplicate_field("access_type"));
13122 }
13123 field_access_type = Some(map.next_value()?);
13124 }
13125 _ => {
13126 map.next_value::<::serde_json::Value>()?;
13128 }
13129 }
13130 }
13131 if optional && nothing {
13132 return Ok(None);
13133 }
13134 let result = MemberAccess {
13135 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
13136 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
13137 };
13138 Ok(Some(result))
13139 }
13140
13141 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13142 &self,
13143 s: &mut S::SerializeStruct,
13144 ) -> Result<(), S::Error> {
13145 use serde::ser::SerializeStruct;
13146 s.serialize_field("user", &self.user)?;
13147 s.serialize_field("access_type", &self.access_type)?;
13148 Ok(())
13149 }
13150}
13151
13152impl<'de> ::serde::de::Deserialize<'de> for MemberAccess {
13153 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13154 use serde::de::{MapAccess, Visitor};
13156 struct StructVisitor;
13157 impl<'de> Visitor<'de> for StructVisitor {
13158 type Value = MemberAccess;
13159 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13160 f.write_str("a MemberAccess struct")
13161 }
13162 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13163 MemberAccess::internal_deserialize(map)
13164 }
13165 }
13166 deserializer.deserialize_struct("MemberAccess", MEMBER_ACCESS_FIELDS, StructVisitor)
13167 }
13168}
13169
13170impl ::serde::ser::Serialize for MemberAccess {
13171 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13172 use serde::ser::SerializeStruct;
13174 let mut s = serializer.serialize_struct("MemberAccess", 2)?;
13175 self.internal_serialize::<S>(&mut s)?;
13176 s.end()
13177 }
13178}
13179
13180#[derive(Debug, Clone, PartialEq, Eq)]
13181#[non_exhaustive] pub struct MemberAddArg {
13183 pub member_email: crate::types::common::EmailAddress,
13184 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
13186 pub member_surname: Option<crate::types::common::OptionalNamePart>,
13188 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
13190 pub member_persistent_id: Option<String>,
13193 pub send_welcome_email: bool,
13197 pub is_directory_restricted: Option<bool>,
13199 pub role: AdminTier,
13200}
13201
13202impl MemberAddArg {
13203 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
13204 MemberAddArg {
13205 member_email,
13206 member_given_name: None,
13207 member_surname: None,
13208 member_external_id: None,
13209 member_persistent_id: None,
13210 send_welcome_email: true,
13211 is_directory_restricted: None,
13212 role: AdminTier::MemberOnly,
13213 }
13214 }
13215
13216 pub fn with_member_given_name(
13217 mut self,
13218 value: crate::types::common::OptionalNamePart,
13219 ) -> Self {
13220 self.member_given_name = Some(value);
13221 self
13222 }
13223
13224 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
13225 self.member_surname = Some(value);
13226 self
13227 }
13228
13229 pub fn with_member_external_id(
13230 mut self,
13231 value: crate::types::team_common::MemberExternalId,
13232 ) -> Self {
13233 self.member_external_id = Some(value);
13234 self
13235 }
13236
13237 pub fn with_member_persistent_id(mut self, value: String) -> Self {
13238 self.member_persistent_id = Some(value);
13239 self
13240 }
13241
13242 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
13243 self.send_welcome_email = value;
13244 self
13245 }
13246
13247 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
13248 self.is_directory_restricted = Some(value);
13249 self
13250 }
13251
13252 pub fn with_role(mut self, value: AdminTier) -> Self {
13253 self.role = value;
13254 self
13255 }
13256}
13257
13258const MEMBER_ADD_ARG_FIELDS: &[&str] = &["member_email",
13259 "member_given_name",
13260 "member_surname",
13261 "member_external_id",
13262 "member_persistent_id",
13263 "send_welcome_email",
13264 "is_directory_restricted",
13265 "role"];
13266impl MemberAddArg {
13267 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13268 map: V,
13269 ) -> Result<MemberAddArg, V::Error> {
13270 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13271 }
13272
13273 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13274 mut map: V,
13275 optional: bool,
13276 ) -> Result<Option<MemberAddArg>, V::Error> {
13277 let mut field_member_email = None;
13278 let mut field_member_given_name = None;
13279 let mut field_member_surname = None;
13280 let mut field_member_external_id = None;
13281 let mut field_member_persistent_id = None;
13282 let mut field_send_welcome_email = None;
13283 let mut field_is_directory_restricted = None;
13284 let mut field_role = None;
13285 let mut nothing = true;
13286 while let Some(key) = map.next_key::<&str>()? {
13287 nothing = false;
13288 match key {
13289 "member_email" => {
13290 if field_member_email.is_some() {
13291 return Err(::serde::de::Error::duplicate_field("member_email"));
13292 }
13293 field_member_email = Some(map.next_value()?);
13294 }
13295 "member_given_name" => {
13296 if field_member_given_name.is_some() {
13297 return Err(::serde::de::Error::duplicate_field("member_given_name"));
13298 }
13299 field_member_given_name = Some(map.next_value()?);
13300 }
13301 "member_surname" => {
13302 if field_member_surname.is_some() {
13303 return Err(::serde::de::Error::duplicate_field("member_surname"));
13304 }
13305 field_member_surname = Some(map.next_value()?);
13306 }
13307 "member_external_id" => {
13308 if field_member_external_id.is_some() {
13309 return Err(::serde::de::Error::duplicate_field("member_external_id"));
13310 }
13311 field_member_external_id = Some(map.next_value()?);
13312 }
13313 "member_persistent_id" => {
13314 if field_member_persistent_id.is_some() {
13315 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
13316 }
13317 field_member_persistent_id = Some(map.next_value()?);
13318 }
13319 "send_welcome_email" => {
13320 if field_send_welcome_email.is_some() {
13321 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
13322 }
13323 field_send_welcome_email = Some(map.next_value()?);
13324 }
13325 "is_directory_restricted" => {
13326 if field_is_directory_restricted.is_some() {
13327 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
13328 }
13329 field_is_directory_restricted = Some(map.next_value()?);
13330 }
13331 "role" => {
13332 if field_role.is_some() {
13333 return Err(::serde::de::Error::duplicate_field("role"));
13334 }
13335 field_role = Some(map.next_value()?);
13336 }
13337 _ => {
13338 map.next_value::<::serde_json::Value>()?;
13340 }
13341 }
13342 }
13343 if optional && nothing {
13344 return Ok(None);
13345 }
13346 let result = MemberAddArg {
13347 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
13348 member_given_name: field_member_given_name.and_then(Option::flatten),
13349 member_surname: field_member_surname.and_then(Option::flatten),
13350 member_external_id: field_member_external_id.and_then(Option::flatten),
13351 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
13352 send_welcome_email: field_send_welcome_email.unwrap_or(true),
13353 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
13354 role: field_role.unwrap_or(AdminTier::MemberOnly),
13355 };
13356 Ok(Some(result))
13357 }
13358
13359 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13360 &self,
13361 s: &mut S::SerializeStruct,
13362 ) -> Result<(), S::Error> {
13363 use serde::ser::SerializeStruct;
13364 s.serialize_field("member_email", &self.member_email)?;
13365 if let Some(val) = &self.member_given_name {
13366 s.serialize_field("member_given_name", val)?;
13367 }
13368 if let Some(val) = &self.member_surname {
13369 s.serialize_field("member_surname", val)?;
13370 }
13371 if let Some(val) = &self.member_external_id {
13372 s.serialize_field("member_external_id", val)?;
13373 }
13374 if let Some(val) = &self.member_persistent_id {
13375 s.serialize_field("member_persistent_id", val)?;
13376 }
13377 if !self.send_welcome_email {
13378 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
13379 }
13380 if let Some(val) = &self.is_directory_restricted {
13381 s.serialize_field("is_directory_restricted", val)?;
13382 }
13383 if self.role != AdminTier::MemberOnly {
13384 s.serialize_field("role", &self.role)?;
13385 }
13386 Ok(())
13387 }
13388}
13389
13390impl<'de> ::serde::de::Deserialize<'de> for MemberAddArg {
13391 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13392 use serde::de::{MapAccess, Visitor};
13394 struct StructVisitor;
13395 impl<'de> Visitor<'de> for StructVisitor {
13396 type Value = MemberAddArg;
13397 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13398 f.write_str("a MemberAddArg struct")
13399 }
13400 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13401 MemberAddArg::internal_deserialize(map)
13402 }
13403 }
13404 deserializer.deserialize_struct("MemberAddArg", MEMBER_ADD_ARG_FIELDS, StructVisitor)
13405 }
13406}
13407
13408impl ::serde::ser::Serialize for MemberAddArg {
13409 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13410 use serde::ser::SerializeStruct;
13412 let mut s = serializer.serialize_struct("MemberAddArg", 8)?;
13413 self.internal_serialize::<S>(&mut s)?;
13414 s.end()
13415 }
13416}
13417
13418impl From<MemberAddArg> for MemberAddArgBase {
13420 fn from(subtype: MemberAddArg) -> Self {
13421 Self {
13422 member_email: subtype.member_email,
13423 member_given_name: subtype.member_given_name,
13424 member_surname: subtype.member_surname,
13425 member_external_id: subtype.member_external_id,
13426 member_persistent_id: subtype.member_persistent_id,
13427 send_welcome_email: subtype.send_welcome_email,
13428 is_directory_restricted: subtype.is_directory_restricted,
13429 }
13430 }
13431}
13432#[derive(Debug, Clone, PartialEq, Eq)]
13433#[non_exhaustive] pub struct MemberAddArgBase {
13435 pub member_email: crate::types::common::EmailAddress,
13436 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
13438 pub member_surname: Option<crate::types::common::OptionalNamePart>,
13440 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
13442 pub member_persistent_id: Option<String>,
13445 pub send_welcome_email: bool,
13449 pub is_directory_restricted: Option<bool>,
13451}
13452
13453impl MemberAddArgBase {
13454 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
13455 MemberAddArgBase {
13456 member_email,
13457 member_given_name: None,
13458 member_surname: None,
13459 member_external_id: None,
13460 member_persistent_id: None,
13461 send_welcome_email: true,
13462 is_directory_restricted: None,
13463 }
13464 }
13465
13466 pub fn with_member_given_name(
13467 mut self,
13468 value: crate::types::common::OptionalNamePart,
13469 ) -> Self {
13470 self.member_given_name = Some(value);
13471 self
13472 }
13473
13474 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
13475 self.member_surname = Some(value);
13476 self
13477 }
13478
13479 pub fn with_member_external_id(
13480 mut self,
13481 value: crate::types::team_common::MemberExternalId,
13482 ) -> Self {
13483 self.member_external_id = Some(value);
13484 self
13485 }
13486
13487 pub fn with_member_persistent_id(mut self, value: String) -> Self {
13488 self.member_persistent_id = Some(value);
13489 self
13490 }
13491
13492 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
13493 self.send_welcome_email = value;
13494 self
13495 }
13496
13497 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
13498 self.is_directory_restricted = Some(value);
13499 self
13500 }
13501}
13502
13503const MEMBER_ADD_ARG_BASE_FIELDS: &[&str] = &["member_email",
13504 "member_given_name",
13505 "member_surname",
13506 "member_external_id",
13507 "member_persistent_id",
13508 "send_welcome_email",
13509 "is_directory_restricted"];
13510impl MemberAddArgBase {
13511 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13512 map: V,
13513 ) -> Result<MemberAddArgBase, V::Error> {
13514 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13515 }
13516
13517 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13518 mut map: V,
13519 optional: bool,
13520 ) -> Result<Option<MemberAddArgBase>, V::Error> {
13521 let mut field_member_email = None;
13522 let mut field_member_given_name = None;
13523 let mut field_member_surname = None;
13524 let mut field_member_external_id = None;
13525 let mut field_member_persistent_id = None;
13526 let mut field_send_welcome_email = None;
13527 let mut field_is_directory_restricted = None;
13528 let mut nothing = true;
13529 while let Some(key) = map.next_key::<&str>()? {
13530 nothing = false;
13531 match key {
13532 "member_email" => {
13533 if field_member_email.is_some() {
13534 return Err(::serde::de::Error::duplicate_field("member_email"));
13535 }
13536 field_member_email = Some(map.next_value()?);
13537 }
13538 "member_given_name" => {
13539 if field_member_given_name.is_some() {
13540 return Err(::serde::de::Error::duplicate_field("member_given_name"));
13541 }
13542 field_member_given_name = Some(map.next_value()?);
13543 }
13544 "member_surname" => {
13545 if field_member_surname.is_some() {
13546 return Err(::serde::de::Error::duplicate_field("member_surname"));
13547 }
13548 field_member_surname = Some(map.next_value()?);
13549 }
13550 "member_external_id" => {
13551 if field_member_external_id.is_some() {
13552 return Err(::serde::de::Error::duplicate_field("member_external_id"));
13553 }
13554 field_member_external_id = Some(map.next_value()?);
13555 }
13556 "member_persistent_id" => {
13557 if field_member_persistent_id.is_some() {
13558 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
13559 }
13560 field_member_persistent_id = Some(map.next_value()?);
13561 }
13562 "send_welcome_email" => {
13563 if field_send_welcome_email.is_some() {
13564 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
13565 }
13566 field_send_welcome_email = Some(map.next_value()?);
13567 }
13568 "is_directory_restricted" => {
13569 if field_is_directory_restricted.is_some() {
13570 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
13571 }
13572 field_is_directory_restricted = Some(map.next_value()?);
13573 }
13574 _ => {
13575 map.next_value::<::serde_json::Value>()?;
13577 }
13578 }
13579 }
13580 if optional && nothing {
13581 return Ok(None);
13582 }
13583 let result = MemberAddArgBase {
13584 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
13585 member_given_name: field_member_given_name.and_then(Option::flatten),
13586 member_surname: field_member_surname.and_then(Option::flatten),
13587 member_external_id: field_member_external_id.and_then(Option::flatten),
13588 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
13589 send_welcome_email: field_send_welcome_email.unwrap_or(true),
13590 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
13591 };
13592 Ok(Some(result))
13593 }
13594
13595 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13596 &self,
13597 s: &mut S::SerializeStruct,
13598 ) -> Result<(), S::Error> {
13599 use serde::ser::SerializeStruct;
13600 s.serialize_field("member_email", &self.member_email)?;
13601 if let Some(val) = &self.member_given_name {
13602 s.serialize_field("member_given_name", val)?;
13603 }
13604 if let Some(val) = &self.member_surname {
13605 s.serialize_field("member_surname", val)?;
13606 }
13607 if let Some(val) = &self.member_external_id {
13608 s.serialize_field("member_external_id", val)?;
13609 }
13610 if let Some(val) = &self.member_persistent_id {
13611 s.serialize_field("member_persistent_id", val)?;
13612 }
13613 if !self.send_welcome_email {
13614 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
13615 }
13616 if let Some(val) = &self.is_directory_restricted {
13617 s.serialize_field("is_directory_restricted", val)?;
13618 }
13619 Ok(())
13620 }
13621}
13622
13623impl<'de> ::serde::de::Deserialize<'de> for MemberAddArgBase {
13624 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13625 use serde::de::{MapAccess, Visitor};
13627 struct StructVisitor;
13628 impl<'de> Visitor<'de> for StructVisitor {
13629 type Value = MemberAddArgBase;
13630 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13631 f.write_str("a MemberAddArgBase struct")
13632 }
13633 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13634 MemberAddArgBase::internal_deserialize(map)
13635 }
13636 }
13637 deserializer.deserialize_struct("MemberAddArgBase", MEMBER_ADD_ARG_BASE_FIELDS, StructVisitor)
13638 }
13639}
13640
13641impl ::serde::ser::Serialize for MemberAddArgBase {
13642 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13643 use serde::ser::SerializeStruct;
13645 let mut s = serializer.serialize_struct("MemberAddArgBase", 7)?;
13646 self.internal_serialize::<S>(&mut s)?;
13647 s.end()
13648 }
13649}
13650
13651#[derive(Debug, Clone, PartialEq, Eq)]
13655pub enum MemberAddResult {
13656 TeamLicenseLimit(crate::types::common::EmailAddress),
13658 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
13660 UserAlreadyOnTeam(crate::types::common::EmailAddress),
13663 UserOnAnotherTeam(crate::types::common::EmailAddress),
13666 UserAlreadyPaired(crate::types::common::EmailAddress),
13668 UserMigrationFailed(crate::types::common::EmailAddress),
13670 DuplicateExternalMemberId(crate::types::common::EmailAddress),
13673 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
13676 PersistentIdDisabled(crate::types::common::EmailAddress),
13679 UserCreationFailed(crate::types::common::EmailAddress),
13681 Success(TeamMemberInfo),
13683}
13684
13685impl<'de> ::serde::de::Deserialize<'de> for MemberAddResult {
13686 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13687 use serde::de::{self, MapAccess, Visitor};
13689 struct EnumVisitor;
13690 impl<'de> Visitor<'de> for EnumVisitor {
13691 type Value = MemberAddResult;
13692 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13693 f.write_str("a MemberAddResult structure")
13694 }
13695 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13696 let tag: &str = match map.next_key()? {
13697 Some(".tag") => map.next_value()?,
13698 _ => return Err(de::Error::missing_field(".tag"))
13699 };
13700 let value = match tag {
13701 "team_license_limit" => {
13702 match map.next_key()? {
13703 Some("team_license_limit") => MemberAddResult::TeamLicenseLimit(map.next_value()?),
13704 None => return Err(de::Error::missing_field("team_license_limit")),
13705 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13706 }
13707 }
13708 "free_team_member_limit_reached" => {
13709 match map.next_key()? {
13710 Some("free_team_member_limit_reached") => MemberAddResult::FreeTeamMemberLimitReached(map.next_value()?),
13711 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
13712 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13713 }
13714 }
13715 "user_already_on_team" => {
13716 match map.next_key()? {
13717 Some("user_already_on_team") => MemberAddResult::UserAlreadyOnTeam(map.next_value()?),
13718 None => return Err(de::Error::missing_field("user_already_on_team")),
13719 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13720 }
13721 }
13722 "user_on_another_team" => {
13723 match map.next_key()? {
13724 Some("user_on_another_team") => MemberAddResult::UserOnAnotherTeam(map.next_value()?),
13725 None => return Err(de::Error::missing_field("user_on_another_team")),
13726 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13727 }
13728 }
13729 "user_already_paired" => {
13730 match map.next_key()? {
13731 Some("user_already_paired") => MemberAddResult::UserAlreadyPaired(map.next_value()?),
13732 None => return Err(de::Error::missing_field("user_already_paired")),
13733 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13734 }
13735 }
13736 "user_migration_failed" => {
13737 match map.next_key()? {
13738 Some("user_migration_failed") => MemberAddResult::UserMigrationFailed(map.next_value()?),
13739 None => return Err(de::Error::missing_field("user_migration_failed")),
13740 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13741 }
13742 }
13743 "duplicate_external_member_id" => {
13744 match map.next_key()? {
13745 Some("duplicate_external_member_id") => MemberAddResult::DuplicateExternalMemberId(map.next_value()?),
13746 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
13747 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13748 }
13749 }
13750 "duplicate_member_persistent_id" => {
13751 match map.next_key()? {
13752 Some("duplicate_member_persistent_id") => MemberAddResult::DuplicateMemberPersistentId(map.next_value()?),
13753 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
13754 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13755 }
13756 }
13757 "persistent_id_disabled" => {
13758 match map.next_key()? {
13759 Some("persistent_id_disabled") => MemberAddResult::PersistentIdDisabled(map.next_value()?),
13760 None => return Err(de::Error::missing_field("persistent_id_disabled")),
13761 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13762 }
13763 }
13764 "user_creation_failed" => {
13765 match map.next_key()? {
13766 Some("user_creation_failed") => MemberAddResult::UserCreationFailed(map.next_value()?),
13767 None => return Err(de::Error::missing_field("user_creation_failed")),
13768 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13769 }
13770 }
13771 "success" => MemberAddResult::Success(TeamMemberInfo::internal_deserialize(&mut map)?),
13772 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
13773 };
13774 crate::eat_json_fields(&mut map)?;
13775 Ok(value)
13776 }
13777 }
13778 const VARIANTS: &[&str] = &["team_license_limit",
13779 "free_team_member_limit_reached",
13780 "user_already_on_team",
13781 "user_on_another_team",
13782 "user_already_paired",
13783 "user_migration_failed",
13784 "duplicate_external_member_id",
13785 "duplicate_member_persistent_id",
13786 "persistent_id_disabled",
13787 "user_creation_failed",
13788 "success"];
13789 deserializer.deserialize_struct("MemberAddResult", VARIANTS, EnumVisitor)
13790 }
13791}
13792
13793impl ::serde::ser::Serialize for MemberAddResult {
13794 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13795 use serde::ser::SerializeStruct;
13797 match self {
13798 MemberAddResult::TeamLicenseLimit(x) => {
13799 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13801 s.serialize_field(".tag", "team_license_limit")?;
13802 s.serialize_field("team_license_limit", x)?;
13803 s.end()
13804 }
13805 MemberAddResult::FreeTeamMemberLimitReached(x) => {
13806 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13808 s.serialize_field(".tag", "free_team_member_limit_reached")?;
13809 s.serialize_field("free_team_member_limit_reached", x)?;
13810 s.end()
13811 }
13812 MemberAddResult::UserAlreadyOnTeam(x) => {
13813 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13815 s.serialize_field(".tag", "user_already_on_team")?;
13816 s.serialize_field("user_already_on_team", x)?;
13817 s.end()
13818 }
13819 MemberAddResult::UserOnAnotherTeam(x) => {
13820 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13822 s.serialize_field(".tag", "user_on_another_team")?;
13823 s.serialize_field("user_on_another_team", x)?;
13824 s.end()
13825 }
13826 MemberAddResult::UserAlreadyPaired(x) => {
13827 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13829 s.serialize_field(".tag", "user_already_paired")?;
13830 s.serialize_field("user_already_paired", x)?;
13831 s.end()
13832 }
13833 MemberAddResult::UserMigrationFailed(x) => {
13834 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13836 s.serialize_field(".tag", "user_migration_failed")?;
13837 s.serialize_field("user_migration_failed", x)?;
13838 s.end()
13839 }
13840 MemberAddResult::DuplicateExternalMemberId(x) => {
13841 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13843 s.serialize_field(".tag", "duplicate_external_member_id")?;
13844 s.serialize_field("duplicate_external_member_id", x)?;
13845 s.end()
13846 }
13847 MemberAddResult::DuplicateMemberPersistentId(x) => {
13848 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13850 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
13851 s.serialize_field("duplicate_member_persistent_id", x)?;
13852 s.end()
13853 }
13854 MemberAddResult::PersistentIdDisabled(x) => {
13855 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13857 s.serialize_field(".tag", "persistent_id_disabled")?;
13858 s.serialize_field("persistent_id_disabled", x)?;
13859 s.end()
13860 }
13861 MemberAddResult::UserCreationFailed(x) => {
13862 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13864 s.serialize_field(".tag", "user_creation_failed")?;
13865 s.serialize_field("user_creation_failed", x)?;
13866 s.end()
13867 }
13868 MemberAddResult::Success(x) => {
13869 let mut s = serializer.serialize_struct("MemberAddResult", 3)?;
13871 s.serialize_field(".tag", "success")?;
13872 x.internal_serialize::<S>(&mut s)?;
13873 s.end()
13874 }
13875 }
13876 }
13877}
13878
13879impl From<MemberAddResultBase> for MemberAddResult {
13881 fn from(parent: MemberAddResultBase) -> Self {
13882 match parent {
13883 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddResult::TeamLicenseLimit(x),
13884 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddResult::FreeTeamMemberLimitReached(x),
13885 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddResult::UserAlreadyOnTeam(x),
13886 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddResult::UserOnAnotherTeam(x),
13887 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddResult::UserAlreadyPaired(x),
13888 MemberAddResultBase::UserMigrationFailed(x) => MemberAddResult::UserMigrationFailed(x),
13889 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddResult::DuplicateExternalMemberId(x),
13890 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddResult::DuplicateMemberPersistentId(x),
13891 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddResult::PersistentIdDisabled(x),
13892 MemberAddResultBase::UserCreationFailed(x) => MemberAddResult::UserCreationFailed(x),
13893 }
13894 }
13895}
13896#[derive(Debug, Clone, PartialEq, Eq)]
13897pub enum MemberAddResultBase {
13898 TeamLicenseLimit(crate::types::common::EmailAddress),
13900 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
13902 UserAlreadyOnTeam(crate::types::common::EmailAddress),
13905 UserOnAnotherTeam(crate::types::common::EmailAddress),
13908 UserAlreadyPaired(crate::types::common::EmailAddress),
13910 UserMigrationFailed(crate::types::common::EmailAddress),
13912 DuplicateExternalMemberId(crate::types::common::EmailAddress),
13915 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
13918 PersistentIdDisabled(crate::types::common::EmailAddress),
13921 UserCreationFailed(crate::types::common::EmailAddress),
13923}
13924
13925impl<'de> ::serde::de::Deserialize<'de> for MemberAddResultBase {
13926 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13927 use serde::de::{self, MapAccess, Visitor};
13929 struct EnumVisitor;
13930 impl<'de> Visitor<'de> for EnumVisitor {
13931 type Value = MemberAddResultBase;
13932 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13933 f.write_str("a MemberAddResultBase structure")
13934 }
13935 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13936 let tag: &str = match map.next_key()? {
13937 Some(".tag") => map.next_value()?,
13938 _ => return Err(de::Error::missing_field(".tag"))
13939 };
13940 let value = match tag {
13941 "team_license_limit" => {
13942 match map.next_key()? {
13943 Some("team_license_limit") => MemberAddResultBase::TeamLicenseLimit(map.next_value()?),
13944 None => return Err(de::Error::missing_field("team_license_limit")),
13945 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13946 }
13947 }
13948 "free_team_member_limit_reached" => {
13949 match map.next_key()? {
13950 Some("free_team_member_limit_reached") => MemberAddResultBase::FreeTeamMemberLimitReached(map.next_value()?),
13951 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
13952 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13953 }
13954 }
13955 "user_already_on_team" => {
13956 match map.next_key()? {
13957 Some("user_already_on_team") => MemberAddResultBase::UserAlreadyOnTeam(map.next_value()?),
13958 None => return Err(de::Error::missing_field("user_already_on_team")),
13959 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13960 }
13961 }
13962 "user_on_another_team" => {
13963 match map.next_key()? {
13964 Some("user_on_another_team") => MemberAddResultBase::UserOnAnotherTeam(map.next_value()?),
13965 None => return Err(de::Error::missing_field("user_on_another_team")),
13966 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13967 }
13968 }
13969 "user_already_paired" => {
13970 match map.next_key()? {
13971 Some("user_already_paired") => MemberAddResultBase::UserAlreadyPaired(map.next_value()?),
13972 None => return Err(de::Error::missing_field("user_already_paired")),
13973 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13974 }
13975 }
13976 "user_migration_failed" => {
13977 match map.next_key()? {
13978 Some("user_migration_failed") => MemberAddResultBase::UserMigrationFailed(map.next_value()?),
13979 None => return Err(de::Error::missing_field("user_migration_failed")),
13980 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13981 }
13982 }
13983 "duplicate_external_member_id" => {
13984 match map.next_key()? {
13985 Some("duplicate_external_member_id") => MemberAddResultBase::DuplicateExternalMemberId(map.next_value()?),
13986 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
13987 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13988 }
13989 }
13990 "duplicate_member_persistent_id" => {
13991 match map.next_key()? {
13992 Some("duplicate_member_persistent_id") => MemberAddResultBase::DuplicateMemberPersistentId(map.next_value()?),
13993 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
13994 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13995 }
13996 }
13997 "persistent_id_disabled" => {
13998 match map.next_key()? {
13999 Some("persistent_id_disabled") => MemberAddResultBase::PersistentIdDisabled(map.next_value()?),
14000 None => return Err(de::Error::missing_field("persistent_id_disabled")),
14001 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14002 }
14003 }
14004 "user_creation_failed" => {
14005 match map.next_key()? {
14006 Some("user_creation_failed") => MemberAddResultBase::UserCreationFailed(map.next_value()?),
14007 None => return Err(de::Error::missing_field("user_creation_failed")),
14008 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14009 }
14010 }
14011 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
14012 };
14013 crate::eat_json_fields(&mut map)?;
14014 Ok(value)
14015 }
14016 }
14017 const VARIANTS: &[&str] = &["team_license_limit",
14018 "free_team_member_limit_reached",
14019 "user_already_on_team",
14020 "user_on_another_team",
14021 "user_already_paired",
14022 "user_migration_failed",
14023 "duplicate_external_member_id",
14024 "duplicate_member_persistent_id",
14025 "persistent_id_disabled",
14026 "user_creation_failed"];
14027 deserializer.deserialize_struct("MemberAddResultBase", VARIANTS, EnumVisitor)
14028 }
14029}
14030
14031impl ::serde::ser::Serialize for MemberAddResultBase {
14032 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14033 use serde::ser::SerializeStruct;
14035 match self {
14036 MemberAddResultBase::TeamLicenseLimit(x) => {
14037 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14039 s.serialize_field(".tag", "team_license_limit")?;
14040 s.serialize_field("team_license_limit", x)?;
14041 s.end()
14042 }
14043 MemberAddResultBase::FreeTeamMemberLimitReached(x) => {
14044 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14046 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14047 s.serialize_field("free_team_member_limit_reached", x)?;
14048 s.end()
14049 }
14050 MemberAddResultBase::UserAlreadyOnTeam(x) => {
14051 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14053 s.serialize_field(".tag", "user_already_on_team")?;
14054 s.serialize_field("user_already_on_team", x)?;
14055 s.end()
14056 }
14057 MemberAddResultBase::UserOnAnotherTeam(x) => {
14058 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14060 s.serialize_field(".tag", "user_on_another_team")?;
14061 s.serialize_field("user_on_another_team", x)?;
14062 s.end()
14063 }
14064 MemberAddResultBase::UserAlreadyPaired(x) => {
14065 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14067 s.serialize_field(".tag", "user_already_paired")?;
14068 s.serialize_field("user_already_paired", x)?;
14069 s.end()
14070 }
14071 MemberAddResultBase::UserMigrationFailed(x) => {
14072 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14074 s.serialize_field(".tag", "user_migration_failed")?;
14075 s.serialize_field("user_migration_failed", x)?;
14076 s.end()
14077 }
14078 MemberAddResultBase::DuplicateExternalMemberId(x) => {
14079 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14081 s.serialize_field(".tag", "duplicate_external_member_id")?;
14082 s.serialize_field("duplicate_external_member_id", x)?;
14083 s.end()
14084 }
14085 MemberAddResultBase::DuplicateMemberPersistentId(x) => {
14086 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14088 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14089 s.serialize_field("duplicate_member_persistent_id", x)?;
14090 s.end()
14091 }
14092 MemberAddResultBase::PersistentIdDisabled(x) => {
14093 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14095 s.serialize_field(".tag", "persistent_id_disabled")?;
14096 s.serialize_field("persistent_id_disabled", x)?;
14097 s.end()
14098 }
14099 MemberAddResultBase::UserCreationFailed(x) => {
14100 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14102 s.serialize_field(".tag", "user_creation_failed")?;
14103 s.serialize_field("user_creation_failed", x)?;
14104 s.end()
14105 }
14106 }
14107 }
14108}
14109
14110#[derive(Debug, Clone, PartialEq, Eq)]
14111#[non_exhaustive] pub struct MemberAddV2Arg {
14113 pub member_email: crate::types::common::EmailAddress,
14114 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
14116 pub member_surname: Option<crate::types::common::OptionalNamePart>,
14118 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
14120 pub member_persistent_id: Option<String>,
14123 pub send_welcome_email: bool,
14127 pub is_directory_restricted: Option<bool>,
14129 pub role_ids: Option<Vec<TeamMemberRoleId>>,
14130}
14131
14132impl MemberAddV2Arg {
14133 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
14134 MemberAddV2Arg {
14135 member_email,
14136 member_given_name: None,
14137 member_surname: None,
14138 member_external_id: None,
14139 member_persistent_id: None,
14140 send_welcome_email: true,
14141 is_directory_restricted: None,
14142 role_ids: None,
14143 }
14144 }
14145
14146 pub fn with_member_given_name(
14147 mut self,
14148 value: crate::types::common::OptionalNamePart,
14149 ) -> Self {
14150 self.member_given_name = Some(value);
14151 self
14152 }
14153
14154 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
14155 self.member_surname = Some(value);
14156 self
14157 }
14158
14159 pub fn with_member_external_id(
14160 mut self,
14161 value: crate::types::team_common::MemberExternalId,
14162 ) -> Self {
14163 self.member_external_id = Some(value);
14164 self
14165 }
14166
14167 pub fn with_member_persistent_id(mut self, value: String) -> Self {
14168 self.member_persistent_id = Some(value);
14169 self
14170 }
14171
14172 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
14173 self.send_welcome_email = value;
14174 self
14175 }
14176
14177 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14178 self.is_directory_restricted = Some(value);
14179 self
14180 }
14181
14182 pub fn with_role_ids(mut self, value: Vec<TeamMemberRoleId>) -> Self {
14183 self.role_ids = Some(value);
14184 self
14185 }
14186}
14187
14188const MEMBER_ADD_V2_ARG_FIELDS: &[&str] = &["member_email",
14189 "member_given_name",
14190 "member_surname",
14191 "member_external_id",
14192 "member_persistent_id",
14193 "send_welcome_email",
14194 "is_directory_restricted",
14195 "role_ids"];
14196impl MemberAddV2Arg {
14197 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14198 map: V,
14199 ) -> Result<MemberAddV2Arg, V::Error> {
14200 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14201 }
14202
14203 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14204 mut map: V,
14205 optional: bool,
14206 ) -> Result<Option<MemberAddV2Arg>, V::Error> {
14207 let mut field_member_email = None;
14208 let mut field_member_given_name = None;
14209 let mut field_member_surname = None;
14210 let mut field_member_external_id = None;
14211 let mut field_member_persistent_id = None;
14212 let mut field_send_welcome_email = None;
14213 let mut field_is_directory_restricted = None;
14214 let mut field_role_ids = None;
14215 let mut nothing = true;
14216 while let Some(key) = map.next_key::<&str>()? {
14217 nothing = false;
14218 match key {
14219 "member_email" => {
14220 if field_member_email.is_some() {
14221 return Err(::serde::de::Error::duplicate_field("member_email"));
14222 }
14223 field_member_email = Some(map.next_value()?);
14224 }
14225 "member_given_name" => {
14226 if field_member_given_name.is_some() {
14227 return Err(::serde::de::Error::duplicate_field("member_given_name"));
14228 }
14229 field_member_given_name = Some(map.next_value()?);
14230 }
14231 "member_surname" => {
14232 if field_member_surname.is_some() {
14233 return Err(::serde::de::Error::duplicate_field("member_surname"));
14234 }
14235 field_member_surname = Some(map.next_value()?);
14236 }
14237 "member_external_id" => {
14238 if field_member_external_id.is_some() {
14239 return Err(::serde::de::Error::duplicate_field("member_external_id"));
14240 }
14241 field_member_external_id = Some(map.next_value()?);
14242 }
14243 "member_persistent_id" => {
14244 if field_member_persistent_id.is_some() {
14245 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
14246 }
14247 field_member_persistent_id = Some(map.next_value()?);
14248 }
14249 "send_welcome_email" => {
14250 if field_send_welcome_email.is_some() {
14251 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
14252 }
14253 field_send_welcome_email = Some(map.next_value()?);
14254 }
14255 "is_directory_restricted" => {
14256 if field_is_directory_restricted.is_some() {
14257 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
14258 }
14259 field_is_directory_restricted = Some(map.next_value()?);
14260 }
14261 "role_ids" => {
14262 if field_role_ids.is_some() {
14263 return Err(::serde::de::Error::duplicate_field("role_ids"));
14264 }
14265 field_role_ids = Some(map.next_value()?);
14266 }
14267 _ => {
14268 map.next_value::<::serde_json::Value>()?;
14270 }
14271 }
14272 }
14273 if optional && nothing {
14274 return Ok(None);
14275 }
14276 let result = MemberAddV2Arg {
14277 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
14278 member_given_name: field_member_given_name.and_then(Option::flatten),
14279 member_surname: field_member_surname.and_then(Option::flatten),
14280 member_external_id: field_member_external_id.and_then(Option::flatten),
14281 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
14282 send_welcome_email: field_send_welcome_email.unwrap_or(true),
14283 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
14284 role_ids: field_role_ids.and_then(Option::flatten),
14285 };
14286 Ok(Some(result))
14287 }
14288
14289 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14290 &self,
14291 s: &mut S::SerializeStruct,
14292 ) -> Result<(), S::Error> {
14293 use serde::ser::SerializeStruct;
14294 s.serialize_field("member_email", &self.member_email)?;
14295 if let Some(val) = &self.member_given_name {
14296 s.serialize_field("member_given_name", val)?;
14297 }
14298 if let Some(val) = &self.member_surname {
14299 s.serialize_field("member_surname", val)?;
14300 }
14301 if let Some(val) = &self.member_external_id {
14302 s.serialize_field("member_external_id", val)?;
14303 }
14304 if let Some(val) = &self.member_persistent_id {
14305 s.serialize_field("member_persistent_id", val)?;
14306 }
14307 if !self.send_welcome_email {
14308 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
14309 }
14310 if let Some(val) = &self.is_directory_restricted {
14311 s.serialize_field("is_directory_restricted", val)?;
14312 }
14313 if let Some(val) = &self.role_ids {
14314 s.serialize_field("role_ids", val)?;
14315 }
14316 Ok(())
14317 }
14318}
14319
14320impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Arg {
14321 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14322 use serde::de::{MapAccess, Visitor};
14324 struct StructVisitor;
14325 impl<'de> Visitor<'de> for StructVisitor {
14326 type Value = MemberAddV2Arg;
14327 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14328 f.write_str("a MemberAddV2Arg struct")
14329 }
14330 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14331 MemberAddV2Arg::internal_deserialize(map)
14332 }
14333 }
14334 deserializer.deserialize_struct("MemberAddV2Arg", MEMBER_ADD_V2_ARG_FIELDS, StructVisitor)
14335 }
14336}
14337
14338impl ::serde::ser::Serialize for MemberAddV2Arg {
14339 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14340 use serde::ser::SerializeStruct;
14342 let mut s = serializer.serialize_struct("MemberAddV2Arg", 8)?;
14343 self.internal_serialize::<S>(&mut s)?;
14344 s.end()
14345 }
14346}
14347
14348impl From<MemberAddV2Arg> for MemberAddArgBase {
14350 fn from(subtype: MemberAddV2Arg) -> Self {
14351 Self {
14352 member_email: subtype.member_email,
14353 member_given_name: subtype.member_given_name,
14354 member_surname: subtype.member_surname,
14355 member_external_id: subtype.member_external_id,
14356 member_persistent_id: subtype.member_persistent_id,
14357 send_welcome_email: subtype.send_welcome_email,
14358 is_directory_restricted: subtype.is_directory_restricted,
14359 }
14360 }
14361}
14362#[derive(Debug, Clone, PartialEq, Eq)]
14366#[non_exhaustive] pub enum MemberAddV2Result {
14368 TeamLicenseLimit(crate::types::common::EmailAddress),
14370 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
14372 UserAlreadyOnTeam(crate::types::common::EmailAddress),
14375 UserOnAnotherTeam(crate::types::common::EmailAddress),
14378 UserAlreadyPaired(crate::types::common::EmailAddress),
14380 UserMigrationFailed(crate::types::common::EmailAddress),
14382 DuplicateExternalMemberId(crate::types::common::EmailAddress),
14385 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
14388 PersistentIdDisabled(crate::types::common::EmailAddress),
14391 UserCreationFailed(crate::types::common::EmailAddress),
14393 Success(TeamMemberInfoV2),
14395 Other,
14398}
14399
14400impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Result {
14401 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14402 use serde::de::{self, MapAccess, Visitor};
14404 struct EnumVisitor;
14405 impl<'de> Visitor<'de> for EnumVisitor {
14406 type Value = MemberAddV2Result;
14407 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14408 f.write_str("a MemberAddV2Result structure")
14409 }
14410 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
14411 let tag: &str = match map.next_key()? {
14412 Some(".tag") => map.next_value()?,
14413 _ => return Err(de::Error::missing_field(".tag"))
14414 };
14415 let value = match tag {
14416 "team_license_limit" => {
14417 match map.next_key()? {
14418 Some("team_license_limit") => MemberAddV2Result::TeamLicenseLimit(map.next_value()?),
14419 None => return Err(de::Error::missing_field("team_license_limit")),
14420 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14421 }
14422 }
14423 "free_team_member_limit_reached" => {
14424 match map.next_key()? {
14425 Some("free_team_member_limit_reached") => MemberAddV2Result::FreeTeamMemberLimitReached(map.next_value()?),
14426 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
14427 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14428 }
14429 }
14430 "user_already_on_team" => {
14431 match map.next_key()? {
14432 Some("user_already_on_team") => MemberAddV2Result::UserAlreadyOnTeam(map.next_value()?),
14433 None => return Err(de::Error::missing_field("user_already_on_team")),
14434 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14435 }
14436 }
14437 "user_on_another_team" => {
14438 match map.next_key()? {
14439 Some("user_on_another_team") => MemberAddV2Result::UserOnAnotherTeam(map.next_value()?),
14440 None => return Err(de::Error::missing_field("user_on_another_team")),
14441 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14442 }
14443 }
14444 "user_already_paired" => {
14445 match map.next_key()? {
14446 Some("user_already_paired") => MemberAddV2Result::UserAlreadyPaired(map.next_value()?),
14447 None => return Err(de::Error::missing_field("user_already_paired")),
14448 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14449 }
14450 }
14451 "user_migration_failed" => {
14452 match map.next_key()? {
14453 Some("user_migration_failed") => MemberAddV2Result::UserMigrationFailed(map.next_value()?),
14454 None => return Err(de::Error::missing_field("user_migration_failed")),
14455 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14456 }
14457 }
14458 "duplicate_external_member_id" => {
14459 match map.next_key()? {
14460 Some("duplicate_external_member_id") => MemberAddV2Result::DuplicateExternalMemberId(map.next_value()?),
14461 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
14462 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14463 }
14464 }
14465 "duplicate_member_persistent_id" => {
14466 match map.next_key()? {
14467 Some("duplicate_member_persistent_id") => MemberAddV2Result::DuplicateMemberPersistentId(map.next_value()?),
14468 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
14469 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14470 }
14471 }
14472 "persistent_id_disabled" => {
14473 match map.next_key()? {
14474 Some("persistent_id_disabled") => MemberAddV2Result::PersistentIdDisabled(map.next_value()?),
14475 None => return Err(de::Error::missing_field("persistent_id_disabled")),
14476 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14477 }
14478 }
14479 "user_creation_failed" => {
14480 match map.next_key()? {
14481 Some("user_creation_failed") => MemberAddV2Result::UserCreationFailed(map.next_value()?),
14482 None => return Err(de::Error::missing_field("user_creation_failed")),
14483 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14484 }
14485 }
14486 "success" => MemberAddV2Result::Success(TeamMemberInfoV2::internal_deserialize(&mut map)?),
14487 _ => MemberAddV2Result::Other,
14488 };
14489 crate::eat_json_fields(&mut map)?;
14490 Ok(value)
14491 }
14492 }
14493 const VARIANTS: &[&str] = &["team_license_limit",
14494 "free_team_member_limit_reached",
14495 "user_already_on_team",
14496 "user_on_another_team",
14497 "user_already_paired",
14498 "user_migration_failed",
14499 "duplicate_external_member_id",
14500 "duplicate_member_persistent_id",
14501 "persistent_id_disabled",
14502 "user_creation_failed",
14503 "success",
14504 "other"];
14505 deserializer.deserialize_struct("MemberAddV2Result", VARIANTS, EnumVisitor)
14506 }
14507}
14508
14509impl ::serde::ser::Serialize for MemberAddV2Result {
14510 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14511 use serde::ser::SerializeStruct;
14513 match self {
14514 MemberAddV2Result::TeamLicenseLimit(x) => {
14515 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14517 s.serialize_field(".tag", "team_license_limit")?;
14518 s.serialize_field("team_license_limit", x)?;
14519 s.end()
14520 }
14521 MemberAddV2Result::FreeTeamMemberLimitReached(x) => {
14522 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14524 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14525 s.serialize_field("free_team_member_limit_reached", x)?;
14526 s.end()
14527 }
14528 MemberAddV2Result::UserAlreadyOnTeam(x) => {
14529 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14531 s.serialize_field(".tag", "user_already_on_team")?;
14532 s.serialize_field("user_already_on_team", x)?;
14533 s.end()
14534 }
14535 MemberAddV2Result::UserOnAnotherTeam(x) => {
14536 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14538 s.serialize_field(".tag", "user_on_another_team")?;
14539 s.serialize_field("user_on_another_team", x)?;
14540 s.end()
14541 }
14542 MemberAddV2Result::UserAlreadyPaired(x) => {
14543 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14545 s.serialize_field(".tag", "user_already_paired")?;
14546 s.serialize_field("user_already_paired", x)?;
14547 s.end()
14548 }
14549 MemberAddV2Result::UserMigrationFailed(x) => {
14550 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14552 s.serialize_field(".tag", "user_migration_failed")?;
14553 s.serialize_field("user_migration_failed", x)?;
14554 s.end()
14555 }
14556 MemberAddV2Result::DuplicateExternalMemberId(x) => {
14557 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14559 s.serialize_field(".tag", "duplicate_external_member_id")?;
14560 s.serialize_field("duplicate_external_member_id", x)?;
14561 s.end()
14562 }
14563 MemberAddV2Result::DuplicateMemberPersistentId(x) => {
14564 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14566 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14567 s.serialize_field("duplicate_member_persistent_id", x)?;
14568 s.end()
14569 }
14570 MemberAddV2Result::PersistentIdDisabled(x) => {
14571 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14573 s.serialize_field(".tag", "persistent_id_disabled")?;
14574 s.serialize_field("persistent_id_disabled", x)?;
14575 s.end()
14576 }
14577 MemberAddV2Result::UserCreationFailed(x) => {
14578 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14580 s.serialize_field(".tag", "user_creation_failed")?;
14581 s.serialize_field("user_creation_failed", x)?;
14582 s.end()
14583 }
14584 MemberAddV2Result::Success(x) => {
14585 let mut s = serializer.serialize_struct("MemberAddV2Result", 3)?;
14587 s.serialize_field(".tag", "success")?;
14588 x.internal_serialize::<S>(&mut s)?;
14589 s.end()
14590 }
14591 MemberAddV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
14592 }
14593 }
14594}
14595
14596impl From<MemberAddResultBase> for MemberAddV2Result {
14598 fn from(parent: MemberAddResultBase) -> Self {
14599 match parent {
14600 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddV2Result::TeamLicenseLimit(x),
14601 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddV2Result::FreeTeamMemberLimitReached(x),
14602 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddV2Result::UserAlreadyOnTeam(x),
14603 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddV2Result::UserOnAnotherTeam(x),
14604 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddV2Result::UserAlreadyPaired(x),
14605 MemberAddResultBase::UserMigrationFailed(x) => MemberAddV2Result::UserMigrationFailed(x),
14606 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddV2Result::DuplicateExternalMemberId(x),
14607 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddV2Result::DuplicateMemberPersistentId(x),
14608 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddV2Result::PersistentIdDisabled(x),
14609 MemberAddResultBase::UserCreationFailed(x) => MemberAddV2Result::UserCreationFailed(x),
14610 }
14611 }
14612}
14613#[derive(Debug, Clone, PartialEq, Eq)]
14615#[non_exhaustive] pub struct MemberDevices {
14617 pub team_member_id: String,
14619 pub web_sessions: Option<Vec<ActiveWebSession>>,
14621 pub desktop_clients: Option<Vec<DesktopClientSession>>,
14623 pub mobile_clients: Option<Vec<MobileClientSession>>,
14625}
14626
14627impl MemberDevices {
14628 pub fn new(team_member_id: String) -> Self {
14629 MemberDevices {
14630 team_member_id,
14631 web_sessions: None,
14632 desktop_clients: None,
14633 mobile_clients: None,
14634 }
14635 }
14636
14637 pub fn with_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
14638 self.web_sessions = Some(value);
14639 self
14640 }
14641
14642 pub fn with_desktop_clients(mut self, value: Vec<DesktopClientSession>) -> Self {
14643 self.desktop_clients = Some(value);
14644 self
14645 }
14646
14647 pub fn with_mobile_clients(mut self, value: Vec<MobileClientSession>) -> Self {
14648 self.mobile_clients = Some(value);
14649 self
14650 }
14651}
14652
14653const MEMBER_DEVICES_FIELDS: &[&str] = &["team_member_id",
14654 "web_sessions",
14655 "desktop_clients",
14656 "mobile_clients"];
14657impl MemberDevices {
14658 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14659 map: V,
14660 ) -> Result<MemberDevices, V::Error> {
14661 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14662 }
14663
14664 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14665 mut map: V,
14666 optional: bool,
14667 ) -> Result<Option<MemberDevices>, V::Error> {
14668 let mut field_team_member_id = None;
14669 let mut field_web_sessions = None;
14670 let mut field_desktop_clients = None;
14671 let mut field_mobile_clients = None;
14672 let mut nothing = true;
14673 while let Some(key) = map.next_key::<&str>()? {
14674 nothing = false;
14675 match key {
14676 "team_member_id" => {
14677 if field_team_member_id.is_some() {
14678 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14679 }
14680 field_team_member_id = Some(map.next_value()?);
14681 }
14682 "web_sessions" => {
14683 if field_web_sessions.is_some() {
14684 return Err(::serde::de::Error::duplicate_field("web_sessions"));
14685 }
14686 field_web_sessions = Some(map.next_value()?);
14687 }
14688 "desktop_clients" => {
14689 if field_desktop_clients.is_some() {
14690 return Err(::serde::de::Error::duplicate_field("desktop_clients"));
14691 }
14692 field_desktop_clients = Some(map.next_value()?);
14693 }
14694 "mobile_clients" => {
14695 if field_mobile_clients.is_some() {
14696 return Err(::serde::de::Error::duplicate_field("mobile_clients"));
14697 }
14698 field_mobile_clients = Some(map.next_value()?);
14699 }
14700 _ => {
14701 map.next_value::<::serde_json::Value>()?;
14703 }
14704 }
14705 }
14706 if optional && nothing {
14707 return Ok(None);
14708 }
14709 let result = MemberDevices {
14710 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
14711 web_sessions: field_web_sessions.and_then(Option::flatten),
14712 desktop_clients: field_desktop_clients.and_then(Option::flatten),
14713 mobile_clients: field_mobile_clients.and_then(Option::flatten),
14714 };
14715 Ok(Some(result))
14716 }
14717
14718 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14719 &self,
14720 s: &mut S::SerializeStruct,
14721 ) -> Result<(), S::Error> {
14722 use serde::ser::SerializeStruct;
14723 s.serialize_field("team_member_id", &self.team_member_id)?;
14724 if let Some(val) = &self.web_sessions {
14725 s.serialize_field("web_sessions", val)?;
14726 }
14727 if let Some(val) = &self.desktop_clients {
14728 s.serialize_field("desktop_clients", val)?;
14729 }
14730 if let Some(val) = &self.mobile_clients {
14731 s.serialize_field("mobile_clients", val)?;
14732 }
14733 Ok(())
14734 }
14735}
14736
14737impl<'de> ::serde::de::Deserialize<'de> for MemberDevices {
14738 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14739 use serde::de::{MapAccess, Visitor};
14741 struct StructVisitor;
14742 impl<'de> Visitor<'de> for StructVisitor {
14743 type Value = MemberDevices;
14744 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14745 f.write_str("a MemberDevices struct")
14746 }
14747 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14748 MemberDevices::internal_deserialize(map)
14749 }
14750 }
14751 deserializer.deserialize_struct("MemberDevices", MEMBER_DEVICES_FIELDS, StructVisitor)
14752 }
14753}
14754
14755impl ::serde::ser::Serialize for MemberDevices {
14756 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14757 use serde::ser::SerializeStruct;
14759 let mut s = serializer.serialize_struct("MemberDevices", 4)?;
14760 self.internal_serialize::<S>(&mut s)?;
14761 s.end()
14762 }
14763}
14764
14765#[derive(Debug, Clone, PartialEq, Eq)]
14767#[non_exhaustive] pub struct MemberLinkedApps {
14769 pub team_member_id: String,
14771 pub linked_api_apps: Vec<ApiApp>,
14773}
14774
14775impl MemberLinkedApps {
14776 pub fn new(team_member_id: String, linked_api_apps: Vec<ApiApp>) -> Self {
14777 MemberLinkedApps {
14778 team_member_id,
14779 linked_api_apps,
14780 }
14781 }
14782}
14783
14784const MEMBER_LINKED_APPS_FIELDS: &[&str] = &["team_member_id",
14785 "linked_api_apps"];
14786impl MemberLinkedApps {
14787 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14788 map: V,
14789 ) -> Result<MemberLinkedApps, V::Error> {
14790 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14791 }
14792
14793 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14794 mut map: V,
14795 optional: bool,
14796 ) -> Result<Option<MemberLinkedApps>, V::Error> {
14797 let mut field_team_member_id = None;
14798 let mut field_linked_api_apps = None;
14799 let mut nothing = true;
14800 while let Some(key) = map.next_key::<&str>()? {
14801 nothing = false;
14802 match key {
14803 "team_member_id" => {
14804 if field_team_member_id.is_some() {
14805 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14806 }
14807 field_team_member_id = Some(map.next_value()?);
14808 }
14809 "linked_api_apps" => {
14810 if field_linked_api_apps.is_some() {
14811 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
14812 }
14813 field_linked_api_apps = Some(map.next_value()?);
14814 }
14815 _ => {
14816 map.next_value::<::serde_json::Value>()?;
14818 }
14819 }
14820 }
14821 if optional && nothing {
14822 return Ok(None);
14823 }
14824 let result = MemberLinkedApps {
14825 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
14826 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
14827 };
14828 Ok(Some(result))
14829 }
14830
14831 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14832 &self,
14833 s: &mut S::SerializeStruct,
14834 ) -> Result<(), S::Error> {
14835 use serde::ser::SerializeStruct;
14836 s.serialize_field("team_member_id", &self.team_member_id)?;
14837 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
14838 Ok(())
14839 }
14840}
14841
14842impl<'de> ::serde::de::Deserialize<'de> for MemberLinkedApps {
14843 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14844 use serde::de::{MapAccess, Visitor};
14846 struct StructVisitor;
14847 impl<'de> Visitor<'de> for StructVisitor {
14848 type Value = MemberLinkedApps;
14849 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14850 f.write_str("a MemberLinkedApps struct")
14851 }
14852 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14853 MemberLinkedApps::internal_deserialize(map)
14854 }
14855 }
14856 deserializer.deserialize_struct("MemberLinkedApps", MEMBER_LINKED_APPS_FIELDS, StructVisitor)
14857 }
14858}
14859
14860impl ::serde::ser::Serialize for MemberLinkedApps {
14861 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14862 use serde::ser::SerializeStruct;
14864 let mut s = serializer.serialize_struct("MemberLinkedApps", 2)?;
14865 self.internal_serialize::<S>(&mut s)?;
14866 s.end()
14867 }
14868}
14869
14870#[derive(Debug, Clone, PartialEq, Eq)]
14872#[non_exhaustive] pub struct MemberProfile {
14874 pub team_member_id: crate::types::team_common::TeamMemberId,
14876 pub email: String,
14878 pub email_verified: bool,
14880 pub status: TeamMemberStatus,
14882 pub name: crate::types::users::Name,
14884 pub membership_type: TeamMembershipType,
14887 pub external_id: Option<String>,
14890 pub account_id: Option<crate::types::users_common::AccountId>,
14892 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
14894 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
14897 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
14899 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
14902 pub persistent_id: Option<String>,
14905 pub is_directory_restricted: Option<bool>,
14907 pub profile_photo_url: Option<String>,
14909}
14910
14911impl MemberProfile {
14912 pub fn new(
14913 team_member_id: crate::types::team_common::TeamMemberId,
14914 email: String,
14915 email_verified: bool,
14916 status: TeamMemberStatus,
14917 name: crate::types::users::Name,
14918 membership_type: TeamMembershipType,
14919 ) -> Self {
14920 MemberProfile {
14921 team_member_id,
14922 email,
14923 email_verified,
14924 status,
14925 name,
14926 membership_type,
14927 external_id: None,
14928 account_id: None,
14929 secondary_emails: None,
14930 invited_on: None,
14931 joined_on: None,
14932 suspended_on: None,
14933 persistent_id: None,
14934 is_directory_restricted: None,
14935 profile_photo_url: None,
14936 }
14937 }
14938
14939 pub fn with_external_id(mut self, value: String) -> Self {
14940 self.external_id = Some(value);
14941 self
14942 }
14943
14944 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
14945 self.account_id = Some(value);
14946 self
14947 }
14948
14949 pub fn with_secondary_emails(
14950 mut self,
14951 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
14952 ) -> Self {
14953 self.secondary_emails = Some(value);
14954 self
14955 }
14956
14957 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14958 self.invited_on = Some(value);
14959 self
14960 }
14961
14962 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14963 self.joined_on = Some(value);
14964 self
14965 }
14966
14967 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14968 self.suspended_on = Some(value);
14969 self
14970 }
14971
14972 pub fn with_persistent_id(mut self, value: String) -> Self {
14973 self.persistent_id = Some(value);
14974 self
14975 }
14976
14977 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14978 self.is_directory_restricted = Some(value);
14979 self
14980 }
14981
14982 pub fn with_profile_photo_url(mut self, value: String) -> Self {
14983 self.profile_photo_url = Some(value);
14984 self
14985 }
14986}
14987
14988const MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
14989 "email",
14990 "email_verified",
14991 "status",
14992 "name",
14993 "membership_type",
14994 "external_id",
14995 "account_id",
14996 "secondary_emails",
14997 "invited_on",
14998 "joined_on",
14999 "suspended_on",
15000 "persistent_id",
15001 "is_directory_restricted",
15002 "profile_photo_url"];
15003impl MemberProfile {
15004 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15005 map: V,
15006 ) -> Result<MemberProfile, V::Error> {
15007 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15008 }
15009
15010 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15011 mut map: V,
15012 optional: bool,
15013 ) -> Result<Option<MemberProfile>, V::Error> {
15014 let mut field_team_member_id = None;
15015 let mut field_email = None;
15016 let mut field_email_verified = None;
15017 let mut field_status = None;
15018 let mut field_name = None;
15019 let mut field_membership_type = None;
15020 let mut field_external_id = None;
15021 let mut field_account_id = None;
15022 let mut field_secondary_emails = None;
15023 let mut field_invited_on = None;
15024 let mut field_joined_on = None;
15025 let mut field_suspended_on = None;
15026 let mut field_persistent_id = None;
15027 let mut field_is_directory_restricted = None;
15028 let mut field_profile_photo_url = None;
15029 let mut nothing = true;
15030 while let Some(key) = map.next_key::<&str>()? {
15031 nothing = false;
15032 match key {
15033 "team_member_id" => {
15034 if field_team_member_id.is_some() {
15035 return Err(::serde::de::Error::duplicate_field("team_member_id"));
15036 }
15037 field_team_member_id = Some(map.next_value()?);
15038 }
15039 "email" => {
15040 if field_email.is_some() {
15041 return Err(::serde::de::Error::duplicate_field("email"));
15042 }
15043 field_email = Some(map.next_value()?);
15044 }
15045 "email_verified" => {
15046 if field_email_verified.is_some() {
15047 return Err(::serde::de::Error::duplicate_field("email_verified"));
15048 }
15049 field_email_verified = Some(map.next_value()?);
15050 }
15051 "status" => {
15052 if field_status.is_some() {
15053 return Err(::serde::de::Error::duplicate_field("status"));
15054 }
15055 field_status = Some(map.next_value()?);
15056 }
15057 "name" => {
15058 if field_name.is_some() {
15059 return Err(::serde::de::Error::duplicate_field("name"));
15060 }
15061 field_name = Some(map.next_value()?);
15062 }
15063 "membership_type" => {
15064 if field_membership_type.is_some() {
15065 return Err(::serde::de::Error::duplicate_field("membership_type"));
15066 }
15067 field_membership_type = Some(map.next_value()?);
15068 }
15069 "external_id" => {
15070 if field_external_id.is_some() {
15071 return Err(::serde::de::Error::duplicate_field("external_id"));
15072 }
15073 field_external_id = Some(map.next_value()?);
15074 }
15075 "account_id" => {
15076 if field_account_id.is_some() {
15077 return Err(::serde::de::Error::duplicate_field("account_id"));
15078 }
15079 field_account_id = Some(map.next_value()?);
15080 }
15081 "secondary_emails" => {
15082 if field_secondary_emails.is_some() {
15083 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
15084 }
15085 field_secondary_emails = Some(map.next_value()?);
15086 }
15087 "invited_on" => {
15088 if field_invited_on.is_some() {
15089 return Err(::serde::de::Error::duplicate_field("invited_on"));
15090 }
15091 field_invited_on = Some(map.next_value()?);
15092 }
15093 "joined_on" => {
15094 if field_joined_on.is_some() {
15095 return Err(::serde::de::Error::duplicate_field("joined_on"));
15096 }
15097 field_joined_on = Some(map.next_value()?);
15098 }
15099 "suspended_on" => {
15100 if field_suspended_on.is_some() {
15101 return Err(::serde::de::Error::duplicate_field("suspended_on"));
15102 }
15103 field_suspended_on = Some(map.next_value()?);
15104 }
15105 "persistent_id" => {
15106 if field_persistent_id.is_some() {
15107 return Err(::serde::de::Error::duplicate_field("persistent_id"));
15108 }
15109 field_persistent_id = Some(map.next_value()?);
15110 }
15111 "is_directory_restricted" => {
15112 if field_is_directory_restricted.is_some() {
15113 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
15114 }
15115 field_is_directory_restricted = Some(map.next_value()?);
15116 }
15117 "profile_photo_url" => {
15118 if field_profile_photo_url.is_some() {
15119 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
15120 }
15121 field_profile_photo_url = Some(map.next_value()?);
15122 }
15123 _ => {
15124 map.next_value::<::serde_json::Value>()?;
15126 }
15127 }
15128 }
15129 if optional && nothing {
15130 return Ok(None);
15131 }
15132 let result = MemberProfile {
15133 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
15134 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
15135 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
15136 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
15137 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
15138 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
15139 external_id: field_external_id.and_then(Option::flatten),
15140 account_id: field_account_id.and_then(Option::flatten),
15141 secondary_emails: field_secondary_emails.and_then(Option::flatten),
15142 invited_on: field_invited_on.and_then(Option::flatten),
15143 joined_on: field_joined_on.and_then(Option::flatten),
15144 suspended_on: field_suspended_on.and_then(Option::flatten),
15145 persistent_id: field_persistent_id.and_then(Option::flatten),
15146 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
15147 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
15148 };
15149 Ok(Some(result))
15150 }
15151
15152 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15153 &self,
15154 s: &mut S::SerializeStruct,
15155 ) -> Result<(), S::Error> {
15156 use serde::ser::SerializeStruct;
15157 s.serialize_field("team_member_id", &self.team_member_id)?;
15158 s.serialize_field("email", &self.email)?;
15159 s.serialize_field("email_verified", &self.email_verified)?;
15160 s.serialize_field("status", &self.status)?;
15161 s.serialize_field("name", &self.name)?;
15162 s.serialize_field("membership_type", &self.membership_type)?;
15163 if let Some(val) = &self.external_id {
15164 s.serialize_field("external_id", val)?;
15165 }
15166 if let Some(val) = &self.account_id {
15167 s.serialize_field("account_id", val)?;
15168 }
15169 if let Some(val) = &self.secondary_emails {
15170 s.serialize_field("secondary_emails", val)?;
15171 }
15172 if let Some(val) = &self.invited_on {
15173 s.serialize_field("invited_on", val)?;
15174 }
15175 if let Some(val) = &self.joined_on {
15176 s.serialize_field("joined_on", val)?;
15177 }
15178 if let Some(val) = &self.suspended_on {
15179 s.serialize_field("suspended_on", val)?;
15180 }
15181 if let Some(val) = &self.persistent_id {
15182 s.serialize_field("persistent_id", val)?;
15183 }
15184 if let Some(val) = &self.is_directory_restricted {
15185 s.serialize_field("is_directory_restricted", val)?;
15186 }
15187 if let Some(val) = &self.profile_photo_url {
15188 s.serialize_field("profile_photo_url", val)?;
15189 }
15190 Ok(())
15191 }
15192}
15193
15194impl<'de> ::serde::de::Deserialize<'de> for MemberProfile {
15195 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15196 use serde::de::{MapAccess, Visitor};
15198 struct StructVisitor;
15199 impl<'de> Visitor<'de> for StructVisitor {
15200 type Value = MemberProfile;
15201 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15202 f.write_str("a MemberProfile struct")
15203 }
15204 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15205 MemberProfile::internal_deserialize(map)
15206 }
15207 }
15208 deserializer.deserialize_struct("MemberProfile", MEMBER_PROFILE_FIELDS, StructVisitor)
15209 }
15210}
15211
15212impl ::serde::ser::Serialize for MemberProfile {
15213 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15214 use serde::ser::SerializeStruct;
15216 let mut s = serializer.serialize_struct("MemberProfile", 15)?;
15217 self.internal_serialize::<S>(&mut s)?;
15218 s.end()
15219 }
15220}
15221
15222#[derive(Debug, Clone, PartialEq, Eq)]
15223pub enum MemberSelectorError {
15224 UserNotFound,
15227 UserNotInTeam,
15229}
15230
15231impl<'de> ::serde::de::Deserialize<'de> for MemberSelectorError {
15232 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15233 use serde::de::{self, MapAccess, Visitor};
15235 struct EnumVisitor;
15236 impl<'de> Visitor<'de> for EnumVisitor {
15237 type Value = MemberSelectorError;
15238 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15239 f.write_str("a MemberSelectorError structure")
15240 }
15241 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15242 let tag: &str = match map.next_key()? {
15243 Some(".tag") => map.next_value()?,
15244 _ => return Err(de::Error::missing_field(".tag"))
15245 };
15246 let value = match tag {
15247 "user_not_found" => MemberSelectorError::UserNotFound,
15248 "user_not_in_team" => MemberSelectorError::UserNotInTeam,
15249 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15250 };
15251 crate::eat_json_fields(&mut map)?;
15252 Ok(value)
15253 }
15254 }
15255 const VARIANTS: &[&str] = &["user_not_found",
15256 "user_not_in_team"];
15257 deserializer.deserialize_struct("MemberSelectorError", VARIANTS, EnumVisitor)
15258 }
15259}
15260
15261impl ::serde::ser::Serialize for MemberSelectorError {
15262 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15263 use serde::ser::SerializeStruct;
15265 match self {
15266 MemberSelectorError::UserNotFound => {
15267 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
15269 s.serialize_field(".tag", "user_not_found")?;
15270 s.end()
15271 }
15272 MemberSelectorError::UserNotInTeam => {
15273 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
15275 s.serialize_field(".tag", "user_not_in_team")?;
15276 s.end()
15277 }
15278 }
15279 }
15280}
15281
15282impl ::std::error::Error for MemberSelectorError {
15283}
15284
15285impl ::std::fmt::Display for MemberSelectorError {
15286 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15287 match self {
15288 MemberSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
15289 MemberSelectorError::UserNotInTeam => f.write_str("The user is not a member of the team."),
15290 }
15291 }
15292}
15293
15294impl From<UserSelectorError> for MemberSelectorError {
15296 fn from(parent: UserSelectorError) -> Self {
15297 match parent {
15298 UserSelectorError::UserNotFound => MemberSelectorError::UserNotFound,
15299 }
15300 }
15301}
15302#[derive(Debug, Clone, PartialEq, Eq)]
15303#[non_exhaustive] pub struct MembersAddArg {
15305 pub new_members: Vec<MemberAddArg>,
15307 pub force_async: bool,
15309}
15310
15311impl MembersAddArg {
15312 pub fn new(new_members: Vec<MemberAddArg>) -> Self {
15313 MembersAddArg {
15314 new_members,
15315 force_async: false,
15316 }
15317 }
15318
15319 pub fn with_force_async(mut self, value: bool) -> Self {
15320 self.force_async = value;
15321 self
15322 }
15323}
15324
15325const MEMBERS_ADD_ARG_FIELDS: &[&str] = &["new_members",
15326 "force_async"];
15327impl MembersAddArg {
15328 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15329 map: V,
15330 ) -> Result<MembersAddArg, V::Error> {
15331 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15332 }
15333
15334 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15335 mut map: V,
15336 optional: bool,
15337 ) -> Result<Option<MembersAddArg>, V::Error> {
15338 let mut field_new_members = None;
15339 let mut field_force_async = None;
15340 let mut nothing = true;
15341 while let Some(key) = map.next_key::<&str>()? {
15342 nothing = false;
15343 match key {
15344 "new_members" => {
15345 if field_new_members.is_some() {
15346 return Err(::serde::de::Error::duplicate_field("new_members"));
15347 }
15348 field_new_members = Some(map.next_value()?);
15349 }
15350 "force_async" => {
15351 if field_force_async.is_some() {
15352 return Err(::serde::de::Error::duplicate_field("force_async"));
15353 }
15354 field_force_async = Some(map.next_value()?);
15355 }
15356 _ => {
15357 map.next_value::<::serde_json::Value>()?;
15359 }
15360 }
15361 }
15362 if optional && nothing {
15363 return Ok(None);
15364 }
15365 let result = MembersAddArg {
15366 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
15367 force_async: field_force_async.unwrap_or(false),
15368 };
15369 Ok(Some(result))
15370 }
15371
15372 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15373 &self,
15374 s: &mut S::SerializeStruct,
15375 ) -> Result<(), S::Error> {
15376 use serde::ser::SerializeStruct;
15377 s.serialize_field("new_members", &self.new_members)?;
15378 if self.force_async {
15379 s.serialize_field("force_async", &self.force_async)?;
15380 }
15381 Ok(())
15382 }
15383}
15384
15385impl<'de> ::serde::de::Deserialize<'de> for MembersAddArg {
15386 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15387 use serde::de::{MapAccess, Visitor};
15389 struct StructVisitor;
15390 impl<'de> Visitor<'de> for StructVisitor {
15391 type Value = MembersAddArg;
15392 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15393 f.write_str("a MembersAddArg struct")
15394 }
15395 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15396 MembersAddArg::internal_deserialize(map)
15397 }
15398 }
15399 deserializer.deserialize_struct("MembersAddArg", MEMBERS_ADD_ARG_FIELDS, StructVisitor)
15400 }
15401}
15402
15403impl ::serde::ser::Serialize for MembersAddArg {
15404 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15405 use serde::ser::SerializeStruct;
15407 let mut s = serializer.serialize_struct("MembersAddArg", 2)?;
15408 self.internal_serialize::<S>(&mut s)?;
15409 s.end()
15410 }
15411}
15412
15413impl From<MembersAddArg> for MembersAddArgBase {
15415 fn from(subtype: MembersAddArg) -> Self {
15416 Self {
15417 force_async: subtype.force_async,
15418 }
15419 }
15420}
15421#[derive(Debug, Clone, PartialEq, Eq, Default)]
15422#[non_exhaustive] pub struct MembersAddArgBase {
15424 pub force_async: bool,
15426}
15427
15428impl MembersAddArgBase {
15429 pub fn with_force_async(mut self, value: bool) -> Self {
15430 self.force_async = value;
15431 self
15432 }
15433}
15434
15435const MEMBERS_ADD_ARG_BASE_FIELDS: &[&str] = &["force_async"];
15436impl MembersAddArgBase {
15437 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15439 mut map: V,
15440 ) -> Result<MembersAddArgBase, V::Error> {
15441 let mut field_force_async = None;
15442 while let Some(key) = map.next_key::<&str>()? {
15443 match key {
15444 "force_async" => {
15445 if field_force_async.is_some() {
15446 return Err(::serde::de::Error::duplicate_field("force_async"));
15447 }
15448 field_force_async = Some(map.next_value()?);
15449 }
15450 _ => {
15451 map.next_value::<::serde_json::Value>()?;
15453 }
15454 }
15455 }
15456 let result = MembersAddArgBase {
15457 force_async: field_force_async.unwrap_or(false),
15458 };
15459 Ok(result)
15460 }
15461
15462 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15463 &self,
15464 s: &mut S::SerializeStruct,
15465 ) -> Result<(), S::Error> {
15466 use serde::ser::SerializeStruct;
15467 if self.force_async {
15468 s.serialize_field("force_async", &self.force_async)?;
15469 }
15470 Ok(())
15471 }
15472}
15473
15474impl<'de> ::serde::de::Deserialize<'de> for MembersAddArgBase {
15475 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15476 use serde::de::{MapAccess, Visitor};
15478 struct StructVisitor;
15479 impl<'de> Visitor<'de> for StructVisitor {
15480 type Value = MembersAddArgBase;
15481 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15482 f.write_str("a MembersAddArgBase struct")
15483 }
15484 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15485 MembersAddArgBase::internal_deserialize(map)
15486 }
15487 }
15488 deserializer.deserialize_struct("MembersAddArgBase", MEMBERS_ADD_ARG_BASE_FIELDS, StructVisitor)
15489 }
15490}
15491
15492impl ::serde::ser::Serialize for MembersAddArgBase {
15493 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15494 use serde::ser::SerializeStruct;
15496 let mut s = serializer.serialize_struct("MembersAddArgBase", 1)?;
15497 self.internal_serialize::<S>(&mut s)?;
15498 s.end()
15499 }
15500}
15501
15502#[derive(Debug, Clone, PartialEq, Eq)]
15503pub enum MembersAddJobStatus {
15504 InProgress,
15506 Complete(Vec<MemberAddResult>),
15510 Failed(String),
15512}
15513
15514impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatus {
15515 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15516 use serde::de::{self, MapAccess, Visitor};
15518 struct EnumVisitor;
15519 impl<'de> Visitor<'de> for EnumVisitor {
15520 type Value = MembersAddJobStatus;
15521 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15522 f.write_str("a MembersAddJobStatus structure")
15523 }
15524 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15525 let tag: &str = match map.next_key()? {
15526 Some(".tag") => map.next_value()?,
15527 _ => return Err(de::Error::missing_field(".tag"))
15528 };
15529 let value = match tag {
15530 "in_progress" => MembersAddJobStatus::InProgress,
15531 "complete" => {
15532 match map.next_key()? {
15533 Some("complete") => MembersAddJobStatus::Complete(map.next_value()?),
15534 None => return Err(de::Error::missing_field("complete")),
15535 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15536 }
15537 }
15538 "failed" => {
15539 match map.next_key()? {
15540 Some("failed") => MembersAddJobStatus::Failed(map.next_value()?),
15541 None => return Err(de::Error::missing_field("failed")),
15542 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15543 }
15544 }
15545 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15546 };
15547 crate::eat_json_fields(&mut map)?;
15548 Ok(value)
15549 }
15550 }
15551 const VARIANTS: &[&str] = &["in_progress",
15552 "complete",
15553 "failed"];
15554 deserializer.deserialize_struct("MembersAddJobStatus", VARIANTS, EnumVisitor)
15555 }
15556}
15557
15558impl ::serde::ser::Serialize for MembersAddJobStatus {
15559 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15560 use serde::ser::SerializeStruct;
15562 match self {
15563 MembersAddJobStatus::InProgress => {
15564 let mut s = serializer.serialize_struct("MembersAddJobStatus", 1)?;
15566 s.serialize_field(".tag", "in_progress")?;
15567 s.end()
15568 }
15569 MembersAddJobStatus::Complete(x) => {
15570 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
15572 s.serialize_field(".tag", "complete")?;
15573 s.serialize_field("complete", x)?;
15574 s.end()
15575 }
15576 MembersAddJobStatus::Failed(x) => {
15577 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
15579 s.serialize_field(".tag", "failed")?;
15580 s.serialize_field("failed", x)?;
15581 s.end()
15582 }
15583 }
15584 }
15585}
15586
15587impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatus {
15589 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
15590 match parent {
15591 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatus::InProgress,
15592 }
15593 }
15594}
15595#[derive(Debug, Clone, PartialEq, Eq)]
15596#[non_exhaustive] pub enum MembersAddJobStatusV2Result {
15598 InProgress,
15600 Complete(Vec<MemberAddV2Result>),
15604 Failed(String),
15606 Other,
15609}
15610
15611impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatusV2Result {
15612 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15613 use serde::de::{self, MapAccess, Visitor};
15615 struct EnumVisitor;
15616 impl<'de> Visitor<'de> for EnumVisitor {
15617 type Value = MembersAddJobStatusV2Result;
15618 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15619 f.write_str("a MembersAddJobStatusV2Result structure")
15620 }
15621 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15622 let tag: &str = match map.next_key()? {
15623 Some(".tag") => map.next_value()?,
15624 _ => return Err(de::Error::missing_field(".tag"))
15625 };
15626 let value = match tag {
15627 "in_progress" => MembersAddJobStatusV2Result::InProgress,
15628 "complete" => {
15629 match map.next_key()? {
15630 Some("complete") => MembersAddJobStatusV2Result::Complete(map.next_value()?),
15631 None => return Err(de::Error::missing_field("complete")),
15632 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15633 }
15634 }
15635 "failed" => {
15636 match map.next_key()? {
15637 Some("failed") => MembersAddJobStatusV2Result::Failed(map.next_value()?),
15638 None => return Err(de::Error::missing_field("failed")),
15639 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15640 }
15641 }
15642 _ => MembersAddJobStatusV2Result::Other,
15643 };
15644 crate::eat_json_fields(&mut map)?;
15645 Ok(value)
15646 }
15647 }
15648 const VARIANTS: &[&str] = &["in_progress",
15649 "complete",
15650 "failed",
15651 "other"];
15652 deserializer.deserialize_struct("MembersAddJobStatusV2Result", VARIANTS, EnumVisitor)
15653 }
15654}
15655
15656impl ::serde::ser::Serialize for MembersAddJobStatusV2Result {
15657 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15658 use serde::ser::SerializeStruct;
15660 match self {
15661 MembersAddJobStatusV2Result::InProgress => {
15662 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 1)?;
15664 s.serialize_field(".tag", "in_progress")?;
15665 s.end()
15666 }
15667 MembersAddJobStatusV2Result::Complete(x) => {
15668 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
15670 s.serialize_field(".tag", "complete")?;
15671 s.serialize_field("complete", x)?;
15672 s.end()
15673 }
15674 MembersAddJobStatusV2Result::Failed(x) => {
15675 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
15677 s.serialize_field(".tag", "failed")?;
15678 s.serialize_field("failed", x)?;
15679 s.end()
15680 }
15681 MembersAddJobStatusV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15682 }
15683 }
15684}
15685
15686impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatusV2Result {
15688 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
15689 match parent {
15690 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatusV2Result::InProgress,
15691 }
15692 }
15693}
15694#[derive(Debug, Clone, PartialEq, Eq)]
15695pub enum MembersAddLaunch {
15696 AsyncJobId(crate::types::dbx_async::AsyncJobId),
15699 Complete(Vec<MemberAddResult>),
15700}
15701
15702impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunch {
15703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15704 use serde::de::{self, MapAccess, Visitor};
15706 struct EnumVisitor;
15707 impl<'de> Visitor<'de> for EnumVisitor {
15708 type Value = MembersAddLaunch;
15709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15710 f.write_str("a MembersAddLaunch structure")
15711 }
15712 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15713 let tag: &str = match map.next_key()? {
15714 Some(".tag") => map.next_value()?,
15715 _ => return Err(de::Error::missing_field(".tag"))
15716 };
15717 let value = match tag {
15718 "async_job_id" => {
15719 match map.next_key()? {
15720 Some("async_job_id") => MembersAddLaunch::AsyncJobId(map.next_value()?),
15721 None => return Err(de::Error::missing_field("async_job_id")),
15722 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15723 }
15724 }
15725 "complete" => {
15726 match map.next_key()? {
15727 Some("complete") => MembersAddLaunch::Complete(map.next_value()?),
15728 None => return Err(de::Error::missing_field("complete")),
15729 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15730 }
15731 }
15732 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15733 };
15734 crate::eat_json_fields(&mut map)?;
15735 Ok(value)
15736 }
15737 }
15738 const VARIANTS: &[&str] = &["async_job_id",
15739 "complete"];
15740 deserializer.deserialize_struct("MembersAddLaunch", VARIANTS, EnumVisitor)
15741 }
15742}
15743
15744impl ::serde::ser::Serialize for MembersAddLaunch {
15745 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15746 use serde::ser::SerializeStruct;
15748 match self {
15749 MembersAddLaunch::AsyncJobId(x) => {
15750 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
15752 s.serialize_field(".tag", "async_job_id")?;
15753 s.serialize_field("async_job_id", x)?;
15754 s.end()
15755 }
15756 MembersAddLaunch::Complete(x) => {
15757 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
15759 s.serialize_field(".tag", "complete")?;
15760 s.serialize_field("complete", x)?;
15761 s.end()
15762 }
15763 }
15764 }
15765}
15766
15767impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunch {
15769 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
15770 match parent {
15771 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunch::AsyncJobId(x),
15772 }
15773 }
15774}
15775#[derive(Debug, Clone, PartialEq, Eq)]
15776#[non_exhaustive] pub enum MembersAddLaunchV2Result {
15778 AsyncJobId(crate::types::dbx_async::AsyncJobId),
15781 Complete(Vec<MemberAddV2Result>),
15782 Other,
15785}
15786
15787impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunchV2Result {
15788 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15789 use serde::de::{self, MapAccess, Visitor};
15791 struct EnumVisitor;
15792 impl<'de> Visitor<'de> for EnumVisitor {
15793 type Value = MembersAddLaunchV2Result;
15794 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15795 f.write_str("a MembersAddLaunchV2Result structure")
15796 }
15797 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15798 let tag: &str = match map.next_key()? {
15799 Some(".tag") => map.next_value()?,
15800 _ => return Err(de::Error::missing_field(".tag"))
15801 };
15802 let value = match tag {
15803 "async_job_id" => {
15804 match map.next_key()? {
15805 Some("async_job_id") => MembersAddLaunchV2Result::AsyncJobId(map.next_value()?),
15806 None => return Err(de::Error::missing_field("async_job_id")),
15807 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15808 }
15809 }
15810 "complete" => {
15811 match map.next_key()? {
15812 Some("complete") => MembersAddLaunchV2Result::Complete(map.next_value()?),
15813 None => return Err(de::Error::missing_field("complete")),
15814 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15815 }
15816 }
15817 _ => MembersAddLaunchV2Result::Other,
15818 };
15819 crate::eat_json_fields(&mut map)?;
15820 Ok(value)
15821 }
15822 }
15823 const VARIANTS: &[&str] = &["async_job_id",
15824 "complete",
15825 "other"];
15826 deserializer.deserialize_struct("MembersAddLaunchV2Result", VARIANTS, EnumVisitor)
15827 }
15828}
15829
15830impl ::serde::ser::Serialize for MembersAddLaunchV2Result {
15831 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15832 use serde::ser::SerializeStruct;
15834 match self {
15835 MembersAddLaunchV2Result::AsyncJobId(x) => {
15836 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
15838 s.serialize_field(".tag", "async_job_id")?;
15839 s.serialize_field("async_job_id", x)?;
15840 s.end()
15841 }
15842 MembersAddLaunchV2Result::Complete(x) => {
15843 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
15845 s.serialize_field(".tag", "complete")?;
15846 s.serialize_field("complete", x)?;
15847 s.end()
15848 }
15849 MembersAddLaunchV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15850 }
15851 }
15852}
15853
15854impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunchV2Result {
15856 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
15857 match parent {
15858 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunchV2Result::AsyncJobId(x),
15859 }
15860 }
15861}
15862#[derive(Debug, Clone, PartialEq, Eq)]
15863#[non_exhaustive] pub struct MembersAddV2Arg {
15865 pub new_members: Vec<MemberAddV2Arg>,
15867 pub force_async: bool,
15869}
15870
15871impl MembersAddV2Arg {
15872 pub fn new(new_members: Vec<MemberAddV2Arg>) -> Self {
15873 MembersAddV2Arg {
15874 new_members,
15875 force_async: false,
15876 }
15877 }
15878
15879 pub fn with_force_async(mut self, value: bool) -> Self {
15880 self.force_async = value;
15881 self
15882 }
15883}
15884
15885const MEMBERS_ADD_V2_ARG_FIELDS: &[&str] = &["new_members",
15886 "force_async"];
15887impl MembersAddV2Arg {
15888 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15889 map: V,
15890 ) -> Result<MembersAddV2Arg, V::Error> {
15891 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15892 }
15893
15894 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15895 mut map: V,
15896 optional: bool,
15897 ) -> Result<Option<MembersAddV2Arg>, V::Error> {
15898 let mut field_new_members = None;
15899 let mut field_force_async = None;
15900 let mut nothing = true;
15901 while let Some(key) = map.next_key::<&str>()? {
15902 nothing = false;
15903 match key {
15904 "new_members" => {
15905 if field_new_members.is_some() {
15906 return Err(::serde::de::Error::duplicate_field("new_members"));
15907 }
15908 field_new_members = Some(map.next_value()?);
15909 }
15910 "force_async" => {
15911 if field_force_async.is_some() {
15912 return Err(::serde::de::Error::duplicate_field("force_async"));
15913 }
15914 field_force_async = Some(map.next_value()?);
15915 }
15916 _ => {
15917 map.next_value::<::serde_json::Value>()?;
15919 }
15920 }
15921 }
15922 if optional && nothing {
15923 return Ok(None);
15924 }
15925 let result = MembersAddV2Arg {
15926 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
15927 force_async: field_force_async.unwrap_or(false),
15928 };
15929 Ok(Some(result))
15930 }
15931
15932 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15933 &self,
15934 s: &mut S::SerializeStruct,
15935 ) -> Result<(), S::Error> {
15936 use serde::ser::SerializeStruct;
15937 s.serialize_field("new_members", &self.new_members)?;
15938 if self.force_async {
15939 s.serialize_field("force_async", &self.force_async)?;
15940 }
15941 Ok(())
15942 }
15943}
15944
15945impl<'de> ::serde::de::Deserialize<'de> for MembersAddV2Arg {
15946 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15947 use serde::de::{MapAccess, Visitor};
15949 struct StructVisitor;
15950 impl<'de> Visitor<'de> for StructVisitor {
15951 type Value = MembersAddV2Arg;
15952 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15953 f.write_str("a MembersAddV2Arg struct")
15954 }
15955 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15956 MembersAddV2Arg::internal_deserialize(map)
15957 }
15958 }
15959 deserializer.deserialize_struct("MembersAddV2Arg", MEMBERS_ADD_V2_ARG_FIELDS, StructVisitor)
15960 }
15961}
15962
15963impl ::serde::ser::Serialize for MembersAddV2Arg {
15964 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15965 use serde::ser::SerializeStruct;
15967 let mut s = serializer.serialize_struct("MembersAddV2Arg", 2)?;
15968 self.internal_serialize::<S>(&mut s)?;
15969 s.end()
15970 }
15971}
15972
15973impl From<MembersAddV2Arg> for MembersAddArgBase {
15975 fn from(subtype: MembersAddV2Arg) -> Self {
15976 Self {
15977 force_async: subtype.force_async,
15978 }
15979 }
15980}
15981#[derive(Debug, Clone, PartialEq, Eq)]
15982#[non_exhaustive] pub struct MembersDataTransferArg {
15984 pub user: UserSelectorArg,
15986 pub transfer_dest_id: UserSelectorArg,
15988 pub transfer_admin_id: UserSelectorArg,
15990}
15991
15992impl MembersDataTransferArg {
15993 pub fn new(
15994 user: UserSelectorArg,
15995 transfer_dest_id: UserSelectorArg,
15996 transfer_admin_id: UserSelectorArg,
15997 ) -> Self {
15998 MembersDataTransferArg {
15999 user,
16000 transfer_dest_id,
16001 transfer_admin_id,
16002 }
16003 }
16004}
16005
16006const MEMBERS_DATA_TRANSFER_ARG_FIELDS: &[&str] = &["user",
16007 "transfer_dest_id",
16008 "transfer_admin_id"];
16009impl MembersDataTransferArg {
16010 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16011 map: V,
16012 ) -> Result<MembersDataTransferArg, V::Error> {
16013 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16014 }
16015
16016 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16017 mut map: V,
16018 optional: bool,
16019 ) -> Result<Option<MembersDataTransferArg>, V::Error> {
16020 let mut field_user = None;
16021 let mut field_transfer_dest_id = None;
16022 let mut field_transfer_admin_id = None;
16023 let mut nothing = true;
16024 while let Some(key) = map.next_key::<&str>()? {
16025 nothing = false;
16026 match key {
16027 "user" => {
16028 if field_user.is_some() {
16029 return Err(::serde::de::Error::duplicate_field("user"));
16030 }
16031 field_user = Some(map.next_value()?);
16032 }
16033 "transfer_dest_id" => {
16034 if field_transfer_dest_id.is_some() {
16035 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
16036 }
16037 field_transfer_dest_id = Some(map.next_value()?);
16038 }
16039 "transfer_admin_id" => {
16040 if field_transfer_admin_id.is_some() {
16041 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
16042 }
16043 field_transfer_admin_id = Some(map.next_value()?);
16044 }
16045 _ => {
16046 map.next_value::<::serde_json::Value>()?;
16048 }
16049 }
16050 }
16051 if optional && nothing {
16052 return Ok(None);
16053 }
16054 let result = MembersDataTransferArg {
16055 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16056 transfer_dest_id: field_transfer_dest_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_dest_id"))?,
16057 transfer_admin_id: field_transfer_admin_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_admin_id"))?,
16058 };
16059 Ok(Some(result))
16060 }
16061
16062 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16063 &self,
16064 s: &mut S::SerializeStruct,
16065 ) -> Result<(), S::Error> {
16066 use serde::ser::SerializeStruct;
16067 s.serialize_field("user", &self.user)?;
16068 s.serialize_field("transfer_dest_id", &self.transfer_dest_id)?;
16069 s.serialize_field("transfer_admin_id", &self.transfer_admin_id)?;
16070 Ok(())
16071 }
16072}
16073
16074impl<'de> ::serde::de::Deserialize<'de> for MembersDataTransferArg {
16075 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16076 use serde::de::{MapAccess, Visitor};
16078 struct StructVisitor;
16079 impl<'de> Visitor<'de> for StructVisitor {
16080 type Value = MembersDataTransferArg;
16081 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16082 f.write_str("a MembersDataTransferArg struct")
16083 }
16084 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16085 MembersDataTransferArg::internal_deserialize(map)
16086 }
16087 }
16088 deserializer.deserialize_struct("MembersDataTransferArg", MEMBERS_DATA_TRANSFER_ARG_FIELDS, StructVisitor)
16089 }
16090}
16091
16092impl ::serde::ser::Serialize for MembersDataTransferArg {
16093 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16094 use serde::ser::SerializeStruct;
16096 let mut s = serializer.serialize_struct("MembersDataTransferArg", 3)?;
16097 self.internal_serialize::<S>(&mut s)?;
16098 s.end()
16099 }
16100}
16101
16102impl From<MembersDataTransferArg> for MembersDeactivateBaseArg {
16104 fn from(subtype: MembersDataTransferArg) -> Self {
16105 Self {
16106 user: subtype.user,
16107 }
16108 }
16109}
16110#[derive(Debug, Clone, PartialEq, Eq)]
16111#[non_exhaustive] pub struct MembersDeactivateArg {
16113 pub user: UserSelectorArg,
16115 pub wipe_data: bool,
16117}
16118
16119impl MembersDeactivateArg {
16120 pub fn new(user: UserSelectorArg) -> Self {
16121 MembersDeactivateArg {
16122 user,
16123 wipe_data: true,
16124 }
16125 }
16126
16127 pub fn with_wipe_data(mut self, value: bool) -> Self {
16128 self.wipe_data = value;
16129 self
16130 }
16131}
16132
16133const MEMBERS_DEACTIVATE_ARG_FIELDS: &[&str] = &["user",
16134 "wipe_data"];
16135impl MembersDeactivateArg {
16136 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16137 map: V,
16138 ) -> Result<MembersDeactivateArg, V::Error> {
16139 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16140 }
16141
16142 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16143 mut map: V,
16144 optional: bool,
16145 ) -> Result<Option<MembersDeactivateArg>, V::Error> {
16146 let mut field_user = None;
16147 let mut field_wipe_data = None;
16148 let mut nothing = true;
16149 while let Some(key) = map.next_key::<&str>()? {
16150 nothing = false;
16151 match key {
16152 "user" => {
16153 if field_user.is_some() {
16154 return Err(::serde::de::Error::duplicate_field("user"));
16155 }
16156 field_user = Some(map.next_value()?);
16157 }
16158 "wipe_data" => {
16159 if field_wipe_data.is_some() {
16160 return Err(::serde::de::Error::duplicate_field("wipe_data"));
16161 }
16162 field_wipe_data = Some(map.next_value()?);
16163 }
16164 _ => {
16165 map.next_value::<::serde_json::Value>()?;
16167 }
16168 }
16169 }
16170 if optional && nothing {
16171 return Ok(None);
16172 }
16173 let result = MembersDeactivateArg {
16174 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16175 wipe_data: field_wipe_data.unwrap_or(true),
16176 };
16177 Ok(Some(result))
16178 }
16179
16180 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16181 &self,
16182 s: &mut S::SerializeStruct,
16183 ) -> Result<(), S::Error> {
16184 use serde::ser::SerializeStruct;
16185 s.serialize_field("user", &self.user)?;
16186 if !self.wipe_data {
16187 s.serialize_field("wipe_data", &self.wipe_data)?;
16188 }
16189 Ok(())
16190 }
16191}
16192
16193impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateArg {
16194 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16195 use serde::de::{MapAccess, Visitor};
16197 struct StructVisitor;
16198 impl<'de> Visitor<'de> for StructVisitor {
16199 type Value = MembersDeactivateArg;
16200 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16201 f.write_str("a MembersDeactivateArg struct")
16202 }
16203 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16204 MembersDeactivateArg::internal_deserialize(map)
16205 }
16206 }
16207 deserializer.deserialize_struct("MembersDeactivateArg", MEMBERS_DEACTIVATE_ARG_FIELDS, StructVisitor)
16208 }
16209}
16210
16211impl ::serde::ser::Serialize for MembersDeactivateArg {
16212 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16213 use serde::ser::SerializeStruct;
16215 let mut s = serializer.serialize_struct("MembersDeactivateArg", 2)?;
16216 self.internal_serialize::<S>(&mut s)?;
16217 s.end()
16218 }
16219}
16220
16221impl From<MembersDeactivateArg> for MembersDeactivateBaseArg {
16223 fn from(subtype: MembersDeactivateArg) -> Self {
16224 Self {
16225 user: subtype.user,
16226 }
16227 }
16228}
16229#[derive(Debug, Clone, PartialEq, Eq)]
16232#[non_exhaustive] pub struct MembersDeactivateBaseArg {
16234 pub user: UserSelectorArg,
16236}
16237
16238impl MembersDeactivateBaseArg {
16239 pub fn new(user: UserSelectorArg) -> Self {
16240 MembersDeactivateBaseArg {
16241 user,
16242 }
16243 }
16244}
16245
16246const MEMBERS_DEACTIVATE_BASE_ARG_FIELDS: &[&str] = &["user"];
16247impl MembersDeactivateBaseArg {
16248 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16249 map: V,
16250 ) -> Result<MembersDeactivateBaseArg, V::Error> {
16251 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16252 }
16253
16254 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16255 mut map: V,
16256 optional: bool,
16257 ) -> Result<Option<MembersDeactivateBaseArg>, V::Error> {
16258 let mut field_user = None;
16259 let mut nothing = true;
16260 while let Some(key) = map.next_key::<&str>()? {
16261 nothing = false;
16262 match key {
16263 "user" => {
16264 if field_user.is_some() {
16265 return Err(::serde::de::Error::duplicate_field("user"));
16266 }
16267 field_user = Some(map.next_value()?);
16268 }
16269 _ => {
16270 map.next_value::<::serde_json::Value>()?;
16272 }
16273 }
16274 }
16275 if optional && nothing {
16276 return Ok(None);
16277 }
16278 let result = MembersDeactivateBaseArg {
16279 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16280 };
16281 Ok(Some(result))
16282 }
16283
16284 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16285 &self,
16286 s: &mut S::SerializeStruct,
16287 ) -> Result<(), S::Error> {
16288 use serde::ser::SerializeStruct;
16289 s.serialize_field("user", &self.user)?;
16290 Ok(())
16291 }
16292}
16293
16294impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateBaseArg {
16295 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16296 use serde::de::{MapAccess, Visitor};
16298 struct StructVisitor;
16299 impl<'de> Visitor<'de> for StructVisitor {
16300 type Value = MembersDeactivateBaseArg;
16301 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16302 f.write_str("a MembersDeactivateBaseArg struct")
16303 }
16304 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16305 MembersDeactivateBaseArg::internal_deserialize(map)
16306 }
16307 }
16308 deserializer.deserialize_struct("MembersDeactivateBaseArg", MEMBERS_DEACTIVATE_BASE_ARG_FIELDS, StructVisitor)
16309 }
16310}
16311
16312impl ::serde::ser::Serialize for MembersDeactivateBaseArg {
16313 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16314 use serde::ser::SerializeStruct;
16316 let mut s = serializer.serialize_struct("MembersDeactivateBaseArg", 1)?;
16317 self.internal_serialize::<S>(&mut s)?;
16318 s.end()
16319 }
16320}
16321
16322#[derive(Debug, Clone, PartialEq, Eq)]
16323#[non_exhaustive] pub enum MembersDeactivateError {
16325 UserNotFound,
16328 UserNotInTeam,
16330 Other,
16333}
16334
16335impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateError {
16336 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16337 use serde::de::{self, MapAccess, Visitor};
16339 struct EnumVisitor;
16340 impl<'de> Visitor<'de> for EnumVisitor {
16341 type Value = MembersDeactivateError;
16342 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16343 f.write_str("a MembersDeactivateError structure")
16344 }
16345 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16346 let tag: &str = match map.next_key()? {
16347 Some(".tag") => map.next_value()?,
16348 _ => return Err(de::Error::missing_field(".tag"))
16349 };
16350 let value = match tag {
16351 "user_not_found" => MembersDeactivateError::UserNotFound,
16352 "user_not_in_team" => MembersDeactivateError::UserNotInTeam,
16353 _ => MembersDeactivateError::Other,
16354 };
16355 crate::eat_json_fields(&mut map)?;
16356 Ok(value)
16357 }
16358 }
16359 const VARIANTS: &[&str] = &["user_not_found",
16360 "user_not_in_team",
16361 "other"];
16362 deserializer.deserialize_struct("MembersDeactivateError", VARIANTS, EnumVisitor)
16363 }
16364}
16365
16366impl ::serde::ser::Serialize for MembersDeactivateError {
16367 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16368 use serde::ser::SerializeStruct;
16370 match self {
16371 MembersDeactivateError::UserNotFound => {
16372 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
16374 s.serialize_field(".tag", "user_not_found")?;
16375 s.end()
16376 }
16377 MembersDeactivateError::UserNotInTeam => {
16378 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
16380 s.serialize_field(".tag", "user_not_in_team")?;
16381 s.end()
16382 }
16383 MembersDeactivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16384 }
16385 }
16386}
16387
16388impl ::std::error::Error for MembersDeactivateError {
16389}
16390
16391impl ::std::fmt::Display for MembersDeactivateError {
16392 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16393 match self {
16394 MembersDeactivateError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16395 MembersDeactivateError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16396 _ => write!(f, "{:?}", *self),
16397 }
16398 }
16399}
16400
16401impl From<UserSelectorError> for MembersDeactivateError {
16403 fn from(parent: UserSelectorError) -> Self {
16404 match parent {
16405 UserSelectorError::UserNotFound => MembersDeactivateError::UserNotFound,
16406 }
16407 }
16408}
16409#[derive(Debug, Clone, PartialEq, Eq)]
16410#[non_exhaustive] pub enum MembersDeleteFormerMemberFilesError {
16412 UserNotFound,
16415 UserNotInTeam,
16417 TransferInProgress,
16419 AlreadyTransferred,
16421 AlreadyTransferredOrDeleted,
16423 UserNotRemoved,
16425 Other,
16428}
16429
16430impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteFormerMemberFilesError {
16431 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16432 use serde::de::{self, MapAccess, Visitor};
16434 struct EnumVisitor;
16435 impl<'de> Visitor<'de> for EnumVisitor {
16436 type Value = MembersDeleteFormerMemberFilesError;
16437 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16438 f.write_str("a MembersDeleteFormerMemberFilesError structure")
16439 }
16440 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16441 let tag: &str = match map.next_key()? {
16442 Some(".tag") => map.next_value()?,
16443 _ => return Err(de::Error::missing_field(".tag"))
16444 };
16445 let value = match tag {
16446 "user_not_found" => MembersDeleteFormerMemberFilesError::UserNotFound,
16447 "user_not_in_team" => MembersDeleteFormerMemberFilesError::UserNotInTeam,
16448 "transfer_in_progress" => MembersDeleteFormerMemberFilesError::TransferInProgress,
16449 "already_transferred" => MembersDeleteFormerMemberFilesError::AlreadyTransferred,
16450 "already_transferred_or_deleted" => MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted,
16451 "user_not_removed" => MembersDeleteFormerMemberFilesError::UserNotRemoved,
16452 _ => MembersDeleteFormerMemberFilesError::Other,
16453 };
16454 crate::eat_json_fields(&mut map)?;
16455 Ok(value)
16456 }
16457 }
16458 const VARIANTS: &[&str] = &["user_not_found",
16459 "user_not_in_team",
16460 "other",
16461 "transfer_in_progress",
16462 "already_transferred",
16463 "already_transferred_or_deleted",
16464 "user_not_removed"];
16465 deserializer.deserialize_struct("MembersDeleteFormerMemberFilesError", VARIANTS, EnumVisitor)
16466 }
16467}
16468
16469impl ::serde::ser::Serialize for MembersDeleteFormerMemberFilesError {
16470 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16471 use serde::ser::SerializeStruct;
16473 match self {
16474 MembersDeleteFormerMemberFilesError::UserNotFound => {
16475 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16477 s.serialize_field(".tag", "user_not_found")?;
16478 s.end()
16479 }
16480 MembersDeleteFormerMemberFilesError::UserNotInTeam => {
16481 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16483 s.serialize_field(".tag", "user_not_in_team")?;
16484 s.end()
16485 }
16486 MembersDeleteFormerMemberFilesError::TransferInProgress => {
16487 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16489 s.serialize_field(".tag", "transfer_in_progress")?;
16490 s.end()
16491 }
16492 MembersDeleteFormerMemberFilesError::AlreadyTransferred => {
16493 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16495 s.serialize_field(".tag", "already_transferred")?;
16496 s.end()
16497 }
16498 MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted => {
16499 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16501 s.serialize_field(".tag", "already_transferred_or_deleted")?;
16502 s.end()
16503 }
16504 MembersDeleteFormerMemberFilesError::UserNotRemoved => {
16505 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16507 s.serialize_field(".tag", "user_not_removed")?;
16508 s.end()
16509 }
16510 MembersDeleteFormerMemberFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16511 }
16512 }
16513}
16514
16515impl ::std::error::Error for MembersDeleteFormerMemberFilesError {
16516}
16517
16518impl ::std::fmt::Display for MembersDeleteFormerMemberFilesError {
16519 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16520 match self {
16521 MembersDeleteFormerMemberFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16522 MembersDeleteFormerMemberFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16523 MembersDeleteFormerMemberFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
16524 MembersDeleteFormerMemberFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
16525 MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
16526 MembersDeleteFormerMemberFilesError::UserNotRemoved => f.write_str("User has not been removed from the team."),
16527 _ => write!(f, "{:?}", *self),
16528 }
16529 }
16530}
16531
16532impl From<MembersPermanentlyDeleteFilesError> for MembersDeleteFormerMemberFilesError {
16534 fn from(parent: MembersPermanentlyDeleteFilesError) -> Self {
16535 match parent {
16536 MembersPermanentlyDeleteFilesError::UserNotFound => MembersDeleteFormerMemberFilesError::UserNotFound,
16537 MembersPermanentlyDeleteFilesError::UserNotInTeam => MembersDeleteFormerMemberFilesError::UserNotInTeam,
16538 MembersPermanentlyDeleteFilesError::Other => MembersDeleteFormerMemberFilesError::Other,
16539 MembersPermanentlyDeleteFilesError::TransferInProgress => MembersDeleteFormerMemberFilesError::TransferInProgress,
16540 MembersPermanentlyDeleteFilesError::AlreadyTransferred => MembersDeleteFormerMemberFilesError::AlreadyTransferred,
16541 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted,
16542 }
16543 }
16544}
16545#[derive(Debug, Clone, PartialEq, Eq)]
16546#[non_exhaustive] pub struct MembersDeleteProfilePhotoArg {
16548 pub user: UserSelectorArg,
16550}
16551
16552impl MembersDeleteProfilePhotoArg {
16553 pub fn new(user: UserSelectorArg) -> Self {
16554 MembersDeleteProfilePhotoArg {
16555 user,
16556 }
16557 }
16558}
16559
16560const MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user"];
16561impl MembersDeleteProfilePhotoArg {
16562 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16563 map: V,
16564 ) -> Result<MembersDeleteProfilePhotoArg, V::Error> {
16565 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16566 }
16567
16568 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16569 mut map: V,
16570 optional: bool,
16571 ) -> Result<Option<MembersDeleteProfilePhotoArg>, V::Error> {
16572 let mut field_user = None;
16573 let mut nothing = true;
16574 while let Some(key) = map.next_key::<&str>()? {
16575 nothing = false;
16576 match key {
16577 "user" => {
16578 if field_user.is_some() {
16579 return Err(::serde::de::Error::duplicate_field("user"));
16580 }
16581 field_user = Some(map.next_value()?);
16582 }
16583 _ => {
16584 map.next_value::<::serde_json::Value>()?;
16586 }
16587 }
16588 }
16589 if optional && nothing {
16590 return Ok(None);
16591 }
16592 let result = MembersDeleteProfilePhotoArg {
16593 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16594 };
16595 Ok(Some(result))
16596 }
16597
16598 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16599 &self,
16600 s: &mut S::SerializeStruct,
16601 ) -> Result<(), S::Error> {
16602 use serde::ser::SerializeStruct;
16603 s.serialize_field("user", &self.user)?;
16604 Ok(())
16605 }
16606}
16607
16608impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoArg {
16609 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16610 use serde::de::{MapAccess, Visitor};
16612 struct StructVisitor;
16613 impl<'de> Visitor<'de> for StructVisitor {
16614 type Value = MembersDeleteProfilePhotoArg;
16615 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16616 f.write_str("a MembersDeleteProfilePhotoArg struct")
16617 }
16618 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16619 MembersDeleteProfilePhotoArg::internal_deserialize(map)
16620 }
16621 }
16622 deserializer.deserialize_struct("MembersDeleteProfilePhotoArg", MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
16623 }
16624}
16625
16626impl ::serde::ser::Serialize for MembersDeleteProfilePhotoArg {
16627 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16628 use serde::ser::SerializeStruct;
16630 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoArg", 1)?;
16631 self.internal_serialize::<S>(&mut s)?;
16632 s.end()
16633 }
16634}
16635
16636#[derive(Debug, Clone, PartialEq, Eq)]
16637#[non_exhaustive] pub enum MembersDeleteProfilePhotoError {
16639 UserNotFound,
16642 UserNotInTeam,
16644 SetProfileDisallowed,
16646 Other,
16649}
16650
16651impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoError {
16652 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16653 use serde::de::{self, MapAccess, Visitor};
16655 struct EnumVisitor;
16656 impl<'de> Visitor<'de> for EnumVisitor {
16657 type Value = MembersDeleteProfilePhotoError;
16658 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16659 f.write_str("a MembersDeleteProfilePhotoError structure")
16660 }
16661 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16662 let tag: &str = match map.next_key()? {
16663 Some(".tag") => map.next_value()?,
16664 _ => return Err(de::Error::missing_field(".tag"))
16665 };
16666 let value = match tag {
16667 "user_not_found" => MembersDeleteProfilePhotoError::UserNotFound,
16668 "user_not_in_team" => MembersDeleteProfilePhotoError::UserNotInTeam,
16669 "set_profile_disallowed" => MembersDeleteProfilePhotoError::SetProfileDisallowed,
16670 _ => MembersDeleteProfilePhotoError::Other,
16671 };
16672 crate::eat_json_fields(&mut map)?;
16673 Ok(value)
16674 }
16675 }
16676 const VARIANTS: &[&str] = &["user_not_found",
16677 "user_not_in_team",
16678 "set_profile_disallowed",
16679 "other"];
16680 deserializer.deserialize_struct("MembersDeleteProfilePhotoError", VARIANTS, EnumVisitor)
16681 }
16682}
16683
16684impl ::serde::ser::Serialize for MembersDeleteProfilePhotoError {
16685 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16686 use serde::ser::SerializeStruct;
16688 match self {
16689 MembersDeleteProfilePhotoError::UserNotFound => {
16690 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16692 s.serialize_field(".tag", "user_not_found")?;
16693 s.end()
16694 }
16695 MembersDeleteProfilePhotoError::UserNotInTeam => {
16696 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16698 s.serialize_field(".tag", "user_not_in_team")?;
16699 s.end()
16700 }
16701 MembersDeleteProfilePhotoError::SetProfileDisallowed => {
16702 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16704 s.serialize_field(".tag", "set_profile_disallowed")?;
16705 s.end()
16706 }
16707 MembersDeleteProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16708 }
16709 }
16710}
16711
16712impl ::std::error::Error for MembersDeleteProfilePhotoError {
16713}
16714
16715impl ::std::fmt::Display for MembersDeleteProfilePhotoError {
16716 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16717 match self {
16718 MembersDeleteProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16719 MembersDeleteProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16720 MembersDeleteProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
16721 _ => write!(f, "{:?}", *self),
16722 }
16723 }
16724}
16725
16726impl From<MemberSelectorError> for MembersDeleteProfilePhotoError {
16728 fn from(parent: MemberSelectorError) -> Self {
16729 match parent {
16730 MemberSelectorError::UserNotFound => MembersDeleteProfilePhotoError::UserNotFound,
16731 MemberSelectorError::UserNotInTeam => MembersDeleteProfilePhotoError::UserNotInTeam,
16732 }
16733 }
16734}
16735#[derive(Debug, Clone, PartialEq, Eq)]
16738#[non_exhaustive] pub struct MembersFormerMemberArg {
16740 pub user: UserSelectorArg,
16742}
16743
16744impl MembersFormerMemberArg {
16745 pub fn new(user: UserSelectorArg) -> Self {
16746 MembersFormerMemberArg {
16747 user,
16748 }
16749 }
16750}
16751
16752const MEMBERS_FORMER_MEMBER_ARG_FIELDS: &[&str] = &["user"];
16753impl MembersFormerMemberArg {
16754 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16755 map: V,
16756 ) -> Result<MembersFormerMemberArg, V::Error> {
16757 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16758 }
16759
16760 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16761 mut map: V,
16762 optional: bool,
16763 ) -> Result<Option<MembersFormerMemberArg>, V::Error> {
16764 let mut field_user = None;
16765 let mut nothing = true;
16766 while let Some(key) = map.next_key::<&str>()? {
16767 nothing = false;
16768 match key {
16769 "user" => {
16770 if field_user.is_some() {
16771 return Err(::serde::de::Error::duplicate_field("user"));
16772 }
16773 field_user = Some(map.next_value()?);
16774 }
16775 _ => {
16776 map.next_value::<::serde_json::Value>()?;
16778 }
16779 }
16780 }
16781 if optional && nothing {
16782 return Ok(None);
16783 }
16784 let result = MembersFormerMemberArg {
16785 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16786 };
16787 Ok(Some(result))
16788 }
16789
16790 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16791 &self,
16792 s: &mut S::SerializeStruct,
16793 ) -> Result<(), S::Error> {
16794 use serde::ser::SerializeStruct;
16795 s.serialize_field("user", &self.user)?;
16796 Ok(())
16797 }
16798}
16799
16800impl<'de> ::serde::de::Deserialize<'de> for MembersFormerMemberArg {
16801 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16802 use serde::de::{MapAccess, Visitor};
16804 struct StructVisitor;
16805 impl<'de> Visitor<'de> for StructVisitor {
16806 type Value = MembersFormerMemberArg;
16807 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16808 f.write_str("a MembersFormerMemberArg struct")
16809 }
16810 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16811 MembersFormerMemberArg::internal_deserialize(map)
16812 }
16813 }
16814 deserializer.deserialize_struct("MembersFormerMemberArg", MEMBERS_FORMER_MEMBER_ARG_FIELDS, StructVisitor)
16815 }
16816}
16817
16818impl ::serde::ser::Serialize for MembersFormerMemberArg {
16819 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16820 use serde::ser::SerializeStruct;
16822 let mut s = serializer.serialize_struct("MembersFormerMemberArg", 1)?;
16823 self.internal_serialize::<S>(&mut s)?;
16824 s.end()
16825 }
16826}
16827
16828#[derive(Debug, Clone, PartialEq, Eq)]
16831#[non_exhaustive] pub struct MembersGetAvailableTeamMemberRolesResult {
16833 pub roles: Vec<TeamMemberRole>,
16835}
16836
16837impl MembersGetAvailableTeamMemberRolesResult {
16838 pub fn new(roles: Vec<TeamMemberRole>) -> Self {
16839 MembersGetAvailableTeamMemberRolesResult {
16840 roles,
16841 }
16842 }
16843}
16844
16845const MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS: &[&str] = &["roles"];
16846impl MembersGetAvailableTeamMemberRolesResult {
16847 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16848 map: V,
16849 ) -> Result<MembersGetAvailableTeamMemberRolesResult, V::Error> {
16850 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16851 }
16852
16853 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16854 mut map: V,
16855 optional: bool,
16856 ) -> Result<Option<MembersGetAvailableTeamMemberRolesResult>, V::Error> {
16857 let mut field_roles = None;
16858 let mut nothing = true;
16859 while let Some(key) = map.next_key::<&str>()? {
16860 nothing = false;
16861 match key {
16862 "roles" => {
16863 if field_roles.is_some() {
16864 return Err(::serde::de::Error::duplicate_field("roles"));
16865 }
16866 field_roles = Some(map.next_value()?);
16867 }
16868 _ => {
16869 map.next_value::<::serde_json::Value>()?;
16871 }
16872 }
16873 }
16874 if optional && nothing {
16875 return Ok(None);
16876 }
16877 let result = MembersGetAvailableTeamMemberRolesResult {
16878 roles: field_roles.ok_or_else(|| ::serde::de::Error::missing_field("roles"))?,
16879 };
16880 Ok(Some(result))
16881 }
16882
16883 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16884 &self,
16885 s: &mut S::SerializeStruct,
16886 ) -> Result<(), S::Error> {
16887 use serde::ser::SerializeStruct;
16888 s.serialize_field("roles", &self.roles)?;
16889 Ok(())
16890 }
16891}
16892
16893impl<'de> ::serde::de::Deserialize<'de> for MembersGetAvailableTeamMemberRolesResult {
16894 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16895 use serde::de::{MapAccess, Visitor};
16897 struct StructVisitor;
16898 impl<'de> Visitor<'de> for StructVisitor {
16899 type Value = MembersGetAvailableTeamMemberRolesResult;
16900 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16901 f.write_str("a MembersGetAvailableTeamMemberRolesResult struct")
16902 }
16903 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16904 MembersGetAvailableTeamMemberRolesResult::internal_deserialize(map)
16905 }
16906 }
16907 deserializer.deserialize_struct("MembersGetAvailableTeamMemberRolesResult", MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS, StructVisitor)
16908 }
16909}
16910
16911impl ::serde::ser::Serialize for MembersGetAvailableTeamMemberRolesResult {
16912 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16913 use serde::ser::SerializeStruct;
16915 let mut s = serializer.serialize_struct("MembersGetAvailableTeamMemberRolesResult", 1)?;
16916 self.internal_serialize::<S>(&mut s)?;
16917 s.end()
16918 }
16919}
16920
16921#[derive(Debug, Clone, PartialEq, Eq)]
16922#[non_exhaustive] pub struct MembersGetInfoArgs {
16924 pub members: Vec<UserSelectorArg>,
16926}
16927
16928impl MembersGetInfoArgs {
16929 pub fn new(members: Vec<UserSelectorArg>) -> Self {
16930 MembersGetInfoArgs {
16931 members,
16932 }
16933 }
16934}
16935
16936const MEMBERS_GET_INFO_ARGS_FIELDS: &[&str] = &["members"];
16937impl MembersGetInfoArgs {
16938 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16939 map: V,
16940 ) -> Result<MembersGetInfoArgs, V::Error> {
16941 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16942 }
16943
16944 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16945 mut map: V,
16946 optional: bool,
16947 ) -> Result<Option<MembersGetInfoArgs>, V::Error> {
16948 let mut field_members = None;
16949 let mut nothing = true;
16950 while let Some(key) = map.next_key::<&str>()? {
16951 nothing = false;
16952 match key {
16953 "members" => {
16954 if field_members.is_some() {
16955 return Err(::serde::de::Error::duplicate_field("members"));
16956 }
16957 field_members = Some(map.next_value()?);
16958 }
16959 _ => {
16960 map.next_value::<::serde_json::Value>()?;
16962 }
16963 }
16964 }
16965 if optional && nothing {
16966 return Ok(None);
16967 }
16968 let result = MembersGetInfoArgs {
16969 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
16970 };
16971 Ok(Some(result))
16972 }
16973
16974 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16975 &self,
16976 s: &mut S::SerializeStruct,
16977 ) -> Result<(), S::Error> {
16978 use serde::ser::SerializeStruct;
16979 s.serialize_field("members", &self.members)?;
16980 Ok(())
16981 }
16982}
16983
16984impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoArgs {
16985 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16986 use serde::de::{MapAccess, Visitor};
16988 struct StructVisitor;
16989 impl<'de> Visitor<'de> for StructVisitor {
16990 type Value = MembersGetInfoArgs;
16991 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16992 f.write_str("a MembersGetInfoArgs struct")
16993 }
16994 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16995 MembersGetInfoArgs::internal_deserialize(map)
16996 }
16997 }
16998 deserializer.deserialize_struct("MembersGetInfoArgs", MEMBERS_GET_INFO_ARGS_FIELDS, StructVisitor)
16999 }
17000}
17001
17002impl ::serde::ser::Serialize for MembersGetInfoArgs {
17003 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17004 use serde::ser::SerializeStruct;
17006 let mut s = serializer.serialize_struct("MembersGetInfoArgs", 1)?;
17007 self.internal_serialize::<S>(&mut s)?;
17008 s.end()
17009 }
17010}
17011
17012
17013#[derive(Debug, Clone, PartialEq, Eq)]
17014#[non_exhaustive] pub enum MembersGetInfoError {
17016 Other,
17019}
17020
17021impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoError {
17022 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17023 use serde::de::{self, MapAccess, Visitor};
17025 struct EnumVisitor;
17026 impl<'de> Visitor<'de> for EnumVisitor {
17027 type Value = MembersGetInfoError;
17028 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17029 f.write_str("a MembersGetInfoError structure")
17030 }
17031 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17032 let tag: &str = match map.next_key()? {
17033 Some(".tag") => map.next_value()?,
17034 _ => return Err(de::Error::missing_field(".tag"))
17035 };
17036 let _ = tag;
17038 crate::eat_json_fields(&mut map)?;
17039 Ok(MembersGetInfoError::Other)
17040 }
17041 }
17042 const VARIANTS: &[&str] = &["other"];
17043 deserializer.deserialize_struct("MembersGetInfoError", VARIANTS, EnumVisitor)
17044 }
17045}
17046
17047impl ::serde::ser::Serialize for MembersGetInfoError {
17048 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17049 #![allow(unused_variables)]
17051 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
17052 }
17053}
17054
17055impl ::std::error::Error for MembersGetInfoError {
17056}
17057
17058impl ::std::fmt::Display for MembersGetInfoError {
17059 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17060 write!(f, "{:?}", *self)
17061 }
17062}
17063
17064#[derive(Debug, Clone, PartialEq, Eq)]
17067pub enum MembersGetInfoItem {
17068 IdNotFound(String),
17074 MemberInfo(TeamMemberInfo),
17076}
17077
17078impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItem {
17079 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17080 use serde::de::{self, MapAccess, Visitor};
17082 struct EnumVisitor;
17083 impl<'de> Visitor<'de> for EnumVisitor {
17084 type Value = MembersGetInfoItem;
17085 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17086 f.write_str("a MembersGetInfoItem structure")
17087 }
17088 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17089 let tag: &str = match map.next_key()? {
17090 Some(".tag") => map.next_value()?,
17091 _ => return Err(de::Error::missing_field(".tag"))
17092 };
17093 let value = match tag {
17094 "id_not_found" => {
17095 match map.next_key()? {
17096 Some("id_not_found") => MembersGetInfoItem::IdNotFound(map.next_value()?),
17097 None => return Err(de::Error::missing_field("id_not_found")),
17098 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17099 }
17100 }
17101 "member_info" => MembersGetInfoItem::MemberInfo(TeamMemberInfo::internal_deserialize(&mut map)?),
17102 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
17103 };
17104 crate::eat_json_fields(&mut map)?;
17105 Ok(value)
17106 }
17107 }
17108 const VARIANTS: &[&str] = &["id_not_found",
17109 "member_info"];
17110 deserializer.deserialize_struct("MembersGetInfoItem", VARIANTS, EnumVisitor)
17111 }
17112}
17113
17114impl ::serde::ser::Serialize for MembersGetInfoItem {
17115 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17116 use serde::ser::SerializeStruct;
17118 match self {
17119 MembersGetInfoItem::IdNotFound(x) => {
17120 let mut s = serializer.serialize_struct("MembersGetInfoItem", 2)?;
17122 s.serialize_field(".tag", "id_not_found")?;
17123 s.serialize_field("id_not_found", x)?;
17124 s.end()
17125 }
17126 MembersGetInfoItem::MemberInfo(x) => {
17127 let mut s = serializer.serialize_struct("MembersGetInfoItem", 3)?;
17129 s.serialize_field(".tag", "member_info")?;
17130 x.internal_serialize::<S>(&mut s)?;
17131 s.end()
17132 }
17133 }
17134 }
17135}
17136
17137impl From<MembersGetInfoItemBase> for MembersGetInfoItem {
17139 fn from(parent: MembersGetInfoItemBase) -> Self {
17140 match parent {
17141 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItem::IdNotFound(x),
17142 }
17143 }
17144}
17145#[derive(Debug, Clone, PartialEq, Eq)]
17146pub enum MembersGetInfoItemBase {
17147 IdNotFound(String),
17153}
17154
17155impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemBase {
17156 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17157 use serde::de::{self, MapAccess, Visitor};
17159 struct EnumVisitor;
17160 impl<'de> Visitor<'de> for EnumVisitor {
17161 type Value = MembersGetInfoItemBase;
17162 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17163 f.write_str("a MembersGetInfoItemBase structure")
17164 }
17165 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17166 let tag: &str = match map.next_key()? {
17167 Some(".tag") => map.next_value()?,
17168 _ => return Err(de::Error::missing_field(".tag"))
17169 };
17170 let value = match tag {
17171 "id_not_found" => {
17172 match map.next_key()? {
17173 Some("id_not_found") => MembersGetInfoItemBase::IdNotFound(map.next_value()?),
17174 None => return Err(de::Error::missing_field("id_not_found")),
17175 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17176 }
17177 }
17178 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
17179 };
17180 crate::eat_json_fields(&mut map)?;
17181 Ok(value)
17182 }
17183 }
17184 const VARIANTS: &[&str] = &["id_not_found"];
17185 deserializer.deserialize_struct("MembersGetInfoItemBase", VARIANTS, EnumVisitor)
17186 }
17187}
17188
17189impl ::serde::ser::Serialize for MembersGetInfoItemBase {
17190 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17191 use serde::ser::SerializeStruct;
17193 match self {
17194 MembersGetInfoItemBase::IdNotFound(x) => {
17195 let mut s = serializer.serialize_struct("MembersGetInfoItemBase", 2)?;
17197 s.serialize_field(".tag", "id_not_found")?;
17198 s.serialize_field("id_not_found", x)?;
17199 s.end()
17200 }
17201 }
17202 }
17203}
17204
17205#[derive(Debug, Clone, PartialEq, Eq)]
17208#[non_exhaustive] pub enum MembersGetInfoItemV2 {
17210 IdNotFound(String),
17216 MemberInfo(TeamMemberInfoV2),
17218 Other,
17221}
17222
17223impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemV2 {
17224 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17225 use serde::de::{self, MapAccess, Visitor};
17227 struct EnumVisitor;
17228 impl<'de> Visitor<'de> for EnumVisitor {
17229 type Value = MembersGetInfoItemV2;
17230 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17231 f.write_str("a MembersGetInfoItemV2 structure")
17232 }
17233 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17234 let tag: &str = match map.next_key()? {
17235 Some(".tag") => map.next_value()?,
17236 _ => return Err(de::Error::missing_field(".tag"))
17237 };
17238 let value = match tag {
17239 "id_not_found" => {
17240 match map.next_key()? {
17241 Some("id_not_found") => MembersGetInfoItemV2::IdNotFound(map.next_value()?),
17242 None => return Err(de::Error::missing_field("id_not_found")),
17243 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17244 }
17245 }
17246 "member_info" => MembersGetInfoItemV2::MemberInfo(TeamMemberInfoV2::internal_deserialize(&mut map)?),
17247 _ => MembersGetInfoItemV2::Other,
17248 };
17249 crate::eat_json_fields(&mut map)?;
17250 Ok(value)
17251 }
17252 }
17253 const VARIANTS: &[&str] = &["id_not_found",
17254 "member_info",
17255 "other"];
17256 deserializer.deserialize_struct("MembersGetInfoItemV2", VARIANTS, EnumVisitor)
17257 }
17258}
17259
17260impl ::serde::ser::Serialize for MembersGetInfoItemV2 {
17261 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17262 use serde::ser::SerializeStruct;
17264 match self {
17265 MembersGetInfoItemV2::IdNotFound(x) => {
17266 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 2)?;
17268 s.serialize_field(".tag", "id_not_found")?;
17269 s.serialize_field("id_not_found", x)?;
17270 s.end()
17271 }
17272 MembersGetInfoItemV2::MemberInfo(x) => {
17273 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 3)?;
17275 s.serialize_field(".tag", "member_info")?;
17276 x.internal_serialize::<S>(&mut s)?;
17277 s.end()
17278 }
17279 MembersGetInfoItemV2::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17280 }
17281 }
17282}
17283
17284impl From<MembersGetInfoItemBase> for MembersGetInfoItemV2 {
17286 fn from(parent: MembersGetInfoItemBase) -> Self {
17287 match parent {
17288 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItemV2::IdNotFound(x),
17289 }
17290 }
17291}
17292#[derive(Debug, Clone, PartialEq, Eq)]
17293#[non_exhaustive] pub struct MembersGetInfoV2Arg {
17295 pub members: Vec<UserSelectorArg>,
17297}
17298
17299impl MembersGetInfoV2Arg {
17300 pub fn new(members: Vec<UserSelectorArg>) -> Self {
17301 MembersGetInfoV2Arg {
17302 members,
17303 }
17304 }
17305}
17306
17307const MEMBERS_GET_INFO_V2_ARG_FIELDS: &[&str] = &["members"];
17308impl MembersGetInfoV2Arg {
17309 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17310 map: V,
17311 ) -> Result<MembersGetInfoV2Arg, V::Error> {
17312 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17313 }
17314
17315 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17316 mut map: V,
17317 optional: bool,
17318 ) -> Result<Option<MembersGetInfoV2Arg>, V::Error> {
17319 let mut field_members = None;
17320 let mut nothing = true;
17321 while let Some(key) = map.next_key::<&str>()? {
17322 nothing = false;
17323 match key {
17324 "members" => {
17325 if field_members.is_some() {
17326 return Err(::serde::de::Error::duplicate_field("members"));
17327 }
17328 field_members = Some(map.next_value()?);
17329 }
17330 _ => {
17331 map.next_value::<::serde_json::Value>()?;
17333 }
17334 }
17335 }
17336 if optional && nothing {
17337 return Ok(None);
17338 }
17339 let result = MembersGetInfoV2Arg {
17340 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17341 };
17342 Ok(Some(result))
17343 }
17344
17345 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17346 &self,
17347 s: &mut S::SerializeStruct,
17348 ) -> Result<(), S::Error> {
17349 use serde::ser::SerializeStruct;
17350 s.serialize_field("members", &self.members)?;
17351 Ok(())
17352 }
17353}
17354
17355impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Arg {
17356 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17357 use serde::de::{MapAccess, Visitor};
17359 struct StructVisitor;
17360 impl<'de> Visitor<'de> for StructVisitor {
17361 type Value = MembersGetInfoV2Arg;
17362 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17363 f.write_str("a MembersGetInfoV2Arg struct")
17364 }
17365 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17366 MembersGetInfoV2Arg::internal_deserialize(map)
17367 }
17368 }
17369 deserializer.deserialize_struct("MembersGetInfoV2Arg", MEMBERS_GET_INFO_V2_ARG_FIELDS, StructVisitor)
17370 }
17371}
17372
17373impl ::serde::ser::Serialize for MembersGetInfoV2Arg {
17374 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17375 use serde::ser::SerializeStruct;
17377 let mut s = serializer.serialize_struct("MembersGetInfoV2Arg", 1)?;
17378 self.internal_serialize::<S>(&mut s)?;
17379 s.end()
17380 }
17381}
17382
17383#[derive(Debug, Clone, PartialEq, Eq)]
17384#[non_exhaustive] pub struct MembersGetInfoV2Result {
17386 pub members_info: Vec<MembersGetInfoItemV2>,
17388}
17389
17390impl MembersGetInfoV2Result {
17391 pub fn new(members_info: Vec<MembersGetInfoItemV2>) -> Self {
17392 MembersGetInfoV2Result {
17393 members_info,
17394 }
17395 }
17396}
17397
17398const MEMBERS_GET_INFO_V2_RESULT_FIELDS: &[&str] = &["members_info"];
17399impl MembersGetInfoV2Result {
17400 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17401 map: V,
17402 ) -> Result<MembersGetInfoV2Result, V::Error> {
17403 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17404 }
17405
17406 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17407 mut map: V,
17408 optional: bool,
17409 ) -> Result<Option<MembersGetInfoV2Result>, V::Error> {
17410 let mut field_members_info = None;
17411 let mut nothing = true;
17412 while let Some(key) = map.next_key::<&str>()? {
17413 nothing = false;
17414 match key {
17415 "members_info" => {
17416 if field_members_info.is_some() {
17417 return Err(::serde::de::Error::duplicate_field("members_info"));
17418 }
17419 field_members_info = Some(map.next_value()?);
17420 }
17421 _ => {
17422 map.next_value::<::serde_json::Value>()?;
17424 }
17425 }
17426 }
17427 if optional && nothing {
17428 return Ok(None);
17429 }
17430 let result = MembersGetInfoV2Result {
17431 members_info: field_members_info.ok_or_else(|| ::serde::de::Error::missing_field("members_info"))?,
17432 };
17433 Ok(Some(result))
17434 }
17435
17436 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17437 &self,
17438 s: &mut S::SerializeStruct,
17439 ) -> Result<(), S::Error> {
17440 use serde::ser::SerializeStruct;
17441 s.serialize_field("members_info", &self.members_info)?;
17442 Ok(())
17443 }
17444}
17445
17446impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Result {
17447 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17448 use serde::de::{MapAccess, Visitor};
17450 struct StructVisitor;
17451 impl<'de> Visitor<'de> for StructVisitor {
17452 type Value = MembersGetInfoV2Result;
17453 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17454 f.write_str("a MembersGetInfoV2Result struct")
17455 }
17456 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17457 MembersGetInfoV2Result::internal_deserialize(map)
17458 }
17459 }
17460 deserializer.deserialize_struct("MembersGetInfoV2Result", MEMBERS_GET_INFO_V2_RESULT_FIELDS, StructVisitor)
17461 }
17462}
17463
17464impl ::serde::ser::Serialize for MembersGetInfoV2Result {
17465 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17466 use serde::ser::SerializeStruct;
17468 let mut s = serializer.serialize_struct("MembersGetInfoV2Result", 1)?;
17469 self.internal_serialize::<S>(&mut s)?;
17470 s.end()
17471 }
17472}
17473
17474#[derive(Debug, Clone, PartialEq, Eq)]
17475#[non_exhaustive] pub struct MembersInfo {
17477 pub team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
17479 pub permanently_deleted_users: u64,
17481}
17482
17483impl MembersInfo {
17484 pub fn new(
17485 team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
17486 permanently_deleted_users: u64,
17487 ) -> Self {
17488 MembersInfo {
17489 team_member_ids,
17490 permanently_deleted_users,
17491 }
17492 }
17493}
17494
17495const MEMBERS_INFO_FIELDS: &[&str] = &["team_member_ids",
17496 "permanently_deleted_users"];
17497impl MembersInfo {
17498 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17499 map: V,
17500 ) -> Result<MembersInfo, V::Error> {
17501 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17502 }
17503
17504 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17505 mut map: V,
17506 optional: bool,
17507 ) -> Result<Option<MembersInfo>, V::Error> {
17508 let mut field_team_member_ids = None;
17509 let mut field_permanently_deleted_users = None;
17510 let mut nothing = true;
17511 while let Some(key) = map.next_key::<&str>()? {
17512 nothing = false;
17513 match key {
17514 "team_member_ids" => {
17515 if field_team_member_ids.is_some() {
17516 return Err(::serde::de::Error::duplicate_field("team_member_ids"));
17517 }
17518 field_team_member_ids = Some(map.next_value()?);
17519 }
17520 "permanently_deleted_users" => {
17521 if field_permanently_deleted_users.is_some() {
17522 return Err(::serde::de::Error::duplicate_field("permanently_deleted_users"));
17523 }
17524 field_permanently_deleted_users = Some(map.next_value()?);
17525 }
17526 _ => {
17527 map.next_value::<::serde_json::Value>()?;
17529 }
17530 }
17531 }
17532 if optional && nothing {
17533 return Ok(None);
17534 }
17535 let result = MembersInfo {
17536 team_member_ids: field_team_member_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_member_ids"))?,
17537 permanently_deleted_users: field_permanently_deleted_users.ok_or_else(|| ::serde::de::Error::missing_field("permanently_deleted_users"))?,
17538 };
17539 Ok(Some(result))
17540 }
17541
17542 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17543 &self,
17544 s: &mut S::SerializeStruct,
17545 ) -> Result<(), S::Error> {
17546 use serde::ser::SerializeStruct;
17547 s.serialize_field("team_member_ids", &self.team_member_ids)?;
17548 s.serialize_field("permanently_deleted_users", &self.permanently_deleted_users)?;
17549 Ok(())
17550 }
17551}
17552
17553impl<'de> ::serde::de::Deserialize<'de> for MembersInfo {
17554 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17555 use serde::de::{MapAccess, Visitor};
17557 struct StructVisitor;
17558 impl<'de> Visitor<'de> for StructVisitor {
17559 type Value = MembersInfo;
17560 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17561 f.write_str("a MembersInfo struct")
17562 }
17563 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17564 MembersInfo::internal_deserialize(map)
17565 }
17566 }
17567 deserializer.deserialize_struct("MembersInfo", MEMBERS_INFO_FIELDS, StructVisitor)
17568 }
17569}
17570
17571impl ::serde::ser::Serialize for MembersInfo {
17572 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17573 use serde::ser::SerializeStruct;
17575 let mut s = serializer.serialize_struct("MembersInfo", 2)?;
17576 self.internal_serialize::<S>(&mut s)?;
17577 s.end()
17578 }
17579}
17580
17581#[derive(Debug, Clone, PartialEq, Eq)]
17582#[non_exhaustive] pub struct MembersListArg {
17584 pub limit: u32,
17586 pub include_removed: bool,
17588}
17589
17590impl Default for MembersListArg {
17591 fn default() -> Self {
17592 MembersListArg {
17593 limit: 1000,
17594 include_removed: false,
17595 }
17596 }
17597}
17598
17599impl MembersListArg {
17600 pub fn with_limit(mut self, value: u32) -> Self {
17601 self.limit = value;
17602 self
17603 }
17604
17605 pub fn with_include_removed(mut self, value: bool) -> Self {
17606 self.include_removed = value;
17607 self
17608 }
17609}
17610
17611const MEMBERS_LIST_ARG_FIELDS: &[&str] = &["limit",
17612 "include_removed"];
17613impl MembersListArg {
17614 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17616 mut map: V,
17617 ) -> Result<MembersListArg, V::Error> {
17618 let mut field_limit = None;
17619 let mut field_include_removed = None;
17620 while let Some(key) = map.next_key::<&str>()? {
17621 match key {
17622 "limit" => {
17623 if field_limit.is_some() {
17624 return Err(::serde::de::Error::duplicate_field("limit"));
17625 }
17626 field_limit = Some(map.next_value()?);
17627 }
17628 "include_removed" => {
17629 if field_include_removed.is_some() {
17630 return Err(::serde::de::Error::duplicate_field("include_removed"));
17631 }
17632 field_include_removed = Some(map.next_value()?);
17633 }
17634 _ => {
17635 map.next_value::<::serde_json::Value>()?;
17637 }
17638 }
17639 }
17640 let result = MembersListArg {
17641 limit: field_limit.unwrap_or(1000),
17642 include_removed: field_include_removed.unwrap_or(false),
17643 };
17644 Ok(result)
17645 }
17646
17647 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17648 &self,
17649 s: &mut S::SerializeStruct,
17650 ) -> Result<(), S::Error> {
17651 use serde::ser::SerializeStruct;
17652 if self.limit != 1000 {
17653 s.serialize_field("limit", &self.limit)?;
17654 }
17655 if self.include_removed {
17656 s.serialize_field("include_removed", &self.include_removed)?;
17657 }
17658 Ok(())
17659 }
17660}
17661
17662impl<'de> ::serde::de::Deserialize<'de> for MembersListArg {
17663 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17664 use serde::de::{MapAccess, Visitor};
17666 struct StructVisitor;
17667 impl<'de> Visitor<'de> for StructVisitor {
17668 type Value = MembersListArg;
17669 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17670 f.write_str("a MembersListArg struct")
17671 }
17672 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17673 MembersListArg::internal_deserialize(map)
17674 }
17675 }
17676 deserializer.deserialize_struct("MembersListArg", MEMBERS_LIST_ARG_FIELDS, StructVisitor)
17677 }
17678}
17679
17680impl ::serde::ser::Serialize for MembersListArg {
17681 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17682 use serde::ser::SerializeStruct;
17684 let mut s = serializer.serialize_struct("MembersListArg", 2)?;
17685 self.internal_serialize::<S>(&mut s)?;
17686 s.end()
17687 }
17688}
17689
17690#[derive(Debug, Clone, PartialEq, Eq)]
17691#[non_exhaustive] pub struct MembersListContinueArg {
17693 pub cursor: String,
17695}
17696
17697impl MembersListContinueArg {
17698 pub fn new(cursor: String) -> Self {
17699 MembersListContinueArg {
17700 cursor,
17701 }
17702 }
17703}
17704
17705const MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
17706impl MembersListContinueArg {
17707 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17708 map: V,
17709 ) -> Result<MembersListContinueArg, V::Error> {
17710 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17711 }
17712
17713 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17714 mut map: V,
17715 optional: bool,
17716 ) -> Result<Option<MembersListContinueArg>, V::Error> {
17717 let mut field_cursor = None;
17718 let mut nothing = true;
17719 while let Some(key) = map.next_key::<&str>()? {
17720 nothing = false;
17721 match key {
17722 "cursor" => {
17723 if field_cursor.is_some() {
17724 return Err(::serde::de::Error::duplicate_field("cursor"));
17725 }
17726 field_cursor = Some(map.next_value()?);
17727 }
17728 _ => {
17729 map.next_value::<::serde_json::Value>()?;
17731 }
17732 }
17733 }
17734 if optional && nothing {
17735 return Ok(None);
17736 }
17737 let result = MembersListContinueArg {
17738 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17739 };
17740 Ok(Some(result))
17741 }
17742
17743 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17744 &self,
17745 s: &mut S::SerializeStruct,
17746 ) -> Result<(), S::Error> {
17747 use serde::ser::SerializeStruct;
17748 s.serialize_field("cursor", &self.cursor)?;
17749 Ok(())
17750 }
17751}
17752
17753impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueArg {
17754 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17755 use serde::de::{MapAccess, Visitor};
17757 struct StructVisitor;
17758 impl<'de> Visitor<'de> for StructVisitor {
17759 type Value = MembersListContinueArg;
17760 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17761 f.write_str("a MembersListContinueArg struct")
17762 }
17763 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17764 MembersListContinueArg::internal_deserialize(map)
17765 }
17766 }
17767 deserializer.deserialize_struct("MembersListContinueArg", MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
17768 }
17769}
17770
17771impl ::serde::ser::Serialize for MembersListContinueArg {
17772 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17773 use serde::ser::SerializeStruct;
17775 let mut s = serializer.serialize_struct("MembersListContinueArg", 1)?;
17776 self.internal_serialize::<S>(&mut s)?;
17777 s.end()
17778 }
17779}
17780
17781#[derive(Debug, Clone, PartialEq, Eq)]
17782#[non_exhaustive] pub enum MembersListContinueError {
17784 InvalidCursor,
17786 Other,
17789}
17790
17791impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueError {
17792 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17793 use serde::de::{self, MapAccess, Visitor};
17795 struct EnumVisitor;
17796 impl<'de> Visitor<'de> for EnumVisitor {
17797 type Value = MembersListContinueError;
17798 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17799 f.write_str("a MembersListContinueError structure")
17800 }
17801 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17802 let tag: &str = match map.next_key()? {
17803 Some(".tag") => map.next_value()?,
17804 _ => return Err(de::Error::missing_field(".tag"))
17805 };
17806 let value = match tag {
17807 "invalid_cursor" => MembersListContinueError::InvalidCursor,
17808 _ => MembersListContinueError::Other,
17809 };
17810 crate::eat_json_fields(&mut map)?;
17811 Ok(value)
17812 }
17813 }
17814 const VARIANTS: &[&str] = &["invalid_cursor",
17815 "other"];
17816 deserializer.deserialize_struct("MembersListContinueError", VARIANTS, EnumVisitor)
17817 }
17818}
17819
17820impl ::serde::ser::Serialize for MembersListContinueError {
17821 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17822 use serde::ser::SerializeStruct;
17824 match self {
17825 MembersListContinueError::InvalidCursor => {
17826 let mut s = serializer.serialize_struct("MembersListContinueError", 1)?;
17828 s.serialize_field(".tag", "invalid_cursor")?;
17829 s.end()
17830 }
17831 MembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17832 }
17833 }
17834}
17835
17836impl ::std::error::Error for MembersListContinueError {
17837}
17838
17839impl ::std::fmt::Display for MembersListContinueError {
17840 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17841 match self {
17842 MembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
17843 _ => write!(f, "{:?}", *self),
17844 }
17845 }
17846}
17847
17848
17849#[derive(Debug, Clone, PartialEq, Eq)]
17850#[non_exhaustive] pub enum MembersListError {
17852 Other,
17855}
17856
17857impl<'de> ::serde::de::Deserialize<'de> for MembersListError {
17858 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17859 use serde::de::{self, MapAccess, Visitor};
17861 struct EnumVisitor;
17862 impl<'de> Visitor<'de> for EnumVisitor {
17863 type Value = MembersListError;
17864 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17865 f.write_str("a MembersListError structure")
17866 }
17867 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17868 let tag: &str = match map.next_key()? {
17869 Some(".tag") => map.next_value()?,
17870 _ => return Err(de::Error::missing_field(".tag"))
17871 };
17872 let _ = tag;
17874 crate::eat_json_fields(&mut map)?;
17875 Ok(MembersListError::Other)
17876 }
17877 }
17878 const VARIANTS: &[&str] = &["other"];
17879 deserializer.deserialize_struct("MembersListError", VARIANTS, EnumVisitor)
17880 }
17881}
17882
17883impl ::serde::ser::Serialize for MembersListError {
17884 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17885 #![allow(unused_variables)]
17887 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
17888 }
17889}
17890
17891impl ::std::error::Error for MembersListError {
17892}
17893
17894impl ::std::fmt::Display for MembersListError {
17895 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17896 write!(f, "{:?}", *self)
17897 }
17898}
17899
17900#[derive(Debug, Clone, PartialEq, Eq)]
17901#[non_exhaustive] pub struct MembersListResult {
17903 pub members: Vec<TeamMemberInfo>,
17905 pub cursor: String,
17908 pub has_more: bool,
17911}
17912
17913impl MembersListResult {
17914 pub fn new(members: Vec<TeamMemberInfo>, cursor: String, has_more: bool) -> Self {
17915 MembersListResult {
17916 members,
17917 cursor,
17918 has_more,
17919 }
17920 }
17921}
17922
17923const MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
17924 "cursor",
17925 "has_more"];
17926impl MembersListResult {
17927 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17928 map: V,
17929 ) -> Result<MembersListResult, V::Error> {
17930 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17931 }
17932
17933 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17934 mut map: V,
17935 optional: bool,
17936 ) -> Result<Option<MembersListResult>, V::Error> {
17937 let mut field_members = None;
17938 let mut field_cursor = None;
17939 let mut field_has_more = None;
17940 let mut nothing = true;
17941 while let Some(key) = map.next_key::<&str>()? {
17942 nothing = false;
17943 match key {
17944 "members" => {
17945 if field_members.is_some() {
17946 return Err(::serde::de::Error::duplicate_field("members"));
17947 }
17948 field_members = Some(map.next_value()?);
17949 }
17950 "cursor" => {
17951 if field_cursor.is_some() {
17952 return Err(::serde::de::Error::duplicate_field("cursor"));
17953 }
17954 field_cursor = Some(map.next_value()?);
17955 }
17956 "has_more" => {
17957 if field_has_more.is_some() {
17958 return Err(::serde::de::Error::duplicate_field("has_more"));
17959 }
17960 field_has_more = Some(map.next_value()?);
17961 }
17962 _ => {
17963 map.next_value::<::serde_json::Value>()?;
17965 }
17966 }
17967 }
17968 if optional && nothing {
17969 return Ok(None);
17970 }
17971 let result = MembersListResult {
17972 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17973 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17974 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
17975 };
17976 Ok(Some(result))
17977 }
17978
17979 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17980 &self,
17981 s: &mut S::SerializeStruct,
17982 ) -> Result<(), S::Error> {
17983 use serde::ser::SerializeStruct;
17984 s.serialize_field("members", &self.members)?;
17985 s.serialize_field("cursor", &self.cursor)?;
17986 s.serialize_field("has_more", &self.has_more)?;
17987 Ok(())
17988 }
17989}
17990
17991impl<'de> ::serde::de::Deserialize<'de> for MembersListResult {
17992 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17993 use serde::de::{MapAccess, Visitor};
17995 struct StructVisitor;
17996 impl<'de> Visitor<'de> for StructVisitor {
17997 type Value = MembersListResult;
17998 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17999 f.write_str("a MembersListResult struct")
18000 }
18001 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18002 MembersListResult::internal_deserialize(map)
18003 }
18004 }
18005 deserializer.deserialize_struct("MembersListResult", MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
18006 }
18007}
18008
18009impl ::serde::ser::Serialize for MembersListResult {
18010 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18011 use serde::ser::SerializeStruct;
18013 let mut s = serializer.serialize_struct("MembersListResult", 3)?;
18014 self.internal_serialize::<S>(&mut s)?;
18015 s.end()
18016 }
18017}
18018
18019#[derive(Debug, Clone, PartialEq, Eq)]
18020#[non_exhaustive] pub struct MembersListV2Result {
18022 pub members: Vec<TeamMemberInfoV2>,
18024 pub cursor: String,
18027 pub has_more: bool,
18031}
18032
18033impl MembersListV2Result {
18034 pub fn new(members: Vec<TeamMemberInfoV2>, cursor: String, has_more: bool) -> Self {
18035 MembersListV2Result {
18036 members,
18037 cursor,
18038 has_more,
18039 }
18040 }
18041}
18042
18043const MEMBERS_LIST_V2_RESULT_FIELDS: &[&str] = &["members",
18044 "cursor",
18045 "has_more"];
18046impl MembersListV2Result {
18047 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18048 map: V,
18049 ) -> Result<MembersListV2Result, V::Error> {
18050 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18051 }
18052
18053 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18054 mut map: V,
18055 optional: bool,
18056 ) -> Result<Option<MembersListV2Result>, V::Error> {
18057 let mut field_members = None;
18058 let mut field_cursor = None;
18059 let mut field_has_more = None;
18060 let mut nothing = true;
18061 while let Some(key) = map.next_key::<&str>()? {
18062 nothing = false;
18063 match key {
18064 "members" => {
18065 if field_members.is_some() {
18066 return Err(::serde::de::Error::duplicate_field("members"));
18067 }
18068 field_members = Some(map.next_value()?);
18069 }
18070 "cursor" => {
18071 if field_cursor.is_some() {
18072 return Err(::serde::de::Error::duplicate_field("cursor"));
18073 }
18074 field_cursor = Some(map.next_value()?);
18075 }
18076 "has_more" => {
18077 if field_has_more.is_some() {
18078 return Err(::serde::de::Error::duplicate_field("has_more"));
18079 }
18080 field_has_more = Some(map.next_value()?);
18081 }
18082 _ => {
18083 map.next_value::<::serde_json::Value>()?;
18085 }
18086 }
18087 }
18088 if optional && nothing {
18089 return Ok(None);
18090 }
18091 let result = MembersListV2Result {
18092 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
18093 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
18094 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
18095 };
18096 Ok(Some(result))
18097 }
18098
18099 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18100 &self,
18101 s: &mut S::SerializeStruct,
18102 ) -> Result<(), S::Error> {
18103 use serde::ser::SerializeStruct;
18104 s.serialize_field("members", &self.members)?;
18105 s.serialize_field("cursor", &self.cursor)?;
18106 s.serialize_field("has_more", &self.has_more)?;
18107 Ok(())
18108 }
18109}
18110
18111impl<'de> ::serde::de::Deserialize<'de> for MembersListV2Result {
18112 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18113 use serde::de::{MapAccess, Visitor};
18115 struct StructVisitor;
18116 impl<'de> Visitor<'de> for StructVisitor {
18117 type Value = MembersListV2Result;
18118 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18119 f.write_str("a MembersListV2Result struct")
18120 }
18121 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18122 MembersListV2Result::internal_deserialize(map)
18123 }
18124 }
18125 deserializer.deserialize_struct("MembersListV2Result", MEMBERS_LIST_V2_RESULT_FIELDS, StructVisitor)
18126 }
18127}
18128
18129impl ::serde::ser::Serialize for MembersListV2Result {
18130 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18131 use serde::ser::SerializeStruct;
18133 let mut s = serializer.serialize_struct("MembersListV2Result", 3)?;
18134 self.internal_serialize::<S>(&mut s)?;
18135 s.end()
18136 }
18137}
18138
18139#[derive(Debug, Clone, PartialEq, Eq)]
18140#[non_exhaustive] pub enum MembersPermanentlyDeleteFilesError {
18142 UserNotFound,
18145 UserNotInTeam,
18147 TransferInProgress,
18149 AlreadyTransferred,
18151 AlreadyTransferredOrDeleted,
18153 Other,
18156}
18157
18158impl<'de> ::serde::de::Deserialize<'de> for MembersPermanentlyDeleteFilesError {
18159 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18160 use serde::de::{self, MapAccess, Visitor};
18162 struct EnumVisitor;
18163 impl<'de> Visitor<'de> for EnumVisitor {
18164 type Value = MembersPermanentlyDeleteFilesError;
18165 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18166 f.write_str("a MembersPermanentlyDeleteFilesError structure")
18167 }
18168 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18169 let tag: &str = match map.next_key()? {
18170 Some(".tag") => map.next_value()?,
18171 _ => return Err(de::Error::missing_field(".tag"))
18172 };
18173 let value = match tag {
18174 "user_not_found" => MembersPermanentlyDeleteFilesError::UserNotFound,
18175 "user_not_in_team" => MembersPermanentlyDeleteFilesError::UserNotInTeam,
18176 "transfer_in_progress" => MembersPermanentlyDeleteFilesError::TransferInProgress,
18177 "already_transferred" => MembersPermanentlyDeleteFilesError::AlreadyTransferred,
18178 "already_transferred_or_deleted" => MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted,
18179 _ => MembersPermanentlyDeleteFilesError::Other,
18180 };
18181 crate::eat_json_fields(&mut map)?;
18182 Ok(value)
18183 }
18184 }
18185 const VARIANTS: &[&str] = &["user_not_found",
18186 "user_not_in_team",
18187 "other",
18188 "transfer_in_progress",
18189 "already_transferred",
18190 "already_transferred_or_deleted"];
18191 deserializer.deserialize_struct("MembersPermanentlyDeleteFilesError", VARIANTS, EnumVisitor)
18192 }
18193}
18194
18195impl ::serde::ser::Serialize for MembersPermanentlyDeleteFilesError {
18196 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18197 use serde::ser::SerializeStruct;
18199 match self {
18200 MembersPermanentlyDeleteFilesError::UserNotFound => {
18201 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18203 s.serialize_field(".tag", "user_not_found")?;
18204 s.end()
18205 }
18206 MembersPermanentlyDeleteFilesError::UserNotInTeam => {
18207 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18209 s.serialize_field(".tag", "user_not_in_team")?;
18210 s.end()
18211 }
18212 MembersPermanentlyDeleteFilesError::TransferInProgress => {
18213 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18215 s.serialize_field(".tag", "transfer_in_progress")?;
18216 s.end()
18217 }
18218 MembersPermanentlyDeleteFilesError::AlreadyTransferred => {
18219 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18221 s.serialize_field(".tag", "already_transferred")?;
18222 s.end()
18223 }
18224 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => {
18225 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18227 s.serialize_field(".tag", "already_transferred_or_deleted")?;
18228 s.end()
18229 }
18230 MembersPermanentlyDeleteFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18231 }
18232 }
18233}
18234
18235impl ::std::error::Error for MembersPermanentlyDeleteFilesError {
18236}
18237
18238impl ::std::fmt::Display for MembersPermanentlyDeleteFilesError {
18239 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18240 match self {
18241 MembersPermanentlyDeleteFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18242 MembersPermanentlyDeleteFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18243 MembersPermanentlyDeleteFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
18244 MembersPermanentlyDeleteFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
18245 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
18246 _ => write!(f, "{:?}", *self),
18247 }
18248 }
18249}
18250
18251impl From<MembersDeactivateError> for MembersPermanentlyDeleteFilesError {
18253 fn from(parent: MembersDeactivateError) -> Self {
18254 match parent {
18255 MembersDeactivateError::UserNotFound => MembersPermanentlyDeleteFilesError::UserNotFound,
18256 MembersDeactivateError::UserNotInTeam => MembersPermanentlyDeleteFilesError::UserNotInTeam,
18257 MembersDeactivateError::Other => MembersPermanentlyDeleteFilesError::Other,
18258 }
18259 }
18260}
18261#[derive(Debug, Clone, PartialEq, Eq)]
18264#[non_exhaustive] pub struct MembersRecoverArg {
18266 pub user: UserSelectorArg,
18268}
18269
18270impl MembersRecoverArg {
18271 pub fn new(user: UserSelectorArg) -> Self {
18272 MembersRecoverArg {
18273 user,
18274 }
18275 }
18276}
18277
18278const MEMBERS_RECOVER_ARG_FIELDS: &[&str] = &["user"];
18279impl MembersRecoverArg {
18280 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18281 map: V,
18282 ) -> Result<MembersRecoverArg, V::Error> {
18283 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18284 }
18285
18286 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18287 mut map: V,
18288 optional: bool,
18289 ) -> Result<Option<MembersRecoverArg>, V::Error> {
18290 let mut field_user = None;
18291 let mut nothing = true;
18292 while let Some(key) = map.next_key::<&str>()? {
18293 nothing = false;
18294 match key {
18295 "user" => {
18296 if field_user.is_some() {
18297 return Err(::serde::de::Error::duplicate_field("user"));
18298 }
18299 field_user = Some(map.next_value()?);
18300 }
18301 _ => {
18302 map.next_value::<::serde_json::Value>()?;
18304 }
18305 }
18306 }
18307 if optional && nothing {
18308 return Ok(None);
18309 }
18310 let result = MembersRecoverArg {
18311 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
18312 };
18313 Ok(Some(result))
18314 }
18315
18316 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18317 &self,
18318 s: &mut S::SerializeStruct,
18319 ) -> Result<(), S::Error> {
18320 use serde::ser::SerializeStruct;
18321 s.serialize_field("user", &self.user)?;
18322 Ok(())
18323 }
18324}
18325
18326impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverArg {
18327 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18328 use serde::de::{MapAccess, Visitor};
18330 struct StructVisitor;
18331 impl<'de> Visitor<'de> for StructVisitor {
18332 type Value = MembersRecoverArg;
18333 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18334 f.write_str("a MembersRecoverArg struct")
18335 }
18336 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18337 MembersRecoverArg::internal_deserialize(map)
18338 }
18339 }
18340 deserializer.deserialize_struct("MembersRecoverArg", MEMBERS_RECOVER_ARG_FIELDS, StructVisitor)
18341 }
18342}
18343
18344impl ::serde::ser::Serialize for MembersRecoverArg {
18345 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18346 use serde::ser::SerializeStruct;
18348 let mut s = serializer.serialize_struct("MembersRecoverArg", 1)?;
18349 self.internal_serialize::<S>(&mut s)?;
18350 s.end()
18351 }
18352}
18353
18354#[derive(Debug, Clone, PartialEq, Eq)]
18355#[non_exhaustive] pub enum MembersRecoverError {
18357 UserNotFound,
18360 UserUnrecoverable,
18362 UserNotInTeam,
18364 TeamLicenseLimit,
18366 Other,
18369}
18370
18371impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverError {
18372 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18373 use serde::de::{self, MapAccess, Visitor};
18375 struct EnumVisitor;
18376 impl<'de> Visitor<'de> for EnumVisitor {
18377 type Value = MembersRecoverError;
18378 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18379 f.write_str("a MembersRecoverError structure")
18380 }
18381 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18382 let tag: &str = match map.next_key()? {
18383 Some(".tag") => map.next_value()?,
18384 _ => return Err(de::Error::missing_field(".tag"))
18385 };
18386 let value = match tag {
18387 "user_not_found" => MembersRecoverError::UserNotFound,
18388 "user_unrecoverable" => MembersRecoverError::UserUnrecoverable,
18389 "user_not_in_team" => MembersRecoverError::UserNotInTeam,
18390 "team_license_limit" => MembersRecoverError::TeamLicenseLimit,
18391 _ => MembersRecoverError::Other,
18392 };
18393 crate::eat_json_fields(&mut map)?;
18394 Ok(value)
18395 }
18396 }
18397 const VARIANTS: &[&str] = &["user_not_found",
18398 "user_unrecoverable",
18399 "user_not_in_team",
18400 "team_license_limit",
18401 "other"];
18402 deserializer.deserialize_struct("MembersRecoverError", VARIANTS, EnumVisitor)
18403 }
18404}
18405
18406impl ::serde::ser::Serialize for MembersRecoverError {
18407 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18408 use serde::ser::SerializeStruct;
18410 match self {
18411 MembersRecoverError::UserNotFound => {
18412 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18414 s.serialize_field(".tag", "user_not_found")?;
18415 s.end()
18416 }
18417 MembersRecoverError::UserUnrecoverable => {
18418 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18420 s.serialize_field(".tag", "user_unrecoverable")?;
18421 s.end()
18422 }
18423 MembersRecoverError::UserNotInTeam => {
18424 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18426 s.serialize_field(".tag", "user_not_in_team")?;
18427 s.end()
18428 }
18429 MembersRecoverError::TeamLicenseLimit => {
18430 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18432 s.serialize_field(".tag", "team_license_limit")?;
18433 s.end()
18434 }
18435 MembersRecoverError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18436 }
18437 }
18438}
18439
18440impl ::std::error::Error for MembersRecoverError {
18441}
18442
18443impl ::std::fmt::Display for MembersRecoverError {
18444 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18445 match self {
18446 MembersRecoverError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18447 MembersRecoverError::UserUnrecoverable => f.write_str("The user is not recoverable."),
18448 MembersRecoverError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18449 MembersRecoverError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
18450 _ => write!(f, "{:?}", *self),
18451 }
18452 }
18453}
18454
18455impl From<UserSelectorError> for MembersRecoverError {
18457 fn from(parent: UserSelectorError) -> Self {
18458 match parent {
18459 UserSelectorError::UserNotFound => MembersRecoverError::UserNotFound,
18460 }
18461 }
18462}
18463#[derive(Debug, Clone, PartialEq, Eq)]
18464#[non_exhaustive] pub struct MembersRemoveArg {
18466 pub user: UserSelectorArg,
18468 pub wipe_data: bool,
18470 pub transfer_dest_id: Option<UserSelectorArg>,
18472 pub transfer_admin_id: Option<UserSelectorArg>,
18475 pub keep_account: bool,
18479 pub retain_team_shares: bool,
18485 pub permanently_delete_files: bool,
18488}
18489
18490impl MembersRemoveArg {
18491 pub fn new(user: UserSelectorArg) -> Self {
18492 MembersRemoveArg {
18493 user,
18494 wipe_data: true,
18495 transfer_dest_id: None,
18496 transfer_admin_id: None,
18497 keep_account: false,
18498 retain_team_shares: false,
18499 permanently_delete_files: false,
18500 }
18501 }
18502
18503 pub fn with_wipe_data(mut self, value: bool) -> Self {
18504 self.wipe_data = value;
18505 self
18506 }
18507
18508 pub fn with_transfer_dest_id(mut self, value: UserSelectorArg) -> Self {
18509 self.transfer_dest_id = Some(value);
18510 self
18511 }
18512
18513 pub fn with_transfer_admin_id(mut self, value: UserSelectorArg) -> Self {
18514 self.transfer_admin_id = Some(value);
18515 self
18516 }
18517
18518 pub fn with_keep_account(mut self, value: bool) -> Self {
18519 self.keep_account = value;
18520 self
18521 }
18522
18523 pub fn with_retain_team_shares(mut self, value: bool) -> Self {
18524 self.retain_team_shares = value;
18525 self
18526 }
18527
18528 pub fn with_permanently_delete_files(mut self, value: bool) -> Self {
18529 self.permanently_delete_files = value;
18530 self
18531 }
18532}
18533
18534const MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["user",
18535 "wipe_data",
18536 "transfer_dest_id",
18537 "transfer_admin_id",
18538 "keep_account",
18539 "retain_team_shares",
18540 "permanently_delete_files"];
18541impl MembersRemoveArg {
18542 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18543 map: V,
18544 ) -> Result<MembersRemoveArg, V::Error> {
18545 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18546 }
18547
18548 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18549 mut map: V,
18550 optional: bool,
18551 ) -> Result<Option<MembersRemoveArg>, V::Error> {
18552 let mut field_user = None;
18553 let mut field_wipe_data = None;
18554 let mut field_transfer_dest_id = None;
18555 let mut field_transfer_admin_id = None;
18556 let mut field_keep_account = None;
18557 let mut field_retain_team_shares = None;
18558 let mut field_permanently_delete_files = None;
18559 let mut nothing = true;
18560 while let Some(key) = map.next_key::<&str>()? {
18561 nothing = false;
18562 match key {
18563 "user" => {
18564 if field_user.is_some() {
18565 return Err(::serde::de::Error::duplicate_field("user"));
18566 }
18567 field_user = Some(map.next_value()?);
18568 }
18569 "wipe_data" => {
18570 if field_wipe_data.is_some() {
18571 return Err(::serde::de::Error::duplicate_field("wipe_data"));
18572 }
18573 field_wipe_data = Some(map.next_value()?);
18574 }
18575 "transfer_dest_id" => {
18576 if field_transfer_dest_id.is_some() {
18577 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
18578 }
18579 field_transfer_dest_id = Some(map.next_value()?);
18580 }
18581 "transfer_admin_id" => {
18582 if field_transfer_admin_id.is_some() {
18583 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
18584 }
18585 field_transfer_admin_id = Some(map.next_value()?);
18586 }
18587 "keep_account" => {
18588 if field_keep_account.is_some() {
18589 return Err(::serde::de::Error::duplicate_field("keep_account"));
18590 }
18591 field_keep_account = Some(map.next_value()?);
18592 }
18593 "retain_team_shares" => {
18594 if field_retain_team_shares.is_some() {
18595 return Err(::serde::de::Error::duplicate_field("retain_team_shares"));
18596 }
18597 field_retain_team_shares = Some(map.next_value()?);
18598 }
18599 "permanently_delete_files" => {
18600 if field_permanently_delete_files.is_some() {
18601 return Err(::serde::de::Error::duplicate_field("permanently_delete_files"));
18602 }
18603 field_permanently_delete_files = Some(map.next_value()?);
18604 }
18605 _ => {
18606 map.next_value::<::serde_json::Value>()?;
18608 }
18609 }
18610 }
18611 if optional && nothing {
18612 return Ok(None);
18613 }
18614 let result = MembersRemoveArg {
18615 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
18616 wipe_data: field_wipe_data.unwrap_or(true),
18617 transfer_dest_id: field_transfer_dest_id.and_then(Option::flatten),
18618 transfer_admin_id: field_transfer_admin_id.and_then(Option::flatten),
18619 keep_account: field_keep_account.unwrap_or(false),
18620 retain_team_shares: field_retain_team_shares.unwrap_or(false),
18621 permanently_delete_files: field_permanently_delete_files.unwrap_or(false),
18622 };
18623 Ok(Some(result))
18624 }
18625
18626 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18627 &self,
18628 s: &mut S::SerializeStruct,
18629 ) -> Result<(), S::Error> {
18630 use serde::ser::SerializeStruct;
18631 s.serialize_field("user", &self.user)?;
18632 if !self.wipe_data {
18633 s.serialize_field("wipe_data", &self.wipe_data)?;
18634 }
18635 if let Some(val) = &self.transfer_dest_id {
18636 s.serialize_field("transfer_dest_id", val)?;
18637 }
18638 if let Some(val) = &self.transfer_admin_id {
18639 s.serialize_field("transfer_admin_id", val)?;
18640 }
18641 if self.keep_account {
18642 s.serialize_field("keep_account", &self.keep_account)?;
18643 }
18644 if self.retain_team_shares {
18645 s.serialize_field("retain_team_shares", &self.retain_team_shares)?;
18646 }
18647 if self.permanently_delete_files {
18648 s.serialize_field("permanently_delete_files", &self.permanently_delete_files)?;
18649 }
18650 Ok(())
18651 }
18652}
18653
18654impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveArg {
18655 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18656 use serde::de::{MapAccess, Visitor};
18658 struct StructVisitor;
18659 impl<'de> Visitor<'de> for StructVisitor {
18660 type Value = MembersRemoveArg;
18661 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18662 f.write_str("a MembersRemoveArg struct")
18663 }
18664 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18665 MembersRemoveArg::internal_deserialize(map)
18666 }
18667 }
18668 deserializer.deserialize_struct("MembersRemoveArg", MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
18669 }
18670}
18671
18672impl ::serde::ser::Serialize for MembersRemoveArg {
18673 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18674 use serde::ser::SerializeStruct;
18676 let mut s = serializer.serialize_struct("MembersRemoveArg", 7)?;
18677 self.internal_serialize::<S>(&mut s)?;
18678 s.end()
18679 }
18680}
18681
18682impl From<MembersRemoveArg> for MembersDeactivateArg {
18684 fn from(subtype: MembersRemoveArg) -> Self {
18685 Self {
18686 user: subtype.user,
18687 wipe_data: subtype.wipe_data,
18688 }
18689 }
18690}
18691#[derive(Debug, Clone, PartialEq, Eq)]
18692#[non_exhaustive] pub enum MembersRemoveError {
18694 UserNotFound,
18697 UserNotInTeam,
18699 TransferInProgress,
18701 AlreadyTransferred,
18703 AlreadyTransferredOrDeleted,
18705 RemovedAndTransferDestShouldDiffer,
18707 RemovedAndTransferAdminShouldDiffer,
18709 TransferDestUserNotFound,
18711 TransferDestUserNotInTeam,
18713 TransferAdminUserNotInTeam,
18715 TransferAdminUserNotFound,
18717 UnspecifiedTransferAdminId,
18719 TransferAdminIsNotAdmin,
18721 RecipientNotVerified,
18723 RemoveLastAdmin,
18725 CannotKeepAccountAndTransfer,
18727 CannotKeepAccountAndDeleteData,
18730 CannotKeepAccountAndPermanentlyDelete,
18733 EmailAddressTooLongToBeDisabled,
18735 CannotKeepInvitedUserAccount,
18737 CannotRetainSharesWhenDataWiped,
18740 CannotRetainSharesWhenNoAccountKept,
18743 CannotRetainSharesWhenTeamExternalSharingOff,
18746 CannotKeepAccount,
18748 CannotKeepAccountUnderLegalHold,
18751 CannotKeepAccountRequiredToSignTos,
18754 CannotPermanentlyDeleteAndTransfer,
18756 MemberIsTransferDestination,
18759 Other,
18762}
18763
18764impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveError {
18765 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18766 use serde::de::{self, MapAccess, Visitor};
18768 struct EnumVisitor;
18769 impl<'de> Visitor<'de> for EnumVisitor {
18770 type Value = MembersRemoveError;
18771 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18772 f.write_str("a MembersRemoveError structure")
18773 }
18774 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18775 let tag: &str = match map.next_key()? {
18776 Some(".tag") => map.next_value()?,
18777 _ => return Err(de::Error::missing_field(".tag"))
18778 };
18779 let value = match tag {
18780 "user_not_found" => MembersRemoveError::UserNotFound,
18781 "user_not_in_team" => MembersRemoveError::UserNotInTeam,
18782 "transfer_in_progress" => MembersRemoveError::TransferInProgress,
18783 "already_transferred" => MembersRemoveError::AlreadyTransferred,
18784 "already_transferred_or_deleted" => MembersRemoveError::AlreadyTransferredOrDeleted,
18785 "removed_and_transfer_dest_should_differ" => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
18786 "removed_and_transfer_admin_should_differ" => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
18787 "transfer_dest_user_not_found" => MembersRemoveError::TransferDestUserNotFound,
18788 "transfer_dest_user_not_in_team" => MembersRemoveError::TransferDestUserNotInTeam,
18789 "transfer_admin_user_not_in_team" => MembersRemoveError::TransferAdminUserNotInTeam,
18790 "transfer_admin_user_not_found" => MembersRemoveError::TransferAdminUserNotFound,
18791 "unspecified_transfer_admin_id" => MembersRemoveError::UnspecifiedTransferAdminId,
18792 "transfer_admin_is_not_admin" => MembersRemoveError::TransferAdminIsNotAdmin,
18793 "recipient_not_verified" => MembersRemoveError::RecipientNotVerified,
18794 "remove_last_admin" => MembersRemoveError::RemoveLastAdmin,
18795 "cannot_keep_account_and_transfer" => MembersRemoveError::CannotKeepAccountAndTransfer,
18796 "cannot_keep_account_and_delete_data" => MembersRemoveError::CannotKeepAccountAndDeleteData,
18797 "cannot_keep_account_and_permanently_delete" => MembersRemoveError::CannotKeepAccountAndPermanentlyDelete,
18798 "email_address_too_long_to_be_disabled" => MembersRemoveError::EmailAddressTooLongToBeDisabled,
18799 "cannot_keep_invited_user_account" => MembersRemoveError::CannotKeepInvitedUserAccount,
18800 "cannot_retain_shares_when_data_wiped" => MembersRemoveError::CannotRetainSharesWhenDataWiped,
18801 "cannot_retain_shares_when_no_account_kept" => MembersRemoveError::CannotRetainSharesWhenNoAccountKept,
18802 "cannot_retain_shares_when_team_external_sharing_off" => MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff,
18803 "cannot_keep_account" => MembersRemoveError::CannotKeepAccount,
18804 "cannot_keep_account_under_legal_hold" => MembersRemoveError::CannotKeepAccountUnderLegalHold,
18805 "cannot_keep_account_required_to_sign_tos" => MembersRemoveError::CannotKeepAccountRequiredToSignTos,
18806 "cannot_permanently_delete_and_transfer" => MembersRemoveError::CannotPermanentlyDeleteAndTransfer,
18807 "member_is_transfer_destination" => MembersRemoveError::MemberIsTransferDestination,
18808 _ => MembersRemoveError::Other,
18809 };
18810 crate::eat_json_fields(&mut map)?;
18811 Ok(value)
18812 }
18813 }
18814 const VARIANTS: &[&str] = &["user_not_found",
18815 "user_not_in_team",
18816 "other",
18817 "transfer_in_progress",
18818 "already_transferred",
18819 "already_transferred_or_deleted",
18820 "removed_and_transfer_dest_should_differ",
18821 "removed_and_transfer_admin_should_differ",
18822 "transfer_dest_user_not_found",
18823 "transfer_dest_user_not_in_team",
18824 "transfer_admin_user_not_in_team",
18825 "transfer_admin_user_not_found",
18826 "unspecified_transfer_admin_id",
18827 "transfer_admin_is_not_admin",
18828 "recipient_not_verified",
18829 "remove_last_admin",
18830 "cannot_keep_account_and_transfer",
18831 "cannot_keep_account_and_delete_data",
18832 "cannot_keep_account_and_permanently_delete",
18833 "email_address_too_long_to_be_disabled",
18834 "cannot_keep_invited_user_account",
18835 "cannot_retain_shares_when_data_wiped",
18836 "cannot_retain_shares_when_no_account_kept",
18837 "cannot_retain_shares_when_team_external_sharing_off",
18838 "cannot_keep_account",
18839 "cannot_keep_account_under_legal_hold",
18840 "cannot_keep_account_required_to_sign_tos",
18841 "cannot_permanently_delete_and_transfer",
18842 "member_is_transfer_destination"];
18843 deserializer.deserialize_struct("MembersRemoveError", VARIANTS, EnumVisitor)
18844 }
18845}
18846
18847impl ::serde::ser::Serialize for MembersRemoveError {
18848 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18849 use serde::ser::SerializeStruct;
18851 match self {
18852 MembersRemoveError::UserNotFound => {
18853 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18855 s.serialize_field(".tag", "user_not_found")?;
18856 s.end()
18857 }
18858 MembersRemoveError::UserNotInTeam => {
18859 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18861 s.serialize_field(".tag", "user_not_in_team")?;
18862 s.end()
18863 }
18864 MembersRemoveError::TransferInProgress => {
18865 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18867 s.serialize_field(".tag", "transfer_in_progress")?;
18868 s.end()
18869 }
18870 MembersRemoveError::AlreadyTransferred => {
18871 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18873 s.serialize_field(".tag", "already_transferred")?;
18874 s.end()
18875 }
18876 MembersRemoveError::AlreadyTransferredOrDeleted => {
18877 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18879 s.serialize_field(".tag", "already_transferred_or_deleted")?;
18880 s.end()
18881 }
18882 MembersRemoveError::RemovedAndTransferDestShouldDiffer => {
18883 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18885 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
18886 s.end()
18887 }
18888 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => {
18889 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18891 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
18892 s.end()
18893 }
18894 MembersRemoveError::TransferDestUserNotFound => {
18895 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18897 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
18898 s.end()
18899 }
18900 MembersRemoveError::TransferDestUserNotInTeam => {
18901 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18903 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
18904 s.end()
18905 }
18906 MembersRemoveError::TransferAdminUserNotInTeam => {
18907 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18909 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
18910 s.end()
18911 }
18912 MembersRemoveError::TransferAdminUserNotFound => {
18913 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18915 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
18916 s.end()
18917 }
18918 MembersRemoveError::UnspecifiedTransferAdminId => {
18919 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18921 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
18922 s.end()
18923 }
18924 MembersRemoveError::TransferAdminIsNotAdmin => {
18925 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18927 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
18928 s.end()
18929 }
18930 MembersRemoveError::RecipientNotVerified => {
18931 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18933 s.serialize_field(".tag", "recipient_not_verified")?;
18934 s.end()
18935 }
18936 MembersRemoveError::RemoveLastAdmin => {
18937 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18939 s.serialize_field(".tag", "remove_last_admin")?;
18940 s.end()
18941 }
18942 MembersRemoveError::CannotKeepAccountAndTransfer => {
18943 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18945 s.serialize_field(".tag", "cannot_keep_account_and_transfer")?;
18946 s.end()
18947 }
18948 MembersRemoveError::CannotKeepAccountAndDeleteData => {
18949 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18951 s.serialize_field(".tag", "cannot_keep_account_and_delete_data")?;
18952 s.end()
18953 }
18954 MembersRemoveError::CannotKeepAccountAndPermanentlyDelete => {
18955 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18957 s.serialize_field(".tag", "cannot_keep_account_and_permanently_delete")?;
18958 s.end()
18959 }
18960 MembersRemoveError::EmailAddressTooLongToBeDisabled => {
18961 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18963 s.serialize_field(".tag", "email_address_too_long_to_be_disabled")?;
18964 s.end()
18965 }
18966 MembersRemoveError::CannotKeepInvitedUserAccount => {
18967 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18969 s.serialize_field(".tag", "cannot_keep_invited_user_account")?;
18970 s.end()
18971 }
18972 MembersRemoveError::CannotRetainSharesWhenDataWiped => {
18973 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18975 s.serialize_field(".tag", "cannot_retain_shares_when_data_wiped")?;
18976 s.end()
18977 }
18978 MembersRemoveError::CannotRetainSharesWhenNoAccountKept => {
18979 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18981 s.serialize_field(".tag", "cannot_retain_shares_when_no_account_kept")?;
18982 s.end()
18983 }
18984 MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff => {
18985 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18987 s.serialize_field(".tag", "cannot_retain_shares_when_team_external_sharing_off")?;
18988 s.end()
18989 }
18990 MembersRemoveError::CannotKeepAccount => {
18991 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18993 s.serialize_field(".tag", "cannot_keep_account")?;
18994 s.end()
18995 }
18996 MembersRemoveError::CannotKeepAccountUnderLegalHold => {
18997 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18999 s.serialize_field(".tag", "cannot_keep_account_under_legal_hold")?;
19000 s.end()
19001 }
19002 MembersRemoveError::CannotKeepAccountRequiredToSignTos => {
19003 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19005 s.serialize_field(".tag", "cannot_keep_account_required_to_sign_tos")?;
19006 s.end()
19007 }
19008 MembersRemoveError::CannotPermanentlyDeleteAndTransfer => {
19009 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19011 s.serialize_field(".tag", "cannot_permanently_delete_and_transfer")?;
19012 s.end()
19013 }
19014 MembersRemoveError::MemberIsTransferDestination => {
19015 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19017 s.serialize_field(".tag", "member_is_transfer_destination")?;
19018 s.end()
19019 }
19020 MembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19021 }
19022 }
19023}
19024
19025impl ::std::error::Error for MembersRemoveError {
19026}
19027
19028impl ::std::fmt::Display for MembersRemoveError {
19029 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19030 match self {
19031 MembersRemoveError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19032 MembersRemoveError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19033 MembersRemoveError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
19034 MembersRemoveError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
19035 MembersRemoveError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
19036 MembersRemoveError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
19037 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
19038 MembersRemoveError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
19039 MembersRemoveError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
19040 MembersRemoveError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
19041 MembersRemoveError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
19042 MembersRemoveError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
19043 MembersRemoveError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
19044 MembersRemoveError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
19045 MembersRemoveError::RemoveLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be removed from it."),
19046 MembersRemoveError::CannotKeepAccountAndTransfer => f.write_str("Cannot keep account and transfer the data to another user at the same time."),
19047 MembersRemoveError::EmailAddressTooLongToBeDisabled => f.write_str("The email address of the user is too long to be disabled."),
19048 MembersRemoveError::CannotKeepInvitedUserAccount => f.write_str("Cannot keep account of an invited user."),
19049 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."),
19050 MembersRemoveError::CannotKeepAccount => f.write_str("Only a team admin, can convert this account to a Basic account."),
19051 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."),
19052 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."),
19053 MembersRemoveError::CannotPermanentlyDeleteAndTransfer => f.write_str("Cannot permanently delete files and transfer the data to another user at the same time."),
19054 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."),
19055 _ => write!(f, "{:?}", *self),
19056 }
19057 }
19058}
19059
19060impl From<MembersTransferFilesError> for MembersRemoveError {
19062 fn from(parent: MembersTransferFilesError) -> Self {
19063 match parent {
19064 MembersTransferFilesError::UserNotFound => MembersRemoveError::UserNotFound,
19065 MembersTransferFilesError::UserNotInTeam => MembersRemoveError::UserNotInTeam,
19066 MembersTransferFilesError::Other => MembersRemoveError::Other,
19067 MembersTransferFilesError::TransferInProgress => MembersRemoveError::TransferInProgress,
19068 MembersTransferFilesError::AlreadyTransferred => MembersRemoveError::AlreadyTransferred,
19069 MembersTransferFilesError::AlreadyTransferredOrDeleted => MembersRemoveError::AlreadyTransferredOrDeleted,
19070 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
19071 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
19072 MembersTransferFilesError::TransferDestUserNotFound => MembersRemoveError::TransferDestUserNotFound,
19073 MembersTransferFilesError::TransferDestUserNotInTeam => MembersRemoveError::TransferDestUserNotInTeam,
19074 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersRemoveError::TransferAdminUserNotInTeam,
19075 MembersTransferFilesError::TransferAdminUserNotFound => MembersRemoveError::TransferAdminUserNotFound,
19076 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersRemoveError::UnspecifiedTransferAdminId,
19077 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersRemoveError::TransferAdminIsNotAdmin,
19078 MembersTransferFilesError::RecipientNotVerified => MembersRemoveError::RecipientNotVerified,
19079 }
19080 }
19081}
19082
19083#[derive(Debug, Clone, PartialEq, Eq)]
19084#[non_exhaustive] pub enum MembersSendWelcomeError {
19086 UserNotFound,
19089 UserNotInTeam,
19091 Other,
19094}
19095
19096impl<'de> ::serde::de::Deserialize<'de> for MembersSendWelcomeError {
19097 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19098 use serde::de::{self, MapAccess, Visitor};
19100 struct EnumVisitor;
19101 impl<'de> Visitor<'de> for EnumVisitor {
19102 type Value = MembersSendWelcomeError;
19103 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19104 f.write_str("a MembersSendWelcomeError structure")
19105 }
19106 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19107 let tag: &str = match map.next_key()? {
19108 Some(".tag") => map.next_value()?,
19109 _ => return Err(de::Error::missing_field(".tag"))
19110 };
19111 let value = match tag {
19112 "user_not_found" => MembersSendWelcomeError::UserNotFound,
19113 "user_not_in_team" => MembersSendWelcomeError::UserNotInTeam,
19114 _ => MembersSendWelcomeError::Other,
19115 };
19116 crate::eat_json_fields(&mut map)?;
19117 Ok(value)
19118 }
19119 }
19120 const VARIANTS: &[&str] = &["user_not_found",
19121 "user_not_in_team",
19122 "other"];
19123 deserializer.deserialize_struct("MembersSendWelcomeError", VARIANTS, EnumVisitor)
19124 }
19125}
19126
19127impl ::serde::ser::Serialize for MembersSendWelcomeError {
19128 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19129 use serde::ser::SerializeStruct;
19131 match self {
19132 MembersSendWelcomeError::UserNotFound => {
19133 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
19135 s.serialize_field(".tag", "user_not_found")?;
19136 s.end()
19137 }
19138 MembersSendWelcomeError::UserNotInTeam => {
19139 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
19141 s.serialize_field(".tag", "user_not_in_team")?;
19142 s.end()
19143 }
19144 MembersSendWelcomeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19145 }
19146 }
19147}
19148
19149impl ::std::error::Error for MembersSendWelcomeError {
19150}
19151
19152impl ::std::fmt::Display for MembersSendWelcomeError {
19153 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19154 match self {
19155 MembersSendWelcomeError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19156 MembersSendWelcomeError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19157 _ => write!(f, "{:?}", *self),
19158 }
19159 }
19160}
19161
19162impl From<MemberSelectorError> for MembersSendWelcomeError {
19164 fn from(parent: MemberSelectorError) -> Self {
19165 match parent {
19166 MemberSelectorError::UserNotFound => MembersSendWelcomeError::UserNotFound,
19167 MemberSelectorError::UserNotInTeam => MembersSendWelcomeError::UserNotInTeam,
19168 }
19169 }
19170}
19171#[derive(Debug, Clone, PartialEq, Eq)]
19174#[non_exhaustive] pub struct MembersSetPermissions2Arg {
19176 pub user: UserSelectorArg,
19178 pub new_roles: Option<Vec<TeamMemberRoleId>>,
19181}
19182
19183impl MembersSetPermissions2Arg {
19184 pub fn new(user: UserSelectorArg) -> Self {
19185 MembersSetPermissions2Arg {
19186 user,
19187 new_roles: None,
19188 }
19189 }
19190
19191 pub fn with_new_roles(mut self, value: Vec<TeamMemberRoleId>) -> Self {
19192 self.new_roles = Some(value);
19193 self
19194 }
19195}
19196
19197const MEMBERS_SET_PERMISSIONS2_ARG_FIELDS: &[&str] = &["user",
19198 "new_roles"];
19199impl MembersSetPermissions2Arg {
19200 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19201 map: V,
19202 ) -> Result<MembersSetPermissions2Arg, V::Error> {
19203 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19204 }
19205
19206 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19207 mut map: V,
19208 optional: bool,
19209 ) -> Result<Option<MembersSetPermissions2Arg>, V::Error> {
19210 let mut field_user = None;
19211 let mut field_new_roles = None;
19212 let mut nothing = true;
19213 while let Some(key) = map.next_key::<&str>()? {
19214 nothing = false;
19215 match key {
19216 "user" => {
19217 if field_user.is_some() {
19218 return Err(::serde::de::Error::duplicate_field("user"));
19219 }
19220 field_user = Some(map.next_value()?);
19221 }
19222 "new_roles" => {
19223 if field_new_roles.is_some() {
19224 return Err(::serde::de::Error::duplicate_field("new_roles"));
19225 }
19226 field_new_roles = Some(map.next_value()?);
19227 }
19228 _ => {
19229 map.next_value::<::serde_json::Value>()?;
19231 }
19232 }
19233 }
19234 if optional && nothing {
19235 return Ok(None);
19236 }
19237 let result = MembersSetPermissions2Arg {
19238 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19239 new_roles: field_new_roles.and_then(Option::flatten),
19240 };
19241 Ok(Some(result))
19242 }
19243
19244 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19245 &self,
19246 s: &mut S::SerializeStruct,
19247 ) -> Result<(), S::Error> {
19248 use serde::ser::SerializeStruct;
19249 s.serialize_field("user", &self.user)?;
19250 if let Some(val) = &self.new_roles {
19251 s.serialize_field("new_roles", val)?;
19252 }
19253 Ok(())
19254 }
19255}
19256
19257impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Arg {
19258 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19259 use serde::de::{MapAccess, Visitor};
19261 struct StructVisitor;
19262 impl<'de> Visitor<'de> for StructVisitor {
19263 type Value = MembersSetPermissions2Arg;
19264 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19265 f.write_str("a MembersSetPermissions2Arg struct")
19266 }
19267 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19268 MembersSetPermissions2Arg::internal_deserialize(map)
19269 }
19270 }
19271 deserializer.deserialize_struct("MembersSetPermissions2Arg", MEMBERS_SET_PERMISSIONS2_ARG_FIELDS, StructVisitor)
19272 }
19273}
19274
19275impl ::serde::ser::Serialize for MembersSetPermissions2Arg {
19276 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19277 use serde::ser::SerializeStruct;
19279 let mut s = serializer.serialize_struct("MembersSetPermissions2Arg", 2)?;
19280 self.internal_serialize::<S>(&mut s)?;
19281 s.end()
19282 }
19283}
19284
19285#[derive(Debug, Clone, PartialEq, Eq)]
19286#[non_exhaustive] pub enum MembersSetPermissions2Error {
19288 UserNotFound,
19291 LastAdmin,
19293 UserNotInTeam,
19295 CannotSetPermissions,
19297 RoleNotFound,
19299 Other,
19302}
19303
19304impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Error {
19305 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19306 use serde::de::{self, MapAccess, Visitor};
19308 struct EnumVisitor;
19309 impl<'de> Visitor<'de> for EnumVisitor {
19310 type Value = MembersSetPermissions2Error;
19311 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19312 f.write_str("a MembersSetPermissions2Error structure")
19313 }
19314 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19315 let tag: &str = match map.next_key()? {
19316 Some(".tag") => map.next_value()?,
19317 _ => return Err(de::Error::missing_field(".tag"))
19318 };
19319 let value = match tag {
19320 "user_not_found" => MembersSetPermissions2Error::UserNotFound,
19321 "last_admin" => MembersSetPermissions2Error::LastAdmin,
19322 "user_not_in_team" => MembersSetPermissions2Error::UserNotInTeam,
19323 "cannot_set_permissions" => MembersSetPermissions2Error::CannotSetPermissions,
19324 "role_not_found" => MembersSetPermissions2Error::RoleNotFound,
19325 _ => MembersSetPermissions2Error::Other,
19326 };
19327 crate::eat_json_fields(&mut map)?;
19328 Ok(value)
19329 }
19330 }
19331 const VARIANTS: &[&str] = &["user_not_found",
19332 "last_admin",
19333 "user_not_in_team",
19334 "cannot_set_permissions",
19335 "role_not_found",
19336 "other"];
19337 deserializer.deserialize_struct("MembersSetPermissions2Error", VARIANTS, EnumVisitor)
19338 }
19339}
19340
19341impl ::serde::ser::Serialize for MembersSetPermissions2Error {
19342 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19343 use serde::ser::SerializeStruct;
19345 match self {
19346 MembersSetPermissions2Error::UserNotFound => {
19347 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19349 s.serialize_field(".tag", "user_not_found")?;
19350 s.end()
19351 }
19352 MembersSetPermissions2Error::LastAdmin => {
19353 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19355 s.serialize_field(".tag", "last_admin")?;
19356 s.end()
19357 }
19358 MembersSetPermissions2Error::UserNotInTeam => {
19359 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19361 s.serialize_field(".tag", "user_not_in_team")?;
19362 s.end()
19363 }
19364 MembersSetPermissions2Error::CannotSetPermissions => {
19365 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19367 s.serialize_field(".tag", "cannot_set_permissions")?;
19368 s.end()
19369 }
19370 MembersSetPermissions2Error::RoleNotFound => {
19371 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19373 s.serialize_field(".tag", "role_not_found")?;
19374 s.end()
19375 }
19376 MembersSetPermissions2Error::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19377 }
19378 }
19379}
19380
19381impl ::std::error::Error for MembersSetPermissions2Error {
19382}
19383
19384impl ::std::fmt::Display for MembersSetPermissions2Error {
19385 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19386 match self {
19387 MembersSetPermissions2Error::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19388 MembersSetPermissions2Error::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
19389 MembersSetPermissions2Error::UserNotInTeam => f.write_str("The user is not a member of the team."),
19390 MembersSetPermissions2Error::CannotSetPermissions => f.write_str("Cannot remove/grant permissions. This can happen if the team member is suspended."),
19391 MembersSetPermissions2Error::RoleNotFound => f.write_str("No matching role found. At least one of the provided new_roles does not exist on this team."),
19392 _ => write!(f, "{:?}", *self),
19393 }
19394 }
19395}
19396
19397impl From<UserSelectorError> for MembersSetPermissions2Error {
19399 fn from(parent: UserSelectorError) -> Self {
19400 match parent {
19401 UserSelectorError::UserNotFound => MembersSetPermissions2Error::UserNotFound,
19402 }
19403 }
19404}
19405#[derive(Debug, Clone, PartialEq, Eq)]
19406#[non_exhaustive] pub struct MembersSetPermissions2Result {
19408 pub team_member_id: crate::types::team_common::TeamMemberId,
19410 pub roles: Option<Vec<TeamMemberRole>>,
19412}
19413
19414impl MembersSetPermissions2Result {
19415 pub fn new(team_member_id: crate::types::team_common::TeamMemberId) -> Self {
19416 MembersSetPermissions2Result {
19417 team_member_id,
19418 roles: None,
19419 }
19420 }
19421
19422 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
19423 self.roles = Some(value);
19424 self
19425 }
19426}
19427
19428const MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS: &[&str] = &["team_member_id",
19429 "roles"];
19430impl MembersSetPermissions2Result {
19431 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19432 map: V,
19433 ) -> Result<MembersSetPermissions2Result, V::Error> {
19434 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19435 }
19436
19437 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19438 mut map: V,
19439 optional: bool,
19440 ) -> Result<Option<MembersSetPermissions2Result>, V::Error> {
19441 let mut field_team_member_id = None;
19442 let mut field_roles = None;
19443 let mut nothing = true;
19444 while let Some(key) = map.next_key::<&str>()? {
19445 nothing = false;
19446 match key {
19447 "team_member_id" => {
19448 if field_team_member_id.is_some() {
19449 return Err(::serde::de::Error::duplicate_field("team_member_id"));
19450 }
19451 field_team_member_id = Some(map.next_value()?);
19452 }
19453 "roles" => {
19454 if field_roles.is_some() {
19455 return Err(::serde::de::Error::duplicate_field("roles"));
19456 }
19457 field_roles = Some(map.next_value()?);
19458 }
19459 _ => {
19460 map.next_value::<::serde_json::Value>()?;
19462 }
19463 }
19464 }
19465 if optional && nothing {
19466 return Ok(None);
19467 }
19468 let result = MembersSetPermissions2Result {
19469 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
19470 roles: field_roles.and_then(Option::flatten),
19471 };
19472 Ok(Some(result))
19473 }
19474
19475 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19476 &self,
19477 s: &mut S::SerializeStruct,
19478 ) -> Result<(), S::Error> {
19479 use serde::ser::SerializeStruct;
19480 s.serialize_field("team_member_id", &self.team_member_id)?;
19481 if let Some(val) = &self.roles {
19482 s.serialize_field("roles", val)?;
19483 }
19484 Ok(())
19485 }
19486}
19487
19488impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Result {
19489 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19490 use serde::de::{MapAccess, Visitor};
19492 struct StructVisitor;
19493 impl<'de> Visitor<'de> for StructVisitor {
19494 type Value = MembersSetPermissions2Result;
19495 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19496 f.write_str("a MembersSetPermissions2Result struct")
19497 }
19498 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19499 MembersSetPermissions2Result::internal_deserialize(map)
19500 }
19501 }
19502 deserializer.deserialize_struct("MembersSetPermissions2Result", MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS, StructVisitor)
19503 }
19504}
19505
19506impl ::serde::ser::Serialize for MembersSetPermissions2Result {
19507 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19508 use serde::ser::SerializeStruct;
19510 let mut s = serializer.serialize_struct("MembersSetPermissions2Result", 2)?;
19511 self.internal_serialize::<S>(&mut s)?;
19512 s.end()
19513 }
19514}
19515
19516#[derive(Debug, Clone, PartialEq, Eq)]
19519#[non_exhaustive] pub struct MembersSetPermissionsArg {
19521 pub user: UserSelectorArg,
19523 pub new_role: AdminTier,
19525}
19526
19527impl MembersSetPermissionsArg {
19528 pub fn new(user: UserSelectorArg, new_role: AdminTier) -> Self {
19529 MembersSetPermissionsArg {
19530 user,
19531 new_role,
19532 }
19533 }
19534}
19535
19536const MEMBERS_SET_PERMISSIONS_ARG_FIELDS: &[&str] = &["user",
19537 "new_role"];
19538impl MembersSetPermissionsArg {
19539 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19540 map: V,
19541 ) -> Result<MembersSetPermissionsArg, V::Error> {
19542 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19543 }
19544
19545 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19546 mut map: V,
19547 optional: bool,
19548 ) -> Result<Option<MembersSetPermissionsArg>, V::Error> {
19549 let mut field_user = None;
19550 let mut field_new_role = None;
19551 let mut nothing = true;
19552 while let Some(key) = map.next_key::<&str>()? {
19553 nothing = false;
19554 match key {
19555 "user" => {
19556 if field_user.is_some() {
19557 return Err(::serde::de::Error::duplicate_field("user"));
19558 }
19559 field_user = Some(map.next_value()?);
19560 }
19561 "new_role" => {
19562 if field_new_role.is_some() {
19563 return Err(::serde::de::Error::duplicate_field("new_role"));
19564 }
19565 field_new_role = Some(map.next_value()?);
19566 }
19567 _ => {
19568 map.next_value::<::serde_json::Value>()?;
19570 }
19571 }
19572 }
19573 if optional && nothing {
19574 return Ok(None);
19575 }
19576 let result = MembersSetPermissionsArg {
19577 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19578 new_role: field_new_role.ok_or_else(|| ::serde::de::Error::missing_field("new_role"))?,
19579 };
19580 Ok(Some(result))
19581 }
19582
19583 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19584 &self,
19585 s: &mut S::SerializeStruct,
19586 ) -> Result<(), S::Error> {
19587 use serde::ser::SerializeStruct;
19588 s.serialize_field("user", &self.user)?;
19589 s.serialize_field("new_role", &self.new_role)?;
19590 Ok(())
19591 }
19592}
19593
19594impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsArg {
19595 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19596 use serde::de::{MapAccess, Visitor};
19598 struct StructVisitor;
19599 impl<'de> Visitor<'de> for StructVisitor {
19600 type Value = MembersSetPermissionsArg;
19601 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19602 f.write_str("a MembersSetPermissionsArg struct")
19603 }
19604 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19605 MembersSetPermissionsArg::internal_deserialize(map)
19606 }
19607 }
19608 deserializer.deserialize_struct("MembersSetPermissionsArg", MEMBERS_SET_PERMISSIONS_ARG_FIELDS, StructVisitor)
19609 }
19610}
19611
19612impl ::serde::ser::Serialize for MembersSetPermissionsArg {
19613 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19614 use serde::ser::SerializeStruct;
19616 let mut s = serializer.serialize_struct("MembersSetPermissionsArg", 2)?;
19617 self.internal_serialize::<S>(&mut s)?;
19618 s.end()
19619 }
19620}
19621
19622#[derive(Debug, Clone, PartialEq, Eq)]
19623#[non_exhaustive] pub enum MembersSetPermissionsError {
19625 UserNotFound,
19628 LastAdmin,
19630 UserNotInTeam,
19632 CannotSetPermissions,
19634 TeamLicenseLimit,
19636 Other,
19639}
19640
19641impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsError {
19642 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19643 use serde::de::{self, MapAccess, Visitor};
19645 struct EnumVisitor;
19646 impl<'de> Visitor<'de> for EnumVisitor {
19647 type Value = MembersSetPermissionsError;
19648 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19649 f.write_str("a MembersSetPermissionsError structure")
19650 }
19651 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19652 let tag: &str = match map.next_key()? {
19653 Some(".tag") => map.next_value()?,
19654 _ => return Err(de::Error::missing_field(".tag"))
19655 };
19656 let value = match tag {
19657 "user_not_found" => MembersSetPermissionsError::UserNotFound,
19658 "last_admin" => MembersSetPermissionsError::LastAdmin,
19659 "user_not_in_team" => MembersSetPermissionsError::UserNotInTeam,
19660 "cannot_set_permissions" => MembersSetPermissionsError::CannotSetPermissions,
19661 "team_license_limit" => MembersSetPermissionsError::TeamLicenseLimit,
19662 _ => MembersSetPermissionsError::Other,
19663 };
19664 crate::eat_json_fields(&mut map)?;
19665 Ok(value)
19666 }
19667 }
19668 const VARIANTS: &[&str] = &["user_not_found",
19669 "last_admin",
19670 "user_not_in_team",
19671 "cannot_set_permissions",
19672 "team_license_limit",
19673 "other"];
19674 deserializer.deserialize_struct("MembersSetPermissionsError", VARIANTS, EnumVisitor)
19675 }
19676}
19677
19678impl ::serde::ser::Serialize for MembersSetPermissionsError {
19679 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19680 use serde::ser::SerializeStruct;
19682 match self {
19683 MembersSetPermissionsError::UserNotFound => {
19684 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19686 s.serialize_field(".tag", "user_not_found")?;
19687 s.end()
19688 }
19689 MembersSetPermissionsError::LastAdmin => {
19690 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19692 s.serialize_field(".tag", "last_admin")?;
19693 s.end()
19694 }
19695 MembersSetPermissionsError::UserNotInTeam => {
19696 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19698 s.serialize_field(".tag", "user_not_in_team")?;
19699 s.end()
19700 }
19701 MembersSetPermissionsError::CannotSetPermissions => {
19702 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19704 s.serialize_field(".tag", "cannot_set_permissions")?;
19705 s.end()
19706 }
19707 MembersSetPermissionsError::TeamLicenseLimit => {
19708 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19710 s.serialize_field(".tag", "team_license_limit")?;
19711 s.end()
19712 }
19713 MembersSetPermissionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19714 }
19715 }
19716}
19717
19718impl ::std::error::Error for MembersSetPermissionsError {
19719}
19720
19721impl ::std::fmt::Display for MembersSetPermissionsError {
19722 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19723 match self {
19724 MembersSetPermissionsError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19725 MembersSetPermissionsError::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
19726 MembersSetPermissionsError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19727 MembersSetPermissionsError::CannotSetPermissions => f.write_str("Cannot remove/grant permissions."),
19728 MembersSetPermissionsError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
19729 _ => write!(f, "{:?}", *self),
19730 }
19731 }
19732}
19733
19734impl From<UserSelectorError> for MembersSetPermissionsError {
19736 fn from(parent: UserSelectorError) -> Self {
19737 match parent {
19738 UserSelectorError::UserNotFound => MembersSetPermissionsError::UserNotFound,
19739 }
19740 }
19741}
19742#[derive(Debug, Clone, PartialEq, Eq)]
19743#[non_exhaustive] pub struct MembersSetPermissionsResult {
19745 pub team_member_id: crate::types::team_common::TeamMemberId,
19747 pub role: AdminTier,
19749}
19750
19751impl MembersSetPermissionsResult {
19752 pub fn new(team_member_id: crate::types::team_common::TeamMemberId, role: AdminTier) -> Self {
19753 MembersSetPermissionsResult {
19754 team_member_id,
19755 role,
19756 }
19757 }
19758}
19759
19760const MEMBERS_SET_PERMISSIONS_RESULT_FIELDS: &[&str] = &["team_member_id",
19761 "role"];
19762impl MembersSetPermissionsResult {
19763 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19764 map: V,
19765 ) -> Result<MembersSetPermissionsResult, V::Error> {
19766 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19767 }
19768
19769 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19770 mut map: V,
19771 optional: bool,
19772 ) -> Result<Option<MembersSetPermissionsResult>, V::Error> {
19773 let mut field_team_member_id = None;
19774 let mut field_role = None;
19775 let mut nothing = true;
19776 while let Some(key) = map.next_key::<&str>()? {
19777 nothing = false;
19778 match key {
19779 "team_member_id" => {
19780 if field_team_member_id.is_some() {
19781 return Err(::serde::de::Error::duplicate_field("team_member_id"));
19782 }
19783 field_team_member_id = Some(map.next_value()?);
19784 }
19785 "role" => {
19786 if field_role.is_some() {
19787 return Err(::serde::de::Error::duplicate_field("role"));
19788 }
19789 field_role = Some(map.next_value()?);
19790 }
19791 _ => {
19792 map.next_value::<::serde_json::Value>()?;
19794 }
19795 }
19796 }
19797 if optional && nothing {
19798 return Ok(None);
19799 }
19800 let result = MembersSetPermissionsResult {
19801 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
19802 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
19803 };
19804 Ok(Some(result))
19805 }
19806
19807 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19808 &self,
19809 s: &mut S::SerializeStruct,
19810 ) -> Result<(), S::Error> {
19811 use serde::ser::SerializeStruct;
19812 s.serialize_field("team_member_id", &self.team_member_id)?;
19813 s.serialize_field("role", &self.role)?;
19814 Ok(())
19815 }
19816}
19817
19818impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsResult {
19819 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19820 use serde::de::{MapAccess, Visitor};
19822 struct StructVisitor;
19823 impl<'de> Visitor<'de> for StructVisitor {
19824 type Value = MembersSetPermissionsResult;
19825 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19826 f.write_str("a MembersSetPermissionsResult struct")
19827 }
19828 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19829 MembersSetPermissionsResult::internal_deserialize(map)
19830 }
19831 }
19832 deserializer.deserialize_struct("MembersSetPermissionsResult", MEMBERS_SET_PERMISSIONS_RESULT_FIELDS, StructVisitor)
19833 }
19834}
19835
19836impl ::serde::ser::Serialize for MembersSetPermissionsResult {
19837 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19838 use serde::ser::SerializeStruct;
19840 let mut s = serializer.serialize_struct("MembersSetPermissionsResult", 2)?;
19841 self.internal_serialize::<S>(&mut s)?;
19842 s.end()
19843 }
19844}
19845
19846#[derive(Debug, Clone, PartialEq, Eq)]
19850#[non_exhaustive] pub struct MembersSetProfileArg {
19852 pub user: UserSelectorArg,
19854 pub new_email: Option<crate::types::common::EmailAddress>,
19856 pub new_external_id: Option<crate::types::team_common::MemberExternalId>,
19858 pub new_given_name: Option<crate::types::common::OptionalNamePart>,
19860 pub new_surname: Option<crate::types::common::OptionalNamePart>,
19862 pub new_persistent_id: Option<String>,
19865 pub new_is_directory_restricted: Option<bool>,
19867}
19868
19869impl MembersSetProfileArg {
19870 pub fn new(user: UserSelectorArg) -> Self {
19871 MembersSetProfileArg {
19872 user,
19873 new_email: None,
19874 new_external_id: None,
19875 new_given_name: None,
19876 new_surname: None,
19877 new_persistent_id: None,
19878 new_is_directory_restricted: None,
19879 }
19880 }
19881
19882 pub fn with_new_email(mut self, value: crate::types::common::EmailAddress) -> Self {
19883 self.new_email = Some(value);
19884 self
19885 }
19886
19887 pub fn with_new_external_id(
19888 mut self,
19889 value: crate::types::team_common::MemberExternalId,
19890 ) -> Self {
19891 self.new_external_id = Some(value);
19892 self
19893 }
19894
19895 pub fn with_new_given_name(mut self, value: crate::types::common::OptionalNamePart) -> Self {
19896 self.new_given_name = Some(value);
19897 self
19898 }
19899
19900 pub fn with_new_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
19901 self.new_surname = Some(value);
19902 self
19903 }
19904
19905 pub fn with_new_persistent_id(mut self, value: String) -> Self {
19906 self.new_persistent_id = Some(value);
19907 self
19908 }
19909
19910 pub fn with_new_is_directory_restricted(mut self, value: bool) -> Self {
19911 self.new_is_directory_restricted = Some(value);
19912 self
19913 }
19914}
19915
19916const MEMBERS_SET_PROFILE_ARG_FIELDS: &[&str] = &["user",
19917 "new_email",
19918 "new_external_id",
19919 "new_given_name",
19920 "new_surname",
19921 "new_persistent_id",
19922 "new_is_directory_restricted"];
19923impl MembersSetProfileArg {
19924 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19925 map: V,
19926 ) -> Result<MembersSetProfileArg, V::Error> {
19927 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19928 }
19929
19930 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19931 mut map: V,
19932 optional: bool,
19933 ) -> Result<Option<MembersSetProfileArg>, V::Error> {
19934 let mut field_user = None;
19935 let mut field_new_email = None;
19936 let mut field_new_external_id = None;
19937 let mut field_new_given_name = None;
19938 let mut field_new_surname = None;
19939 let mut field_new_persistent_id = None;
19940 let mut field_new_is_directory_restricted = None;
19941 let mut nothing = true;
19942 while let Some(key) = map.next_key::<&str>()? {
19943 nothing = false;
19944 match key {
19945 "user" => {
19946 if field_user.is_some() {
19947 return Err(::serde::de::Error::duplicate_field("user"));
19948 }
19949 field_user = Some(map.next_value()?);
19950 }
19951 "new_email" => {
19952 if field_new_email.is_some() {
19953 return Err(::serde::de::Error::duplicate_field("new_email"));
19954 }
19955 field_new_email = Some(map.next_value()?);
19956 }
19957 "new_external_id" => {
19958 if field_new_external_id.is_some() {
19959 return Err(::serde::de::Error::duplicate_field("new_external_id"));
19960 }
19961 field_new_external_id = Some(map.next_value()?);
19962 }
19963 "new_given_name" => {
19964 if field_new_given_name.is_some() {
19965 return Err(::serde::de::Error::duplicate_field("new_given_name"));
19966 }
19967 field_new_given_name = Some(map.next_value()?);
19968 }
19969 "new_surname" => {
19970 if field_new_surname.is_some() {
19971 return Err(::serde::de::Error::duplicate_field("new_surname"));
19972 }
19973 field_new_surname = Some(map.next_value()?);
19974 }
19975 "new_persistent_id" => {
19976 if field_new_persistent_id.is_some() {
19977 return Err(::serde::de::Error::duplicate_field("new_persistent_id"));
19978 }
19979 field_new_persistent_id = Some(map.next_value()?);
19980 }
19981 "new_is_directory_restricted" => {
19982 if field_new_is_directory_restricted.is_some() {
19983 return Err(::serde::de::Error::duplicate_field("new_is_directory_restricted"));
19984 }
19985 field_new_is_directory_restricted = Some(map.next_value()?);
19986 }
19987 _ => {
19988 map.next_value::<::serde_json::Value>()?;
19990 }
19991 }
19992 }
19993 if optional && nothing {
19994 return Ok(None);
19995 }
19996 let result = MembersSetProfileArg {
19997 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19998 new_email: field_new_email.and_then(Option::flatten),
19999 new_external_id: field_new_external_id.and_then(Option::flatten),
20000 new_given_name: field_new_given_name.and_then(Option::flatten),
20001 new_surname: field_new_surname.and_then(Option::flatten),
20002 new_persistent_id: field_new_persistent_id.and_then(Option::flatten),
20003 new_is_directory_restricted: field_new_is_directory_restricted.and_then(Option::flatten),
20004 };
20005 Ok(Some(result))
20006 }
20007
20008 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20009 &self,
20010 s: &mut S::SerializeStruct,
20011 ) -> Result<(), S::Error> {
20012 use serde::ser::SerializeStruct;
20013 s.serialize_field("user", &self.user)?;
20014 if let Some(val) = &self.new_email {
20015 s.serialize_field("new_email", val)?;
20016 }
20017 if let Some(val) = &self.new_external_id {
20018 s.serialize_field("new_external_id", val)?;
20019 }
20020 if let Some(val) = &self.new_given_name {
20021 s.serialize_field("new_given_name", val)?;
20022 }
20023 if let Some(val) = &self.new_surname {
20024 s.serialize_field("new_surname", val)?;
20025 }
20026 if let Some(val) = &self.new_persistent_id {
20027 s.serialize_field("new_persistent_id", val)?;
20028 }
20029 if let Some(val) = &self.new_is_directory_restricted {
20030 s.serialize_field("new_is_directory_restricted", val)?;
20031 }
20032 Ok(())
20033 }
20034}
20035
20036impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileArg {
20037 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20038 use serde::de::{MapAccess, Visitor};
20040 struct StructVisitor;
20041 impl<'de> Visitor<'de> for StructVisitor {
20042 type Value = MembersSetProfileArg;
20043 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20044 f.write_str("a MembersSetProfileArg struct")
20045 }
20046 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20047 MembersSetProfileArg::internal_deserialize(map)
20048 }
20049 }
20050 deserializer.deserialize_struct("MembersSetProfileArg", MEMBERS_SET_PROFILE_ARG_FIELDS, StructVisitor)
20051 }
20052}
20053
20054impl ::serde::ser::Serialize for MembersSetProfileArg {
20055 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20056 use serde::ser::SerializeStruct;
20058 let mut s = serializer.serialize_struct("MembersSetProfileArg", 7)?;
20059 self.internal_serialize::<S>(&mut s)?;
20060 s.end()
20061 }
20062}
20063
20064#[derive(Debug, Clone, PartialEq, Eq)]
20065#[non_exhaustive] pub enum MembersSetProfileError {
20067 UserNotFound,
20070 UserNotInTeam,
20072 ExternalIdAndNewExternalIdUnsafe,
20074 NoNewDataSpecified,
20076 EmailReservedForOtherUser,
20078 ExternalIdUsedByOtherUser,
20080 SetProfileDisallowed,
20082 ParamCannotBeEmpty,
20084 PersistentIdDisabled,
20087 PersistentIdUsedByOtherUser,
20089 DirectoryRestrictedOff,
20091 Other,
20094}
20095
20096impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileError {
20097 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20098 use serde::de::{self, MapAccess, Visitor};
20100 struct EnumVisitor;
20101 impl<'de> Visitor<'de> for EnumVisitor {
20102 type Value = MembersSetProfileError;
20103 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20104 f.write_str("a MembersSetProfileError structure")
20105 }
20106 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20107 let tag: &str = match map.next_key()? {
20108 Some(".tag") => map.next_value()?,
20109 _ => return Err(de::Error::missing_field(".tag"))
20110 };
20111 let value = match tag {
20112 "user_not_found" => MembersSetProfileError::UserNotFound,
20113 "user_not_in_team" => MembersSetProfileError::UserNotInTeam,
20114 "external_id_and_new_external_id_unsafe" => MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe,
20115 "no_new_data_specified" => MembersSetProfileError::NoNewDataSpecified,
20116 "email_reserved_for_other_user" => MembersSetProfileError::EmailReservedForOtherUser,
20117 "external_id_used_by_other_user" => MembersSetProfileError::ExternalIdUsedByOtherUser,
20118 "set_profile_disallowed" => MembersSetProfileError::SetProfileDisallowed,
20119 "param_cannot_be_empty" => MembersSetProfileError::ParamCannotBeEmpty,
20120 "persistent_id_disabled" => MembersSetProfileError::PersistentIdDisabled,
20121 "persistent_id_used_by_other_user" => MembersSetProfileError::PersistentIdUsedByOtherUser,
20122 "directory_restricted_off" => MembersSetProfileError::DirectoryRestrictedOff,
20123 _ => MembersSetProfileError::Other,
20124 };
20125 crate::eat_json_fields(&mut map)?;
20126 Ok(value)
20127 }
20128 }
20129 const VARIANTS: &[&str] = &["user_not_found",
20130 "user_not_in_team",
20131 "external_id_and_new_external_id_unsafe",
20132 "no_new_data_specified",
20133 "email_reserved_for_other_user",
20134 "external_id_used_by_other_user",
20135 "set_profile_disallowed",
20136 "param_cannot_be_empty",
20137 "persistent_id_disabled",
20138 "persistent_id_used_by_other_user",
20139 "directory_restricted_off",
20140 "other"];
20141 deserializer.deserialize_struct("MembersSetProfileError", VARIANTS, EnumVisitor)
20142 }
20143}
20144
20145impl ::serde::ser::Serialize for MembersSetProfileError {
20146 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20147 use serde::ser::SerializeStruct;
20149 match self {
20150 MembersSetProfileError::UserNotFound => {
20151 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20153 s.serialize_field(".tag", "user_not_found")?;
20154 s.end()
20155 }
20156 MembersSetProfileError::UserNotInTeam => {
20157 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20159 s.serialize_field(".tag", "user_not_in_team")?;
20160 s.end()
20161 }
20162 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => {
20163 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20165 s.serialize_field(".tag", "external_id_and_new_external_id_unsafe")?;
20166 s.end()
20167 }
20168 MembersSetProfileError::NoNewDataSpecified => {
20169 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20171 s.serialize_field(".tag", "no_new_data_specified")?;
20172 s.end()
20173 }
20174 MembersSetProfileError::EmailReservedForOtherUser => {
20175 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20177 s.serialize_field(".tag", "email_reserved_for_other_user")?;
20178 s.end()
20179 }
20180 MembersSetProfileError::ExternalIdUsedByOtherUser => {
20181 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20183 s.serialize_field(".tag", "external_id_used_by_other_user")?;
20184 s.end()
20185 }
20186 MembersSetProfileError::SetProfileDisallowed => {
20187 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20189 s.serialize_field(".tag", "set_profile_disallowed")?;
20190 s.end()
20191 }
20192 MembersSetProfileError::ParamCannotBeEmpty => {
20193 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20195 s.serialize_field(".tag", "param_cannot_be_empty")?;
20196 s.end()
20197 }
20198 MembersSetProfileError::PersistentIdDisabled => {
20199 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20201 s.serialize_field(".tag", "persistent_id_disabled")?;
20202 s.end()
20203 }
20204 MembersSetProfileError::PersistentIdUsedByOtherUser => {
20205 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20207 s.serialize_field(".tag", "persistent_id_used_by_other_user")?;
20208 s.end()
20209 }
20210 MembersSetProfileError::DirectoryRestrictedOff => {
20211 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20213 s.serialize_field(".tag", "directory_restricted_off")?;
20214 s.end()
20215 }
20216 MembersSetProfileError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20217 }
20218 }
20219}
20220
20221impl ::std::error::Error for MembersSetProfileError {
20222}
20223
20224impl ::std::fmt::Display for MembersSetProfileError {
20225 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20226 match self {
20227 MembersSetProfileError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20228 MembersSetProfileError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20229 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => f.write_str("It is unsafe to use both external_id and new_external_id."),
20230 MembersSetProfileError::NoNewDataSpecified => f.write_str("None of new_email, new_given_name, new_surname, or new_external_id are specified."),
20231 MembersSetProfileError::EmailReservedForOtherUser => f.write_str("Email is already reserved for another user."),
20232 MembersSetProfileError::ExternalIdUsedByOtherUser => f.write_str("The external ID is already in use by another team member."),
20233 MembersSetProfileError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
20234 MembersSetProfileError::ParamCannotBeEmpty => f.write_str("Parameter new_email cannot be empty."),
20235 MembersSetProfileError::PersistentIdDisabled => f.write_str("Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information."),
20236 MembersSetProfileError::PersistentIdUsedByOtherUser => f.write_str("The persistent ID is already in use by another team member."),
20237 MembersSetProfileError::DirectoryRestrictedOff => f.write_str("Directory Restrictions option is not available."),
20238 _ => write!(f, "{:?}", *self),
20239 }
20240 }
20241}
20242
20243impl From<MemberSelectorError> for MembersSetProfileError {
20245 fn from(parent: MemberSelectorError) -> Self {
20246 match parent {
20247 MemberSelectorError::UserNotFound => MembersSetProfileError::UserNotFound,
20248 MemberSelectorError::UserNotInTeam => MembersSetProfileError::UserNotInTeam,
20249 }
20250 }
20251}
20252#[derive(Debug, Clone, PartialEq, Eq)]
20253#[non_exhaustive] pub struct MembersSetProfilePhotoArg {
20255 pub user: UserSelectorArg,
20257 pub photo: crate::types::account::PhotoSourceArg,
20259}
20260
20261impl MembersSetProfilePhotoArg {
20262 pub fn new(user: UserSelectorArg, photo: crate::types::account::PhotoSourceArg) -> Self {
20263 MembersSetProfilePhotoArg {
20264 user,
20265 photo,
20266 }
20267 }
20268}
20269
20270const MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user",
20271 "photo"];
20272impl MembersSetProfilePhotoArg {
20273 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20274 map: V,
20275 ) -> Result<MembersSetProfilePhotoArg, V::Error> {
20276 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20277 }
20278
20279 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20280 mut map: V,
20281 optional: bool,
20282 ) -> Result<Option<MembersSetProfilePhotoArg>, V::Error> {
20283 let mut field_user = None;
20284 let mut field_photo = None;
20285 let mut nothing = true;
20286 while let Some(key) = map.next_key::<&str>()? {
20287 nothing = false;
20288 match key {
20289 "user" => {
20290 if field_user.is_some() {
20291 return Err(::serde::de::Error::duplicate_field("user"));
20292 }
20293 field_user = Some(map.next_value()?);
20294 }
20295 "photo" => {
20296 if field_photo.is_some() {
20297 return Err(::serde::de::Error::duplicate_field("photo"));
20298 }
20299 field_photo = Some(map.next_value()?);
20300 }
20301 _ => {
20302 map.next_value::<::serde_json::Value>()?;
20304 }
20305 }
20306 }
20307 if optional && nothing {
20308 return Ok(None);
20309 }
20310 let result = MembersSetProfilePhotoArg {
20311 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
20312 photo: field_photo.ok_or_else(|| ::serde::de::Error::missing_field("photo"))?,
20313 };
20314 Ok(Some(result))
20315 }
20316
20317 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20318 &self,
20319 s: &mut S::SerializeStruct,
20320 ) -> Result<(), S::Error> {
20321 use serde::ser::SerializeStruct;
20322 s.serialize_field("user", &self.user)?;
20323 s.serialize_field("photo", &self.photo)?;
20324 Ok(())
20325 }
20326}
20327
20328impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoArg {
20329 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20330 use serde::de::{MapAccess, Visitor};
20332 struct StructVisitor;
20333 impl<'de> Visitor<'de> for StructVisitor {
20334 type Value = MembersSetProfilePhotoArg;
20335 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20336 f.write_str("a MembersSetProfilePhotoArg struct")
20337 }
20338 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20339 MembersSetProfilePhotoArg::internal_deserialize(map)
20340 }
20341 }
20342 deserializer.deserialize_struct("MembersSetProfilePhotoArg", MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
20343 }
20344}
20345
20346impl ::serde::ser::Serialize for MembersSetProfilePhotoArg {
20347 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20348 use serde::ser::SerializeStruct;
20350 let mut s = serializer.serialize_struct("MembersSetProfilePhotoArg", 2)?;
20351 self.internal_serialize::<S>(&mut s)?;
20352 s.end()
20353 }
20354}
20355
20356#[derive(Debug, Clone, PartialEq, Eq)]
20357#[non_exhaustive] pub enum MembersSetProfilePhotoError {
20359 UserNotFound,
20362 UserNotInTeam,
20364 SetProfileDisallowed,
20366 PhotoError(crate::types::account::SetProfilePhotoError),
20367 Other,
20370}
20371
20372impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoError {
20373 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20374 use serde::de::{self, MapAccess, Visitor};
20376 struct EnumVisitor;
20377 impl<'de> Visitor<'de> for EnumVisitor {
20378 type Value = MembersSetProfilePhotoError;
20379 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20380 f.write_str("a MembersSetProfilePhotoError structure")
20381 }
20382 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20383 let tag: &str = match map.next_key()? {
20384 Some(".tag") => map.next_value()?,
20385 _ => return Err(de::Error::missing_field(".tag"))
20386 };
20387 let value = match tag {
20388 "user_not_found" => MembersSetProfilePhotoError::UserNotFound,
20389 "user_not_in_team" => MembersSetProfilePhotoError::UserNotInTeam,
20390 "set_profile_disallowed" => MembersSetProfilePhotoError::SetProfileDisallowed,
20391 "photo_error" => {
20392 match map.next_key()? {
20393 Some("photo_error") => MembersSetProfilePhotoError::PhotoError(map.next_value()?),
20394 None => return Err(de::Error::missing_field("photo_error")),
20395 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
20396 }
20397 }
20398 _ => MembersSetProfilePhotoError::Other,
20399 };
20400 crate::eat_json_fields(&mut map)?;
20401 Ok(value)
20402 }
20403 }
20404 const VARIANTS: &[&str] = &["user_not_found",
20405 "user_not_in_team",
20406 "set_profile_disallowed",
20407 "photo_error",
20408 "other"];
20409 deserializer.deserialize_struct("MembersSetProfilePhotoError", VARIANTS, EnumVisitor)
20410 }
20411}
20412
20413impl ::serde::ser::Serialize for MembersSetProfilePhotoError {
20414 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20415 use serde::ser::SerializeStruct;
20417 match self {
20418 MembersSetProfilePhotoError::UserNotFound => {
20419 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
20421 s.serialize_field(".tag", "user_not_found")?;
20422 s.end()
20423 }
20424 MembersSetProfilePhotoError::UserNotInTeam => {
20425 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
20427 s.serialize_field(".tag", "user_not_in_team")?;
20428 s.end()
20429 }
20430 MembersSetProfilePhotoError::SetProfileDisallowed => {
20431 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
20433 s.serialize_field(".tag", "set_profile_disallowed")?;
20434 s.end()
20435 }
20436 MembersSetProfilePhotoError::PhotoError(x) => {
20437 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 2)?;
20439 s.serialize_field(".tag", "photo_error")?;
20440 s.serialize_field("photo_error", x)?;
20441 s.end()
20442 }
20443 MembersSetProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20444 }
20445 }
20446}
20447
20448impl ::std::error::Error for MembersSetProfilePhotoError {
20449 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
20450 match self {
20451 MembersSetProfilePhotoError::PhotoError(inner) => Some(inner),
20452 _ => None,
20453 }
20454 }
20455}
20456
20457impl ::std::fmt::Display for MembersSetProfilePhotoError {
20458 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20459 match self {
20460 MembersSetProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20461 MembersSetProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20462 MembersSetProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
20463 MembersSetProfilePhotoError::PhotoError(inner) => write!(f, "MembersSetProfilePhotoError: {}", inner),
20464 _ => write!(f, "{:?}", *self),
20465 }
20466 }
20467}
20468
20469impl From<MemberSelectorError> for MembersSetProfilePhotoError {
20471 fn from(parent: MemberSelectorError) -> Self {
20472 match parent {
20473 MemberSelectorError::UserNotFound => MembersSetProfilePhotoError::UserNotFound,
20474 MemberSelectorError::UserNotInTeam => MembersSetProfilePhotoError::UserNotInTeam,
20475 }
20476 }
20477}
20478#[derive(Debug, Clone, PartialEq, Eq)]
20479#[non_exhaustive] pub enum MembersSuspendError {
20481 UserNotFound,
20484 UserNotInTeam,
20486 SuspendInactiveUser,
20488 SuspendLastAdmin,
20490 TeamLicenseLimit,
20492 Other,
20495}
20496
20497impl<'de> ::serde::de::Deserialize<'de> for MembersSuspendError {
20498 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20499 use serde::de::{self, MapAccess, Visitor};
20501 struct EnumVisitor;
20502 impl<'de> Visitor<'de> for EnumVisitor {
20503 type Value = MembersSuspendError;
20504 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20505 f.write_str("a MembersSuspendError structure")
20506 }
20507 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20508 let tag: &str = match map.next_key()? {
20509 Some(".tag") => map.next_value()?,
20510 _ => return Err(de::Error::missing_field(".tag"))
20511 };
20512 let value = match tag {
20513 "user_not_found" => MembersSuspendError::UserNotFound,
20514 "user_not_in_team" => MembersSuspendError::UserNotInTeam,
20515 "suspend_inactive_user" => MembersSuspendError::SuspendInactiveUser,
20516 "suspend_last_admin" => MembersSuspendError::SuspendLastAdmin,
20517 "team_license_limit" => MembersSuspendError::TeamLicenseLimit,
20518 _ => MembersSuspendError::Other,
20519 };
20520 crate::eat_json_fields(&mut map)?;
20521 Ok(value)
20522 }
20523 }
20524 const VARIANTS: &[&str] = &["user_not_found",
20525 "user_not_in_team",
20526 "other",
20527 "suspend_inactive_user",
20528 "suspend_last_admin",
20529 "team_license_limit"];
20530 deserializer.deserialize_struct("MembersSuspendError", VARIANTS, EnumVisitor)
20531 }
20532}
20533
20534impl ::serde::ser::Serialize for MembersSuspendError {
20535 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20536 use serde::ser::SerializeStruct;
20538 match self {
20539 MembersSuspendError::UserNotFound => {
20540 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20542 s.serialize_field(".tag", "user_not_found")?;
20543 s.end()
20544 }
20545 MembersSuspendError::UserNotInTeam => {
20546 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20548 s.serialize_field(".tag", "user_not_in_team")?;
20549 s.end()
20550 }
20551 MembersSuspendError::SuspendInactiveUser => {
20552 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20554 s.serialize_field(".tag", "suspend_inactive_user")?;
20555 s.end()
20556 }
20557 MembersSuspendError::SuspendLastAdmin => {
20558 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20560 s.serialize_field(".tag", "suspend_last_admin")?;
20561 s.end()
20562 }
20563 MembersSuspendError::TeamLicenseLimit => {
20564 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20566 s.serialize_field(".tag", "team_license_limit")?;
20567 s.end()
20568 }
20569 MembersSuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20570 }
20571 }
20572}
20573
20574impl ::std::error::Error for MembersSuspendError {
20575}
20576
20577impl ::std::fmt::Display for MembersSuspendError {
20578 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20579 match self {
20580 MembersSuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20581 MembersSuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20582 MembersSuspendError::SuspendInactiveUser => f.write_str("The user is not active, so it cannot be suspended."),
20583 MembersSuspendError::SuspendLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be suspended."),
20584 MembersSuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
20585 _ => write!(f, "{:?}", *self),
20586 }
20587 }
20588}
20589
20590impl From<MembersDeactivateError> for MembersSuspendError {
20592 fn from(parent: MembersDeactivateError) -> Self {
20593 match parent {
20594 MembersDeactivateError::UserNotFound => MembersSuspendError::UserNotFound,
20595 MembersDeactivateError::UserNotInTeam => MembersSuspendError::UserNotInTeam,
20596 MembersDeactivateError::Other => MembersSuspendError::Other,
20597 }
20598 }
20599}
20600#[derive(Debug, Clone, PartialEq, Eq)]
20601#[non_exhaustive] pub enum MembersTransferFilesError {
20603 UserNotFound,
20606 UserNotInTeam,
20608 TransferInProgress,
20610 AlreadyTransferred,
20612 AlreadyTransferredOrDeleted,
20614 RemovedAndTransferDestShouldDiffer,
20616 RemovedAndTransferAdminShouldDiffer,
20618 TransferDestUserNotFound,
20620 TransferDestUserNotInTeam,
20622 TransferAdminUserNotInTeam,
20624 TransferAdminUserNotFound,
20626 UnspecifiedTransferAdminId,
20628 TransferAdminIsNotAdmin,
20630 RecipientNotVerified,
20632 Other,
20635}
20636
20637impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFilesError {
20638 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20639 use serde::de::{self, MapAccess, Visitor};
20641 struct EnumVisitor;
20642 impl<'de> Visitor<'de> for EnumVisitor {
20643 type Value = MembersTransferFilesError;
20644 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20645 f.write_str("a MembersTransferFilesError structure")
20646 }
20647 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20648 let tag: &str = match map.next_key()? {
20649 Some(".tag") => map.next_value()?,
20650 _ => return Err(de::Error::missing_field(".tag"))
20651 };
20652 let value = match tag {
20653 "user_not_found" => MembersTransferFilesError::UserNotFound,
20654 "user_not_in_team" => MembersTransferFilesError::UserNotInTeam,
20655 "transfer_in_progress" => MembersTransferFilesError::TransferInProgress,
20656 "already_transferred" => MembersTransferFilesError::AlreadyTransferred,
20657 "already_transferred_or_deleted" => MembersTransferFilesError::AlreadyTransferredOrDeleted,
20658 "removed_and_transfer_dest_should_differ" => MembersTransferFilesError::RemovedAndTransferDestShouldDiffer,
20659 "removed_and_transfer_admin_should_differ" => MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer,
20660 "transfer_dest_user_not_found" => MembersTransferFilesError::TransferDestUserNotFound,
20661 "transfer_dest_user_not_in_team" => MembersTransferFilesError::TransferDestUserNotInTeam,
20662 "transfer_admin_user_not_in_team" => MembersTransferFilesError::TransferAdminUserNotInTeam,
20663 "transfer_admin_user_not_found" => MembersTransferFilesError::TransferAdminUserNotFound,
20664 "unspecified_transfer_admin_id" => MembersTransferFilesError::UnspecifiedTransferAdminId,
20665 "transfer_admin_is_not_admin" => MembersTransferFilesError::TransferAdminIsNotAdmin,
20666 "recipient_not_verified" => MembersTransferFilesError::RecipientNotVerified,
20667 _ => MembersTransferFilesError::Other,
20668 };
20669 crate::eat_json_fields(&mut map)?;
20670 Ok(value)
20671 }
20672 }
20673 const VARIANTS: &[&str] = &["user_not_found",
20674 "user_not_in_team",
20675 "other",
20676 "transfer_in_progress",
20677 "already_transferred",
20678 "already_transferred_or_deleted",
20679 "removed_and_transfer_dest_should_differ",
20680 "removed_and_transfer_admin_should_differ",
20681 "transfer_dest_user_not_found",
20682 "transfer_dest_user_not_in_team",
20683 "transfer_admin_user_not_in_team",
20684 "transfer_admin_user_not_found",
20685 "unspecified_transfer_admin_id",
20686 "transfer_admin_is_not_admin",
20687 "recipient_not_verified"];
20688 deserializer.deserialize_struct("MembersTransferFilesError", VARIANTS, EnumVisitor)
20689 }
20690}
20691
20692impl ::serde::ser::Serialize for MembersTransferFilesError {
20693 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20694 use serde::ser::SerializeStruct;
20696 match self {
20697 MembersTransferFilesError::UserNotFound => {
20698 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20700 s.serialize_field(".tag", "user_not_found")?;
20701 s.end()
20702 }
20703 MembersTransferFilesError::UserNotInTeam => {
20704 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20706 s.serialize_field(".tag", "user_not_in_team")?;
20707 s.end()
20708 }
20709 MembersTransferFilesError::TransferInProgress => {
20710 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20712 s.serialize_field(".tag", "transfer_in_progress")?;
20713 s.end()
20714 }
20715 MembersTransferFilesError::AlreadyTransferred => {
20716 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20718 s.serialize_field(".tag", "already_transferred")?;
20719 s.end()
20720 }
20721 MembersTransferFilesError::AlreadyTransferredOrDeleted => {
20722 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20724 s.serialize_field(".tag", "already_transferred_or_deleted")?;
20725 s.end()
20726 }
20727 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => {
20728 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20730 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
20731 s.end()
20732 }
20733 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => {
20734 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20736 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
20737 s.end()
20738 }
20739 MembersTransferFilesError::TransferDestUserNotFound => {
20740 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20742 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
20743 s.end()
20744 }
20745 MembersTransferFilesError::TransferDestUserNotInTeam => {
20746 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20748 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
20749 s.end()
20750 }
20751 MembersTransferFilesError::TransferAdminUserNotInTeam => {
20752 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20754 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
20755 s.end()
20756 }
20757 MembersTransferFilesError::TransferAdminUserNotFound => {
20758 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20760 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
20761 s.end()
20762 }
20763 MembersTransferFilesError::UnspecifiedTransferAdminId => {
20764 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20766 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
20767 s.end()
20768 }
20769 MembersTransferFilesError::TransferAdminIsNotAdmin => {
20770 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20772 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
20773 s.end()
20774 }
20775 MembersTransferFilesError::RecipientNotVerified => {
20776 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20778 s.serialize_field(".tag", "recipient_not_verified")?;
20779 s.end()
20780 }
20781 MembersTransferFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20782 }
20783 }
20784}
20785
20786impl ::std::error::Error for MembersTransferFilesError {
20787}
20788
20789impl ::std::fmt::Display for MembersTransferFilesError {
20790 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20791 match self {
20792 MembersTransferFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20793 MembersTransferFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20794 MembersTransferFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
20795 MembersTransferFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
20796 MembersTransferFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
20797 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
20798 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
20799 MembersTransferFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
20800 MembersTransferFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
20801 MembersTransferFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
20802 MembersTransferFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
20803 MembersTransferFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
20804 MembersTransferFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
20805 MembersTransferFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
20806 _ => write!(f, "{:?}", *self),
20807 }
20808 }
20809}
20810
20811impl From<MembersPermanentlyDeleteFilesError> for MembersTransferFilesError {
20813 fn from(parent: MembersPermanentlyDeleteFilesError) -> Self {
20814 match parent {
20815 MembersPermanentlyDeleteFilesError::UserNotFound => MembersTransferFilesError::UserNotFound,
20816 MembersPermanentlyDeleteFilesError::UserNotInTeam => MembersTransferFilesError::UserNotInTeam,
20817 MembersPermanentlyDeleteFilesError::Other => MembersTransferFilesError::Other,
20818 MembersPermanentlyDeleteFilesError::TransferInProgress => MembersTransferFilesError::TransferInProgress,
20819 MembersPermanentlyDeleteFilesError::AlreadyTransferred => MembersTransferFilesError::AlreadyTransferred,
20820 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => MembersTransferFilesError::AlreadyTransferredOrDeleted,
20821 }
20822 }
20823}
20824#[derive(Debug, Clone, PartialEq, Eq)]
20825#[non_exhaustive] pub enum MembersTransferFormerMembersFilesError {
20827 UserNotFound,
20830 UserNotInTeam,
20832 TransferInProgress,
20834 AlreadyTransferred,
20836 AlreadyTransferredOrDeleted,
20838 RemovedAndTransferDestShouldDiffer,
20840 RemovedAndTransferAdminShouldDiffer,
20842 TransferDestUserNotFound,
20844 TransferDestUserNotInTeam,
20846 TransferAdminUserNotInTeam,
20848 TransferAdminUserNotFound,
20850 UnspecifiedTransferAdminId,
20852 TransferAdminIsNotAdmin,
20854 RecipientNotVerified,
20856 UserDataIsBeingTransferred,
20858 UserNotRemoved,
20860 UserDataCannotBeTransferred,
20862 UserDataAlreadyTransferred,
20864 Other,
20867}
20868
20869impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFormerMembersFilesError {
20870 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20871 use serde::de::{self, MapAccess, Visitor};
20873 struct EnumVisitor;
20874 impl<'de> Visitor<'de> for EnumVisitor {
20875 type Value = MembersTransferFormerMembersFilesError;
20876 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20877 f.write_str("a MembersTransferFormerMembersFilesError structure")
20878 }
20879 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20880 let tag: &str = match map.next_key()? {
20881 Some(".tag") => map.next_value()?,
20882 _ => return Err(de::Error::missing_field(".tag"))
20883 };
20884 let value = match tag {
20885 "user_not_found" => MembersTransferFormerMembersFilesError::UserNotFound,
20886 "user_not_in_team" => MembersTransferFormerMembersFilesError::UserNotInTeam,
20887 "transfer_in_progress" => MembersTransferFormerMembersFilesError::TransferInProgress,
20888 "already_transferred" => MembersTransferFormerMembersFilesError::AlreadyTransferred,
20889 "already_transferred_or_deleted" => MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted,
20890 "removed_and_transfer_dest_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
20891 "removed_and_transfer_admin_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
20892 "transfer_dest_user_not_found" => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
20893 "transfer_dest_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
20894 "transfer_admin_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
20895 "transfer_admin_user_not_found" => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
20896 "unspecified_transfer_admin_id" => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
20897 "transfer_admin_is_not_admin" => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
20898 "recipient_not_verified" => MembersTransferFormerMembersFilesError::RecipientNotVerified,
20899 "user_data_is_being_transferred" => MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred,
20900 "user_not_removed" => MembersTransferFormerMembersFilesError::UserNotRemoved,
20901 "user_data_cannot_be_transferred" => MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred,
20902 "user_data_already_transferred" => MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred,
20903 _ => MembersTransferFormerMembersFilesError::Other,
20904 };
20905 crate::eat_json_fields(&mut map)?;
20906 Ok(value)
20907 }
20908 }
20909 const VARIANTS: &[&str] = &["user_not_found",
20910 "user_not_in_team",
20911 "other",
20912 "transfer_in_progress",
20913 "already_transferred",
20914 "already_transferred_or_deleted",
20915 "removed_and_transfer_dest_should_differ",
20916 "removed_and_transfer_admin_should_differ",
20917 "transfer_dest_user_not_found",
20918 "transfer_dest_user_not_in_team",
20919 "transfer_admin_user_not_in_team",
20920 "transfer_admin_user_not_found",
20921 "unspecified_transfer_admin_id",
20922 "transfer_admin_is_not_admin",
20923 "recipient_not_verified",
20924 "user_data_is_being_transferred",
20925 "user_not_removed",
20926 "user_data_cannot_be_transferred",
20927 "user_data_already_transferred"];
20928 deserializer.deserialize_struct("MembersTransferFormerMembersFilesError", VARIANTS, EnumVisitor)
20929 }
20930}
20931
20932impl ::serde::ser::Serialize for MembersTransferFormerMembersFilesError {
20933 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20934 use serde::ser::SerializeStruct;
20936 match self {
20937 MembersTransferFormerMembersFilesError::UserNotFound => {
20938 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20940 s.serialize_field(".tag", "user_not_found")?;
20941 s.end()
20942 }
20943 MembersTransferFormerMembersFilesError::UserNotInTeam => {
20944 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20946 s.serialize_field(".tag", "user_not_in_team")?;
20947 s.end()
20948 }
20949 MembersTransferFormerMembersFilesError::TransferInProgress => {
20950 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20952 s.serialize_field(".tag", "transfer_in_progress")?;
20953 s.end()
20954 }
20955 MembersTransferFormerMembersFilesError::AlreadyTransferred => {
20956 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20958 s.serialize_field(".tag", "already_transferred")?;
20959 s.end()
20960 }
20961 MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted => {
20962 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20964 s.serialize_field(".tag", "already_transferred_or_deleted")?;
20965 s.end()
20966 }
20967 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => {
20968 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20970 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
20971 s.end()
20972 }
20973 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => {
20974 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20976 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
20977 s.end()
20978 }
20979 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => {
20980 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20982 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
20983 s.end()
20984 }
20985 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => {
20986 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20988 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
20989 s.end()
20990 }
20991 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => {
20992 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20994 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
20995 s.end()
20996 }
20997 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => {
20998 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21000 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
21001 s.end()
21002 }
21003 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => {
21004 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21006 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
21007 s.end()
21008 }
21009 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => {
21010 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21012 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
21013 s.end()
21014 }
21015 MembersTransferFormerMembersFilesError::RecipientNotVerified => {
21016 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21018 s.serialize_field(".tag", "recipient_not_verified")?;
21019 s.end()
21020 }
21021 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => {
21022 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21024 s.serialize_field(".tag", "user_data_is_being_transferred")?;
21025 s.end()
21026 }
21027 MembersTransferFormerMembersFilesError::UserNotRemoved => {
21028 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21030 s.serialize_field(".tag", "user_not_removed")?;
21031 s.end()
21032 }
21033 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => {
21034 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21036 s.serialize_field(".tag", "user_data_cannot_be_transferred")?;
21037 s.end()
21038 }
21039 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => {
21040 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21042 s.serialize_field(".tag", "user_data_already_transferred")?;
21043 s.end()
21044 }
21045 MembersTransferFormerMembersFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21046 }
21047 }
21048}
21049
21050impl ::std::error::Error for MembersTransferFormerMembersFilesError {
21051}
21052
21053impl ::std::fmt::Display for MembersTransferFormerMembersFilesError {
21054 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21055 match self {
21056 MembersTransferFormerMembersFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21057 MembersTransferFormerMembersFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21058 MembersTransferFormerMembersFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
21059 MembersTransferFormerMembersFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
21060 MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
21061 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
21062 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
21063 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
21064 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
21065 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
21066 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
21067 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
21068 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
21069 MembersTransferFormerMembersFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
21070 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => f.write_str("The user's data is being transferred. Please wait some time before retrying."),
21071 MembersTransferFormerMembersFilesError::UserNotRemoved => f.write_str("No matching removed user found for the argument user."),
21072 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => f.write_str("User files aren't transferable anymore."),
21073 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => f.write_str("User's data has already been transferred to another user."),
21074 _ => write!(f, "{:?}", *self),
21075 }
21076 }
21077}
21078
21079impl From<MembersTransferFilesError> for MembersTransferFormerMembersFilesError {
21081 fn from(parent: MembersTransferFilesError) -> Self {
21082 match parent {
21083 MembersTransferFilesError::UserNotFound => MembersTransferFormerMembersFilesError::UserNotFound,
21084 MembersTransferFilesError::UserNotInTeam => MembersTransferFormerMembersFilesError::UserNotInTeam,
21085 MembersTransferFilesError::Other => MembersTransferFormerMembersFilesError::Other,
21086 MembersTransferFilesError::TransferInProgress => MembersTransferFormerMembersFilesError::TransferInProgress,
21087 MembersTransferFilesError::AlreadyTransferred => MembersTransferFormerMembersFilesError::AlreadyTransferred,
21088 MembersTransferFilesError::AlreadyTransferredOrDeleted => MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted,
21089 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
21090 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
21091 MembersTransferFilesError::TransferDestUserNotFound => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
21092 MembersTransferFilesError::TransferDestUserNotInTeam => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
21093 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
21094 MembersTransferFilesError::TransferAdminUserNotFound => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
21095 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
21096 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
21097 MembersTransferFilesError::RecipientNotVerified => MembersTransferFormerMembersFilesError::RecipientNotVerified,
21098 }
21099 }
21100}
21101#[derive(Debug, Clone, PartialEq, Eq)]
21104#[non_exhaustive] pub struct MembersUnsuspendArg {
21106 pub user: UserSelectorArg,
21108}
21109
21110impl MembersUnsuspendArg {
21111 pub fn new(user: UserSelectorArg) -> Self {
21112 MembersUnsuspendArg {
21113 user,
21114 }
21115 }
21116}
21117
21118const MEMBERS_UNSUSPEND_ARG_FIELDS: &[&str] = &["user"];
21119impl MembersUnsuspendArg {
21120 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21121 map: V,
21122 ) -> Result<MembersUnsuspendArg, V::Error> {
21123 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21124 }
21125
21126 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21127 mut map: V,
21128 optional: bool,
21129 ) -> Result<Option<MembersUnsuspendArg>, V::Error> {
21130 let mut field_user = None;
21131 let mut nothing = true;
21132 while let Some(key) = map.next_key::<&str>()? {
21133 nothing = false;
21134 match key {
21135 "user" => {
21136 if field_user.is_some() {
21137 return Err(::serde::de::Error::duplicate_field("user"));
21138 }
21139 field_user = Some(map.next_value()?);
21140 }
21141 _ => {
21142 map.next_value::<::serde_json::Value>()?;
21144 }
21145 }
21146 }
21147 if optional && nothing {
21148 return Ok(None);
21149 }
21150 let result = MembersUnsuspendArg {
21151 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
21152 };
21153 Ok(Some(result))
21154 }
21155
21156 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21157 &self,
21158 s: &mut S::SerializeStruct,
21159 ) -> Result<(), S::Error> {
21160 use serde::ser::SerializeStruct;
21161 s.serialize_field("user", &self.user)?;
21162 Ok(())
21163 }
21164}
21165
21166impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendArg {
21167 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21168 use serde::de::{MapAccess, Visitor};
21170 struct StructVisitor;
21171 impl<'de> Visitor<'de> for StructVisitor {
21172 type Value = MembersUnsuspendArg;
21173 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21174 f.write_str("a MembersUnsuspendArg struct")
21175 }
21176 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21177 MembersUnsuspendArg::internal_deserialize(map)
21178 }
21179 }
21180 deserializer.deserialize_struct("MembersUnsuspendArg", MEMBERS_UNSUSPEND_ARG_FIELDS, StructVisitor)
21181 }
21182}
21183
21184impl ::serde::ser::Serialize for MembersUnsuspendArg {
21185 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21186 use serde::ser::SerializeStruct;
21188 let mut s = serializer.serialize_struct("MembersUnsuspendArg", 1)?;
21189 self.internal_serialize::<S>(&mut s)?;
21190 s.end()
21191 }
21192}
21193
21194#[derive(Debug, Clone, PartialEq, Eq)]
21195#[non_exhaustive] pub enum MembersUnsuspendError {
21197 UserNotFound,
21200 UserNotInTeam,
21202 UnsuspendNonSuspendedMember,
21204 TeamLicenseLimit,
21206 Other,
21209}
21210
21211impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendError {
21212 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21213 use serde::de::{self, MapAccess, Visitor};
21215 struct EnumVisitor;
21216 impl<'de> Visitor<'de> for EnumVisitor {
21217 type Value = MembersUnsuspendError;
21218 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21219 f.write_str("a MembersUnsuspendError structure")
21220 }
21221 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21222 let tag: &str = match map.next_key()? {
21223 Some(".tag") => map.next_value()?,
21224 _ => return Err(de::Error::missing_field(".tag"))
21225 };
21226 let value = match tag {
21227 "user_not_found" => MembersUnsuspendError::UserNotFound,
21228 "user_not_in_team" => MembersUnsuspendError::UserNotInTeam,
21229 "unsuspend_non_suspended_member" => MembersUnsuspendError::UnsuspendNonSuspendedMember,
21230 "team_license_limit" => MembersUnsuspendError::TeamLicenseLimit,
21231 _ => MembersUnsuspendError::Other,
21232 };
21233 crate::eat_json_fields(&mut map)?;
21234 Ok(value)
21235 }
21236 }
21237 const VARIANTS: &[&str] = &["user_not_found",
21238 "user_not_in_team",
21239 "other",
21240 "unsuspend_non_suspended_member",
21241 "team_license_limit"];
21242 deserializer.deserialize_struct("MembersUnsuspendError", VARIANTS, EnumVisitor)
21243 }
21244}
21245
21246impl ::serde::ser::Serialize for MembersUnsuspendError {
21247 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21248 use serde::ser::SerializeStruct;
21250 match self {
21251 MembersUnsuspendError::UserNotFound => {
21252 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21254 s.serialize_field(".tag", "user_not_found")?;
21255 s.end()
21256 }
21257 MembersUnsuspendError::UserNotInTeam => {
21258 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21260 s.serialize_field(".tag", "user_not_in_team")?;
21261 s.end()
21262 }
21263 MembersUnsuspendError::UnsuspendNonSuspendedMember => {
21264 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21266 s.serialize_field(".tag", "unsuspend_non_suspended_member")?;
21267 s.end()
21268 }
21269 MembersUnsuspendError::TeamLicenseLimit => {
21270 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21272 s.serialize_field(".tag", "team_license_limit")?;
21273 s.end()
21274 }
21275 MembersUnsuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21276 }
21277 }
21278}
21279
21280impl ::std::error::Error for MembersUnsuspendError {
21281}
21282
21283impl ::std::fmt::Display for MembersUnsuspendError {
21284 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21285 match self {
21286 MembersUnsuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21287 MembersUnsuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21288 MembersUnsuspendError::UnsuspendNonSuspendedMember => f.write_str("The user is unsuspended, so it cannot be unsuspended again."),
21289 MembersUnsuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
21290 _ => write!(f, "{:?}", *self),
21291 }
21292 }
21293}
21294
21295impl From<MembersDeactivateError> for MembersUnsuspendError {
21297 fn from(parent: MembersDeactivateError) -> Self {
21298 match parent {
21299 MembersDeactivateError::UserNotFound => MembersUnsuspendError::UserNotFound,
21300 MembersDeactivateError::UserNotInTeam => MembersUnsuspendError::UserNotInTeam,
21301 MembersDeactivateError::Other => MembersUnsuspendError::Other,
21302 }
21303 }
21304}
21305#[derive(Debug, Clone, PartialEq, Eq)]
21306#[non_exhaustive] pub enum MobileClientPlatform {
21308 Iphone,
21310 Ipad,
21312 Android,
21314 WindowsPhone,
21316 Blackberry,
21318 Other,
21321}
21322
21323impl<'de> ::serde::de::Deserialize<'de> for MobileClientPlatform {
21324 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21325 use serde::de::{self, MapAccess, Visitor};
21327 struct EnumVisitor;
21328 impl<'de> Visitor<'de> for EnumVisitor {
21329 type Value = MobileClientPlatform;
21330 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21331 f.write_str("a MobileClientPlatform structure")
21332 }
21333 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21334 let tag: &str = match map.next_key()? {
21335 Some(".tag") => map.next_value()?,
21336 _ => return Err(de::Error::missing_field(".tag"))
21337 };
21338 let value = match tag {
21339 "iphone" => MobileClientPlatform::Iphone,
21340 "ipad" => MobileClientPlatform::Ipad,
21341 "android" => MobileClientPlatform::Android,
21342 "windows_phone" => MobileClientPlatform::WindowsPhone,
21343 "blackberry" => MobileClientPlatform::Blackberry,
21344 _ => MobileClientPlatform::Other,
21345 };
21346 crate::eat_json_fields(&mut map)?;
21347 Ok(value)
21348 }
21349 }
21350 const VARIANTS: &[&str] = &["iphone",
21351 "ipad",
21352 "android",
21353 "windows_phone",
21354 "blackberry",
21355 "other"];
21356 deserializer.deserialize_struct("MobileClientPlatform", VARIANTS, EnumVisitor)
21357 }
21358}
21359
21360impl ::serde::ser::Serialize for MobileClientPlatform {
21361 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21362 use serde::ser::SerializeStruct;
21364 match self {
21365 MobileClientPlatform::Iphone => {
21366 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21368 s.serialize_field(".tag", "iphone")?;
21369 s.end()
21370 }
21371 MobileClientPlatform::Ipad => {
21372 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21374 s.serialize_field(".tag", "ipad")?;
21375 s.end()
21376 }
21377 MobileClientPlatform::Android => {
21378 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21380 s.serialize_field(".tag", "android")?;
21381 s.end()
21382 }
21383 MobileClientPlatform::WindowsPhone => {
21384 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21386 s.serialize_field(".tag", "windows_phone")?;
21387 s.end()
21388 }
21389 MobileClientPlatform::Blackberry => {
21390 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21392 s.serialize_field(".tag", "blackberry")?;
21393 s.end()
21394 }
21395 MobileClientPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21396 }
21397 }
21398}
21399
21400#[derive(Debug, Clone, PartialEq, Eq)]
21402#[non_exhaustive] pub struct MobileClientSession {
21404 pub session_id: String,
21406 pub device_name: String,
21408 pub client_type: MobileClientPlatform,
21410 pub ip_address: Option<String>,
21412 pub country: Option<String>,
21414 pub created: Option<crate::types::common::DropboxTimestamp>,
21416 pub updated: Option<crate::types::common::DropboxTimestamp>,
21418 pub client_version: Option<String>,
21420 pub os_version: Option<String>,
21422 pub last_carrier: Option<String>,
21424}
21425
21426impl MobileClientSession {
21427 pub fn new(
21428 session_id: String,
21429 device_name: String,
21430 client_type: MobileClientPlatform,
21431 ) -> Self {
21432 MobileClientSession {
21433 session_id,
21434 device_name,
21435 client_type,
21436 ip_address: None,
21437 country: None,
21438 created: None,
21439 updated: None,
21440 client_version: None,
21441 os_version: None,
21442 last_carrier: None,
21443 }
21444 }
21445
21446 pub fn with_ip_address(mut self, value: String) -> Self {
21447 self.ip_address = Some(value);
21448 self
21449 }
21450
21451 pub fn with_country(mut self, value: String) -> Self {
21452 self.country = Some(value);
21453 self
21454 }
21455
21456 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
21457 self.created = Some(value);
21458 self
21459 }
21460
21461 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
21462 self.updated = Some(value);
21463 self
21464 }
21465
21466 pub fn with_client_version(mut self, value: String) -> Self {
21467 self.client_version = Some(value);
21468 self
21469 }
21470
21471 pub fn with_os_version(mut self, value: String) -> Self {
21472 self.os_version = Some(value);
21473 self
21474 }
21475
21476 pub fn with_last_carrier(mut self, value: String) -> Self {
21477 self.last_carrier = Some(value);
21478 self
21479 }
21480}
21481
21482const MOBILE_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
21483 "device_name",
21484 "client_type",
21485 "ip_address",
21486 "country",
21487 "created",
21488 "updated",
21489 "client_version",
21490 "os_version",
21491 "last_carrier"];
21492impl MobileClientSession {
21493 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21494 map: V,
21495 ) -> Result<MobileClientSession, V::Error> {
21496 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21497 }
21498
21499 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21500 mut map: V,
21501 optional: bool,
21502 ) -> Result<Option<MobileClientSession>, V::Error> {
21503 let mut field_session_id = None;
21504 let mut field_device_name = None;
21505 let mut field_client_type = None;
21506 let mut field_ip_address = None;
21507 let mut field_country = None;
21508 let mut field_created = None;
21509 let mut field_updated = None;
21510 let mut field_client_version = None;
21511 let mut field_os_version = None;
21512 let mut field_last_carrier = None;
21513 let mut nothing = true;
21514 while let Some(key) = map.next_key::<&str>()? {
21515 nothing = false;
21516 match key {
21517 "session_id" => {
21518 if field_session_id.is_some() {
21519 return Err(::serde::de::Error::duplicate_field("session_id"));
21520 }
21521 field_session_id = Some(map.next_value()?);
21522 }
21523 "device_name" => {
21524 if field_device_name.is_some() {
21525 return Err(::serde::de::Error::duplicate_field("device_name"));
21526 }
21527 field_device_name = Some(map.next_value()?);
21528 }
21529 "client_type" => {
21530 if field_client_type.is_some() {
21531 return Err(::serde::de::Error::duplicate_field("client_type"));
21532 }
21533 field_client_type = Some(map.next_value()?);
21534 }
21535 "ip_address" => {
21536 if field_ip_address.is_some() {
21537 return Err(::serde::de::Error::duplicate_field("ip_address"));
21538 }
21539 field_ip_address = Some(map.next_value()?);
21540 }
21541 "country" => {
21542 if field_country.is_some() {
21543 return Err(::serde::de::Error::duplicate_field("country"));
21544 }
21545 field_country = Some(map.next_value()?);
21546 }
21547 "created" => {
21548 if field_created.is_some() {
21549 return Err(::serde::de::Error::duplicate_field("created"));
21550 }
21551 field_created = Some(map.next_value()?);
21552 }
21553 "updated" => {
21554 if field_updated.is_some() {
21555 return Err(::serde::de::Error::duplicate_field("updated"));
21556 }
21557 field_updated = Some(map.next_value()?);
21558 }
21559 "client_version" => {
21560 if field_client_version.is_some() {
21561 return Err(::serde::de::Error::duplicate_field("client_version"));
21562 }
21563 field_client_version = Some(map.next_value()?);
21564 }
21565 "os_version" => {
21566 if field_os_version.is_some() {
21567 return Err(::serde::de::Error::duplicate_field("os_version"));
21568 }
21569 field_os_version = Some(map.next_value()?);
21570 }
21571 "last_carrier" => {
21572 if field_last_carrier.is_some() {
21573 return Err(::serde::de::Error::duplicate_field("last_carrier"));
21574 }
21575 field_last_carrier = Some(map.next_value()?);
21576 }
21577 _ => {
21578 map.next_value::<::serde_json::Value>()?;
21580 }
21581 }
21582 }
21583 if optional && nothing {
21584 return Ok(None);
21585 }
21586 let result = MobileClientSession {
21587 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
21588 device_name: field_device_name.ok_or_else(|| ::serde::de::Error::missing_field("device_name"))?,
21589 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
21590 ip_address: field_ip_address.and_then(Option::flatten),
21591 country: field_country.and_then(Option::flatten),
21592 created: field_created.and_then(Option::flatten),
21593 updated: field_updated.and_then(Option::flatten),
21594 client_version: field_client_version.and_then(Option::flatten),
21595 os_version: field_os_version.and_then(Option::flatten),
21596 last_carrier: field_last_carrier.and_then(Option::flatten),
21597 };
21598 Ok(Some(result))
21599 }
21600
21601 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21602 &self,
21603 s: &mut S::SerializeStruct,
21604 ) -> Result<(), S::Error> {
21605 use serde::ser::SerializeStruct;
21606 s.serialize_field("session_id", &self.session_id)?;
21607 s.serialize_field("device_name", &self.device_name)?;
21608 s.serialize_field("client_type", &self.client_type)?;
21609 if let Some(val) = &self.ip_address {
21610 s.serialize_field("ip_address", val)?;
21611 }
21612 if let Some(val) = &self.country {
21613 s.serialize_field("country", val)?;
21614 }
21615 if let Some(val) = &self.created {
21616 s.serialize_field("created", val)?;
21617 }
21618 if let Some(val) = &self.updated {
21619 s.serialize_field("updated", val)?;
21620 }
21621 if let Some(val) = &self.client_version {
21622 s.serialize_field("client_version", val)?;
21623 }
21624 if let Some(val) = &self.os_version {
21625 s.serialize_field("os_version", val)?;
21626 }
21627 if let Some(val) = &self.last_carrier {
21628 s.serialize_field("last_carrier", val)?;
21629 }
21630 Ok(())
21631 }
21632}
21633
21634impl<'de> ::serde::de::Deserialize<'de> for MobileClientSession {
21635 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21636 use serde::de::{MapAccess, Visitor};
21638 struct StructVisitor;
21639 impl<'de> Visitor<'de> for StructVisitor {
21640 type Value = MobileClientSession;
21641 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21642 f.write_str("a MobileClientSession struct")
21643 }
21644 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21645 MobileClientSession::internal_deserialize(map)
21646 }
21647 }
21648 deserializer.deserialize_struct("MobileClientSession", MOBILE_CLIENT_SESSION_FIELDS, StructVisitor)
21649 }
21650}
21651
21652impl ::serde::ser::Serialize for MobileClientSession {
21653 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21654 use serde::ser::SerializeStruct;
21656 let mut s = serializer.serialize_struct("MobileClientSession", 10)?;
21657 self.internal_serialize::<S>(&mut s)?;
21658 s.end()
21659 }
21660}
21661
21662impl From<MobileClientSession> for DeviceSession {
21664 fn from(subtype: MobileClientSession) -> Self {
21665 Self {
21666 session_id: subtype.session_id,
21667 ip_address: subtype.ip_address,
21668 country: subtype.country,
21669 created: subtype.created,
21670 updated: subtype.updated,
21671 }
21672 }
21673}
21674#[derive(Debug, Clone, PartialEq, Eq)]
21676#[non_exhaustive] pub struct NamespaceMetadata {
21678 pub name: String,
21680 pub namespace_id: crate::types::common::SharedFolderId,
21682 pub namespace_type: NamespaceType,
21684 pub team_member_id: Option<crate::types::team_common::TeamMemberId>,
21687 pub quota_limit: i64,
21689}
21690
21691impl NamespaceMetadata {
21692 pub fn new(
21693 name: String,
21694 namespace_id: crate::types::common::SharedFolderId,
21695 namespace_type: NamespaceType,
21696 ) -> Self {
21697 NamespaceMetadata {
21698 name,
21699 namespace_id,
21700 namespace_type,
21701 team_member_id: None,
21702 quota_limit: 0,
21703 }
21704 }
21705
21706 pub fn with_team_member_id(mut self, value: crate::types::team_common::TeamMemberId) -> Self {
21707 self.team_member_id = Some(value);
21708 self
21709 }
21710
21711 pub fn with_quota_limit(mut self, value: i64) -> Self {
21712 self.quota_limit = value;
21713 self
21714 }
21715}
21716
21717const NAMESPACE_METADATA_FIELDS: &[&str] = &["name",
21718 "namespace_id",
21719 "namespace_type",
21720 "team_member_id",
21721 "quota_limit"];
21722impl NamespaceMetadata {
21723 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21724 map: V,
21725 ) -> Result<NamespaceMetadata, V::Error> {
21726 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21727 }
21728
21729 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21730 mut map: V,
21731 optional: bool,
21732 ) -> Result<Option<NamespaceMetadata>, V::Error> {
21733 let mut field_name = None;
21734 let mut field_namespace_id = None;
21735 let mut field_namespace_type = None;
21736 let mut field_team_member_id = None;
21737 let mut field_quota_limit = None;
21738 let mut nothing = true;
21739 while let Some(key) = map.next_key::<&str>()? {
21740 nothing = false;
21741 match key {
21742 "name" => {
21743 if field_name.is_some() {
21744 return Err(::serde::de::Error::duplicate_field("name"));
21745 }
21746 field_name = Some(map.next_value()?);
21747 }
21748 "namespace_id" => {
21749 if field_namespace_id.is_some() {
21750 return Err(::serde::de::Error::duplicate_field("namespace_id"));
21751 }
21752 field_namespace_id = Some(map.next_value()?);
21753 }
21754 "namespace_type" => {
21755 if field_namespace_type.is_some() {
21756 return Err(::serde::de::Error::duplicate_field("namespace_type"));
21757 }
21758 field_namespace_type = Some(map.next_value()?);
21759 }
21760 "team_member_id" => {
21761 if field_team_member_id.is_some() {
21762 return Err(::serde::de::Error::duplicate_field("team_member_id"));
21763 }
21764 field_team_member_id = Some(map.next_value()?);
21765 }
21766 "quota_limit" => {
21767 if field_quota_limit.is_some() {
21768 return Err(::serde::de::Error::duplicate_field("quota_limit"));
21769 }
21770 field_quota_limit = Some(map.next_value()?);
21771 }
21772 _ => {
21773 map.next_value::<::serde_json::Value>()?;
21775 }
21776 }
21777 }
21778 if optional && nothing {
21779 return Ok(None);
21780 }
21781 let result = NamespaceMetadata {
21782 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
21783 namespace_id: field_namespace_id.ok_or_else(|| ::serde::de::Error::missing_field("namespace_id"))?,
21784 namespace_type: field_namespace_type.ok_or_else(|| ::serde::de::Error::missing_field("namespace_type"))?,
21785 team_member_id: field_team_member_id.and_then(Option::flatten),
21786 quota_limit: field_quota_limit.unwrap_or(0),
21787 };
21788 Ok(Some(result))
21789 }
21790
21791 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21792 &self,
21793 s: &mut S::SerializeStruct,
21794 ) -> Result<(), S::Error> {
21795 use serde::ser::SerializeStruct;
21796 s.serialize_field("name", &self.name)?;
21797 s.serialize_field("namespace_id", &self.namespace_id)?;
21798 s.serialize_field("namespace_type", &self.namespace_type)?;
21799 if let Some(val) = &self.team_member_id {
21800 s.serialize_field("team_member_id", val)?;
21801 }
21802 if self.quota_limit != 0 {
21803 s.serialize_field("quota_limit", &self.quota_limit)?;
21804 }
21805 Ok(())
21806 }
21807}
21808
21809impl<'de> ::serde::de::Deserialize<'de> for NamespaceMetadata {
21810 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21811 use serde::de::{MapAccess, Visitor};
21813 struct StructVisitor;
21814 impl<'de> Visitor<'de> for StructVisitor {
21815 type Value = NamespaceMetadata;
21816 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21817 f.write_str("a NamespaceMetadata struct")
21818 }
21819 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21820 NamespaceMetadata::internal_deserialize(map)
21821 }
21822 }
21823 deserializer.deserialize_struct("NamespaceMetadata", NAMESPACE_METADATA_FIELDS, StructVisitor)
21824 }
21825}
21826
21827impl ::serde::ser::Serialize for NamespaceMetadata {
21828 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21829 use serde::ser::SerializeStruct;
21831 let mut s = serializer.serialize_struct("NamespaceMetadata", 5)?;
21832 self.internal_serialize::<S>(&mut s)?;
21833 s.end()
21834 }
21835}
21836
21837#[derive(Debug, Clone, PartialEq, Eq)]
21838#[non_exhaustive] pub enum NamespaceType {
21840 AppFolder,
21842 SharedFolder,
21844 TeamFolder,
21846 TeamMemberFolder,
21848 TeamMemberRoot,
21850 Other,
21853}
21854
21855impl<'de> ::serde::de::Deserialize<'de> for NamespaceType {
21856 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21857 use serde::de::{self, MapAccess, Visitor};
21859 struct EnumVisitor;
21860 impl<'de> Visitor<'de> for EnumVisitor {
21861 type Value = NamespaceType;
21862 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21863 f.write_str("a NamespaceType structure")
21864 }
21865 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21866 let tag: &str = match map.next_key()? {
21867 Some(".tag") => map.next_value()?,
21868 _ => return Err(de::Error::missing_field(".tag"))
21869 };
21870 let value = match tag {
21871 "app_folder" => NamespaceType::AppFolder,
21872 "shared_folder" => NamespaceType::SharedFolder,
21873 "team_folder" => NamespaceType::TeamFolder,
21874 "team_member_folder" => NamespaceType::TeamMemberFolder,
21875 "team_member_root" => NamespaceType::TeamMemberRoot,
21876 _ => NamespaceType::Other,
21877 };
21878 crate::eat_json_fields(&mut map)?;
21879 Ok(value)
21880 }
21881 }
21882 const VARIANTS: &[&str] = &["app_folder",
21883 "shared_folder",
21884 "team_folder",
21885 "team_member_folder",
21886 "team_member_root",
21887 "other"];
21888 deserializer.deserialize_struct("NamespaceType", VARIANTS, EnumVisitor)
21889 }
21890}
21891
21892impl ::serde::ser::Serialize for NamespaceType {
21893 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21894 use serde::ser::SerializeStruct;
21896 match self {
21897 NamespaceType::AppFolder => {
21898 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21900 s.serialize_field(".tag", "app_folder")?;
21901 s.end()
21902 }
21903 NamespaceType::SharedFolder => {
21904 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21906 s.serialize_field(".tag", "shared_folder")?;
21907 s.end()
21908 }
21909 NamespaceType::TeamFolder => {
21910 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21912 s.serialize_field(".tag", "team_folder")?;
21913 s.end()
21914 }
21915 NamespaceType::TeamMemberFolder => {
21916 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21918 s.serialize_field(".tag", "team_member_folder")?;
21919 s.end()
21920 }
21921 NamespaceType::TeamMemberRoot => {
21922 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21924 s.serialize_field(".tag", "team_member_root")?;
21925 s.end()
21926 }
21927 NamespaceType::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21928 }
21929 }
21930}
21931
21932#[derive(Debug, Clone, PartialEq, Eq)]
21934#[non_exhaustive] pub enum RemoveCustomQuotaResult {
21936 Success(UserSelectorArg),
21938 InvalidUser(UserSelectorArg),
21940 Other,
21943}
21944
21945impl<'de> ::serde::de::Deserialize<'de> for RemoveCustomQuotaResult {
21946 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21947 use serde::de::{self, MapAccess, Visitor};
21949 struct EnumVisitor;
21950 impl<'de> Visitor<'de> for EnumVisitor {
21951 type Value = RemoveCustomQuotaResult;
21952 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21953 f.write_str("a RemoveCustomQuotaResult structure")
21954 }
21955 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21956 let tag: &str = match map.next_key()? {
21957 Some(".tag") => map.next_value()?,
21958 _ => return Err(de::Error::missing_field(".tag"))
21959 };
21960 let value = match tag {
21961 "success" => {
21962 match map.next_key()? {
21963 Some("success") => RemoveCustomQuotaResult::Success(map.next_value()?),
21964 None => return Err(de::Error::missing_field("success")),
21965 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21966 }
21967 }
21968 "invalid_user" => {
21969 match map.next_key()? {
21970 Some("invalid_user") => RemoveCustomQuotaResult::InvalidUser(map.next_value()?),
21971 None => return Err(de::Error::missing_field("invalid_user")),
21972 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21973 }
21974 }
21975 _ => RemoveCustomQuotaResult::Other,
21976 };
21977 crate::eat_json_fields(&mut map)?;
21978 Ok(value)
21979 }
21980 }
21981 const VARIANTS: &[&str] = &["success",
21982 "invalid_user",
21983 "other"];
21984 deserializer.deserialize_struct("RemoveCustomQuotaResult", VARIANTS, EnumVisitor)
21985 }
21986}
21987
21988impl ::serde::ser::Serialize for RemoveCustomQuotaResult {
21989 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21990 use serde::ser::SerializeStruct;
21992 match self {
21993 RemoveCustomQuotaResult::Success(x) => {
21994 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
21996 s.serialize_field(".tag", "success")?;
21997 s.serialize_field("success", x)?;
21998 s.end()
21999 }
22000 RemoveCustomQuotaResult::InvalidUser(x) => {
22001 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
22003 s.serialize_field(".tag", "invalid_user")?;
22004 s.serialize_field("invalid_user", x)?;
22005 s.end()
22006 }
22007 RemoveCustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22008 }
22009 }
22010}
22011
22012#[derive(Debug, Clone, PartialEq, Eq)]
22013#[non_exhaustive] pub struct RemovedStatus {
22015 pub is_recoverable: bool,
22017 pub is_disconnected: bool,
22019}
22020
22021impl RemovedStatus {
22022 pub fn new(is_recoverable: bool, is_disconnected: bool) -> Self {
22023 RemovedStatus {
22024 is_recoverable,
22025 is_disconnected,
22026 }
22027 }
22028}
22029
22030const REMOVED_STATUS_FIELDS: &[&str] = &["is_recoverable",
22031 "is_disconnected"];
22032impl RemovedStatus {
22033 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22034 map: V,
22035 ) -> Result<RemovedStatus, V::Error> {
22036 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22037 }
22038
22039 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22040 mut map: V,
22041 optional: bool,
22042 ) -> Result<Option<RemovedStatus>, V::Error> {
22043 let mut field_is_recoverable = None;
22044 let mut field_is_disconnected = None;
22045 let mut nothing = true;
22046 while let Some(key) = map.next_key::<&str>()? {
22047 nothing = false;
22048 match key {
22049 "is_recoverable" => {
22050 if field_is_recoverable.is_some() {
22051 return Err(::serde::de::Error::duplicate_field("is_recoverable"));
22052 }
22053 field_is_recoverable = Some(map.next_value()?);
22054 }
22055 "is_disconnected" => {
22056 if field_is_disconnected.is_some() {
22057 return Err(::serde::de::Error::duplicate_field("is_disconnected"));
22058 }
22059 field_is_disconnected = Some(map.next_value()?);
22060 }
22061 _ => {
22062 map.next_value::<::serde_json::Value>()?;
22064 }
22065 }
22066 }
22067 if optional && nothing {
22068 return Ok(None);
22069 }
22070 let result = RemovedStatus {
22071 is_recoverable: field_is_recoverable.ok_or_else(|| ::serde::de::Error::missing_field("is_recoverable"))?,
22072 is_disconnected: field_is_disconnected.ok_or_else(|| ::serde::de::Error::missing_field("is_disconnected"))?,
22073 };
22074 Ok(Some(result))
22075 }
22076
22077 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22078 &self,
22079 s: &mut S::SerializeStruct,
22080 ) -> Result<(), S::Error> {
22081 use serde::ser::SerializeStruct;
22082 s.serialize_field("is_recoverable", &self.is_recoverable)?;
22083 s.serialize_field("is_disconnected", &self.is_disconnected)?;
22084 Ok(())
22085 }
22086}
22087
22088impl<'de> ::serde::de::Deserialize<'de> for RemovedStatus {
22089 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22090 use serde::de::{MapAccess, Visitor};
22092 struct StructVisitor;
22093 impl<'de> Visitor<'de> for StructVisitor {
22094 type Value = RemovedStatus;
22095 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22096 f.write_str("a RemovedStatus struct")
22097 }
22098 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22099 RemovedStatus::internal_deserialize(map)
22100 }
22101 }
22102 deserializer.deserialize_struct("RemovedStatus", REMOVED_STATUS_FIELDS, StructVisitor)
22103 }
22104}
22105
22106impl ::serde::ser::Serialize for RemovedStatus {
22107 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22108 use serde::ser::SerializeStruct;
22110 let mut s = serializer.serialize_struct("RemovedStatus", 2)?;
22111 self.internal_serialize::<S>(&mut s)?;
22112 s.end()
22113 }
22114}
22115
22116#[derive(Debug, Clone, PartialEq, Eq)]
22120#[non_exhaustive] pub enum ResendSecondaryEmailResult {
22122 Success(crate::types::common::EmailAddress),
22124 NotPending(crate::types::common::EmailAddress),
22126 RateLimited(crate::types::common::EmailAddress),
22128 Other,
22131}
22132
22133impl<'de> ::serde::de::Deserialize<'de> for ResendSecondaryEmailResult {
22134 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22135 use serde::de::{self, MapAccess, Visitor};
22137 struct EnumVisitor;
22138 impl<'de> Visitor<'de> for EnumVisitor {
22139 type Value = ResendSecondaryEmailResult;
22140 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22141 f.write_str("a ResendSecondaryEmailResult structure")
22142 }
22143 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22144 let tag: &str = match map.next_key()? {
22145 Some(".tag") => map.next_value()?,
22146 _ => return Err(de::Error::missing_field(".tag"))
22147 };
22148 let value = match tag {
22149 "success" => {
22150 match map.next_key()? {
22151 Some("success") => ResendSecondaryEmailResult::Success(map.next_value()?),
22152 None => return Err(de::Error::missing_field("success")),
22153 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22154 }
22155 }
22156 "not_pending" => {
22157 match map.next_key()? {
22158 Some("not_pending") => ResendSecondaryEmailResult::NotPending(map.next_value()?),
22159 None => return Err(de::Error::missing_field("not_pending")),
22160 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22161 }
22162 }
22163 "rate_limited" => {
22164 match map.next_key()? {
22165 Some("rate_limited") => ResendSecondaryEmailResult::RateLimited(map.next_value()?),
22166 None => return Err(de::Error::missing_field("rate_limited")),
22167 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22168 }
22169 }
22170 _ => ResendSecondaryEmailResult::Other,
22171 };
22172 crate::eat_json_fields(&mut map)?;
22173 Ok(value)
22174 }
22175 }
22176 const VARIANTS: &[&str] = &["success",
22177 "not_pending",
22178 "rate_limited",
22179 "other"];
22180 deserializer.deserialize_struct("ResendSecondaryEmailResult", VARIANTS, EnumVisitor)
22181 }
22182}
22183
22184impl ::serde::ser::Serialize for ResendSecondaryEmailResult {
22185 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22186 use serde::ser::SerializeStruct;
22188 match self {
22189 ResendSecondaryEmailResult::Success(x) => {
22190 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
22192 s.serialize_field(".tag", "success")?;
22193 s.serialize_field("success", x)?;
22194 s.end()
22195 }
22196 ResendSecondaryEmailResult::NotPending(x) => {
22197 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
22199 s.serialize_field(".tag", "not_pending")?;
22200 s.serialize_field("not_pending", x)?;
22201 s.end()
22202 }
22203 ResendSecondaryEmailResult::RateLimited(x) => {
22204 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
22206 s.serialize_field(".tag", "rate_limited")?;
22207 s.serialize_field("rate_limited", x)?;
22208 s.end()
22209 }
22210 ResendSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22211 }
22212 }
22213}
22214
22215#[derive(Debug, Clone, PartialEq, Eq)]
22216#[non_exhaustive] pub struct ResendVerificationEmailArg {
22218 pub emails_to_resend: Vec<UserSecondaryEmailsArg>,
22220}
22221
22222impl ResendVerificationEmailArg {
22223 pub fn new(emails_to_resend: Vec<UserSecondaryEmailsArg>) -> Self {
22224 ResendVerificationEmailArg {
22225 emails_to_resend,
22226 }
22227 }
22228}
22229
22230const RESEND_VERIFICATION_EMAIL_ARG_FIELDS: &[&str] = &["emails_to_resend"];
22231impl ResendVerificationEmailArg {
22232 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22233 map: V,
22234 ) -> Result<ResendVerificationEmailArg, V::Error> {
22235 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22236 }
22237
22238 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22239 mut map: V,
22240 optional: bool,
22241 ) -> Result<Option<ResendVerificationEmailArg>, V::Error> {
22242 let mut field_emails_to_resend = None;
22243 let mut nothing = true;
22244 while let Some(key) = map.next_key::<&str>()? {
22245 nothing = false;
22246 match key {
22247 "emails_to_resend" => {
22248 if field_emails_to_resend.is_some() {
22249 return Err(::serde::de::Error::duplicate_field("emails_to_resend"));
22250 }
22251 field_emails_to_resend = Some(map.next_value()?);
22252 }
22253 _ => {
22254 map.next_value::<::serde_json::Value>()?;
22256 }
22257 }
22258 }
22259 if optional && nothing {
22260 return Ok(None);
22261 }
22262 let result = ResendVerificationEmailArg {
22263 emails_to_resend: field_emails_to_resend.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_resend"))?,
22264 };
22265 Ok(Some(result))
22266 }
22267
22268 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22269 &self,
22270 s: &mut S::SerializeStruct,
22271 ) -> Result<(), S::Error> {
22272 use serde::ser::SerializeStruct;
22273 s.serialize_field("emails_to_resend", &self.emails_to_resend)?;
22274 Ok(())
22275 }
22276}
22277
22278impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailArg {
22279 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22280 use serde::de::{MapAccess, Visitor};
22282 struct StructVisitor;
22283 impl<'de> Visitor<'de> for StructVisitor {
22284 type Value = ResendVerificationEmailArg;
22285 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22286 f.write_str("a ResendVerificationEmailArg struct")
22287 }
22288 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22289 ResendVerificationEmailArg::internal_deserialize(map)
22290 }
22291 }
22292 deserializer.deserialize_struct("ResendVerificationEmailArg", RESEND_VERIFICATION_EMAIL_ARG_FIELDS, StructVisitor)
22293 }
22294}
22295
22296impl ::serde::ser::Serialize for ResendVerificationEmailArg {
22297 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22298 use serde::ser::SerializeStruct;
22300 let mut s = serializer.serialize_struct("ResendVerificationEmailArg", 1)?;
22301 self.internal_serialize::<S>(&mut s)?;
22302 s.end()
22303 }
22304}
22305
22306#[derive(Debug, Clone, PartialEq, Eq)]
22308#[non_exhaustive] pub struct ResendVerificationEmailResult {
22310 pub results: Vec<UserResendResult>,
22311}
22312
22313impl ResendVerificationEmailResult {
22314 pub fn new(results: Vec<UserResendResult>) -> Self {
22315 ResendVerificationEmailResult {
22316 results,
22317 }
22318 }
22319}
22320
22321const RESEND_VERIFICATION_EMAIL_RESULT_FIELDS: &[&str] = &["results"];
22322impl ResendVerificationEmailResult {
22323 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22324 map: V,
22325 ) -> Result<ResendVerificationEmailResult, V::Error> {
22326 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22327 }
22328
22329 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22330 mut map: V,
22331 optional: bool,
22332 ) -> Result<Option<ResendVerificationEmailResult>, V::Error> {
22333 let mut field_results = None;
22334 let mut nothing = true;
22335 while let Some(key) = map.next_key::<&str>()? {
22336 nothing = false;
22337 match key {
22338 "results" => {
22339 if field_results.is_some() {
22340 return Err(::serde::de::Error::duplicate_field("results"));
22341 }
22342 field_results = Some(map.next_value()?);
22343 }
22344 _ => {
22345 map.next_value::<::serde_json::Value>()?;
22347 }
22348 }
22349 }
22350 if optional && nothing {
22351 return Ok(None);
22352 }
22353 let result = ResendVerificationEmailResult {
22354 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
22355 };
22356 Ok(Some(result))
22357 }
22358
22359 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22360 &self,
22361 s: &mut S::SerializeStruct,
22362 ) -> Result<(), S::Error> {
22363 use serde::ser::SerializeStruct;
22364 s.serialize_field("results", &self.results)?;
22365 Ok(())
22366 }
22367}
22368
22369impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailResult {
22370 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22371 use serde::de::{MapAccess, Visitor};
22373 struct StructVisitor;
22374 impl<'de> Visitor<'de> for StructVisitor {
22375 type Value = ResendVerificationEmailResult;
22376 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22377 f.write_str("a ResendVerificationEmailResult struct")
22378 }
22379 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22380 ResendVerificationEmailResult::internal_deserialize(map)
22381 }
22382 }
22383 deserializer.deserialize_struct("ResendVerificationEmailResult", RESEND_VERIFICATION_EMAIL_RESULT_FIELDS, StructVisitor)
22384 }
22385}
22386
22387impl ::serde::ser::Serialize for ResendVerificationEmailResult {
22388 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22389 use serde::ser::SerializeStruct;
22391 let mut s = serializer.serialize_struct("ResendVerificationEmailResult", 1)?;
22392 self.internal_serialize::<S>(&mut s)?;
22393 s.end()
22394 }
22395}
22396
22397#[derive(Debug, Clone, PartialEq, Eq)]
22398#[non_exhaustive] pub struct RevokeDesktopClientArg {
22400 pub session_id: String,
22402 pub team_member_id: String,
22404 pub delete_on_unlink: bool,
22407}
22408
22409impl RevokeDesktopClientArg {
22410 pub fn new(session_id: String, team_member_id: String) -> Self {
22411 RevokeDesktopClientArg {
22412 session_id,
22413 team_member_id,
22414 delete_on_unlink: false,
22415 }
22416 }
22417
22418 pub fn with_delete_on_unlink(mut self, value: bool) -> Self {
22419 self.delete_on_unlink = value;
22420 self
22421 }
22422}
22423
22424const REVOKE_DESKTOP_CLIENT_ARG_FIELDS: &[&str] = &["session_id",
22425 "team_member_id",
22426 "delete_on_unlink"];
22427impl RevokeDesktopClientArg {
22428 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22429 map: V,
22430 ) -> Result<RevokeDesktopClientArg, V::Error> {
22431 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22432 }
22433
22434 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22435 mut map: V,
22436 optional: bool,
22437 ) -> Result<Option<RevokeDesktopClientArg>, V::Error> {
22438 let mut field_session_id = None;
22439 let mut field_team_member_id = None;
22440 let mut field_delete_on_unlink = None;
22441 let mut nothing = true;
22442 while let Some(key) = map.next_key::<&str>()? {
22443 nothing = false;
22444 match key {
22445 "session_id" => {
22446 if field_session_id.is_some() {
22447 return Err(::serde::de::Error::duplicate_field("session_id"));
22448 }
22449 field_session_id = Some(map.next_value()?);
22450 }
22451 "team_member_id" => {
22452 if field_team_member_id.is_some() {
22453 return Err(::serde::de::Error::duplicate_field("team_member_id"));
22454 }
22455 field_team_member_id = Some(map.next_value()?);
22456 }
22457 "delete_on_unlink" => {
22458 if field_delete_on_unlink.is_some() {
22459 return Err(::serde::de::Error::duplicate_field("delete_on_unlink"));
22460 }
22461 field_delete_on_unlink = Some(map.next_value()?);
22462 }
22463 _ => {
22464 map.next_value::<::serde_json::Value>()?;
22466 }
22467 }
22468 }
22469 if optional && nothing {
22470 return Ok(None);
22471 }
22472 let result = RevokeDesktopClientArg {
22473 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
22474 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
22475 delete_on_unlink: field_delete_on_unlink.unwrap_or(false),
22476 };
22477 Ok(Some(result))
22478 }
22479
22480 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22481 &self,
22482 s: &mut S::SerializeStruct,
22483 ) -> Result<(), S::Error> {
22484 use serde::ser::SerializeStruct;
22485 s.serialize_field("session_id", &self.session_id)?;
22486 s.serialize_field("team_member_id", &self.team_member_id)?;
22487 if self.delete_on_unlink {
22488 s.serialize_field("delete_on_unlink", &self.delete_on_unlink)?;
22489 }
22490 Ok(())
22491 }
22492}
22493
22494impl<'de> ::serde::de::Deserialize<'de> for RevokeDesktopClientArg {
22495 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22496 use serde::de::{MapAccess, Visitor};
22498 struct StructVisitor;
22499 impl<'de> Visitor<'de> for StructVisitor {
22500 type Value = RevokeDesktopClientArg;
22501 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22502 f.write_str("a RevokeDesktopClientArg struct")
22503 }
22504 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22505 RevokeDesktopClientArg::internal_deserialize(map)
22506 }
22507 }
22508 deserializer.deserialize_struct("RevokeDesktopClientArg", REVOKE_DESKTOP_CLIENT_ARG_FIELDS, StructVisitor)
22509 }
22510}
22511
22512impl ::serde::ser::Serialize for RevokeDesktopClientArg {
22513 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22514 use serde::ser::SerializeStruct;
22516 let mut s = serializer.serialize_struct("RevokeDesktopClientArg", 3)?;
22517 self.internal_serialize::<S>(&mut s)?;
22518 s.end()
22519 }
22520}
22521
22522impl From<RevokeDesktopClientArg> for DeviceSessionArg {
22524 fn from(subtype: RevokeDesktopClientArg) -> Self {
22525 Self {
22526 session_id: subtype.session_id,
22527 team_member_id: subtype.team_member_id,
22528 }
22529 }
22530}
22531#[derive(Debug, Clone, PartialEq, Eq)]
22532pub enum RevokeDeviceSessionArg {
22533 WebSession(DeviceSessionArg),
22535 DesktopClient(RevokeDesktopClientArg),
22537 MobileClient(DeviceSessionArg),
22539}
22540
22541impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionArg {
22542 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22543 use serde::de::{self, MapAccess, Visitor};
22545 struct EnumVisitor;
22546 impl<'de> Visitor<'de> for EnumVisitor {
22547 type Value = RevokeDeviceSessionArg;
22548 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22549 f.write_str("a RevokeDeviceSessionArg structure")
22550 }
22551 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22552 let tag: &str = match map.next_key()? {
22553 Some(".tag") => map.next_value()?,
22554 _ => return Err(de::Error::missing_field(".tag"))
22555 };
22556 let value = match tag {
22557 "web_session" => RevokeDeviceSessionArg::WebSession(DeviceSessionArg::internal_deserialize(&mut map)?),
22558 "desktop_client" => RevokeDeviceSessionArg::DesktopClient(RevokeDesktopClientArg::internal_deserialize(&mut map)?),
22559 "mobile_client" => RevokeDeviceSessionArg::MobileClient(DeviceSessionArg::internal_deserialize(&mut map)?),
22560 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
22561 };
22562 crate::eat_json_fields(&mut map)?;
22563 Ok(value)
22564 }
22565 }
22566 const VARIANTS: &[&str] = &["web_session",
22567 "desktop_client",
22568 "mobile_client"];
22569 deserializer.deserialize_struct("RevokeDeviceSessionArg", VARIANTS, EnumVisitor)
22570 }
22571}
22572
22573impl ::serde::ser::Serialize for RevokeDeviceSessionArg {
22574 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22575 use serde::ser::SerializeStruct;
22577 match self {
22578 RevokeDeviceSessionArg::WebSession(x) => {
22579 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
22581 s.serialize_field(".tag", "web_session")?;
22582 x.internal_serialize::<S>(&mut s)?;
22583 s.end()
22584 }
22585 RevokeDeviceSessionArg::DesktopClient(x) => {
22586 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 4)?;
22588 s.serialize_field(".tag", "desktop_client")?;
22589 x.internal_serialize::<S>(&mut s)?;
22590 s.end()
22591 }
22592 RevokeDeviceSessionArg::MobileClient(x) => {
22593 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
22595 s.serialize_field(".tag", "mobile_client")?;
22596 x.internal_serialize::<S>(&mut s)?;
22597 s.end()
22598 }
22599 }
22600 }
22601}
22602
22603#[derive(Debug, Clone, PartialEq, Eq)]
22604#[non_exhaustive] pub struct RevokeDeviceSessionBatchArg {
22606 pub revoke_devices: Vec<RevokeDeviceSessionArg>,
22607}
22608
22609impl RevokeDeviceSessionBatchArg {
22610 pub fn new(revoke_devices: Vec<RevokeDeviceSessionArg>) -> Self {
22611 RevokeDeviceSessionBatchArg {
22612 revoke_devices,
22613 }
22614 }
22615}
22616
22617const REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS: &[&str] = &["revoke_devices"];
22618impl RevokeDeviceSessionBatchArg {
22619 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22620 map: V,
22621 ) -> Result<RevokeDeviceSessionBatchArg, V::Error> {
22622 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22623 }
22624
22625 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22626 mut map: V,
22627 optional: bool,
22628 ) -> Result<Option<RevokeDeviceSessionBatchArg>, V::Error> {
22629 let mut field_revoke_devices = None;
22630 let mut nothing = true;
22631 while let Some(key) = map.next_key::<&str>()? {
22632 nothing = false;
22633 match key {
22634 "revoke_devices" => {
22635 if field_revoke_devices.is_some() {
22636 return Err(::serde::de::Error::duplicate_field("revoke_devices"));
22637 }
22638 field_revoke_devices = Some(map.next_value()?);
22639 }
22640 _ => {
22641 map.next_value::<::serde_json::Value>()?;
22643 }
22644 }
22645 }
22646 if optional && nothing {
22647 return Ok(None);
22648 }
22649 let result = RevokeDeviceSessionBatchArg {
22650 revoke_devices: field_revoke_devices.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices"))?,
22651 };
22652 Ok(Some(result))
22653 }
22654
22655 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22656 &self,
22657 s: &mut S::SerializeStruct,
22658 ) -> Result<(), S::Error> {
22659 use serde::ser::SerializeStruct;
22660 s.serialize_field("revoke_devices", &self.revoke_devices)?;
22661 Ok(())
22662 }
22663}
22664
22665impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchArg {
22666 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22667 use serde::de::{MapAccess, Visitor};
22669 struct StructVisitor;
22670 impl<'de> Visitor<'de> for StructVisitor {
22671 type Value = RevokeDeviceSessionBatchArg;
22672 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22673 f.write_str("a RevokeDeviceSessionBatchArg struct")
22674 }
22675 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22676 RevokeDeviceSessionBatchArg::internal_deserialize(map)
22677 }
22678 }
22679 deserializer.deserialize_struct("RevokeDeviceSessionBatchArg", REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS, StructVisitor)
22680 }
22681}
22682
22683impl ::serde::ser::Serialize for RevokeDeviceSessionBatchArg {
22684 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22685 use serde::ser::SerializeStruct;
22687 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchArg", 1)?;
22688 self.internal_serialize::<S>(&mut s)?;
22689 s.end()
22690 }
22691}
22692
22693
22694#[derive(Debug, Clone, PartialEq, Eq)]
22695#[non_exhaustive] pub enum RevokeDeviceSessionBatchError {
22697 Other,
22700}
22701
22702impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchError {
22703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22704 use serde::de::{self, MapAccess, Visitor};
22706 struct EnumVisitor;
22707 impl<'de> Visitor<'de> for EnumVisitor {
22708 type Value = RevokeDeviceSessionBatchError;
22709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22710 f.write_str("a RevokeDeviceSessionBatchError structure")
22711 }
22712 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22713 let tag: &str = match map.next_key()? {
22714 Some(".tag") => map.next_value()?,
22715 _ => return Err(de::Error::missing_field(".tag"))
22716 };
22717 let _ = tag;
22719 crate::eat_json_fields(&mut map)?;
22720 Ok(RevokeDeviceSessionBatchError::Other)
22721 }
22722 }
22723 const VARIANTS: &[&str] = &["other"];
22724 deserializer.deserialize_struct("RevokeDeviceSessionBatchError", VARIANTS, EnumVisitor)
22725 }
22726}
22727
22728impl ::serde::ser::Serialize for RevokeDeviceSessionBatchError {
22729 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22730 #![allow(unused_variables)]
22732 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
22733 }
22734}
22735
22736impl ::std::error::Error for RevokeDeviceSessionBatchError {
22737}
22738
22739impl ::std::fmt::Display for RevokeDeviceSessionBatchError {
22740 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22741 write!(f, "{:?}", *self)
22742 }
22743}
22744
22745#[derive(Debug, Clone, PartialEq, Eq)]
22746#[non_exhaustive] pub struct RevokeDeviceSessionBatchResult {
22748 pub revoke_devices_status: Vec<RevokeDeviceSessionStatus>,
22749}
22750
22751impl RevokeDeviceSessionBatchResult {
22752 pub fn new(revoke_devices_status: Vec<RevokeDeviceSessionStatus>) -> Self {
22753 RevokeDeviceSessionBatchResult {
22754 revoke_devices_status,
22755 }
22756 }
22757}
22758
22759const REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS: &[&str] = &["revoke_devices_status"];
22760impl RevokeDeviceSessionBatchResult {
22761 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22762 map: V,
22763 ) -> Result<RevokeDeviceSessionBatchResult, V::Error> {
22764 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22765 }
22766
22767 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22768 mut map: V,
22769 optional: bool,
22770 ) -> Result<Option<RevokeDeviceSessionBatchResult>, V::Error> {
22771 let mut field_revoke_devices_status = None;
22772 let mut nothing = true;
22773 while let Some(key) = map.next_key::<&str>()? {
22774 nothing = false;
22775 match key {
22776 "revoke_devices_status" => {
22777 if field_revoke_devices_status.is_some() {
22778 return Err(::serde::de::Error::duplicate_field("revoke_devices_status"));
22779 }
22780 field_revoke_devices_status = Some(map.next_value()?);
22781 }
22782 _ => {
22783 map.next_value::<::serde_json::Value>()?;
22785 }
22786 }
22787 }
22788 if optional && nothing {
22789 return Ok(None);
22790 }
22791 let result = RevokeDeviceSessionBatchResult {
22792 revoke_devices_status: field_revoke_devices_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices_status"))?,
22793 };
22794 Ok(Some(result))
22795 }
22796
22797 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22798 &self,
22799 s: &mut S::SerializeStruct,
22800 ) -> Result<(), S::Error> {
22801 use serde::ser::SerializeStruct;
22802 s.serialize_field("revoke_devices_status", &self.revoke_devices_status)?;
22803 Ok(())
22804 }
22805}
22806
22807impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchResult {
22808 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22809 use serde::de::{MapAccess, Visitor};
22811 struct StructVisitor;
22812 impl<'de> Visitor<'de> for StructVisitor {
22813 type Value = RevokeDeviceSessionBatchResult;
22814 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22815 f.write_str("a RevokeDeviceSessionBatchResult struct")
22816 }
22817 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22818 RevokeDeviceSessionBatchResult::internal_deserialize(map)
22819 }
22820 }
22821 deserializer.deserialize_struct("RevokeDeviceSessionBatchResult", REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS, StructVisitor)
22822 }
22823}
22824
22825impl ::serde::ser::Serialize for RevokeDeviceSessionBatchResult {
22826 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22827 use serde::ser::SerializeStruct;
22829 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchResult", 1)?;
22830 self.internal_serialize::<S>(&mut s)?;
22831 s.end()
22832 }
22833}
22834
22835#[derive(Debug, Clone, PartialEq, Eq)]
22836#[non_exhaustive] pub enum RevokeDeviceSessionError {
22838 DeviceSessionNotFound,
22840 MemberNotFound,
22842 Other,
22845}
22846
22847impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionError {
22848 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22849 use serde::de::{self, MapAccess, Visitor};
22851 struct EnumVisitor;
22852 impl<'de> Visitor<'de> for EnumVisitor {
22853 type Value = RevokeDeviceSessionError;
22854 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22855 f.write_str("a RevokeDeviceSessionError structure")
22856 }
22857 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22858 let tag: &str = match map.next_key()? {
22859 Some(".tag") => map.next_value()?,
22860 _ => return Err(de::Error::missing_field(".tag"))
22861 };
22862 let value = match tag {
22863 "device_session_not_found" => RevokeDeviceSessionError::DeviceSessionNotFound,
22864 "member_not_found" => RevokeDeviceSessionError::MemberNotFound,
22865 _ => RevokeDeviceSessionError::Other,
22866 };
22867 crate::eat_json_fields(&mut map)?;
22868 Ok(value)
22869 }
22870 }
22871 const VARIANTS: &[&str] = &["device_session_not_found",
22872 "member_not_found",
22873 "other"];
22874 deserializer.deserialize_struct("RevokeDeviceSessionError", VARIANTS, EnumVisitor)
22875 }
22876}
22877
22878impl ::serde::ser::Serialize for RevokeDeviceSessionError {
22879 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22880 use serde::ser::SerializeStruct;
22882 match self {
22883 RevokeDeviceSessionError::DeviceSessionNotFound => {
22884 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
22886 s.serialize_field(".tag", "device_session_not_found")?;
22887 s.end()
22888 }
22889 RevokeDeviceSessionError::MemberNotFound => {
22890 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
22892 s.serialize_field(".tag", "member_not_found")?;
22893 s.end()
22894 }
22895 RevokeDeviceSessionError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22896 }
22897 }
22898}
22899
22900impl ::std::error::Error for RevokeDeviceSessionError {
22901}
22902
22903impl ::std::fmt::Display for RevokeDeviceSessionError {
22904 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22905 match self {
22906 RevokeDeviceSessionError::DeviceSessionNotFound => f.write_str("Device session not found."),
22907 RevokeDeviceSessionError::MemberNotFound => f.write_str("Member not found."),
22908 _ => write!(f, "{:?}", *self),
22909 }
22910 }
22911}
22912
22913#[derive(Debug, Clone, PartialEq, Eq)]
22914#[non_exhaustive] pub struct RevokeDeviceSessionStatus {
22916 pub success: bool,
22918 pub error_type: Option<RevokeDeviceSessionError>,
22920}
22921
22922impl RevokeDeviceSessionStatus {
22923 pub fn new(success: bool) -> Self {
22924 RevokeDeviceSessionStatus {
22925 success,
22926 error_type: None,
22927 }
22928 }
22929
22930 pub fn with_error_type(mut self, value: RevokeDeviceSessionError) -> Self {
22931 self.error_type = Some(value);
22932 self
22933 }
22934}
22935
22936const REVOKE_DEVICE_SESSION_STATUS_FIELDS: &[&str] = &["success",
22937 "error_type"];
22938impl RevokeDeviceSessionStatus {
22939 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22940 map: V,
22941 ) -> Result<RevokeDeviceSessionStatus, V::Error> {
22942 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22943 }
22944
22945 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22946 mut map: V,
22947 optional: bool,
22948 ) -> Result<Option<RevokeDeviceSessionStatus>, V::Error> {
22949 let mut field_success = None;
22950 let mut field_error_type = None;
22951 let mut nothing = true;
22952 while let Some(key) = map.next_key::<&str>()? {
22953 nothing = false;
22954 match key {
22955 "success" => {
22956 if field_success.is_some() {
22957 return Err(::serde::de::Error::duplicate_field("success"));
22958 }
22959 field_success = Some(map.next_value()?);
22960 }
22961 "error_type" => {
22962 if field_error_type.is_some() {
22963 return Err(::serde::de::Error::duplicate_field("error_type"));
22964 }
22965 field_error_type = Some(map.next_value()?);
22966 }
22967 _ => {
22968 map.next_value::<::serde_json::Value>()?;
22970 }
22971 }
22972 }
22973 if optional && nothing {
22974 return Ok(None);
22975 }
22976 let result = RevokeDeviceSessionStatus {
22977 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
22978 error_type: field_error_type.and_then(Option::flatten),
22979 };
22980 Ok(Some(result))
22981 }
22982
22983 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22984 &self,
22985 s: &mut S::SerializeStruct,
22986 ) -> Result<(), S::Error> {
22987 use serde::ser::SerializeStruct;
22988 s.serialize_field("success", &self.success)?;
22989 if let Some(val) = &self.error_type {
22990 s.serialize_field("error_type", val)?;
22991 }
22992 Ok(())
22993 }
22994}
22995
22996impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionStatus {
22997 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22998 use serde::de::{MapAccess, Visitor};
23000 struct StructVisitor;
23001 impl<'de> Visitor<'de> for StructVisitor {
23002 type Value = RevokeDeviceSessionStatus;
23003 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23004 f.write_str("a RevokeDeviceSessionStatus struct")
23005 }
23006 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23007 RevokeDeviceSessionStatus::internal_deserialize(map)
23008 }
23009 }
23010 deserializer.deserialize_struct("RevokeDeviceSessionStatus", REVOKE_DEVICE_SESSION_STATUS_FIELDS, StructVisitor)
23011 }
23012}
23013
23014impl ::serde::ser::Serialize for RevokeDeviceSessionStatus {
23015 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23016 use serde::ser::SerializeStruct;
23018 let mut s = serializer.serialize_struct("RevokeDeviceSessionStatus", 2)?;
23019 self.internal_serialize::<S>(&mut s)?;
23020 s.end()
23021 }
23022}
23023
23024#[derive(Debug, Clone, PartialEq, Eq)]
23025#[non_exhaustive] pub struct RevokeLinkedApiAppArg {
23027 pub app_id: String,
23029 pub team_member_id: String,
23031 #[deprecated]
23034 pub keep_app_folder: bool,
23035}
23036
23037impl RevokeLinkedApiAppArg {
23038 pub fn new(app_id: String, team_member_id: String) -> Self {
23039 RevokeLinkedApiAppArg {
23040 app_id,
23041 team_member_id,
23042 #[allow(deprecated)] keep_app_folder: true,
23043 }
23044 }
23045
23046 #[deprecated]
23047 #[allow(deprecated)]
23048 pub fn with_keep_app_folder(mut self, value: bool) -> Self {
23049 self.keep_app_folder = value;
23050 self
23051 }
23052}
23053
23054const REVOKE_LINKED_API_APP_ARG_FIELDS: &[&str] = &["app_id",
23055 "team_member_id",
23056 "keep_app_folder"];
23057impl RevokeLinkedApiAppArg {
23058 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23059 map: V,
23060 ) -> Result<RevokeLinkedApiAppArg, V::Error> {
23061 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23062 }
23063
23064 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23065 mut map: V,
23066 optional: bool,
23067 ) -> Result<Option<RevokeLinkedApiAppArg>, V::Error> {
23068 let mut field_app_id = None;
23069 let mut field_team_member_id = None;
23070 let mut field_keep_app_folder = None;
23071 let mut nothing = true;
23072 while let Some(key) = map.next_key::<&str>()? {
23073 nothing = false;
23074 match key {
23075 "app_id" => {
23076 if field_app_id.is_some() {
23077 return Err(::serde::de::Error::duplicate_field("app_id"));
23078 }
23079 field_app_id = Some(map.next_value()?);
23080 }
23081 "team_member_id" => {
23082 if field_team_member_id.is_some() {
23083 return Err(::serde::de::Error::duplicate_field("team_member_id"));
23084 }
23085 field_team_member_id = Some(map.next_value()?);
23086 }
23087 "keep_app_folder" => {
23088 if field_keep_app_folder.is_some() {
23089 return Err(::serde::de::Error::duplicate_field("keep_app_folder"));
23090 }
23091 field_keep_app_folder = Some(map.next_value()?);
23092 }
23093 _ => {
23094 map.next_value::<::serde_json::Value>()?;
23096 }
23097 }
23098 }
23099 if optional && nothing {
23100 return Ok(None);
23101 }
23102 let result = RevokeLinkedApiAppArg {
23103 app_id: field_app_id.ok_or_else(|| ::serde::de::Error::missing_field("app_id"))?,
23104 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
23105 #[allow(deprecated)] keep_app_folder: field_keep_app_folder.unwrap_or(true),
23106 };
23107 Ok(Some(result))
23108 }
23109
23110 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23111 &self,
23112 s: &mut S::SerializeStruct,
23113 ) -> Result<(), S::Error> {
23114 use serde::ser::SerializeStruct;
23115 s.serialize_field("app_id", &self.app_id)?;
23116 s.serialize_field("team_member_id", &self.team_member_id)?;
23117 #[allow(deprecated)]
23118 if !self.keep_app_folder {
23119 s.serialize_field("keep_app_folder", &self.keep_app_folder)?;
23120 }
23121 Ok(())
23122 }
23123}
23124
23125impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppArg {
23126 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23127 use serde::de::{MapAccess, Visitor};
23129 struct StructVisitor;
23130 impl<'de> Visitor<'de> for StructVisitor {
23131 type Value = RevokeLinkedApiAppArg;
23132 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23133 f.write_str("a RevokeLinkedApiAppArg struct")
23134 }
23135 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23136 RevokeLinkedApiAppArg::internal_deserialize(map)
23137 }
23138 }
23139 deserializer.deserialize_struct("RevokeLinkedApiAppArg", REVOKE_LINKED_API_APP_ARG_FIELDS, StructVisitor)
23140 }
23141}
23142
23143impl ::serde::ser::Serialize for RevokeLinkedApiAppArg {
23144 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23145 use serde::ser::SerializeStruct;
23147 let mut s = serializer.serialize_struct("RevokeLinkedApiAppArg", 3)?;
23148 self.internal_serialize::<S>(&mut s)?;
23149 s.end()
23150 }
23151}
23152
23153#[derive(Debug, Clone, PartialEq, Eq)]
23154#[non_exhaustive] pub struct RevokeLinkedApiAppBatchArg {
23156 pub revoke_linked_app: Vec<RevokeLinkedApiAppArg>,
23157}
23158
23159impl RevokeLinkedApiAppBatchArg {
23160 pub fn new(revoke_linked_app: Vec<RevokeLinkedApiAppArg>) -> Self {
23161 RevokeLinkedApiAppBatchArg {
23162 revoke_linked_app,
23163 }
23164 }
23165}
23166
23167const REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS: &[&str] = &["revoke_linked_app"];
23168impl RevokeLinkedApiAppBatchArg {
23169 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23170 map: V,
23171 ) -> Result<RevokeLinkedApiAppBatchArg, V::Error> {
23172 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23173 }
23174
23175 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23176 mut map: V,
23177 optional: bool,
23178 ) -> Result<Option<RevokeLinkedApiAppBatchArg>, V::Error> {
23179 let mut field_revoke_linked_app = None;
23180 let mut nothing = true;
23181 while let Some(key) = map.next_key::<&str>()? {
23182 nothing = false;
23183 match key {
23184 "revoke_linked_app" => {
23185 if field_revoke_linked_app.is_some() {
23186 return Err(::serde::de::Error::duplicate_field("revoke_linked_app"));
23187 }
23188 field_revoke_linked_app = Some(map.next_value()?);
23189 }
23190 _ => {
23191 map.next_value::<::serde_json::Value>()?;
23193 }
23194 }
23195 }
23196 if optional && nothing {
23197 return Ok(None);
23198 }
23199 let result = RevokeLinkedApiAppBatchArg {
23200 revoke_linked_app: field_revoke_linked_app.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app"))?,
23201 };
23202 Ok(Some(result))
23203 }
23204
23205 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23206 &self,
23207 s: &mut S::SerializeStruct,
23208 ) -> Result<(), S::Error> {
23209 use serde::ser::SerializeStruct;
23210 s.serialize_field("revoke_linked_app", &self.revoke_linked_app)?;
23211 Ok(())
23212 }
23213}
23214
23215impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppBatchArg {
23216 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23217 use serde::de::{MapAccess, Visitor};
23219 struct StructVisitor;
23220 impl<'de> Visitor<'de> for StructVisitor {
23221 type Value = RevokeLinkedApiAppBatchArg;
23222 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23223 f.write_str("a RevokeLinkedApiAppBatchArg struct")
23224 }
23225 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23226 RevokeLinkedApiAppBatchArg::internal_deserialize(map)
23227 }
23228 }
23229 deserializer.deserialize_struct("RevokeLinkedApiAppBatchArg", REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS, StructVisitor)
23230 }
23231}
23232
23233impl ::serde::ser::Serialize for RevokeLinkedApiAppBatchArg {
23234 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23235 use serde::ser::SerializeStruct;
23237 let mut s = serializer.serialize_struct("RevokeLinkedApiAppBatchArg", 1)?;
23238 self.internal_serialize::<S>(&mut s)?;
23239 s.end()
23240 }
23241}
23242
23243#[derive(Debug, Clone, PartialEq, Eq)]
23246#[non_exhaustive] pub enum RevokeLinkedAppBatchError {
23248 Other,
23251}
23252
23253impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchError {
23254 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23255 use serde::de::{self, MapAccess, Visitor};
23257 struct EnumVisitor;
23258 impl<'de> Visitor<'de> for EnumVisitor {
23259 type Value = RevokeLinkedAppBatchError;
23260 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23261 f.write_str("a RevokeLinkedAppBatchError structure")
23262 }
23263 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23264 let tag: &str = match map.next_key()? {
23265 Some(".tag") => map.next_value()?,
23266 _ => return Err(de::Error::missing_field(".tag"))
23267 };
23268 let _ = tag;
23270 crate::eat_json_fields(&mut map)?;
23271 Ok(RevokeLinkedAppBatchError::Other)
23272 }
23273 }
23274 const VARIANTS: &[&str] = &["other"];
23275 deserializer.deserialize_struct("RevokeLinkedAppBatchError", VARIANTS, EnumVisitor)
23276 }
23277}
23278
23279impl ::serde::ser::Serialize for RevokeLinkedAppBatchError {
23280 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23281 #![allow(unused_variables)]
23283 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
23284 }
23285}
23286
23287impl ::std::error::Error for RevokeLinkedAppBatchError {
23288}
23289
23290impl ::std::fmt::Display for RevokeLinkedAppBatchError {
23291 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23292 write!(f, "{:?}", *self)
23293 }
23294}
23295
23296#[derive(Debug, Clone, PartialEq, Eq)]
23297#[non_exhaustive] pub struct RevokeLinkedAppBatchResult {
23299 pub revoke_linked_app_status: Vec<RevokeLinkedAppStatus>,
23300}
23301
23302impl RevokeLinkedAppBatchResult {
23303 pub fn new(revoke_linked_app_status: Vec<RevokeLinkedAppStatus>) -> Self {
23304 RevokeLinkedAppBatchResult {
23305 revoke_linked_app_status,
23306 }
23307 }
23308}
23309
23310const REVOKE_LINKED_APP_BATCH_RESULT_FIELDS: &[&str] = &["revoke_linked_app_status"];
23311impl RevokeLinkedAppBatchResult {
23312 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23313 map: V,
23314 ) -> Result<RevokeLinkedAppBatchResult, V::Error> {
23315 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23316 }
23317
23318 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23319 mut map: V,
23320 optional: bool,
23321 ) -> Result<Option<RevokeLinkedAppBatchResult>, V::Error> {
23322 let mut field_revoke_linked_app_status = None;
23323 let mut nothing = true;
23324 while let Some(key) = map.next_key::<&str>()? {
23325 nothing = false;
23326 match key {
23327 "revoke_linked_app_status" => {
23328 if field_revoke_linked_app_status.is_some() {
23329 return Err(::serde::de::Error::duplicate_field("revoke_linked_app_status"));
23330 }
23331 field_revoke_linked_app_status = Some(map.next_value()?);
23332 }
23333 _ => {
23334 map.next_value::<::serde_json::Value>()?;
23336 }
23337 }
23338 }
23339 if optional && nothing {
23340 return Ok(None);
23341 }
23342 let result = RevokeLinkedAppBatchResult {
23343 revoke_linked_app_status: field_revoke_linked_app_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app_status"))?,
23344 };
23345 Ok(Some(result))
23346 }
23347
23348 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23349 &self,
23350 s: &mut S::SerializeStruct,
23351 ) -> Result<(), S::Error> {
23352 use serde::ser::SerializeStruct;
23353 s.serialize_field("revoke_linked_app_status", &self.revoke_linked_app_status)?;
23354 Ok(())
23355 }
23356}
23357
23358impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchResult {
23359 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23360 use serde::de::{MapAccess, Visitor};
23362 struct StructVisitor;
23363 impl<'de> Visitor<'de> for StructVisitor {
23364 type Value = RevokeLinkedAppBatchResult;
23365 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23366 f.write_str("a RevokeLinkedAppBatchResult struct")
23367 }
23368 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23369 RevokeLinkedAppBatchResult::internal_deserialize(map)
23370 }
23371 }
23372 deserializer.deserialize_struct("RevokeLinkedAppBatchResult", REVOKE_LINKED_APP_BATCH_RESULT_FIELDS, StructVisitor)
23373 }
23374}
23375
23376impl ::serde::ser::Serialize for RevokeLinkedAppBatchResult {
23377 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23378 use serde::ser::SerializeStruct;
23380 let mut s = serializer.serialize_struct("RevokeLinkedAppBatchResult", 1)?;
23381 self.internal_serialize::<S>(&mut s)?;
23382 s.end()
23383 }
23384}
23385
23386#[derive(Debug, Clone, PartialEq, Eq)]
23389#[non_exhaustive] pub enum RevokeLinkedAppError {
23391 AppNotFound,
23393 MemberNotFound,
23395 AppFolderRemovalNotSupported,
23397 Other,
23400}
23401
23402impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppError {
23403 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23404 use serde::de::{self, MapAccess, Visitor};
23406 struct EnumVisitor;
23407 impl<'de> Visitor<'de> for EnumVisitor {
23408 type Value = RevokeLinkedAppError;
23409 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23410 f.write_str("a RevokeLinkedAppError structure")
23411 }
23412 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23413 let tag: &str = match map.next_key()? {
23414 Some(".tag") => map.next_value()?,
23415 _ => return Err(de::Error::missing_field(".tag"))
23416 };
23417 let value = match tag {
23418 "app_not_found" => RevokeLinkedAppError::AppNotFound,
23419 "member_not_found" => RevokeLinkedAppError::MemberNotFound,
23420 "app_folder_removal_not_supported" => RevokeLinkedAppError::AppFolderRemovalNotSupported,
23421 _ => RevokeLinkedAppError::Other,
23422 };
23423 crate::eat_json_fields(&mut map)?;
23424 Ok(value)
23425 }
23426 }
23427 const VARIANTS: &[&str] = &["app_not_found",
23428 "member_not_found",
23429 "app_folder_removal_not_supported",
23430 "other"];
23431 deserializer.deserialize_struct("RevokeLinkedAppError", VARIANTS, EnumVisitor)
23432 }
23433}
23434
23435impl ::serde::ser::Serialize for RevokeLinkedAppError {
23436 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23437 use serde::ser::SerializeStruct;
23439 match self {
23440 RevokeLinkedAppError::AppNotFound => {
23441 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
23443 s.serialize_field(".tag", "app_not_found")?;
23444 s.end()
23445 }
23446 RevokeLinkedAppError::MemberNotFound => {
23447 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
23449 s.serialize_field(".tag", "member_not_found")?;
23450 s.end()
23451 }
23452 RevokeLinkedAppError::AppFolderRemovalNotSupported => {
23453 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
23455 s.serialize_field(".tag", "app_folder_removal_not_supported")?;
23456 s.end()
23457 }
23458 RevokeLinkedAppError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23459 }
23460 }
23461}
23462
23463impl ::std::error::Error for RevokeLinkedAppError {
23464}
23465
23466impl ::std::fmt::Display for RevokeLinkedAppError {
23467 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23468 match self {
23469 RevokeLinkedAppError::AppNotFound => f.write_str("Application not found."),
23470 RevokeLinkedAppError::MemberNotFound => f.write_str("Member not found."),
23471 RevokeLinkedAppError::AppFolderRemovalNotSupported => f.write_str("App folder removal is not supported."),
23472 _ => write!(f, "{:?}", *self),
23473 }
23474 }
23475}
23476
23477#[derive(Debug, Clone, PartialEq, Eq)]
23478#[non_exhaustive] pub struct RevokeLinkedAppStatus {
23480 pub success: bool,
23482 pub error_type: Option<RevokeLinkedAppError>,
23484}
23485
23486impl RevokeLinkedAppStatus {
23487 pub fn new(success: bool) -> Self {
23488 RevokeLinkedAppStatus {
23489 success,
23490 error_type: None,
23491 }
23492 }
23493
23494 pub fn with_error_type(mut self, value: RevokeLinkedAppError) -> Self {
23495 self.error_type = Some(value);
23496 self
23497 }
23498}
23499
23500const REVOKE_LINKED_APP_STATUS_FIELDS: &[&str] = &["success",
23501 "error_type"];
23502impl RevokeLinkedAppStatus {
23503 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23504 map: V,
23505 ) -> Result<RevokeLinkedAppStatus, V::Error> {
23506 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23507 }
23508
23509 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23510 mut map: V,
23511 optional: bool,
23512 ) -> Result<Option<RevokeLinkedAppStatus>, V::Error> {
23513 let mut field_success = None;
23514 let mut field_error_type = None;
23515 let mut nothing = true;
23516 while let Some(key) = map.next_key::<&str>()? {
23517 nothing = false;
23518 match key {
23519 "success" => {
23520 if field_success.is_some() {
23521 return Err(::serde::de::Error::duplicate_field("success"));
23522 }
23523 field_success = Some(map.next_value()?);
23524 }
23525 "error_type" => {
23526 if field_error_type.is_some() {
23527 return Err(::serde::de::Error::duplicate_field("error_type"));
23528 }
23529 field_error_type = Some(map.next_value()?);
23530 }
23531 _ => {
23532 map.next_value::<::serde_json::Value>()?;
23534 }
23535 }
23536 }
23537 if optional && nothing {
23538 return Ok(None);
23539 }
23540 let result = RevokeLinkedAppStatus {
23541 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
23542 error_type: field_error_type.and_then(Option::flatten),
23543 };
23544 Ok(Some(result))
23545 }
23546
23547 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23548 &self,
23549 s: &mut S::SerializeStruct,
23550 ) -> Result<(), S::Error> {
23551 use serde::ser::SerializeStruct;
23552 s.serialize_field("success", &self.success)?;
23553 if let Some(val) = &self.error_type {
23554 s.serialize_field("error_type", val)?;
23555 }
23556 Ok(())
23557 }
23558}
23559
23560impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppStatus {
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 = RevokeLinkedAppStatus;
23567 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23568 f.write_str("a RevokeLinkedAppStatus struct")
23569 }
23570 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23571 RevokeLinkedAppStatus::internal_deserialize(map)
23572 }
23573 }
23574 deserializer.deserialize_struct("RevokeLinkedAppStatus", REVOKE_LINKED_APP_STATUS_FIELDS, StructVisitor)
23575 }
23576}
23577
23578impl ::serde::ser::Serialize for RevokeLinkedAppStatus {
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("RevokeLinkedAppStatus", 2)?;
23583 self.internal_serialize::<S>(&mut s)?;
23584 s.end()
23585 }
23586}
23587
23588#[derive(Debug, Clone, PartialEq, Eq)]
23589#[non_exhaustive] pub struct SetCustomQuotaArg {
23591 pub users_and_quotas: Vec<UserCustomQuotaArg>,
23593}
23594
23595impl SetCustomQuotaArg {
23596 pub fn new(users_and_quotas: Vec<UserCustomQuotaArg>) -> Self {
23597 SetCustomQuotaArg {
23598 users_and_quotas,
23599 }
23600 }
23601}
23602
23603const SET_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["users_and_quotas"];
23604impl SetCustomQuotaArg {
23605 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23606 map: V,
23607 ) -> Result<SetCustomQuotaArg, V::Error> {
23608 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23609 }
23610
23611 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23612 mut map: V,
23613 optional: bool,
23614 ) -> Result<Option<SetCustomQuotaArg>, V::Error> {
23615 let mut field_users_and_quotas = None;
23616 let mut nothing = true;
23617 while let Some(key) = map.next_key::<&str>()? {
23618 nothing = false;
23619 match key {
23620 "users_and_quotas" => {
23621 if field_users_and_quotas.is_some() {
23622 return Err(::serde::de::Error::duplicate_field("users_and_quotas"));
23623 }
23624 field_users_and_quotas = Some(map.next_value()?);
23625 }
23626 _ => {
23627 map.next_value::<::serde_json::Value>()?;
23629 }
23630 }
23631 }
23632 if optional && nothing {
23633 return Ok(None);
23634 }
23635 let result = SetCustomQuotaArg {
23636 users_and_quotas: field_users_and_quotas.ok_or_else(|| ::serde::de::Error::missing_field("users_and_quotas"))?,
23637 };
23638 Ok(Some(result))
23639 }
23640
23641 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23642 &self,
23643 s: &mut S::SerializeStruct,
23644 ) -> Result<(), S::Error> {
23645 use serde::ser::SerializeStruct;
23646 s.serialize_field("users_and_quotas", &self.users_and_quotas)?;
23647 Ok(())
23648 }
23649}
23650
23651impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaArg {
23652 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23653 use serde::de::{MapAccess, Visitor};
23655 struct StructVisitor;
23656 impl<'de> Visitor<'de> for StructVisitor {
23657 type Value = SetCustomQuotaArg;
23658 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23659 f.write_str("a SetCustomQuotaArg struct")
23660 }
23661 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23662 SetCustomQuotaArg::internal_deserialize(map)
23663 }
23664 }
23665 deserializer.deserialize_struct("SetCustomQuotaArg", SET_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
23666 }
23667}
23668
23669impl ::serde::ser::Serialize for SetCustomQuotaArg {
23670 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23671 use serde::ser::SerializeStruct;
23673 let mut s = serializer.serialize_struct("SetCustomQuotaArg", 1)?;
23674 self.internal_serialize::<S>(&mut s)?;
23675 s.end()
23676 }
23677}
23678
23679#[derive(Debug, Clone, PartialEq, Eq)]
23681#[non_exhaustive] pub enum SetCustomQuotaError {
23683 TooManyUsers,
23685 SomeUsersAreExcluded,
23687 Other,
23690}
23691
23692impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaError {
23693 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23694 use serde::de::{self, MapAccess, Visitor};
23696 struct EnumVisitor;
23697 impl<'de> Visitor<'de> for EnumVisitor {
23698 type Value = SetCustomQuotaError;
23699 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23700 f.write_str("a SetCustomQuotaError structure")
23701 }
23702 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23703 let tag: &str = match map.next_key()? {
23704 Some(".tag") => map.next_value()?,
23705 _ => return Err(de::Error::missing_field(".tag"))
23706 };
23707 let value = match tag {
23708 "too_many_users" => SetCustomQuotaError::TooManyUsers,
23709 "some_users_are_excluded" => SetCustomQuotaError::SomeUsersAreExcluded,
23710 _ => SetCustomQuotaError::Other,
23711 };
23712 crate::eat_json_fields(&mut map)?;
23713 Ok(value)
23714 }
23715 }
23716 const VARIANTS: &[&str] = &["too_many_users",
23717 "other",
23718 "some_users_are_excluded"];
23719 deserializer.deserialize_struct("SetCustomQuotaError", VARIANTS, EnumVisitor)
23720 }
23721}
23722
23723impl ::serde::ser::Serialize for SetCustomQuotaError {
23724 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23725 use serde::ser::SerializeStruct;
23727 match self {
23728 SetCustomQuotaError::TooManyUsers => {
23729 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
23731 s.serialize_field(".tag", "too_many_users")?;
23732 s.end()
23733 }
23734 SetCustomQuotaError::SomeUsersAreExcluded => {
23735 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
23737 s.serialize_field(".tag", "some_users_are_excluded")?;
23738 s.end()
23739 }
23740 SetCustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23741 }
23742 }
23743}
23744
23745impl ::std::error::Error for SetCustomQuotaError {
23746}
23747
23748impl ::std::fmt::Display for SetCustomQuotaError {
23749 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23750 match self {
23751 SetCustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
23752 SetCustomQuotaError::SomeUsersAreExcluded => f.write_str("Some of the users are on the excluded users list and can't have custom quota set."),
23753 _ => write!(f, "{:?}", *self),
23754 }
23755 }
23756}
23757
23758impl From<CustomQuotaError> for SetCustomQuotaError {
23760 fn from(parent: CustomQuotaError) -> Self {
23761 match parent {
23762 CustomQuotaError::TooManyUsers => SetCustomQuotaError::TooManyUsers,
23763 CustomQuotaError::Other => SetCustomQuotaError::Other,
23764 }
23765 }
23766}
23767#[derive(Debug, Clone, PartialEq, Eq, Default)]
23770#[non_exhaustive] pub struct SharingAllowlistAddArgs {
23772 pub domains: Option<Vec<String>>,
23774 pub emails: Option<Vec<String>>,
23776}
23777
23778impl SharingAllowlistAddArgs {
23779 pub fn with_domains(mut self, value: Vec<String>) -> Self {
23780 self.domains = Some(value);
23781 self
23782 }
23783
23784 pub fn with_emails(mut self, value: Vec<String>) -> Self {
23785 self.emails = Some(value);
23786 self
23787 }
23788}
23789
23790const SHARING_ALLOWLIST_ADD_ARGS_FIELDS: &[&str] = &["domains",
23791 "emails"];
23792impl SharingAllowlistAddArgs {
23793 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23795 mut map: V,
23796 ) -> Result<SharingAllowlistAddArgs, V::Error> {
23797 let mut field_domains = None;
23798 let mut field_emails = None;
23799 while let Some(key) = map.next_key::<&str>()? {
23800 match key {
23801 "domains" => {
23802 if field_domains.is_some() {
23803 return Err(::serde::de::Error::duplicate_field("domains"));
23804 }
23805 field_domains = Some(map.next_value()?);
23806 }
23807 "emails" => {
23808 if field_emails.is_some() {
23809 return Err(::serde::de::Error::duplicate_field("emails"));
23810 }
23811 field_emails = Some(map.next_value()?);
23812 }
23813 _ => {
23814 map.next_value::<::serde_json::Value>()?;
23816 }
23817 }
23818 }
23819 let result = SharingAllowlistAddArgs {
23820 domains: field_domains.and_then(Option::flatten),
23821 emails: field_emails.and_then(Option::flatten),
23822 };
23823 Ok(result)
23824 }
23825
23826 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23827 &self,
23828 s: &mut S::SerializeStruct,
23829 ) -> Result<(), S::Error> {
23830 use serde::ser::SerializeStruct;
23831 if let Some(val) = &self.domains {
23832 s.serialize_field("domains", val)?;
23833 }
23834 if let Some(val) = &self.emails {
23835 s.serialize_field("emails", val)?;
23836 }
23837 Ok(())
23838 }
23839}
23840
23841impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddArgs {
23842 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23843 use serde::de::{MapAccess, Visitor};
23845 struct StructVisitor;
23846 impl<'de> Visitor<'de> for StructVisitor {
23847 type Value = SharingAllowlistAddArgs;
23848 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23849 f.write_str("a SharingAllowlistAddArgs struct")
23850 }
23851 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23852 SharingAllowlistAddArgs::internal_deserialize(map)
23853 }
23854 }
23855 deserializer.deserialize_struct("SharingAllowlistAddArgs", SHARING_ALLOWLIST_ADD_ARGS_FIELDS, StructVisitor)
23856 }
23857}
23858
23859impl ::serde::ser::Serialize for SharingAllowlistAddArgs {
23860 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23861 use serde::ser::SerializeStruct;
23863 let mut s = serializer.serialize_struct("SharingAllowlistAddArgs", 2)?;
23864 self.internal_serialize::<S>(&mut s)?;
23865 s.end()
23866 }
23867}
23868
23869#[derive(Debug, Clone, PartialEq, Eq)]
23870#[non_exhaustive] pub enum SharingAllowlistAddError {
23872 MalformedEntry(String),
23874 NoEntriesProvided,
23876 TooManyEntriesProvided,
23878 TeamLimitReached,
23880 UnknownError,
23882 EntriesAlreadyExist(String),
23884 Other,
23887}
23888
23889impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddError {
23890 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23891 use serde::de::{self, MapAccess, Visitor};
23893 struct EnumVisitor;
23894 impl<'de> Visitor<'de> for EnumVisitor {
23895 type Value = SharingAllowlistAddError;
23896 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23897 f.write_str("a SharingAllowlistAddError structure")
23898 }
23899 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23900 let tag: &str = match map.next_key()? {
23901 Some(".tag") => map.next_value()?,
23902 _ => return Err(de::Error::missing_field(".tag"))
23903 };
23904 let value = match tag {
23905 "malformed_entry" => {
23906 match map.next_key()? {
23907 Some("malformed_entry") => SharingAllowlistAddError::MalformedEntry(map.next_value()?),
23908 None => return Err(de::Error::missing_field("malformed_entry")),
23909 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23910 }
23911 }
23912 "no_entries_provided" => SharingAllowlistAddError::NoEntriesProvided,
23913 "too_many_entries_provided" => SharingAllowlistAddError::TooManyEntriesProvided,
23914 "team_limit_reached" => SharingAllowlistAddError::TeamLimitReached,
23915 "unknown_error" => SharingAllowlistAddError::UnknownError,
23916 "entries_already_exist" => {
23917 match map.next_key()? {
23918 Some("entries_already_exist") => SharingAllowlistAddError::EntriesAlreadyExist(map.next_value()?),
23919 None => return Err(de::Error::missing_field("entries_already_exist")),
23920 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23921 }
23922 }
23923 _ => SharingAllowlistAddError::Other,
23924 };
23925 crate::eat_json_fields(&mut map)?;
23926 Ok(value)
23927 }
23928 }
23929 const VARIANTS: &[&str] = &["malformed_entry",
23930 "no_entries_provided",
23931 "too_many_entries_provided",
23932 "team_limit_reached",
23933 "unknown_error",
23934 "entries_already_exist",
23935 "other"];
23936 deserializer.deserialize_struct("SharingAllowlistAddError", VARIANTS, EnumVisitor)
23937 }
23938}
23939
23940impl ::serde::ser::Serialize for SharingAllowlistAddError {
23941 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23942 use serde::ser::SerializeStruct;
23944 match self {
23945 SharingAllowlistAddError::MalformedEntry(x) => {
23946 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
23948 s.serialize_field(".tag", "malformed_entry")?;
23949 s.serialize_field("malformed_entry", x)?;
23950 s.end()
23951 }
23952 SharingAllowlistAddError::NoEntriesProvided => {
23953 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23955 s.serialize_field(".tag", "no_entries_provided")?;
23956 s.end()
23957 }
23958 SharingAllowlistAddError::TooManyEntriesProvided => {
23959 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23961 s.serialize_field(".tag", "too_many_entries_provided")?;
23962 s.end()
23963 }
23964 SharingAllowlistAddError::TeamLimitReached => {
23965 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23967 s.serialize_field(".tag", "team_limit_reached")?;
23968 s.end()
23969 }
23970 SharingAllowlistAddError::UnknownError => {
23971 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23973 s.serialize_field(".tag", "unknown_error")?;
23974 s.end()
23975 }
23976 SharingAllowlistAddError::EntriesAlreadyExist(x) => {
23977 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
23979 s.serialize_field(".tag", "entries_already_exist")?;
23980 s.serialize_field("entries_already_exist", x)?;
23981 s.end()
23982 }
23983 SharingAllowlistAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23984 }
23985 }
23986}
23987
23988impl ::std::error::Error for SharingAllowlistAddError {
23989}
23990
23991impl ::std::fmt::Display for SharingAllowlistAddError {
23992 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23993 match self {
23994 SharingAllowlistAddError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
23995 SharingAllowlistAddError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
23996 SharingAllowlistAddError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
23997 SharingAllowlistAddError::TeamLimitReached => f.write_str("Team entries limit reached."),
23998 SharingAllowlistAddError::UnknownError => f.write_str("Unknown error."),
23999 SharingAllowlistAddError::EntriesAlreadyExist(inner) => write!(f, "Entries already exists: {:?}", inner),
24000 _ => write!(f, "{:?}", *self),
24001 }
24002 }
24003}
24004
24005#[derive(Debug, Clone, PartialEq, Eq, Default)]
24008#[non_exhaustive] pub struct SharingAllowlistAddResponse {
24010}
24011
24012const SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS: &[&str] = &[];
24013impl SharingAllowlistAddResponse {
24014 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24016 mut map: V,
24017 ) -> Result<SharingAllowlistAddResponse, V::Error> {
24018 crate::eat_json_fields(&mut map)?;
24020 Ok(SharingAllowlistAddResponse {})
24021 }
24022}
24023
24024impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddResponse {
24025 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24026 use serde::de::{MapAccess, Visitor};
24028 struct StructVisitor;
24029 impl<'de> Visitor<'de> for StructVisitor {
24030 type Value = SharingAllowlistAddResponse;
24031 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24032 f.write_str("a SharingAllowlistAddResponse struct")
24033 }
24034 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24035 SharingAllowlistAddResponse::internal_deserialize(map)
24036 }
24037 }
24038 deserializer.deserialize_struct("SharingAllowlistAddResponse", SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS, StructVisitor)
24039 }
24040}
24041
24042impl ::serde::ser::Serialize for SharingAllowlistAddResponse {
24043 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24044 use serde::ser::SerializeStruct;
24046 serializer.serialize_struct("SharingAllowlistAddResponse", 0)?.end()
24047 }
24048}
24049
24050#[derive(Debug, Clone, PartialEq, Eq)]
24051#[non_exhaustive] pub struct SharingAllowlistListArg {
24053 pub limit: u32,
24055}
24056
24057impl Default for SharingAllowlistListArg {
24058 fn default() -> Self {
24059 SharingAllowlistListArg {
24060 limit: 1000,
24061 }
24062 }
24063}
24064
24065impl SharingAllowlistListArg {
24066 pub fn with_limit(mut self, value: u32) -> Self {
24067 self.limit = value;
24068 self
24069 }
24070}
24071
24072const SHARING_ALLOWLIST_LIST_ARG_FIELDS: &[&str] = &["limit"];
24073impl SharingAllowlistListArg {
24074 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24076 mut map: V,
24077 ) -> Result<SharingAllowlistListArg, V::Error> {
24078 let mut field_limit = None;
24079 while let Some(key) = map.next_key::<&str>()? {
24080 match key {
24081 "limit" => {
24082 if field_limit.is_some() {
24083 return Err(::serde::de::Error::duplicate_field("limit"));
24084 }
24085 field_limit = Some(map.next_value()?);
24086 }
24087 _ => {
24088 map.next_value::<::serde_json::Value>()?;
24090 }
24091 }
24092 }
24093 let result = SharingAllowlistListArg {
24094 limit: field_limit.unwrap_or(1000),
24095 };
24096 Ok(result)
24097 }
24098
24099 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24100 &self,
24101 s: &mut S::SerializeStruct,
24102 ) -> Result<(), S::Error> {
24103 use serde::ser::SerializeStruct;
24104 if self.limit != 1000 {
24105 s.serialize_field("limit", &self.limit)?;
24106 }
24107 Ok(())
24108 }
24109}
24110
24111impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListArg {
24112 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24113 use serde::de::{MapAccess, Visitor};
24115 struct StructVisitor;
24116 impl<'de> Visitor<'de> for StructVisitor {
24117 type Value = SharingAllowlistListArg;
24118 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24119 f.write_str("a SharingAllowlistListArg struct")
24120 }
24121 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24122 SharingAllowlistListArg::internal_deserialize(map)
24123 }
24124 }
24125 deserializer.deserialize_struct("SharingAllowlistListArg", SHARING_ALLOWLIST_LIST_ARG_FIELDS, StructVisitor)
24126 }
24127}
24128
24129impl ::serde::ser::Serialize for SharingAllowlistListArg {
24130 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24131 use serde::ser::SerializeStruct;
24133 let mut s = serializer.serialize_struct("SharingAllowlistListArg", 1)?;
24134 self.internal_serialize::<S>(&mut s)?;
24135 s.end()
24136 }
24137}
24138
24139#[derive(Debug, Clone, PartialEq, Eq)]
24140#[non_exhaustive] pub struct SharingAllowlistListContinueArg {
24142 pub cursor: String,
24146}
24147
24148impl SharingAllowlistListContinueArg {
24149 pub fn new(cursor: String) -> Self {
24150 SharingAllowlistListContinueArg {
24151 cursor,
24152 }
24153 }
24154}
24155
24156const SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
24157impl SharingAllowlistListContinueArg {
24158 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24159 map: V,
24160 ) -> Result<SharingAllowlistListContinueArg, V::Error> {
24161 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24162 }
24163
24164 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24165 mut map: V,
24166 optional: bool,
24167 ) -> Result<Option<SharingAllowlistListContinueArg>, V::Error> {
24168 let mut field_cursor = None;
24169 let mut nothing = true;
24170 while let Some(key) = map.next_key::<&str>()? {
24171 nothing = false;
24172 match key {
24173 "cursor" => {
24174 if field_cursor.is_some() {
24175 return Err(::serde::de::Error::duplicate_field("cursor"));
24176 }
24177 field_cursor = Some(map.next_value()?);
24178 }
24179 _ => {
24180 map.next_value::<::serde_json::Value>()?;
24182 }
24183 }
24184 }
24185 if optional && nothing {
24186 return Ok(None);
24187 }
24188 let result = SharingAllowlistListContinueArg {
24189 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
24190 };
24191 Ok(Some(result))
24192 }
24193
24194 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24195 &self,
24196 s: &mut S::SerializeStruct,
24197 ) -> Result<(), S::Error> {
24198 use serde::ser::SerializeStruct;
24199 s.serialize_field("cursor", &self.cursor)?;
24200 Ok(())
24201 }
24202}
24203
24204impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueArg {
24205 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24206 use serde::de::{MapAccess, Visitor};
24208 struct StructVisitor;
24209 impl<'de> Visitor<'de> for StructVisitor {
24210 type Value = SharingAllowlistListContinueArg;
24211 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24212 f.write_str("a SharingAllowlistListContinueArg struct")
24213 }
24214 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24215 SharingAllowlistListContinueArg::internal_deserialize(map)
24216 }
24217 }
24218 deserializer.deserialize_struct("SharingAllowlistListContinueArg", SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
24219 }
24220}
24221
24222impl ::serde::ser::Serialize for SharingAllowlistListContinueArg {
24223 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24224 use serde::ser::SerializeStruct;
24226 let mut s = serializer.serialize_struct("SharingAllowlistListContinueArg", 1)?;
24227 self.internal_serialize::<S>(&mut s)?;
24228 s.end()
24229 }
24230}
24231
24232#[derive(Debug, Clone, PartialEq, Eq)]
24233#[non_exhaustive] pub enum SharingAllowlistListContinueError {
24235 InvalidCursor,
24237 Other,
24240}
24241
24242impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueError {
24243 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24244 use serde::de::{self, MapAccess, Visitor};
24246 struct EnumVisitor;
24247 impl<'de> Visitor<'de> for EnumVisitor {
24248 type Value = SharingAllowlistListContinueError;
24249 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24250 f.write_str("a SharingAllowlistListContinueError structure")
24251 }
24252 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24253 let tag: &str = match map.next_key()? {
24254 Some(".tag") => map.next_value()?,
24255 _ => return Err(de::Error::missing_field(".tag"))
24256 };
24257 let value = match tag {
24258 "invalid_cursor" => SharingAllowlistListContinueError::InvalidCursor,
24259 _ => SharingAllowlistListContinueError::Other,
24260 };
24261 crate::eat_json_fields(&mut map)?;
24262 Ok(value)
24263 }
24264 }
24265 const VARIANTS: &[&str] = &["invalid_cursor",
24266 "other"];
24267 deserializer.deserialize_struct("SharingAllowlistListContinueError", VARIANTS, EnumVisitor)
24268 }
24269}
24270
24271impl ::serde::ser::Serialize for SharingAllowlistListContinueError {
24272 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24273 use serde::ser::SerializeStruct;
24275 match self {
24276 SharingAllowlistListContinueError::InvalidCursor => {
24277 let mut s = serializer.serialize_struct("SharingAllowlistListContinueError", 1)?;
24279 s.serialize_field(".tag", "invalid_cursor")?;
24280 s.end()
24281 }
24282 SharingAllowlistListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24283 }
24284 }
24285}
24286
24287impl ::std::error::Error for SharingAllowlistListContinueError {
24288}
24289
24290impl ::std::fmt::Display for SharingAllowlistListContinueError {
24291 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24292 match self {
24293 SharingAllowlistListContinueError::InvalidCursor => f.write_str("Provided cursor is not valid."),
24294 _ => write!(f, "{:?}", *self),
24295 }
24296 }
24297}
24298
24299#[derive(Debug, Clone, PartialEq, Eq, Default)]
24302#[non_exhaustive] pub struct SharingAllowlistListError {
24304}
24305
24306const SHARING_ALLOWLIST_LIST_ERROR_FIELDS: &[&str] = &[];
24307impl SharingAllowlistListError {
24308 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24310 mut map: V,
24311 ) -> Result<SharingAllowlistListError, V::Error> {
24312 crate::eat_json_fields(&mut map)?;
24314 Ok(SharingAllowlistListError {})
24315 }
24316}
24317
24318impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListError {
24319 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24320 use serde::de::{MapAccess, Visitor};
24322 struct StructVisitor;
24323 impl<'de> Visitor<'de> for StructVisitor {
24324 type Value = SharingAllowlistListError;
24325 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24326 f.write_str("a SharingAllowlistListError struct")
24327 }
24328 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24329 SharingAllowlistListError::internal_deserialize(map)
24330 }
24331 }
24332 deserializer.deserialize_struct("SharingAllowlistListError", SHARING_ALLOWLIST_LIST_ERROR_FIELDS, StructVisitor)
24333 }
24334}
24335
24336impl ::serde::ser::Serialize for SharingAllowlistListError {
24337 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24338 use serde::ser::SerializeStruct;
24340 serializer.serialize_struct("SharingAllowlistListError", 0)?.end()
24341 }
24342}
24343
24344impl ::std::error::Error for SharingAllowlistListError {
24345}
24346
24347impl ::std::fmt::Display for SharingAllowlistListError {
24348 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24349 write!(f, "{:?}", *self)
24350 }
24351}
24352
24353#[derive(Debug, Clone, PartialEq, Eq)]
24354#[non_exhaustive] pub struct SharingAllowlistListResponse {
24356 pub domains: Vec<String>,
24358 pub emails: Vec<String>,
24360 pub cursor: String,
24363 pub has_more: bool,
24366}
24367
24368impl SharingAllowlistListResponse {
24369 pub fn new(domains: Vec<String>, emails: Vec<String>) -> Self {
24370 SharingAllowlistListResponse {
24371 domains,
24372 emails,
24373 cursor: String::new(),
24374 has_more: false,
24375 }
24376 }
24377
24378 pub fn with_cursor(mut self, value: String) -> Self {
24379 self.cursor = value;
24380 self
24381 }
24382
24383 pub fn with_has_more(mut self, value: bool) -> Self {
24384 self.has_more = value;
24385 self
24386 }
24387}
24388
24389const SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS: &[&str] = &["domains",
24390 "emails",
24391 "cursor",
24392 "has_more"];
24393impl SharingAllowlistListResponse {
24394 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24395 map: V,
24396 ) -> Result<SharingAllowlistListResponse, V::Error> {
24397 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24398 }
24399
24400 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24401 mut map: V,
24402 optional: bool,
24403 ) -> Result<Option<SharingAllowlistListResponse>, V::Error> {
24404 let mut field_domains = None;
24405 let mut field_emails = None;
24406 let mut field_cursor = None;
24407 let mut field_has_more = None;
24408 let mut nothing = true;
24409 while let Some(key) = map.next_key::<&str>()? {
24410 nothing = false;
24411 match key {
24412 "domains" => {
24413 if field_domains.is_some() {
24414 return Err(::serde::de::Error::duplicate_field("domains"));
24415 }
24416 field_domains = Some(map.next_value()?);
24417 }
24418 "emails" => {
24419 if field_emails.is_some() {
24420 return Err(::serde::de::Error::duplicate_field("emails"));
24421 }
24422 field_emails = Some(map.next_value()?);
24423 }
24424 "cursor" => {
24425 if field_cursor.is_some() {
24426 return Err(::serde::de::Error::duplicate_field("cursor"));
24427 }
24428 field_cursor = Some(map.next_value()?);
24429 }
24430 "has_more" => {
24431 if field_has_more.is_some() {
24432 return Err(::serde::de::Error::duplicate_field("has_more"));
24433 }
24434 field_has_more = Some(map.next_value()?);
24435 }
24436 _ => {
24437 map.next_value::<::serde_json::Value>()?;
24439 }
24440 }
24441 }
24442 if optional && nothing {
24443 return Ok(None);
24444 }
24445 let result = SharingAllowlistListResponse {
24446 domains: field_domains.ok_or_else(|| ::serde::de::Error::missing_field("domains"))?,
24447 emails: field_emails.ok_or_else(|| ::serde::de::Error::missing_field("emails"))?,
24448 cursor: field_cursor.unwrap_or_default(),
24449 has_more: field_has_more.unwrap_or(false),
24450 };
24451 Ok(Some(result))
24452 }
24453
24454 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24455 &self,
24456 s: &mut S::SerializeStruct,
24457 ) -> Result<(), S::Error> {
24458 use serde::ser::SerializeStruct;
24459 s.serialize_field("domains", &self.domains)?;
24460 s.serialize_field("emails", &self.emails)?;
24461 if !self.cursor.is_empty() {
24462 s.serialize_field("cursor", &self.cursor)?;
24463 }
24464 if self.has_more {
24465 s.serialize_field("has_more", &self.has_more)?;
24466 }
24467 Ok(())
24468 }
24469}
24470
24471impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListResponse {
24472 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24473 use serde::de::{MapAccess, Visitor};
24475 struct StructVisitor;
24476 impl<'de> Visitor<'de> for StructVisitor {
24477 type Value = SharingAllowlistListResponse;
24478 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24479 f.write_str("a SharingAllowlistListResponse struct")
24480 }
24481 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24482 SharingAllowlistListResponse::internal_deserialize(map)
24483 }
24484 }
24485 deserializer.deserialize_struct("SharingAllowlistListResponse", SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS, StructVisitor)
24486 }
24487}
24488
24489impl ::serde::ser::Serialize for SharingAllowlistListResponse {
24490 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24491 use serde::ser::SerializeStruct;
24493 let mut s = serializer.serialize_struct("SharingAllowlistListResponse", 4)?;
24494 self.internal_serialize::<S>(&mut s)?;
24495 s.end()
24496 }
24497}
24498
24499#[derive(Debug, Clone, PartialEq, Eq, Default)]
24500#[non_exhaustive] pub struct SharingAllowlistRemoveArgs {
24502 pub domains: Option<Vec<String>>,
24504 pub emails: Option<Vec<String>>,
24506}
24507
24508impl SharingAllowlistRemoveArgs {
24509 pub fn with_domains(mut self, value: Vec<String>) -> Self {
24510 self.domains = Some(value);
24511 self
24512 }
24513
24514 pub fn with_emails(mut self, value: Vec<String>) -> Self {
24515 self.emails = Some(value);
24516 self
24517 }
24518}
24519
24520const SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS: &[&str] = &["domains",
24521 "emails"];
24522impl SharingAllowlistRemoveArgs {
24523 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24525 mut map: V,
24526 ) -> Result<SharingAllowlistRemoveArgs, V::Error> {
24527 let mut field_domains = None;
24528 let mut field_emails = None;
24529 while let Some(key) = map.next_key::<&str>()? {
24530 match key {
24531 "domains" => {
24532 if field_domains.is_some() {
24533 return Err(::serde::de::Error::duplicate_field("domains"));
24534 }
24535 field_domains = Some(map.next_value()?);
24536 }
24537 "emails" => {
24538 if field_emails.is_some() {
24539 return Err(::serde::de::Error::duplicate_field("emails"));
24540 }
24541 field_emails = Some(map.next_value()?);
24542 }
24543 _ => {
24544 map.next_value::<::serde_json::Value>()?;
24546 }
24547 }
24548 }
24549 let result = SharingAllowlistRemoveArgs {
24550 domains: field_domains.and_then(Option::flatten),
24551 emails: field_emails.and_then(Option::flatten),
24552 };
24553 Ok(result)
24554 }
24555
24556 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24557 &self,
24558 s: &mut S::SerializeStruct,
24559 ) -> Result<(), S::Error> {
24560 use serde::ser::SerializeStruct;
24561 if let Some(val) = &self.domains {
24562 s.serialize_field("domains", val)?;
24563 }
24564 if let Some(val) = &self.emails {
24565 s.serialize_field("emails", val)?;
24566 }
24567 Ok(())
24568 }
24569}
24570
24571impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveArgs {
24572 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24573 use serde::de::{MapAccess, Visitor};
24575 struct StructVisitor;
24576 impl<'de> Visitor<'de> for StructVisitor {
24577 type Value = SharingAllowlistRemoveArgs;
24578 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24579 f.write_str("a SharingAllowlistRemoveArgs struct")
24580 }
24581 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24582 SharingAllowlistRemoveArgs::internal_deserialize(map)
24583 }
24584 }
24585 deserializer.deserialize_struct("SharingAllowlistRemoveArgs", SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS, StructVisitor)
24586 }
24587}
24588
24589impl ::serde::ser::Serialize for SharingAllowlistRemoveArgs {
24590 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24591 use serde::ser::SerializeStruct;
24593 let mut s = serializer.serialize_struct("SharingAllowlistRemoveArgs", 2)?;
24594 self.internal_serialize::<S>(&mut s)?;
24595 s.end()
24596 }
24597}
24598
24599#[derive(Debug, Clone, PartialEq, Eq)]
24600#[non_exhaustive] pub enum SharingAllowlistRemoveError {
24602 MalformedEntry(String),
24604 EntriesDoNotExist(String),
24606 NoEntriesProvided,
24608 TooManyEntriesProvided,
24610 UnknownError,
24612 Other,
24615}
24616
24617impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveError {
24618 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24619 use serde::de::{self, MapAccess, Visitor};
24621 struct EnumVisitor;
24622 impl<'de> Visitor<'de> for EnumVisitor {
24623 type Value = SharingAllowlistRemoveError;
24624 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24625 f.write_str("a SharingAllowlistRemoveError structure")
24626 }
24627 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24628 let tag: &str = match map.next_key()? {
24629 Some(".tag") => map.next_value()?,
24630 _ => return Err(de::Error::missing_field(".tag"))
24631 };
24632 let value = match tag {
24633 "malformed_entry" => {
24634 match map.next_key()? {
24635 Some("malformed_entry") => SharingAllowlistRemoveError::MalformedEntry(map.next_value()?),
24636 None => return Err(de::Error::missing_field("malformed_entry")),
24637 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24638 }
24639 }
24640 "entries_do_not_exist" => {
24641 match map.next_key()? {
24642 Some("entries_do_not_exist") => SharingAllowlistRemoveError::EntriesDoNotExist(map.next_value()?),
24643 None => return Err(de::Error::missing_field("entries_do_not_exist")),
24644 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24645 }
24646 }
24647 "no_entries_provided" => SharingAllowlistRemoveError::NoEntriesProvided,
24648 "too_many_entries_provided" => SharingAllowlistRemoveError::TooManyEntriesProvided,
24649 "unknown_error" => SharingAllowlistRemoveError::UnknownError,
24650 _ => SharingAllowlistRemoveError::Other,
24651 };
24652 crate::eat_json_fields(&mut map)?;
24653 Ok(value)
24654 }
24655 }
24656 const VARIANTS: &[&str] = &["malformed_entry",
24657 "entries_do_not_exist",
24658 "no_entries_provided",
24659 "too_many_entries_provided",
24660 "unknown_error",
24661 "other"];
24662 deserializer.deserialize_struct("SharingAllowlistRemoveError", VARIANTS, EnumVisitor)
24663 }
24664}
24665
24666impl ::serde::ser::Serialize for SharingAllowlistRemoveError {
24667 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24668 use serde::ser::SerializeStruct;
24670 match self {
24671 SharingAllowlistRemoveError::MalformedEntry(x) => {
24672 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
24674 s.serialize_field(".tag", "malformed_entry")?;
24675 s.serialize_field("malformed_entry", x)?;
24676 s.end()
24677 }
24678 SharingAllowlistRemoveError::EntriesDoNotExist(x) => {
24679 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
24681 s.serialize_field(".tag", "entries_do_not_exist")?;
24682 s.serialize_field("entries_do_not_exist", x)?;
24683 s.end()
24684 }
24685 SharingAllowlistRemoveError::NoEntriesProvided => {
24686 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24688 s.serialize_field(".tag", "no_entries_provided")?;
24689 s.end()
24690 }
24691 SharingAllowlistRemoveError::TooManyEntriesProvided => {
24692 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24694 s.serialize_field(".tag", "too_many_entries_provided")?;
24695 s.end()
24696 }
24697 SharingAllowlistRemoveError::UnknownError => {
24698 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24700 s.serialize_field(".tag", "unknown_error")?;
24701 s.end()
24702 }
24703 SharingAllowlistRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24704 }
24705 }
24706}
24707
24708impl ::std::error::Error for SharingAllowlistRemoveError {
24709}
24710
24711impl ::std::fmt::Display for SharingAllowlistRemoveError {
24712 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24713 match self {
24714 SharingAllowlistRemoveError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
24715 SharingAllowlistRemoveError::EntriesDoNotExist(inner) => write!(f, "One or more provided values do not exist: {:?}", inner),
24716 SharingAllowlistRemoveError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
24717 SharingAllowlistRemoveError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
24718 SharingAllowlistRemoveError::UnknownError => f.write_str("Unknown error."),
24719 _ => write!(f, "{:?}", *self),
24720 }
24721 }
24722}
24723
24724#[derive(Debug, Clone, PartialEq, Eq, Default)]
24727#[non_exhaustive] pub struct SharingAllowlistRemoveResponse {
24729}
24730
24731const SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS: &[&str] = &[];
24732impl SharingAllowlistRemoveResponse {
24733 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24735 mut map: V,
24736 ) -> Result<SharingAllowlistRemoveResponse, V::Error> {
24737 crate::eat_json_fields(&mut map)?;
24739 Ok(SharingAllowlistRemoveResponse {})
24740 }
24741}
24742
24743impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveResponse {
24744 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24745 use serde::de::{MapAccess, Visitor};
24747 struct StructVisitor;
24748 impl<'de> Visitor<'de> for StructVisitor {
24749 type Value = SharingAllowlistRemoveResponse;
24750 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24751 f.write_str("a SharingAllowlistRemoveResponse struct")
24752 }
24753 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24754 SharingAllowlistRemoveResponse::internal_deserialize(map)
24755 }
24756 }
24757 deserializer.deserialize_struct("SharingAllowlistRemoveResponse", SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS, StructVisitor)
24758 }
24759}
24760
24761impl ::serde::ser::Serialize for SharingAllowlistRemoveResponse {
24762 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24763 use serde::ser::SerializeStruct;
24765 serializer.serialize_struct("SharingAllowlistRemoveResponse", 0)?.end()
24766 }
24767}
24768
24769#[derive(Debug, Clone, PartialEq, Eq)]
24771#[non_exhaustive] pub struct StorageBucket {
24773 pub bucket: String,
24776 pub users: u64,
24778}
24779
24780impl StorageBucket {
24781 pub fn new(bucket: String, users: u64) -> Self {
24782 StorageBucket {
24783 bucket,
24784 users,
24785 }
24786 }
24787}
24788
24789const STORAGE_BUCKET_FIELDS: &[&str] = &["bucket",
24790 "users"];
24791impl StorageBucket {
24792 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24793 map: V,
24794 ) -> Result<StorageBucket, V::Error> {
24795 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24796 }
24797
24798 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24799 mut map: V,
24800 optional: bool,
24801 ) -> Result<Option<StorageBucket>, V::Error> {
24802 let mut field_bucket = None;
24803 let mut field_users = None;
24804 let mut nothing = true;
24805 while let Some(key) = map.next_key::<&str>()? {
24806 nothing = false;
24807 match key {
24808 "bucket" => {
24809 if field_bucket.is_some() {
24810 return Err(::serde::de::Error::duplicate_field("bucket"));
24811 }
24812 field_bucket = Some(map.next_value()?);
24813 }
24814 "users" => {
24815 if field_users.is_some() {
24816 return Err(::serde::de::Error::duplicate_field("users"));
24817 }
24818 field_users = Some(map.next_value()?);
24819 }
24820 _ => {
24821 map.next_value::<::serde_json::Value>()?;
24823 }
24824 }
24825 }
24826 if optional && nothing {
24827 return Ok(None);
24828 }
24829 let result = StorageBucket {
24830 bucket: field_bucket.ok_or_else(|| ::serde::de::Error::missing_field("bucket"))?,
24831 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
24832 };
24833 Ok(Some(result))
24834 }
24835
24836 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24837 &self,
24838 s: &mut S::SerializeStruct,
24839 ) -> Result<(), S::Error> {
24840 use serde::ser::SerializeStruct;
24841 s.serialize_field("bucket", &self.bucket)?;
24842 s.serialize_field("users", &self.users)?;
24843 Ok(())
24844 }
24845}
24846
24847impl<'de> ::serde::de::Deserialize<'de> for StorageBucket {
24848 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24849 use serde::de::{MapAccess, Visitor};
24851 struct StructVisitor;
24852 impl<'de> Visitor<'de> for StructVisitor {
24853 type Value = StorageBucket;
24854 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24855 f.write_str("a StorageBucket struct")
24856 }
24857 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24858 StorageBucket::internal_deserialize(map)
24859 }
24860 }
24861 deserializer.deserialize_struct("StorageBucket", STORAGE_BUCKET_FIELDS, StructVisitor)
24862 }
24863}
24864
24865impl ::serde::ser::Serialize for StorageBucket {
24866 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24867 use serde::ser::SerializeStruct;
24869 let mut s = serializer.serialize_struct("StorageBucket", 2)?;
24870 self.internal_serialize::<S>(&mut s)?;
24871 s.end()
24872 }
24873}
24874
24875#[derive(Debug, Clone, PartialEq, Eq)]
24876#[non_exhaustive] pub enum TeamFolderAccessError {
24878 InvalidTeamFolderId,
24880 NoAccess,
24882 Other,
24885}
24886
24887impl<'de> ::serde::de::Deserialize<'de> for TeamFolderAccessError {
24888 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24889 use serde::de::{self, MapAccess, Visitor};
24891 struct EnumVisitor;
24892 impl<'de> Visitor<'de> for EnumVisitor {
24893 type Value = TeamFolderAccessError;
24894 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24895 f.write_str("a TeamFolderAccessError structure")
24896 }
24897 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24898 let tag: &str = match map.next_key()? {
24899 Some(".tag") => map.next_value()?,
24900 _ => return Err(de::Error::missing_field(".tag"))
24901 };
24902 let value = match tag {
24903 "invalid_team_folder_id" => TeamFolderAccessError::InvalidTeamFolderId,
24904 "no_access" => TeamFolderAccessError::NoAccess,
24905 _ => TeamFolderAccessError::Other,
24906 };
24907 crate::eat_json_fields(&mut map)?;
24908 Ok(value)
24909 }
24910 }
24911 const VARIANTS: &[&str] = &["invalid_team_folder_id",
24912 "no_access",
24913 "other"];
24914 deserializer.deserialize_struct("TeamFolderAccessError", VARIANTS, EnumVisitor)
24915 }
24916}
24917
24918impl ::serde::ser::Serialize for TeamFolderAccessError {
24919 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24920 use serde::ser::SerializeStruct;
24922 match self {
24923 TeamFolderAccessError::InvalidTeamFolderId => {
24924 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
24926 s.serialize_field(".tag", "invalid_team_folder_id")?;
24927 s.end()
24928 }
24929 TeamFolderAccessError::NoAccess => {
24930 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
24932 s.serialize_field(".tag", "no_access")?;
24933 s.end()
24934 }
24935 TeamFolderAccessError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24936 }
24937 }
24938}
24939
24940impl ::std::error::Error for TeamFolderAccessError {
24941}
24942
24943impl ::std::fmt::Display for TeamFolderAccessError {
24944 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24945 match self {
24946 TeamFolderAccessError::InvalidTeamFolderId => f.write_str("The team folder ID is invalid."),
24947 TeamFolderAccessError::NoAccess => f.write_str("The authenticated app does not have permission to manage that team folder."),
24948 _ => write!(f, "{:?}", *self),
24949 }
24950 }
24951}
24952
24953
24954#[derive(Debug, Clone, PartialEq, Eq)]
24955#[non_exhaustive] pub enum TeamFolderActivateError {
24957 AccessError(TeamFolderAccessError),
24958 StatusError(TeamFolderInvalidStatusError),
24959 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
24960 Other,
24963}
24964
24965impl<'de> ::serde::de::Deserialize<'de> for TeamFolderActivateError {
24966 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24967 use serde::de::{self, MapAccess, Visitor};
24969 struct EnumVisitor;
24970 impl<'de> Visitor<'de> for EnumVisitor {
24971 type Value = TeamFolderActivateError;
24972 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24973 f.write_str("a TeamFolderActivateError structure")
24974 }
24975 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24976 let tag: &str = match map.next_key()? {
24977 Some(".tag") => map.next_value()?,
24978 _ => return Err(de::Error::missing_field(".tag"))
24979 };
24980 let value = match tag {
24981 "access_error" => {
24982 match map.next_key()? {
24983 Some("access_error") => TeamFolderActivateError::AccessError(map.next_value()?),
24984 None => return Err(de::Error::missing_field("access_error")),
24985 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24986 }
24987 }
24988 "status_error" => {
24989 match map.next_key()? {
24990 Some("status_error") => TeamFolderActivateError::StatusError(map.next_value()?),
24991 None => return Err(de::Error::missing_field("status_error")),
24992 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24993 }
24994 }
24995 "team_shared_dropbox_error" => {
24996 match map.next_key()? {
24997 Some("team_shared_dropbox_error") => TeamFolderActivateError::TeamSharedDropboxError(map.next_value()?),
24998 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
24999 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25000 }
25001 }
25002 _ => TeamFolderActivateError::Other,
25003 };
25004 crate::eat_json_fields(&mut map)?;
25005 Ok(value)
25006 }
25007 }
25008 const VARIANTS: &[&str] = &["access_error",
25009 "status_error",
25010 "team_shared_dropbox_error",
25011 "other"];
25012 deserializer.deserialize_struct("TeamFolderActivateError", VARIANTS, EnumVisitor)
25013 }
25014}
25015
25016impl ::serde::ser::Serialize for TeamFolderActivateError {
25017 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25018 use serde::ser::SerializeStruct;
25020 match self {
25021 TeamFolderActivateError::AccessError(x) => {
25022 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25024 s.serialize_field(".tag", "access_error")?;
25025 s.serialize_field("access_error", x)?;
25026 s.end()
25027 }
25028 TeamFolderActivateError::StatusError(x) => {
25029 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25031 s.serialize_field(".tag", "status_error")?;
25032 s.serialize_field("status_error", x)?;
25033 s.end()
25034 }
25035 TeamFolderActivateError::TeamSharedDropboxError(x) => {
25036 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25038 s.serialize_field(".tag", "team_shared_dropbox_error")?;
25039 s.serialize_field("team_shared_dropbox_error", x)?;
25040 s.end()
25041 }
25042 TeamFolderActivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25043 }
25044 }
25045}
25046
25047impl ::std::error::Error for TeamFolderActivateError {
25048 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25049 match self {
25050 TeamFolderActivateError::AccessError(inner) => Some(inner),
25051 TeamFolderActivateError::StatusError(inner) => Some(inner),
25052 TeamFolderActivateError::TeamSharedDropboxError(inner) => Some(inner),
25053 _ => None,
25054 }
25055 }
25056}
25057
25058impl ::std::fmt::Display for TeamFolderActivateError {
25059 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25060 match self {
25061 TeamFolderActivateError::AccessError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25062 TeamFolderActivateError::StatusError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25063 TeamFolderActivateError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25064 _ => write!(f, "{:?}", *self),
25065 }
25066 }
25067}
25068
25069impl From<BaseTeamFolderError> for TeamFolderActivateError {
25071 fn from(parent: BaseTeamFolderError) -> Self {
25072 match parent {
25073 BaseTeamFolderError::AccessError(x) => TeamFolderActivateError::AccessError(x),
25074 BaseTeamFolderError::StatusError(x) => TeamFolderActivateError::StatusError(x),
25075 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderActivateError::TeamSharedDropboxError(x),
25076 BaseTeamFolderError::Other => TeamFolderActivateError::Other,
25077 }
25078 }
25079}
25080#[derive(Debug, Clone, PartialEq, Eq)]
25081#[non_exhaustive] pub struct TeamFolderArchiveArg {
25083 pub team_folder_id: crate::types::common::SharedFolderId,
25085 pub force_async_off: bool,
25087}
25088
25089impl TeamFolderArchiveArg {
25090 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
25091 TeamFolderArchiveArg {
25092 team_folder_id,
25093 force_async_off: false,
25094 }
25095 }
25096
25097 pub fn with_force_async_off(mut self, value: bool) -> Self {
25098 self.force_async_off = value;
25099 self
25100 }
25101}
25102
25103const TEAM_FOLDER_ARCHIVE_ARG_FIELDS: &[&str] = &["team_folder_id",
25104 "force_async_off"];
25105impl TeamFolderArchiveArg {
25106 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25107 map: V,
25108 ) -> Result<TeamFolderArchiveArg, V::Error> {
25109 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25110 }
25111
25112 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25113 mut map: V,
25114 optional: bool,
25115 ) -> Result<Option<TeamFolderArchiveArg>, V::Error> {
25116 let mut field_team_folder_id = None;
25117 let mut field_force_async_off = None;
25118 let mut nothing = true;
25119 while let Some(key) = map.next_key::<&str>()? {
25120 nothing = false;
25121 match key {
25122 "team_folder_id" => {
25123 if field_team_folder_id.is_some() {
25124 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
25125 }
25126 field_team_folder_id = Some(map.next_value()?);
25127 }
25128 "force_async_off" => {
25129 if field_force_async_off.is_some() {
25130 return Err(::serde::de::Error::duplicate_field("force_async_off"));
25131 }
25132 field_force_async_off = Some(map.next_value()?);
25133 }
25134 _ => {
25135 map.next_value::<::serde_json::Value>()?;
25137 }
25138 }
25139 }
25140 if optional && nothing {
25141 return Ok(None);
25142 }
25143 let result = TeamFolderArchiveArg {
25144 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
25145 force_async_off: field_force_async_off.unwrap_or(false),
25146 };
25147 Ok(Some(result))
25148 }
25149
25150 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25151 &self,
25152 s: &mut S::SerializeStruct,
25153 ) -> Result<(), S::Error> {
25154 use serde::ser::SerializeStruct;
25155 s.serialize_field("team_folder_id", &self.team_folder_id)?;
25156 if self.force_async_off {
25157 s.serialize_field("force_async_off", &self.force_async_off)?;
25158 }
25159 Ok(())
25160 }
25161}
25162
25163impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveArg {
25164 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25165 use serde::de::{MapAccess, Visitor};
25167 struct StructVisitor;
25168 impl<'de> Visitor<'de> for StructVisitor {
25169 type Value = TeamFolderArchiveArg;
25170 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25171 f.write_str("a TeamFolderArchiveArg struct")
25172 }
25173 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25174 TeamFolderArchiveArg::internal_deserialize(map)
25175 }
25176 }
25177 deserializer.deserialize_struct("TeamFolderArchiveArg", TEAM_FOLDER_ARCHIVE_ARG_FIELDS, StructVisitor)
25178 }
25179}
25180
25181impl ::serde::ser::Serialize for TeamFolderArchiveArg {
25182 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25183 use serde::ser::SerializeStruct;
25185 let mut s = serializer.serialize_struct("TeamFolderArchiveArg", 2)?;
25186 self.internal_serialize::<S>(&mut s)?;
25187 s.end()
25188 }
25189}
25190
25191impl From<TeamFolderArchiveArg> for TeamFolderIdArg {
25193 fn from(subtype: TeamFolderArchiveArg) -> Self {
25194 Self {
25195 team_folder_id: subtype.team_folder_id,
25196 }
25197 }
25198}
25199
25200#[derive(Debug, Clone, PartialEq, Eq)]
25201#[non_exhaustive] pub enum TeamFolderArchiveError {
25203 AccessError(TeamFolderAccessError),
25204 StatusError(TeamFolderInvalidStatusError),
25205 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
25206 Other,
25209}
25210
25211impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveError {
25212 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25213 use serde::de::{self, MapAccess, Visitor};
25215 struct EnumVisitor;
25216 impl<'de> Visitor<'de> for EnumVisitor {
25217 type Value = TeamFolderArchiveError;
25218 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25219 f.write_str("a TeamFolderArchiveError structure")
25220 }
25221 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25222 let tag: &str = match map.next_key()? {
25223 Some(".tag") => map.next_value()?,
25224 _ => return Err(de::Error::missing_field(".tag"))
25225 };
25226 let value = match tag {
25227 "access_error" => {
25228 match map.next_key()? {
25229 Some("access_error") => TeamFolderArchiveError::AccessError(map.next_value()?),
25230 None => return Err(de::Error::missing_field("access_error")),
25231 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25232 }
25233 }
25234 "status_error" => {
25235 match map.next_key()? {
25236 Some("status_error") => TeamFolderArchiveError::StatusError(map.next_value()?),
25237 None => return Err(de::Error::missing_field("status_error")),
25238 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25239 }
25240 }
25241 "team_shared_dropbox_error" => {
25242 match map.next_key()? {
25243 Some("team_shared_dropbox_error") => TeamFolderArchiveError::TeamSharedDropboxError(map.next_value()?),
25244 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
25245 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25246 }
25247 }
25248 _ => TeamFolderArchiveError::Other,
25249 };
25250 crate::eat_json_fields(&mut map)?;
25251 Ok(value)
25252 }
25253 }
25254 const VARIANTS: &[&str] = &["access_error",
25255 "status_error",
25256 "team_shared_dropbox_error",
25257 "other"];
25258 deserializer.deserialize_struct("TeamFolderArchiveError", VARIANTS, EnumVisitor)
25259 }
25260}
25261
25262impl ::serde::ser::Serialize for TeamFolderArchiveError {
25263 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25264 use serde::ser::SerializeStruct;
25266 match self {
25267 TeamFolderArchiveError::AccessError(x) => {
25268 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
25270 s.serialize_field(".tag", "access_error")?;
25271 s.serialize_field("access_error", x)?;
25272 s.end()
25273 }
25274 TeamFolderArchiveError::StatusError(x) => {
25275 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
25277 s.serialize_field(".tag", "status_error")?;
25278 s.serialize_field("status_error", x)?;
25279 s.end()
25280 }
25281 TeamFolderArchiveError::TeamSharedDropboxError(x) => {
25282 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
25284 s.serialize_field(".tag", "team_shared_dropbox_error")?;
25285 s.serialize_field("team_shared_dropbox_error", x)?;
25286 s.end()
25287 }
25288 TeamFolderArchiveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25289 }
25290 }
25291}
25292
25293impl ::std::error::Error for TeamFolderArchiveError {
25294 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25295 match self {
25296 TeamFolderArchiveError::AccessError(inner) => Some(inner),
25297 TeamFolderArchiveError::StatusError(inner) => Some(inner),
25298 TeamFolderArchiveError::TeamSharedDropboxError(inner) => Some(inner),
25299 _ => None,
25300 }
25301 }
25302}
25303
25304impl ::std::fmt::Display for TeamFolderArchiveError {
25305 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25306 match self {
25307 TeamFolderArchiveError::AccessError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
25308 TeamFolderArchiveError::StatusError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
25309 TeamFolderArchiveError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
25310 _ => write!(f, "{:?}", *self),
25311 }
25312 }
25313}
25314
25315impl From<BaseTeamFolderError> for TeamFolderArchiveError {
25317 fn from(parent: BaseTeamFolderError) -> Self {
25318 match parent {
25319 BaseTeamFolderError::AccessError(x) => TeamFolderArchiveError::AccessError(x),
25320 BaseTeamFolderError::StatusError(x) => TeamFolderArchiveError::StatusError(x),
25321 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderArchiveError::TeamSharedDropboxError(x),
25322 BaseTeamFolderError::Other => TeamFolderArchiveError::Other,
25323 }
25324 }
25325}
25326#[derive(Debug, Clone, PartialEq, Eq)]
25327pub enum TeamFolderArchiveJobStatus {
25328 InProgress,
25330 Complete(TeamFolderMetadata),
25332 Failed(TeamFolderArchiveError),
25335}
25336
25337impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveJobStatus {
25338 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25339 use serde::de::{self, MapAccess, Visitor};
25341 struct EnumVisitor;
25342 impl<'de> Visitor<'de> for EnumVisitor {
25343 type Value = TeamFolderArchiveJobStatus;
25344 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25345 f.write_str("a TeamFolderArchiveJobStatus structure")
25346 }
25347 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25348 let tag: &str = match map.next_key()? {
25349 Some(".tag") => map.next_value()?,
25350 _ => return Err(de::Error::missing_field(".tag"))
25351 };
25352 let value = match tag {
25353 "in_progress" => TeamFolderArchiveJobStatus::InProgress,
25354 "complete" => TeamFolderArchiveJobStatus::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
25355 "failed" => {
25356 match map.next_key()? {
25357 Some("failed") => TeamFolderArchiveJobStatus::Failed(map.next_value()?),
25358 None => return Err(de::Error::missing_field("failed")),
25359 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25360 }
25361 }
25362 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25363 };
25364 crate::eat_json_fields(&mut map)?;
25365 Ok(value)
25366 }
25367 }
25368 const VARIANTS: &[&str] = &["in_progress",
25369 "complete",
25370 "failed"];
25371 deserializer.deserialize_struct("TeamFolderArchiveJobStatus", VARIANTS, EnumVisitor)
25372 }
25373}
25374
25375impl ::serde::ser::Serialize for TeamFolderArchiveJobStatus {
25376 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25377 use serde::ser::SerializeStruct;
25379 match self {
25380 TeamFolderArchiveJobStatus::InProgress => {
25381 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 1)?;
25383 s.serialize_field(".tag", "in_progress")?;
25384 s.end()
25385 }
25386 TeamFolderArchiveJobStatus::Complete(x) => {
25387 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 8)?;
25389 s.serialize_field(".tag", "complete")?;
25390 x.internal_serialize::<S>(&mut s)?;
25391 s.end()
25392 }
25393 TeamFolderArchiveJobStatus::Failed(x) => {
25394 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 2)?;
25396 s.serialize_field(".tag", "failed")?;
25397 s.serialize_field("failed", x)?;
25398 s.end()
25399 }
25400 }
25401 }
25402}
25403
25404impl From<crate::types::dbx_async::PollResultBase> for TeamFolderArchiveJobStatus {
25406 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
25407 match parent {
25408 crate::types::dbx_async::PollResultBase::InProgress => TeamFolderArchiveJobStatus::InProgress,
25409 }
25410 }
25411}
25412#[derive(Debug, Clone, PartialEq, Eq)]
25413pub enum TeamFolderArchiveLaunch {
25414 AsyncJobId(crate::types::dbx_async::AsyncJobId),
25417 Complete(TeamFolderMetadata),
25418}
25419
25420impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveLaunch {
25421 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25422 use serde::de::{self, MapAccess, Visitor};
25424 struct EnumVisitor;
25425 impl<'de> Visitor<'de> for EnumVisitor {
25426 type Value = TeamFolderArchiveLaunch;
25427 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25428 f.write_str("a TeamFolderArchiveLaunch structure")
25429 }
25430 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25431 let tag: &str = match map.next_key()? {
25432 Some(".tag") => map.next_value()?,
25433 _ => return Err(de::Error::missing_field(".tag"))
25434 };
25435 let value = match tag {
25436 "async_job_id" => {
25437 match map.next_key()? {
25438 Some("async_job_id") => TeamFolderArchiveLaunch::AsyncJobId(map.next_value()?),
25439 None => return Err(de::Error::missing_field("async_job_id")),
25440 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25441 }
25442 }
25443 "complete" => TeamFolderArchiveLaunch::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
25444 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25445 };
25446 crate::eat_json_fields(&mut map)?;
25447 Ok(value)
25448 }
25449 }
25450 const VARIANTS: &[&str] = &["async_job_id",
25451 "complete"];
25452 deserializer.deserialize_struct("TeamFolderArchiveLaunch", VARIANTS, EnumVisitor)
25453 }
25454}
25455
25456impl ::serde::ser::Serialize for TeamFolderArchiveLaunch {
25457 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25458 use serde::ser::SerializeStruct;
25460 match self {
25461 TeamFolderArchiveLaunch::AsyncJobId(x) => {
25462 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 2)?;
25464 s.serialize_field(".tag", "async_job_id")?;
25465 s.serialize_field("async_job_id", x)?;
25466 s.end()
25467 }
25468 TeamFolderArchiveLaunch::Complete(x) => {
25469 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 8)?;
25471 s.serialize_field(".tag", "complete")?;
25472 x.internal_serialize::<S>(&mut s)?;
25473 s.end()
25474 }
25475 }
25476 }
25477}
25478
25479impl From<crate::types::dbx_async::LaunchResultBase> for TeamFolderArchiveLaunch {
25481 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
25482 match parent {
25483 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => TeamFolderArchiveLaunch::AsyncJobId(x),
25484 }
25485 }
25486}
25487#[derive(Debug, Clone, PartialEq, Eq)]
25488#[non_exhaustive] pub struct TeamFolderCreateArg {
25490 pub name: String,
25492 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
25495}
25496
25497impl TeamFolderCreateArg {
25498 pub fn new(name: String) -> Self {
25499 TeamFolderCreateArg {
25500 name,
25501 sync_setting: None,
25502 }
25503 }
25504
25505 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
25506 self.sync_setting = Some(value);
25507 self
25508 }
25509}
25510
25511const TEAM_FOLDER_CREATE_ARG_FIELDS: &[&str] = &["name",
25512 "sync_setting"];
25513impl TeamFolderCreateArg {
25514 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25515 map: V,
25516 ) -> Result<TeamFolderCreateArg, V::Error> {
25517 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25518 }
25519
25520 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25521 mut map: V,
25522 optional: bool,
25523 ) -> Result<Option<TeamFolderCreateArg>, V::Error> {
25524 let mut field_name = None;
25525 let mut field_sync_setting = None;
25526 let mut nothing = true;
25527 while let Some(key) = map.next_key::<&str>()? {
25528 nothing = false;
25529 match key {
25530 "name" => {
25531 if field_name.is_some() {
25532 return Err(::serde::de::Error::duplicate_field("name"));
25533 }
25534 field_name = Some(map.next_value()?);
25535 }
25536 "sync_setting" => {
25537 if field_sync_setting.is_some() {
25538 return Err(::serde::de::Error::duplicate_field("sync_setting"));
25539 }
25540 field_sync_setting = Some(map.next_value()?);
25541 }
25542 _ => {
25543 map.next_value::<::serde_json::Value>()?;
25545 }
25546 }
25547 }
25548 if optional && nothing {
25549 return Ok(None);
25550 }
25551 let result = TeamFolderCreateArg {
25552 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
25553 sync_setting: field_sync_setting.and_then(Option::flatten),
25554 };
25555 Ok(Some(result))
25556 }
25557
25558 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25559 &self,
25560 s: &mut S::SerializeStruct,
25561 ) -> Result<(), S::Error> {
25562 use serde::ser::SerializeStruct;
25563 s.serialize_field("name", &self.name)?;
25564 if let Some(val) = &self.sync_setting {
25565 s.serialize_field("sync_setting", val)?;
25566 }
25567 Ok(())
25568 }
25569}
25570
25571impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateArg {
25572 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25573 use serde::de::{MapAccess, Visitor};
25575 struct StructVisitor;
25576 impl<'de> Visitor<'de> for StructVisitor {
25577 type Value = TeamFolderCreateArg;
25578 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25579 f.write_str("a TeamFolderCreateArg struct")
25580 }
25581 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25582 TeamFolderCreateArg::internal_deserialize(map)
25583 }
25584 }
25585 deserializer.deserialize_struct("TeamFolderCreateArg", TEAM_FOLDER_CREATE_ARG_FIELDS, StructVisitor)
25586 }
25587}
25588
25589impl ::serde::ser::Serialize for TeamFolderCreateArg {
25590 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25591 use serde::ser::SerializeStruct;
25593 let mut s = serializer.serialize_struct("TeamFolderCreateArg", 2)?;
25594 self.internal_serialize::<S>(&mut s)?;
25595 s.end()
25596 }
25597}
25598
25599#[derive(Debug, Clone, PartialEq, Eq)]
25600#[non_exhaustive] pub enum TeamFolderCreateError {
25602 InvalidFolderName,
25604 FolderNameAlreadyUsed,
25606 FolderNameReserved,
25608 SyncSettingsError(crate::types::files::SyncSettingsError),
25610 Other,
25613}
25614
25615impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateError {
25616 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25617 use serde::de::{self, MapAccess, Visitor};
25619 struct EnumVisitor;
25620 impl<'de> Visitor<'de> for EnumVisitor {
25621 type Value = TeamFolderCreateError;
25622 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25623 f.write_str("a TeamFolderCreateError structure")
25624 }
25625 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25626 let tag: &str = match map.next_key()? {
25627 Some(".tag") => map.next_value()?,
25628 _ => return Err(de::Error::missing_field(".tag"))
25629 };
25630 let value = match tag {
25631 "invalid_folder_name" => TeamFolderCreateError::InvalidFolderName,
25632 "folder_name_already_used" => TeamFolderCreateError::FolderNameAlreadyUsed,
25633 "folder_name_reserved" => TeamFolderCreateError::FolderNameReserved,
25634 "sync_settings_error" => {
25635 match map.next_key()? {
25636 Some("sync_settings_error") => TeamFolderCreateError::SyncSettingsError(map.next_value()?),
25637 None => return Err(de::Error::missing_field("sync_settings_error")),
25638 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25639 }
25640 }
25641 _ => TeamFolderCreateError::Other,
25642 };
25643 crate::eat_json_fields(&mut map)?;
25644 Ok(value)
25645 }
25646 }
25647 const VARIANTS: &[&str] = &["invalid_folder_name",
25648 "folder_name_already_used",
25649 "folder_name_reserved",
25650 "sync_settings_error",
25651 "other"];
25652 deserializer.deserialize_struct("TeamFolderCreateError", VARIANTS, EnumVisitor)
25653 }
25654}
25655
25656impl ::serde::ser::Serialize for TeamFolderCreateError {
25657 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25658 use serde::ser::SerializeStruct;
25660 match self {
25661 TeamFolderCreateError::InvalidFolderName => {
25662 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25664 s.serialize_field(".tag", "invalid_folder_name")?;
25665 s.end()
25666 }
25667 TeamFolderCreateError::FolderNameAlreadyUsed => {
25668 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25670 s.serialize_field(".tag", "folder_name_already_used")?;
25671 s.end()
25672 }
25673 TeamFolderCreateError::FolderNameReserved => {
25674 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25676 s.serialize_field(".tag", "folder_name_reserved")?;
25677 s.end()
25678 }
25679 TeamFolderCreateError::SyncSettingsError(x) => {
25680 let mut s = serializer.serialize_struct("TeamFolderCreateError", 2)?;
25682 s.serialize_field(".tag", "sync_settings_error")?;
25683 s.serialize_field("sync_settings_error", x)?;
25684 s.end()
25685 }
25686 TeamFolderCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25687 }
25688 }
25689}
25690
25691impl ::std::error::Error for TeamFolderCreateError {
25692 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25693 match self {
25694 TeamFolderCreateError::SyncSettingsError(inner) => Some(inner),
25695 _ => None,
25696 }
25697 }
25698}
25699
25700impl ::std::fmt::Display for TeamFolderCreateError {
25701 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25702 match self {
25703 TeamFolderCreateError::InvalidFolderName => f.write_str("The provided name cannot be used."),
25704 TeamFolderCreateError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the provided name."),
25705 TeamFolderCreateError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
25706 TeamFolderCreateError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
25707 _ => write!(f, "{:?}", *self),
25708 }
25709 }
25710}
25711
25712#[derive(Debug, Clone, PartialEq, Eq)]
25713pub enum TeamFolderGetInfoItem {
25714 IdNotFound(String),
25718 TeamFolderMetadata(TeamFolderMetadata),
25720}
25721
25722impl<'de> ::serde::de::Deserialize<'de> for TeamFolderGetInfoItem {
25723 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25724 use serde::de::{self, MapAccess, Visitor};
25726 struct EnumVisitor;
25727 impl<'de> Visitor<'de> for EnumVisitor {
25728 type Value = TeamFolderGetInfoItem;
25729 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25730 f.write_str("a TeamFolderGetInfoItem structure")
25731 }
25732 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25733 let tag: &str = match map.next_key()? {
25734 Some(".tag") => map.next_value()?,
25735 _ => return Err(de::Error::missing_field(".tag"))
25736 };
25737 let value = match tag {
25738 "id_not_found" => {
25739 match map.next_key()? {
25740 Some("id_not_found") => TeamFolderGetInfoItem::IdNotFound(map.next_value()?),
25741 None => return Err(de::Error::missing_field("id_not_found")),
25742 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25743 }
25744 }
25745 "team_folder_metadata" => TeamFolderGetInfoItem::TeamFolderMetadata(TeamFolderMetadata::internal_deserialize(&mut map)?),
25746 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25747 };
25748 crate::eat_json_fields(&mut map)?;
25749 Ok(value)
25750 }
25751 }
25752 const VARIANTS: &[&str] = &["id_not_found",
25753 "team_folder_metadata"];
25754 deserializer.deserialize_struct("TeamFolderGetInfoItem", VARIANTS, EnumVisitor)
25755 }
25756}
25757
25758impl ::serde::ser::Serialize for TeamFolderGetInfoItem {
25759 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25760 use serde::ser::SerializeStruct;
25762 match self {
25763 TeamFolderGetInfoItem::IdNotFound(x) => {
25764 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 2)?;
25766 s.serialize_field(".tag", "id_not_found")?;
25767 s.serialize_field("id_not_found", x)?;
25768 s.end()
25769 }
25770 TeamFolderGetInfoItem::TeamFolderMetadata(x) => {
25771 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 8)?;
25773 s.serialize_field(".tag", "team_folder_metadata")?;
25774 x.internal_serialize::<S>(&mut s)?;
25775 s.end()
25776 }
25777 }
25778 }
25779}
25780
25781#[derive(Debug, Clone, PartialEq, Eq)]
25782#[non_exhaustive] pub struct TeamFolderIdArg {
25784 pub team_folder_id: crate::types::common::SharedFolderId,
25786}
25787
25788impl TeamFolderIdArg {
25789 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
25790 TeamFolderIdArg {
25791 team_folder_id,
25792 }
25793 }
25794}
25795
25796const TEAM_FOLDER_ID_ARG_FIELDS: &[&str] = &["team_folder_id"];
25797impl TeamFolderIdArg {
25798 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25799 map: V,
25800 ) -> Result<TeamFolderIdArg, V::Error> {
25801 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25802 }
25803
25804 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25805 mut map: V,
25806 optional: bool,
25807 ) -> Result<Option<TeamFolderIdArg>, V::Error> {
25808 let mut field_team_folder_id = None;
25809 let mut nothing = true;
25810 while let Some(key) = map.next_key::<&str>()? {
25811 nothing = false;
25812 match key {
25813 "team_folder_id" => {
25814 if field_team_folder_id.is_some() {
25815 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
25816 }
25817 field_team_folder_id = Some(map.next_value()?);
25818 }
25819 _ => {
25820 map.next_value::<::serde_json::Value>()?;
25822 }
25823 }
25824 }
25825 if optional && nothing {
25826 return Ok(None);
25827 }
25828 let result = TeamFolderIdArg {
25829 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
25830 };
25831 Ok(Some(result))
25832 }
25833
25834 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25835 &self,
25836 s: &mut S::SerializeStruct,
25837 ) -> Result<(), S::Error> {
25838 use serde::ser::SerializeStruct;
25839 s.serialize_field("team_folder_id", &self.team_folder_id)?;
25840 Ok(())
25841 }
25842}
25843
25844impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdArg {
25845 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25846 use serde::de::{MapAccess, Visitor};
25848 struct StructVisitor;
25849 impl<'de> Visitor<'de> for StructVisitor {
25850 type Value = TeamFolderIdArg;
25851 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25852 f.write_str("a TeamFolderIdArg struct")
25853 }
25854 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25855 TeamFolderIdArg::internal_deserialize(map)
25856 }
25857 }
25858 deserializer.deserialize_struct("TeamFolderIdArg", TEAM_FOLDER_ID_ARG_FIELDS, StructVisitor)
25859 }
25860}
25861
25862impl ::serde::ser::Serialize for TeamFolderIdArg {
25863 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25864 use serde::ser::SerializeStruct;
25866 let mut s = serializer.serialize_struct("TeamFolderIdArg", 1)?;
25867 self.internal_serialize::<S>(&mut s)?;
25868 s.end()
25869 }
25870}
25871
25872#[derive(Debug, Clone, PartialEq, Eq)]
25873#[non_exhaustive] pub struct TeamFolderIdListArg {
25875 pub team_folder_ids: Vec<crate::types::common::SharedFolderId>,
25877}
25878
25879impl TeamFolderIdListArg {
25880 pub fn new(team_folder_ids: Vec<crate::types::common::SharedFolderId>) -> Self {
25881 TeamFolderIdListArg {
25882 team_folder_ids,
25883 }
25884 }
25885}
25886
25887const TEAM_FOLDER_ID_LIST_ARG_FIELDS: &[&str] = &["team_folder_ids"];
25888impl TeamFolderIdListArg {
25889 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25890 map: V,
25891 ) -> Result<TeamFolderIdListArg, V::Error> {
25892 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25893 }
25894
25895 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25896 mut map: V,
25897 optional: bool,
25898 ) -> Result<Option<TeamFolderIdListArg>, V::Error> {
25899 let mut field_team_folder_ids = None;
25900 let mut nothing = true;
25901 while let Some(key) = map.next_key::<&str>()? {
25902 nothing = false;
25903 match key {
25904 "team_folder_ids" => {
25905 if field_team_folder_ids.is_some() {
25906 return Err(::serde::de::Error::duplicate_field("team_folder_ids"));
25907 }
25908 field_team_folder_ids = Some(map.next_value()?);
25909 }
25910 _ => {
25911 map.next_value::<::serde_json::Value>()?;
25913 }
25914 }
25915 }
25916 if optional && nothing {
25917 return Ok(None);
25918 }
25919 let result = TeamFolderIdListArg {
25920 team_folder_ids: field_team_folder_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_ids"))?,
25921 };
25922 Ok(Some(result))
25923 }
25924
25925 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25926 &self,
25927 s: &mut S::SerializeStruct,
25928 ) -> Result<(), S::Error> {
25929 use serde::ser::SerializeStruct;
25930 s.serialize_field("team_folder_ids", &self.team_folder_ids)?;
25931 Ok(())
25932 }
25933}
25934
25935impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdListArg {
25936 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25937 use serde::de::{MapAccess, Visitor};
25939 struct StructVisitor;
25940 impl<'de> Visitor<'de> for StructVisitor {
25941 type Value = TeamFolderIdListArg;
25942 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25943 f.write_str("a TeamFolderIdListArg struct")
25944 }
25945 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25946 TeamFolderIdListArg::internal_deserialize(map)
25947 }
25948 }
25949 deserializer.deserialize_struct("TeamFolderIdListArg", TEAM_FOLDER_ID_LIST_ARG_FIELDS, StructVisitor)
25950 }
25951}
25952
25953impl ::serde::ser::Serialize for TeamFolderIdListArg {
25954 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25955 use serde::ser::SerializeStruct;
25957 let mut s = serializer.serialize_struct("TeamFolderIdListArg", 1)?;
25958 self.internal_serialize::<S>(&mut s)?;
25959 s.end()
25960 }
25961}
25962
25963#[derive(Debug, Clone, PartialEq, Eq)]
25964#[non_exhaustive] pub enum TeamFolderInvalidStatusError {
25966 Active,
25968 Archived,
25970 ArchiveInProgress,
25972 Other,
25975}
25976
25977impl<'de> ::serde::de::Deserialize<'de> for TeamFolderInvalidStatusError {
25978 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25979 use serde::de::{self, MapAccess, Visitor};
25981 struct EnumVisitor;
25982 impl<'de> Visitor<'de> for EnumVisitor {
25983 type Value = TeamFolderInvalidStatusError;
25984 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25985 f.write_str("a TeamFolderInvalidStatusError structure")
25986 }
25987 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25988 let tag: &str = match map.next_key()? {
25989 Some(".tag") => map.next_value()?,
25990 _ => return Err(de::Error::missing_field(".tag"))
25991 };
25992 let value = match tag {
25993 "active" => TeamFolderInvalidStatusError::Active,
25994 "archived" => TeamFolderInvalidStatusError::Archived,
25995 "archive_in_progress" => TeamFolderInvalidStatusError::ArchiveInProgress,
25996 _ => TeamFolderInvalidStatusError::Other,
25997 };
25998 crate::eat_json_fields(&mut map)?;
25999 Ok(value)
26000 }
26001 }
26002 const VARIANTS: &[&str] = &["active",
26003 "archived",
26004 "archive_in_progress",
26005 "other"];
26006 deserializer.deserialize_struct("TeamFolderInvalidStatusError", VARIANTS, EnumVisitor)
26007 }
26008}
26009
26010impl ::serde::ser::Serialize for TeamFolderInvalidStatusError {
26011 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26012 use serde::ser::SerializeStruct;
26014 match self {
26015 TeamFolderInvalidStatusError::Active => {
26016 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26018 s.serialize_field(".tag", "active")?;
26019 s.end()
26020 }
26021 TeamFolderInvalidStatusError::Archived => {
26022 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26024 s.serialize_field(".tag", "archived")?;
26025 s.end()
26026 }
26027 TeamFolderInvalidStatusError::ArchiveInProgress => {
26028 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26030 s.serialize_field(".tag", "archive_in_progress")?;
26031 s.end()
26032 }
26033 TeamFolderInvalidStatusError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26034 }
26035 }
26036}
26037
26038impl ::std::error::Error for TeamFolderInvalidStatusError {
26039}
26040
26041impl ::std::fmt::Display for TeamFolderInvalidStatusError {
26042 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26043 match self {
26044 TeamFolderInvalidStatusError::Active => f.write_str("The folder is active and the operation did not succeed."),
26045 TeamFolderInvalidStatusError::Archived => f.write_str("The folder is archived and the operation did not succeed."),
26046 TeamFolderInvalidStatusError::ArchiveInProgress => f.write_str("The folder is being archived and the operation did not succeed."),
26047 _ => write!(f, "{:?}", *self),
26048 }
26049 }
26050}
26051
26052#[derive(Debug, Clone, PartialEq, Eq)]
26053#[non_exhaustive] pub struct TeamFolderListArg {
26055 pub limit: u32,
26057}
26058
26059impl Default for TeamFolderListArg {
26060 fn default() -> Self {
26061 TeamFolderListArg {
26062 limit: 1000,
26063 }
26064 }
26065}
26066
26067impl TeamFolderListArg {
26068 pub fn with_limit(mut self, value: u32) -> Self {
26069 self.limit = value;
26070 self
26071 }
26072}
26073
26074const TEAM_FOLDER_LIST_ARG_FIELDS: &[&str] = &["limit"];
26075impl TeamFolderListArg {
26076 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26078 mut map: V,
26079 ) -> Result<TeamFolderListArg, V::Error> {
26080 let mut field_limit = None;
26081 while let Some(key) = map.next_key::<&str>()? {
26082 match key {
26083 "limit" => {
26084 if field_limit.is_some() {
26085 return Err(::serde::de::Error::duplicate_field("limit"));
26086 }
26087 field_limit = Some(map.next_value()?);
26088 }
26089 _ => {
26090 map.next_value::<::serde_json::Value>()?;
26092 }
26093 }
26094 }
26095 let result = TeamFolderListArg {
26096 limit: field_limit.unwrap_or(1000),
26097 };
26098 Ok(result)
26099 }
26100
26101 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26102 &self,
26103 s: &mut S::SerializeStruct,
26104 ) -> Result<(), S::Error> {
26105 use serde::ser::SerializeStruct;
26106 if self.limit != 1000 {
26107 s.serialize_field("limit", &self.limit)?;
26108 }
26109 Ok(())
26110 }
26111}
26112
26113impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListArg {
26114 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26115 use serde::de::{MapAccess, Visitor};
26117 struct StructVisitor;
26118 impl<'de> Visitor<'de> for StructVisitor {
26119 type Value = TeamFolderListArg;
26120 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26121 f.write_str("a TeamFolderListArg struct")
26122 }
26123 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26124 TeamFolderListArg::internal_deserialize(map)
26125 }
26126 }
26127 deserializer.deserialize_struct("TeamFolderListArg", TEAM_FOLDER_LIST_ARG_FIELDS, StructVisitor)
26128 }
26129}
26130
26131impl ::serde::ser::Serialize for TeamFolderListArg {
26132 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26133 use serde::ser::SerializeStruct;
26135 let mut s = serializer.serialize_struct("TeamFolderListArg", 1)?;
26136 self.internal_serialize::<S>(&mut s)?;
26137 s.end()
26138 }
26139}
26140
26141#[derive(Debug, Clone, PartialEq, Eq)]
26142#[non_exhaustive] pub struct TeamFolderListContinueArg {
26144 pub cursor: String,
26146}
26147
26148impl TeamFolderListContinueArg {
26149 pub fn new(cursor: String) -> Self {
26150 TeamFolderListContinueArg {
26151 cursor,
26152 }
26153 }
26154}
26155
26156const TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
26157impl TeamFolderListContinueArg {
26158 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26159 map: V,
26160 ) -> Result<TeamFolderListContinueArg, V::Error> {
26161 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26162 }
26163
26164 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26165 mut map: V,
26166 optional: bool,
26167 ) -> Result<Option<TeamFolderListContinueArg>, V::Error> {
26168 let mut field_cursor = None;
26169 let mut nothing = true;
26170 while let Some(key) = map.next_key::<&str>()? {
26171 nothing = false;
26172 match key {
26173 "cursor" => {
26174 if field_cursor.is_some() {
26175 return Err(::serde::de::Error::duplicate_field("cursor"));
26176 }
26177 field_cursor = Some(map.next_value()?);
26178 }
26179 _ => {
26180 map.next_value::<::serde_json::Value>()?;
26182 }
26183 }
26184 }
26185 if optional && nothing {
26186 return Ok(None);
26187 }
26188 let result = TeamFolderListContinueArg {
26189 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
26190 };
26191 Ok(Some(result))
26192 }
26193
26194 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26195 &self,
26196 s: &mut S::SerializeStruct,
26197 ) -> Result<(), S::Error> {
26198 use serde::ser::SerializeStruct;
26199 s.serialize_field("cursor", &self.cursor)?;
26200 Ok(())
26201 }
26202}
26203
26204impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueArg {
26205 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26206 use serde::de::{MapAccess, Visitor};
26208 struct StructVisitor;
26209 impl<'de> Visitor<'de> for StructVisitor {
26210 type Value = TeamFolderListContinueArg;
26211 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26212 f.write_str("a TeamFolderListContinueArg struct")
26213 }
26214 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26215 TeamFolderListContinueArg::internal_deserialize(map)
26216 }
26217 }
26218 deserializer.deserialize_struct("TeamFolderListContinueArg", TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
26219 }
26220}
26221
26222impl ::serde::ser::Serialize for TeamFolderListContinueArg {
26223 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26224 use serde::ser::SerializeStruct;
26226 let mut s = serializer.serialize_struct("TeamFolderListContinueArg", 1)?;
26227 self.internal_serialize::<S>(&mut s)?;
26228 s.end()
26229 }
26230}
26231
26232#[derive(Debug, Clone, PartialEq, Eq)]
26233#[non_exhaustive] pub enum TeamFolderListContinueError {
26235 InvalidCursor,
26237 Other,
26240}
26241
26242impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueError {
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 = TeamFolderListContinueError;
26249 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26250 f.write_str("a TeamFolderListContinueError 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 "invalid_cursor" => TeamFolderListContinueError::InvalidCursor,
26259 _ => TeamFolderListContinueError::Other,
26260 };
26261 crate::eat_json_fields(&mut map)?;
26262 Ok(value)
26263 }
26264 }
26265 const VARIANTS: &[&str] = &["invalid_cursor",
26266 "other"];
26267 deserializer.deserialize_struct("TeamFolderListContinueError", VARIANTS, EnumVisitor)
26268 }
26269}
26270
26271impl ::serde::ser::Serialize for TeamFolderListContinueError {
26272 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26273 use serde::ser::SerializeStruct;
26275 match self {
26276 TeamFolderListContinueError::InvalidCursor => {
26277 let mut s = serializer.serialize_struct("TeamFolderListContinueError", 1)?;
26279 s.serialize_field(".tag", "invalid_cursor")?;
26280 s.end()
26281 }
26282 TeamFolderListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26283 }
26284 }
26285}
26286
26287impl ::std::error::Error for TeamFolderListContinueError {
26288}
26289
26290impl ::std::fmt::Display for TeamFolderListContinueError {
26291 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26292 match self {
26293 TeamFolderListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
26294 _ => write!(f, "{:?}", *self),
26295 }
26296 }
26297}
26298
26299#[derive(Debug, Clone, PartialEq, Eq)]
26300#[non_exhaustive] pub struct TeamFolderListError {
26302 pub access_error: TeamFolderAccessError,
26303}
26304
26305impl TeamFolderListError {
26306 pub fn new(access_error: TeamFolderAccessError) -> Self {
26307 TeamFolderListError {
26308 access_error,
26309 }
26310 }
26311}
26312
26313const TEAM_FOLDER_LIST_ERROR_FIELDS: &[&str] = &["access_error"];
26314impl TeamFolderListError {
26315 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26316 map: V,
26317 ) -> Result<TeamFolderListError, V::Error> {
26318 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26319 }
26320
26321 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26322 mut map: V,
26323 optional: bool,
26324 ) -> Result<Option<TeamFolderListError>, V::Error> {
26325 let mut field_access_error = None;
26326 let mut nothing = true;
26327 while let Some(key) = map.next_key::<&str>()? {
26328 nothing = false;
26329 match key {
26330 "access_error" => {
26331 if field_access_error.is_some() {
26332 return Err(::serde::de::Error::duplicate_field("access_error"));
26333 }
26334 field_access_error = Some(map.next_value()?);
26335 }
26336 _ => {
26337 map.next_value::<::serde_json::Value>()?;
26339 }
26340 }
26341 }
26342 if optional && nothing {
26343 return Ok(None);
26344 }
26345 let result = TeamFolderListError {
26346 access_error: field_access_error.ok_or_else(|| ::serde::de::Error::missing_field("access_error"))?,
26347 };
26348 Ok(Some(result))
26349 }
26350
26351 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26352 &self,
26353 s: &mut S::SerializeStruct,
26354 ) -> Result<(), S::Error> {
26355 use serde::ser::SerializeStruct;
26356 s.serialize_field("access_error", &self.access_error)?;
26357 Ok(())
26358 }
26359}
26360
26361impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListError {
26362 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26363 use serde::de::{MapAccess, Visitor};
26365 struct StructVisitor;
26366 impl<'de> Visitor<'de> for StructVisitor {
26367 type Value = TeamFolderListError;
26368 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26369 f.write_str("a TeamFolderListError struct")
26370 }
26371 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26372 TeamFolderListError::internal_deserialize(map)
26373 }
26374 }
26375 deserializer.deserialize_struct("TeamFolderListError", TEAM_FOLDER_LIST_ERROR_FIELDS, StructVisitor)
26376 }
26377}
26378
26379impl ::serde::ser::Serialize for TeamFolderListError {
26380 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26381 use serde::ser::SerializeStruct;
26383 let mut s = serializer.serialize_struct("TeamFolderListError", 1)?;
26384 self.internal_serialize::<S>(&mut s)?;
26385 s.end()
26386 }
26387}
26388
26389impl ::std::error::Error for TeamFolderListError {
26390}
26391
26392impl ::std::fmt::Display for TeamFolderListError {
26393 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26394 write!(f, "{:?}", *self)
26395 }
26396}
26397
26398#[derive(Debug, Clone, PartialEq, Eq)]
26401#[non_exhaustive] pub struct TeamFolderListResult {
26403 pub team_folders: Vec<TeamFolderMetadata>,
26405 pub cursor: String,
26408 pub has_more: bool,
26412}
26413
26414impl TeamFolderListResult {
26415 pub fn new(team_folders: Vec<TeamFolderMetadata>, cursor: String, has_more: bool) -> Self {
26416 TeamFolderListResult {
26417 team_folders,
26418 cursor,
26419 has_more,
26420 }
26421 }
26422}
26423
26424const TEAM_FOLDER_LIST_RESULT_FIELDS: &[&str] = &["team_folders",
26425 "cursor",
26426 "has_more"];
26427impl TeamFolderListResult {
26428 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26429 map: V,
26430 ) -> Result<TeamFolderListResult, V::Error> {
26431 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26432 }
26433
26434 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26435 mut map: V,
26436 optional: bool,
26437 ) -> Result<Option<TeamFolderListResult>, V::Error> {
26438 let mut field_team_folders = None;
26439 let mut field_cursor = None;
26440 let mut field_has_more = None;
26441 let mut nothing = true;
26442 while let Some(key) = map.next_key::<&str>()? {
26443 nothing = false;
26444 match key {
26445 "team_folders" => {
26446 if field_team_folders.is_some() {
26447 return Err(::serde::de::Error::duplicate_field("team_folders"));
26448 }
26449 field_team_folders = Some(map.next_value()?);
26450 }
26451 "cursor" => {
26452 if field_cursor.is_some() {
26453 return Err(::serde::de::Error::duplicate_field("cursor"));
26454 }
26455 field_cursor = Some(map.next_value()?);
26456 }
26457 "has_more" => {
26458 if field_has_more.is_some() {
26459 return Err(::serde::de::Error::duplicate_field("has_more"));
26460 }
26461 field_has_more = Some(map.next_value()?);
26462 }
26463 _ => {
26464 map.next_value::<::serde_json::Value>()?;
26466 }
26467 }
26468 }
26469 if optional && nothing {
26470 return Ok(None);
26471 }
26472 let result = TeamFolderListResult {
26473 team_folders: field_team_folders.ok_or_else(|| ::serde::de::Error::missing_field("team_folders"))?,
26474 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
26475 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
26476 };
26477 Ok(Some(result))
26478 }
26479
26480 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26481 &self,
26482 s: &mut S::SerializeStruct,
26483 ) -> Result<(), S::Error> {
26484 use serde::ser::SerializeStruct;
26485 s.serialize_field("team_folders", &self.team_folders)?;
26486 s.serialize_field("cursor", &self.cursor)?;
26487 s.serialize_field("has_more", &self.has_more)?;
26488 Ok(())
26489 }
26490}
26491
26492impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListResult {
26493 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26494 use serde::de::{MapAccess, Visitor};
26496 struct StructVisitor;
26497 impl<'de> Visitor<'de> for StructVisitor {
26498 type Value = TeamFolderListResult;
26499 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26500 f.write_str("a TeamFolderListResult struct")
26501 }
26502 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26503 TeamFolderListResult::internal_deserialize(map)
26504 }
26505 }
26506 deserializer.deserialize_struct("TeamFolderListResult", TEAM_FOLDER_LIST_RESULT_FIELDS, StructVisitor)
26507 }
26508}
26509
26510impl ::serde::ser::Serialize for TeamFolderListResult {
26511 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26512 use serde::ser::SerializeStruct;
26514 let mut s = serializer.serialize_struct("TeamFolderListResult", 3)?;
26515 self.internal_serialize::<S>(&mut s)?;
26516 s.end()
26517 }
26518}
26519
26520#[derive(Debug, Clone, PartialEq, Eq)]
26522#[non_exhaustive] pub struct TeamFolderMetadata {
26524 pub team_folder_id: crate::types::common::SharedFolderId,
26526 pub name: String,
26528 pub status: TeamFolderStatus,
26530 pub is_team_shared_dropbox: bool,
26532 pub sync_setting: crate::types::files::SyncSetting,
26534 pub content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
26536 pub quota_limit: i64,
26538}
26539
26540impl TeamFolderMetadata {
26541 pub fn new(
26542 team_folder_id: crate::types::common::SharedFolderId,
26543 name: String,
26544 status: TeamFolderStatus,
26545 is_team_shared_dropbox: bool,
26546 sync_setting: crate::types::files::SyncSetting,
26547 content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
26548 ) -> Self {
26549 TeamFolderMetadata {
26550 team_folder_id,
26551 name,
26552 status,
26553 is_team_shared_dropbox,
26554 sync_setting,
26555 content_sync_settings,
26556 quota_limit: 0,
26557 }
26558 }
26559
26560 pub fn with_quota_limit(mut self, value: i64) -> Self {
26561 self.quota_limit = value;
26562 self
26563 }
26564}
26565
26566const TEAM_FOLDER_METADATA_FIELDS: &[&str] = &["team_folder_id",
26567 "name",
26568 "status",
26569 "is_team_shared_dropbox",
26570 "sync_setting",
26571 "content_sync_settings",
26572 "quota_limit"];
26573impl TeamFolderMetadata {
26574 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26575 map: V,
26576 ) -> Result<TeamFolderMetadata, V::Error> {
26577 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26578 }
26579
26580 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26581 mut map: V,
26582 optional: bool,
26583 ) -> Result<Option<TeamFolderMetadata>, V::Error> {
26584 let mut field_team_folder_id = None;
26585 let mut field_name = None;
26586 let mut field_status = None;
26587 let mut field_is_team_shared_dropbox = None;
26588 let mut field_sync_setting = None;
26589 let mut field_content_sync_settings = None;
26590 let mut field_quota_limit = None;
26591 let mut nothing = true;
26592 while let Some(key) = map.next_key::<&str>()? {
26593 nothing = false;
26594 match key {
26595 "team_folder_id" => {
26596 if field_team_folder_id.is_some() {
26597 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26598 }
26599 field_team_folder_id = Some(map.next_value()?);
26600 }
26601 "name" => {
26602 if field_name.is_some() {
26603 return Err(::serde::de::Error::duplicate_field("name"));
26604 }
26605 field_name = Some(map.next_value()?);
26606 }
26607 "status" => {
26608 if field_status.is_some() {
26609 return Err(::serde::de::Error::duplicate_field("status"));
26610 }
26611 field_status = Some(map.next_value()?);
26612 }
26613 "is_team_shared_dropbox" => {
26614 if field_is_team_shared_dropbox.is_some() {
26615 return Err(::serde::de::Error::duplicate_field("is_team_shared_dropbox"));
26616 }
26617 field_is_team_shared_dropbox = Some(map.next_value()?);
26618 }
26619 "sync_setting" => {
26620 if field_sync_setting.is_some() {
26621 return Err(::serde::de::Error::duplicate_field("sync_setting"));
26622 }
26623 field_sync_setting = Some(map.next_value()?);
26624 }
26625 "content_sync_settings" => {
26626 if field_content_sync_settings.is_some() {
26627 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
26628 }
26629 field_content_sync_settings = Some(map.next_value()?);
26630 }
26631 "quota_limit" => {
26632 if field_quota_limit.is_some() {
26633 return Err(::serde::de::Error::duplicate_field("quota_limit"));
26634 }
26635 field_quota_limit = Some(map.next_value()?);
26636 }
26637 _ => {
26638 map.next_value::<::serde_json::Value>()?;
26640 }
26641 }
26642 }
26643 if optional && nothing {
26644 return Ok(None);
26645 }
26646 let result = TeamFolderMetadata {
26647 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26648 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26649 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
26650 is_team_shared_dropbox: field_is_team_shared_dropbox.ok_or_else(|| ::serde::de::Error::missing_field("is_team_shared_dropbox"))?,
26651 sync_setting: field_sync_setting.ok_or_else(|| ::serde::de::Error::missing_field("sync_setting"))?,
26652 content_sync_settings: field_content_sync_settings.ok_or_else(|| ::serde::de::Error::missing_field("content_sync_settings"))?,
26653 quota_limit: field_quota_limit.unwrap_or(0),
26654 };
26655 Ok(Some(result))
26656 }
26657
26658 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26659 &self,
26660 s: &mut S::SerializeStruct,
26661 ) -> Result<(), S::Error> {
26662 use serde::ser::SerializeStruct;
26663 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26664 s.serialize_field("name", &self.name)?;
26665 s.serialize_field("status", &self.status)?;
26666 s.serialize_field("is_team_shared_dropbox", &self.is_team_shared_dropbox)?;
26667 s.serialize_field("sync_setting", &self.sync_setting)?;
26668 s.serialize_field("content_sync_settings", &self.content_sync_settings)?;
26669 if self.quota_limit != 0 {
26670 s.serialize_field("quota_limit", &self.quota_limit)?;
26671 }
26672 Ok(())
26673 }
26674}
26675
26676impl<'de> ::serde::de::Deserialize<'de> for TeamFolderMetadata {
26677 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26678 use serde::de::{MapAccess, Visitor};
26680 struct StructVisitor;
26681 impl<'de> Visitor<'de> for StructVisitor {
26682 type Value = TeamFolderMetadata;
26683 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26684 f.write_str("a TeamFolderMetadata struct")
26685 }
26686 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26687 TeamFolderMetadata::internal_deserialize(map)
26688 }
26689 }
26690 deserializer.deserialize_struct("TeamFolderMetadata", TEAM_FOLDER_METADATA_FIELDS, StructVisitor)
26691 }
26692}
26693
26694impl ::serde::ser::Serialize for TeamFolderMetadata {
26695 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26696 use serde::ser::SerializeStruct;
26698 let mut s = serializer.serialize_struct("TeamFolderMetadata", 7)?;
26699 self.internal_serialize::<S>(&mut s)?;
26700 s.end()
26701 }
26702}
26703
26704
26705#[derive(Debug, Clone, PartialEq, Eq)]
26706#[non_exhaustive] pub enum TeamFolderPermanentlyDeleteError {
26708 AccessError(TeamFolderAccessError),
26709 StatusError(TeamFolderInvalidStatusError),
26710 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26711 Other,
26714}
26715
26716impl<'de> ::serde::de::Deserialize<'de> for TeamFolderPermanentlyDeleteError {
26717 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26718 use serde::de::{self, MapAccess, Visitor};
26720 struct EnumVisitor;
26721 impl<'de> Visitor<'de> for EnumVisitor {
26722 type Value = TeamFolderPermanentlyDeleteError;
26723 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26724 f.write_str("a TeamFolderPermanentlyDeleteError structure")
26725 }
26726 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26727 let tag: &str = match map.next_key()? {
26728 Some(".tag") => map.next_value()?,
26729 _ => return Err(de::Error::missing_field(".tag"))
26730 };
26731 let value = match tag {
26732 "access_error" => {
26733 match map.next_key()? {
26734 Some("access_error") => TeamFolderPermanentlyDeleteError::AccessError(map.next_value()?),
26735 None => return Err(de::Error::missing_field("access_error")),
26736 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26737 }
26738 }
26739 "status_error" => {
26740 match map.next_key()? {
26741 Some("status_error") => TeamFolderPermanentlyDeleteError::StatusError(map.next_value()?),
26742 None => return Err(de::Error::missing_field("status_error")),
26743 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26744 }
26745 }
26746 "team_shared_dropbox_error" => {
26747 match map.next_key()? {
26748 Some("team_shared_dropbox_error") => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(map.next_value()?),
26749 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26750 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26751 }
26752 }
26753 _ => TeamFolderPermanentlyDeleteError::Other,
26754 };
26755 crate::eat_json_fields(&mut map)?;
26756 Ok(value)
26757 }
26758 }
26759 const VARIANTS: &[&str] = &["access_error",
26760 "status_error",
26761 "team_shared_dropbox_error",
26762 "other"];
26763 deserializer.deserialize_struct("TeamFolderPermanentlyDeleteError", VARIANTS, EnumVisitor)
26764 }
26765}
26766
26767impl ::serde::ser::Serialize for TeamFolderPermanentlyDeleteError {
26768 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26769 use serde::ser::SerializeStruct;
26771 match self {
26772 TeamFolderPermanentlyDeleteError::AccessError(x) => {
26773 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26775 s.serialize_field(".tag", "access_error")?;
26776 s.serialize_field("access_error", x)?;
26777 s.end()
26778 }
26779 TeamFolderPermanentlyDeleteError::StatusError(x) => {
26780 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26782 s.serialize_field(".tag", "status_error")?;
26783 s.serialize_field("status_error", x)?;
26784 s.end()
26785 }
26786 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x) => {
26787 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26789 s.serialize_field(".tag", "team_shared_dropbox_error")?;
26790 s.serialize_field("team_shared_dropbox_error", x)?;
26791 s.end()
26792 }
26793 TeamFolderPermanentlyDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26794 }
26795 }
26796}
26797
26798impl ::std::error::Error for TeamFolderPermanentlyDeleteError {
26799 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26800 match self {
26801 TeamFolderPermanentlyDeleteError::AccessError(inner) => Some(inner),
26802 TeamFolderPermanentlyDeleteError::StatusError(inner) => Some(inner),
26803 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => Some(inner),
26804 _ => None,
26805 }
26806 }
26807}
26808
26809impl ::std::fmt::Display for TeamFolderPermanentlyDeleteError {
26810 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26811 match self {
26812 TeamFolderPermanentlyDeleteError::AccessError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26813 TeamFolderPermanentlyDeleteError::StatusError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26814 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26815 _ => write!(f, "{:?}", *self),
26816 }
26817 }
26818}
26819
26820impl From<BaseTeamFolderError> for TeamFolderPermanentlyDeleteError {
26822 fn from(parent: BaseTeamFolderError) -> Self {
26823 match parent {
26824 BaseTeamFolderError::AccessError(x) => TeamFolderPermanentlyDeleteError::AccessError(x),
26825 BaseTeamFolderError::StatusError(x) => TeamFolderPermanentlyDeleteError::StatusError(x),
26826 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x),
26827 BaseTeamFolderError::Other => TeamFolderPermanentlyDeleteError::Other,
26828 }
26829 }
26830}
26831#[derive(Debug, Clone, PartialEq, Eq)]
26832#[non_exhaustive] pub struct TeamFolderRenameArg {
26834 pub team_folder_id: crate::types::common::SharedFolderId,
26836 pub name: String,
26838}
26839
26840impl TeamFolderRenameArg {
26841 pub fn new(team_folder_id: crate::types::common::SharedFolderId, name: String) -> Self {
26842 TeamFolderRenameArg {
26843 team_folder_id,
26844 name,
26845 }
26846 }
26847}
26848
26849const TEAM_FOLDER_RENAME_ARG_FIELDS: &[&str] = &["team_folder_id",
26850 "name"];
26851impl TeamFolderRenameArg {
26852 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26853 map: V,
26854 ) -> Result<TeamFolderRenameArg, V::Error> {
26855 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26856 }
26857
26858 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26859 mut map: V,
26860 optional: bool,
26861 ) -> Result<Option<TeamFolderRenameArg>, V::Error> {
26862 let mut field_team_folder_id = None;
26863 let mut field_name = None;
26864 let mut nothing = true;
26865 while let Some(key) = map.next_key::<&str>()? {
26866 nothing = false;
26867 match key {
26868 "team_folder_id" => {
26869 if field_team_folder_id.is_some() {
26870 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26871 }
26872 field_team_folder_id = Some(map.next_value()?);
26873 }
26874 "name" => {
26875 if field_name.is_some() {
26876 return Err(::serde::de::Error::duplicate_field("name"));
26877 }
26878 field_name = Some(map.next_value()?);
26879 }
26880 _ => {
26881 map.next_value::<::serde_json::Value>()?;
26883 }
26884 }
26885 }
26886 if optional && nothing {
26887 return Ok(None);
26888 }
26889 let result = TeamFolderRenameArg {
26890 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26891 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26892 };
26893 Ok(Some(result))
26894 }
26895
26896 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26897 &self,
26898 s: &mut S::SerializeStruct,
26899 ) -> Result<(), S::Error> {
26900 use serde::ser::SerializeStruct;
26901 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26902 s.serialize_field("name", &self.name)?;
26903 Ok(())
26904 }
26905}
26906
26907impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameArg {
26908 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26909 use serde::de::{MapAccess, Visitor};
26911 struct StructVisitor;
26912 impl<'de> Visitor<'de> for StructVisitor {
26913 type Value = TeamFolderRenameArg;
26914 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26915 f.write_str("a TeamFolderRenameArg struct")
26916 }
26917 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26918 TeamFolderRenameArg::internal_deserialize(map)
26919 }
26920 }
26921 deserializer.deserialize_struct("TeamFolderRenameArg", TEAM_FOLDER_RENAME_ARG_FIELDS, StructVisitor)
26922 }
26923}
26924
26925impl ::serde::ser::Serialize for TeamFolderRenameArg {
26926 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26927 use serde::ser::SerializeStruct;
26929 let mut s = serializer.serialize_struct("TeamFolderRenameArg", 2)?;
26930 self.internal_serialize::<S>(&mut s)?;
26931 s.end()
26932 }
26933}
26934
26935impl From<TeamFolderRenameArg> for TeamFolderIdArg {
26937 fn from(subtype: TeamFolderRenameArg) -> Self {
26938 Self {
26939 team_folder_id: subtype.team_folder_id,
26940 }
26941 }
26942}
26943#[derive(Debug, Clone, PartialEq, Eq)]
26944#[non_exhaustive] pub enum TeamFolderRenameError {
26946 AccessError(TeamFolderAccessError),
26947 StatusError(TeamFolderInvalidStatusError),
26948 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26949 InvalidFolderName,
26951 FolderNameAlreadyUsed,
26953 FolderNameReserved,
26955 Other,
26958}
26959
26960impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameError {
26961 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26962 use serde::de::{self, MapAccess, Visitor};
26964 struct EnumVisitor;
26965 impl<'de> Visitor<'de> for EnumVisitor {
26966 type Value = TeamFolderRenameError;
26967 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26968 f.write_str("a TeamFolderRenameError structure")
26969 }
26970 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26971 let tag: &str = match map.next_key()? {
26972 Some(".tag") => map.next_value()?,
26973 _ => return Err(de::Error::missing_field(".tag"))
26974 };
26975 let value = match tag {
26976 "access_error" => {
26977 match map.next_key()? {
26978 Some("access_error") => TeamFolderRenameError::AccessError(map.next_value()?),
26979 None => return Err(de::Error::missing_field("access_error")),
26980 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26981 }
26982 }
26983 "status_error" => {
26984 match map.next_key()? {
26985 Some("status_error") => TeamFolderRenameError::StatusError(map.next_value()?),
26986 None => return Err(de::Error::missing_field("status_error")),
26987 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26988 }
26989 }
26990 "team_shared_dropbox_error" => {
26991 match map.next_key()? {
26992 Some("team_shared_dropbox_error") => TeamFolderRenameError::TeamSharedDropboxError(map.next_value()?),
26993 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26994 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26995 }
26996 }
26997 "invalid_folder_name" => TeamFolderRenameError::InvalidFolderName,
26998 "folder_name_already_used" => TeamFolderRenameError::FolderNameAlreadyUsed,
26999 "folder_name_reserved" => TeamFolderRenameError::FolderNameReserved,
27000 _ => TeamFolderRenameError::Other,
27001 };
27002 crate::eat_json_fields(&mut map)?;
27003 Ok(value)
27004 }
27005 }
27006 const VARIANTS: &[&str] = &["access_error",
27007 "status_error",
27008 "team_shared_dropbox_error",
27009 "other",
27010 "invalid_folder_name",
27011 "folder_name_already_used",
27012 "folder_name_reserved"];
27013 deserializer.deserialize_struct("TeamFolderRenameError", VARIANTS, EnumVisitor)
27014 }
27015}
27016
27017impl ::serde::ser::Serialize for TeamFolderRenameError {
27018 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27019 use serde::ser::SerializeStruct;
27021 match self {
27022 TeamFolderRenameError::AccessError(x) => {
27023 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27025 s.serialize_field(".tag", "access_error")?;
27026 s.serialize_field("access_error", x)?;
27027 s.end()
27028 }
27029 TeamFolderRenameError::StatusError(x) => {
27030 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27032 s.serialize_field(".tag", "status_error")?;
27033 s.serialize_field("status_error", x)?;
27034 s.end()
27035 }
27036 TeamFolderRenameError::TeamSharedDropboxError(x) => {
27037 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27039 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27040 s.serialize_field("team_shared_dropbox_error", x)?;
27041 s.end()
27042 }
27043 TeamFolderRenameError::InvalidFolderName => {
27044 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27046 s.serialize_field(".tag", "invalid_folder_name")?;
27047 s.end()
27048 }
27049 TeamFolderRenameError::FolderNameAlreadyUsed => {
27050 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27052 s.serialize_field(".tag", "folder_name_already_used")?;
27053 s.end()
27054 }
27055 TeamFolderRenameError::FolderNameReserved => {
27056 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27058 s.serialize_field(".tag", "folder_name_reserved")?;
27059 s.end()
27060 }
27061 TeamFolderRenameError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27062 }
27063 }
27064}
27065
27066impl ::std::error::Error for TeamFolderRenameError {
27067 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27068 match self {
27069 TeamFolderRenameError::AccessError(inner) => Some(inner),
27070 TeamFolderRenameError::StatusError(inner) => Some(inner),
27071 TeamFolderRenameError::TeamSharedDropboxError(inner) => Some(inner),
27072 _ => None,
27073 }
27074 }
27075}
27076
27077impl ::std::fmt::Display for TeamFolderRenameError {
27078 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27079 match self {
27080 TeamFolderRenameError::AccessError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27081 TeamFolderRenameError::StatusError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27082 TeamFolderRenameError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27083 TeamFolderRenameError::InvalidFolderName => f.write_str("The provided folder name cannot be used."),
27084 TeamFolderRenameError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the same name."),
27085 TeamFolderRenameError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
27086 _ => write!(f, "{:?}", *self),
27087 }
27088 }
27089}
27090
27091impl From<BaseTeamFolderError> for TeamFolderRenameError {
27093 fn from(parent: BaseTeamFolderError) -> Self {
27094 match parent {
27095 BaseTeamFolderError::AccessError(x) => TeamFolderRenameError::AccessError(x),
27096 BaseTeamFolderError::StatusError(x) => TeamFolderRenameError::StatusError(x),
27097 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRenameError::TeamSharedDropboxError(x),
27098 BaseTeamFolderError::Other => TeamFolderRenameError::Other,
27099 }
27100 }
27101}
27102
27103#[derive(Debug, Clone, PartialEq, Eq)]
27104#[non_exhaustive] pub enum TeamFolderRestoreError {
27106 AccessError(TeamFolderAccessError),
27107 StatusError(TeamFolderInvalidStatusError),
27108 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
27109 Other,
27112}
27113
27114impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRestoreError {
27115 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27116 use serde::de::{self, MapAccess, Visitor};
27118 struct EnumVisitor;
27119 impl<'de> Visitor<'de> for EnumVisitor {
27120 type Value = TeamFolderRestoreError;
27121 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27122 f.write_str("a TeamFolderRestoreError structure")
27123 }
27124 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27125 let tag: &str = match map.next_key()? {
27126 Some(".tag") => map.next_value()?,
27127 _ => return Err(de::Error::missing_field(".tag"))
27128 };
27129 let value = match tag {
27130 "access_error" => {
27131 match map.next_key()? {
27132 Some("access_error") => TeamFolderRestoreError::AccessError(map.next_value()?),
27133 None => return Err(de::Error::missing_field("access_error")),
27134 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27135 }
27136 }
27137 "status_error" => {
27138 match map.next_key()? {
27139 Some("status_error") => TeamFolderRestoreError::StatusError(map.next_value()?),
27140 None => return Err(de::Error::missing_field("status_error")),
27141 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27142 }
27143 }
27144 "team_shared_dropbox_error" => {
27145 match map.next_key()? {
27146 Some("team_shared_dropbox_error") => TeamFolderRestoreError::TeamSharedDropboxError(map.next_value()?),
27147 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
27148 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27149 }
27150 }
27151 _ => TeamFolderRestoreError::Other,
27152 };
27153 crate::eat_json_fields(&mut map)?;
27154 Ok(value)
27155 }
27156 }
27157 const VARIANTS: &[&str] = &["access_error",
27158 "status_error",
27159 "team_shared_dropbox_error",
27160 "other"];
27161 deserializer.deserialize_struct("TeamFolderRestoreError", VARIANTS, EnumVisitor)
27162 }
27163}
27164
27165impl ::serde::ser::Serialize for TeamFolderRestoreError {
27166 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27167 use serde::ser::SerializeStruct;
27169 match self {
27170 TeamFolderRestoreError::AccessError(x) => {
27171 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
27173 s.serialize_field(".tag", "access_error")?;
27174 s.serialize_field("access_error", x)?;
27175 s.end()
27176 }
27177 TeamFolderRestoreError::StatusError(x) => {
27178 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
27180 s.serialize_field(".tag", "status_error")?;
27181 s.serialize_field("status_error", x)?;
27182 s.end()
27183 }
27184 TeamFolderRestoreError::TeamSharedDropboxError(x) => {
27185 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
27187 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27188 s.serialize_field("team_shared_dropbox_error", x)?;
27189 s.end()
27190 }
27191 TeamFolderRestoreError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27192 }
27193 }
27194}
27195
27196impl ::std::error::Error for TeamFolderRestoreError {
27197 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27198 match self {
27199 TeamFolderRestoreError::AccessError(inner) => Some(inner),
27200 TeamFolderRestoreError::StatusError(inner) => Some(inner),
27201 TeamFolderRestoreError::TeamSharedDropboxError(inner) => Some(inner),
27202 _ => None,
27203 }
27204 }
27205}
27206
27207impl ::std::fmt::Display for TeamFolderRestoreError {
27208 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27209 match self {
27210 TeamFolderRestoreError::AccessError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
27211 TeamFolderRestoreError::StatusError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
27212 TeamFolderRestoreError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
27213 _ => write!(f, "{:?}", *self),
27214 }
27215 }
27216}
27217
27218impl From<BaseTeamFolderError> for TeamFolderRestoreError {
27220 fn from(parent: BaseTeamFolderError) -> Self {
27221 match parent {
27222 BaseTeamFolderError::AccessError(x) => TeamFolderRestoreError::AccessError(x),
27223 BaseTeamFolderError::StatusError(x) => TeamFolderRestoreError::StatusError(x),
27224 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRestoreError::TeamSharedDropboxError(x),
27225 BaseTeamFolderError::Other => TeamFolderRestoreError::Other,
27226 }
27227 }
27228}
27229#[derive(Debug, Clone, PartialEq, Eq)]
27230#[non_exhaustive] pub enum TeamFolderStatus {
27232 Active,
27234 Archived,
27236 ArchiveInProgress,
27239 Inactive,
27241 Other,
27244}
27245
27246impl<'de> ::serde::de::Deserialize<'de> for TeamFolderStatus {
27247 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27248 use serde::de::{self, MapAccess, Visitor};
27250 struct EnumVisitor;
27251 impl<'de> Visitor<'de> for EnumVisitor {
27252 type Value = TeamFolderStatus;
27253 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27254 f.write_str("a TeamFolderStatus structure")
27255 }
27256 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27257 let tag: &str = match map.next_key()? {
27258 Some(".tag") => map.next_value()?,
27259 _ => return Err(de::Error::missing_field(".tag"))
27260 };
27261 let value = match tag {
27262 "active" => TeamFolderStatus::Active,
27263 "archived" => TeamFolderStatus::Archived,
27264 "archive_in_progress" => TeamFolderStatus::ArchiveInProgress,
27265 "inactive" => TeamFolderStatus::Inactive,
27266 _ => TeamFolderStatus::Other,
27267 };
27268 crate::eat_json_fields(&mut map)?;
27269 Ok(value)
27270 }
27271 }
27272 const VARIANTS: &[&str] = &["active",
27273 "archived",
27274 "archive_in_progress",
27275 "inactive",
27276 "other"];
27277 deserializer.deserialize_struct("TeamFolderStatus", VARIANTS, EnumVisitor)
27278 }
27279}
27280
27281impl ::serde::ser::Serialize for TeamFolderStatus {
27282 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27283 use serde::ser::SerializeStruct;
27285 match self {
27286 TeamFolderStatus::Active => {
27287 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27289 s.serialize_field(".tag", "active")?;
27290 s.end()
27291 }
27292 TeamFolderStatus::Archived => {
27293 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27295 s.serialize_field(".tag", "archived")?;
27296 s.end()
27297 }
27298 TeamFolderStatus::ArchiveInProgress => {
27299 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27301 s.serialize_field(".tag", "archive_in_progress")?;
27302 s.end()
27303 }
27304 TeamFolderStatus::Inactive => {
27305 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27307 s.serialize_field(".tag", "inactive")?;
27308 s.end()
27309 }
27310 TeamFolderStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27311 }
27312 }
27313}
27314
27315#[derive(Debug, Clone, PartialEq, Eq)]
27316#[non_exhaustive] pub enum TeamFolderTeamSharedDropboxError {
27318 Disallowed,
27320 Other,
27323}
27324
27325impl<'de> ::serde::de::Deserialize<'de> for TeamFolderTeamSharedDropboxError {
27326 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27327 use serde::de::{self, MapAccess, Visitor};
27329 struct EnumVisitor;
27330 impl<'de> Visitor<'de> for EnumVisitor {
27331 type Value = TeamFolderTeamSharedDropboxError;
27332 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27333 f.write_str("a TeamFolderTeamSharedDropboxError structure")
27334 }
27335 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27336 let tag: &str = match map.next_key()? {
27337 Some(".tag") => map.next_value()?,
27338 _ => return Err(de::Error::missing_field(".tag"))
27339 };
27340 let value = match tag {
27341 "disallowed" => TeamFolderTeamSharedDropboxError::Disallowed,
27342 _ => TeamFolderTeamSharedDropboxError::Other,
27343 };
27344 crate::eat_json_fields(&mut map)?;
27345 Ok(value)
27346 }
27347 }
27348 const VARIANTS: &[&str] = &["disallowed",
27349 "other"];
27350 deserializer.deserialize_struct("TeamFolderTeamSharedDropboxError", VARIANTS, EnumVisitor)
27351 }
27352}
27353
27354impl ::serde::ser::Serialize for TeamFolderTeamSharedDropboxError {
27355 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27356 use serde::ser::SerializeStruct;
27358 match self {
27359 TeamFolderTeamSharedDropboxError::Disallowed => {
27360 let mut s = serializer.serialize_struct("TeamFolderTeamSharedDropboxError", 1)?;
27362 s.serialize_field(".tag", "disallowed")?;
27363 s.end()
27364 }
27365 TeamFolderTeamSharedDropboxError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27366 }
27367 }
27368}
27369
27370impl ::std::error::Error for TeamFolderTeamSharedDropboxError {
27371}
27372
27373impl ::std::fmt::Display for TeamFolderTeamSharedDropboxError {
27374 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27375 match self {
27376 TeamFolderTeamSharedDropboxError::Disallowed => f.write_str("This action is not allowed for a shared team root."),
27377 _ => write!(f, "{:?}", *self),
27378 }
27379 }
27380}
27381
27382#[derive(Debug, Clone, PartialEq, Eq)]
27383#[non_exhaustive] pub struct TeamFolderUpdateSyncSettingsArg {
27385 pub team_folder_id: crate::types::common::SharedFolderId,
27387 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
27390 pub content_sync_settings: Option<Vec<crate::types::files::ContentSyncSettingArg>>,
27392}
27393
27394impl TeamFolderUpdateSyncSettingsArg {
27395 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
27396 TeamFolderUpdateSyncSettingsArg {
27397 team_folder_id,
27398 sync_setting: None,
27399 content_sync_settings: None,
27400 }
27401 }
27402
27403 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
27404 self.sync_setting = Some(value);
27405 self
27406 }
27407
27408 pub fn with_content_sync_settings(
27409 mut self,
27410 value: Vec<crate::types::files::ContentSyncSettingArg>,
27411 ) -> Self {
27412 self.content_sync_settings = Some(value);
27413 self
27414 }
27415}
27416
27417const TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS: &[&str] = &["team_folder_id",
27418 "sync_setting",
27419 "content_sync_settings"];
27420impl TeamFolderUpdateSyncSettingsArg {
27421 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27422 map: V,
27423 ) -> Result<TeamFolderUpdateSyncSettingsArg, V::Error> {
27424 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27425 }
27426
27427 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27428 mut map: V,
27429 optional: bool,
27430 ) -> Result<Option<TeamFolderUpdateSyncSettingsArg>, V::Error> {
27431 let mut field_team_folder_id = None;
27432 let mut field_sync_setting = None;
27433 let mut field_content_sync_settings = None;
27434 let mut nothing = true;
27435 while let Some(key) = map.next_key::<&str>()? {
27436 nothing = false;
27437 match key {
27438 "team_folder_id" => {
27439 if field_team_folder_id.is_some() {
27440 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
27441 }
27442 field_team_folder_id = Some(map.next_value()?);
27443 }
27444 "sync_setting" => {
27445 if field_sync_setting.is_some() {
27446 return Err(::serde::de::Error::duplicate_field("sync_setting"));
27447 }
27448 field_sync_setting = Some(map.next_value()?);
27449 }
27450 "content_sync_settings" => {
27451 if field_content_sync_settings.is_some() {
27452 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
27453 }
27454 field_content_sync_settings = Some(map.next_value()?);
27455 }
27456 _ => {
27457 map.next_value::<::serde_json::Value>()?;
27459 }
27460 }
27461 }
27462 if optional && nothing {
27463 return Ok(None);
27464 }
27465 let result = TeamFolderUpdateSyncSettingsArg {
27466 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
27467 sync_setting: field_sync_setting.and_then(Option::flatten),
27468 content_sync_settings: field_content_sync_settings.and_then(Option::flatten),
27469 };
27470 Ok(Some(result))
27471 }
27472
27473 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27474 &self,
27475 s: &mut S::SerializeStruct,
27476 ) -> Result<(), S::Error> {
27477 use serde::ser::SerializeStruct;
27478 s.serialize_field("team_folder_id", &self.team_folder_id)?;
27479 if let Some(val) = &self.sync_setting {
27480 s.serialize_field("sync_setting", val)?;
27481 }
27482 if let Some(val) = &self.content_sync_settings {
27483 s.serialize_field("content_sync_settings", val)?;
27484 }
27485 Ok(())
27486 }
27487}
27488
27489impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsArg {
27490 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27491 use serde::de::{MapAccess, Visitor};
27493 struct StructVisitor;
27494 impl<'de> Visitor<'de> for StructVisitor {
27495 type Value = TeamFolderUpdateSyncSettingsArg;
27496 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27497 f.write_str("a TeamFolderUpdateSyncSettingsArg struct")
27498 }
27499 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27500 TeamFolderUpdateSyncSettingsArg::internal_deserialize(map)
27501 }
27502 }
27503 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsArg", TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS, StructVisitor)
27504 }
27505}
27506
27507impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsArg {
27508 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27509 use serde::ser::SerializeStruct;
27511 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsArg", 3)?;
27512 self.internal_serialize::<S>(&mut s)?;
27513 s.end()
27514 }
27515}
27516
27517impl From<TeamFolderUpdateSyncSettingsArg> for TeamFolderIdArg {
27519 fn from(subtype: TeamFolderUpdateSyncSettingsArg) -> Self {
27520 Self {
27521 team_folder_id: subtype.team_folder_id,
27522 }
27523 }
27524}
27525#[derive(Debug, Clone, PartialEq, Eq)]
27526#[non_exhaustive] pub enum TeamFolderUpdateSyncSettingsError {
27528 AccessError(TeamFolderAccessError),
27529 StatusError(TeamFolderInvalidStatusError),
27530 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
27531 SyncSettingsError(crate::types::files::SyncSettingsError),
27533 Other,
27536}
27537
27538impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsError {
27539 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27540 use serde::de::{self, MapAccess, Visitor};
27542 struct EnumVisitor;
27543 impl<'de> Visitor<'de> for EnumVisitor {
27544 type Value = TeamFolderUpdateSyncSettingsError;
27545 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27546 f.write_str("a TeamFolderUpdateSyncSettingsError structure")
27547 }
27548 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27549 let tag: &str = match map.next_key()? {
27550 Some(".tag") => map.next_value()?,
27551 _ => return Err(de::Error::missing_field(".tag"))
27552 };
27553 let value = match tag {
27554 "access_error" => {
27555 match map.next_key()? {
27556 Some("access_error") => TeamFolderUpdateSyncSettingsError::AccessError(map.next_value()?),
27557 None => return Err(de::Error::missing_field("access_error")),
27558 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27559 }
27560 }
27561 "status_error" => {
27562 match map.next_key()? {
27563 Some("status_error") => TeamFolderUpdateSyncSettingsError::StatusError(map.next_value()?),
27564 None => return Err(de::Error::missing_field("status_error")),
27565 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27566 }
27567 }
27568 "team_shared_dropbox_error" => {
27569 match map.next_key()? {
27570 Some("team_shared_dropbox_error") => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(map.next_value()?),
27571 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
27572 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27573 }
27574 }
27575 "sync_settings_error" => {
27576 match map.next_key()? {
27577 Some("sync_settings_error") => TeamFolderUpdateSyncSettingsError::SyncSettingsError(map.next_value()?),
27578 None => return Err(de::Error::missing_field("sync_settings_error")),
27579 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27580 }
27581 }
27582 _ => TeamFolderUpdateSyncSettingsError::Other,
27583 };
27584 crate::eat_json_fields(&mut map)?;
27585 Ok(value)
27586 }
27587 }
27588 const VARIANTS: &[&str] = &["access_error",
27589 "status_error",
27590 "team_shared_dropbox_error",
27591 "other",
27592 "sync_settings_error"];
27593 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsError", VARIANTS, EnumVisitor)
27594 }
27595}
27596
27597impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsError {
27598 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27599 use serde::ser::SerializeStruct;
27601 match self {
27602 TeamFolderUpdateSyncSettingsError::AccessError(x) => {
27603 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27605 s.serialize_field(".tag", "access_error")?;
27606 s.serialize_field("access_error", x)?;
27607 s.end()
27608 }
27609 TeamFolderUpdateSyncSettingsError::StatusError(x) => {
27610 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27612 s.serialize_field(".tag", "status_error")?;
27613 s.serialize_field("status_error", x)?;
27614 s.end()
27615 }
27616 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x) => {
27617 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27619 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27620 s.serialize_field("team_shared_dropbox_error", x)?;
27621 s.end()
27622 }
27623 TeamFolderUpdateSyncSettingsError::SyncSettingsError(x) => {
27624 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27626 s.serialize_field(".tag", "sync_settings_error")?;
27627 s.serialize_field("sync_settings_error", x)?;
27628 s.end()
27629 }
27630 TeamFolderUpdateSyncSettingsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27631 }
27632 }
27633}
27634
27635impl ::std::error::Error for TeamFolderUpdateSyncSettingsError {
27636 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27637 match self {
27638 TeamFolderUpdateSyncSettingsError::AccessError(inner) => Some(inner),
27639 TeamFolderUpdateSyncSettingsError::StatusError(inner) => Some(inner),
27640 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => Some(inner),
27641 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => Some(inner),
27642 _ => None,
27643 }
27644 }
27645}
27646
27647impl ::std::fmt::Display for TeamFolderUpdateSyncSettingsError {
27648 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27649 match self {
27650 TeamFolderUpdateSyncSettingsError::AccessError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
27651 TeamFolderUpdateSyncSettingsError::StatusError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
27652 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
27653 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
27654 _ => write!(f, "{:?}", *self),
27655 }
27656 }
27657}
27658
27659impl From<BaseTeamFolderError> for TeamFolderUpdateSyncSettingsError {
27661 fn from(parent: BaseTeamFolderError) -> Self {
27662 match parent {
27663 BaseTeamFolderError::AccessError(x) => TeamFolderUpdateSyncSettingsError::AccessError(x),
27664 BaseTeamFolderError::StatusError(x) => TeamFolderUpdateSyncSettingsError::StatusError(x),
27665 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x),
27666 BaseTeamFolderError::Other => TeamFolderUpdateSyncSettingsError::Other,
27667 }
27668 }
27669}
27670#[derive(Debug, Clone, PartialEq, Eq)]
27671#[non_exhaustive] pub struct TeamGetInfoResult {
27673 pub name: String,
27675 pub team_id: String,
27677 pub num_licensed_users: u32,
27679 pub num_provisioned_users: u32,
27681 pub policies: crate::types::team_policies::TeamMemberPolicies,
27682 pub num_used_licenses: u32,
27684}
27685
27686impl TeamGetInfoResult {
27687 pub fn new(
27688 name: String,
27689 team_id: String,
27690 num_licensed_users: u32,
27691 num_provisioned_users: u32,
27692 policies: crate::types::team_policies::TeamMemberPolicies,
27693 ) -> Self {
27694 TeamGetInfoResult {
27695 name,
27696 team_id,
27697 num_licensed_users,
27698 num_provisioned_users,
27699 policies,
27700 num_used_licenses: 0,
27701 }
27702 }
27703
27704 pub fn with_num_used_licenses(mut self, value: u32) -> Self {
27705 self.num_used_licenses = value;
27706 self
27707 }
27708}
27709
27710const TEAM_GET_INFO_RESULT_FIELDS: &[&str] = &["name",
27711 "team_id",
27712 "num_licensed_users",
27713 "num_provisioned_users",
27714 "policies",
27715 "num_used_licenses"];
27716impl TeamGetInfoResult {
27717 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27718 map: V,
27719 ) -> Result<TeamGetInfoResult, V::Error> {
27720 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27721 }
27722
27723 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27724 mut map: V,
27725 optional: bool,
27726 ) -> Result<Option<TeamGetInfoResult>, V::Error> {
27727 let mut field_name = None;
27728 let mut field_team_id = None;
27729 let mut field_num_licensed_users = None;
27730 let mut field_num_provisioned_users = None;
27731 let mut field_policies = None;
27732 let mut field_num_used_licenses = None;
27733 let mut nothing = true;
27734 while let Some(key) = map.next_key::<&str>()? {
27735 nothing = false;
27736 match key {
27737 "name" => {
27738 if field_name.is_some() {
27739 return Err(::serde::de::Error::duplicate_field("name"));
27740 }
27741 field_name = Some(map.next_value()?);
27742 }
27743 "team_id" => {
27744 if field_team_id.is_some() {
27745 return Err(::serde::de::Error::duplicate_field("team_id"));
27746 }
27747 field_team_id = Some(map.next_value()?);
27748 }
27749 "num_licensed_users" => {
27750 if field_num_licensed_users.is_some() {
27751 return Err(::serde::de::Error::duplicate_field("num_licensed_users"));
27752 }
27753 field_num_licensed_users = Some(map.next_value()?);
27754 }
27755 "num_provisioned_users" => {
27756 if field_num_provisioned_users.is_some() {
27757 return Err(::serde::de::Error::duplicate_field("num_provisioned_users"));
27758 }
27759 field_num_provisioned_users = Some(map.next_value()?);
27760 }
27761 "policies" => {
27762 if field_policies.is_some() {
27763 return Err(::serde::de::Error::duplicate_field("policies"));
27764 }
27765 field_policies = Some(map.next_value()?);
27766 }
27767 "num_used_licenses" => {
27768 if field_num_used_licenses.is_some() {
27769 return Err(::serde::de::Error::duplicate_field("num_used_licenses"));
27770 }
27771 field_num_used_licenses = Some(map.next_value()?);
27772 }
27773 _ => {
27774 map.next_value::<::serde_json::Value>()?;
27776 }
27777 }
27778 }
27779 if optional && nothing {
27780 return Ok(None);
27781 }
27782 let result = TeamGetInfoResult {
27783 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
27784 team_id: field_team_id.ok_or_else(|| ::serde::de::Error::missing_field("team_id"))?,
27785 num_licensed_users: field_num_licensed_users.ok_or_else(|| ::serde::de::Error::missing_field("num_licensed_users"))?,
27786 num_provisioned_users: field_num_provisioned_users.ok_or_else(|| ::serde::de::Error::missing_field("num_provisioned_users"))?,
27787 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
27788 num_used_licenses: field_num_used_licenses.unwrap_or(0),
27789 };
27790 Ok(Some(result))
27791 }
27792
27793 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27794 &self,
27795 s: &mut S::SerializeStruct,
27796 ) -> Result<(), S::Error> {
27797 use serde::ser::SerializeStruct;
27798 s.serialize_field("name", &self.name)?;
27799 s.serialize_field("team_id", &self.team_id)?;
27800 s.serialize_field("num_licensed_users", &self.num_licensed_users)?;
27801 s.serialize_field("num_provisioned_users", &self.num_provisioned_users)?;
27802 s.serialize_field("policies", &self.policies)?;
27803 if self.num_used_licenses != 0 {
27804 s.serialize_field("num_used_licenses", &self.num_used_licenses)?;
27805 }
27806 Ok(())
27807 }
27808}
27809
27810impl<'de> ::serde::de::Deserialize<'de> for TeamGetInfoResult {
27811 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27812 use serde::de::{MapAccess, Visitor};
27814 struct StructVisitor;
27815 impl<'de> Visitor<'de> for StructVisitor {
27816 type Value = TeamGetInfoResult;
27817 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27818 f.write_str("a TeamGetInfoResult struct")
27819 }
27820 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27821 TeamGetInfoResult::internal_deserialize(map)
27822 }
27823 }
27824 deserializer.deserialize_struct("TeamGetInfoResult", TEAM_GET_INFO_RESULT_FIELDS, StructVisitor)
27825 }
27826}
27827
27828impl ::serde::ser::Serialize for TeamGetInfoResult {
27829 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27830 use serde::ser::SerializeStruct;
27832 let mut s = serializer.serialize_struct("TeamGetInfoResult", 6)?;
27833 self.internal_serialize::<S>(&mut s)?;
27834 s.end()
27835 }
27836}
27837
27838#[derive(Debug, Clone, PartialEq, Eq)]
27840#[non_exhaustive] pub struct TeamMemberInfo {
27842 pub profile: TeamMemberProfile,
27844 pub role: AdminTier,
27846}
27847
27848impl TeamMemberInfo {
27849 pub fn new(profile: TeamMemberProfile, role: AdminTier) -> Self {
27850 TeamMemberInfo {
27851 profile,
27852 role,
27853 }
27854 }
27855}
27856
27857const TEAM_MEMBER_INFO_FIELDS: &[&str] = &["profile",
27858 "role"];
27859impl TeamMemberInfo {
27860 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27861 map: V,
27862 ) -> Result<TeamMemberInfo, V::Error> {
27863 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27864 }
27865
27866 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27867 mut map: V,
27868 optional: bool,
27869 ) -> Result<Option<TeamMemberInfo>, V::Error> {
27870 let mut field_profile = None;
27871 let mut field_role = None;
27872 let mut nothing = true;
27873 while let Some(key) = map.next_key::<&str>()? {
27874 nothing = false;
27875 match key {
27876 "profile" => {
27877 if field_profile.is_some() {
27878 return Err(::serde::de::Error::duplicate_field("profile"));
27879 }
27880 field_profile = Some(map.next_value()?);
27881 }
27882 "role" => {
27883 if field_role.is_some() {
27884 return Err(::serde::de::Error::duplicate_field("role"));
27885 }
27886 field_role = Some(map.next_value()?);
27887 }
27888 _ => {
27889 map.next_value::<::serde_json::Value>()?;
27891 }
27892 }
27893 }
27894 if optional && nothing {
27895 return Ok(None);
27896 }
27897 let result = TeamMemberInfo {
27898 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
27899 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
27900 };
27901 Ok(Some(result))
27902 }
27903
27904 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27905 &self,
27906 s: &mut S::SerializeStruct,
27907 ) -> Result<(), S::Error> {
27908 use serde::ser::SerializeStruct;
27909 s.serialize_field("profile", &self.profile)?;
27910 s.serialize_field("role", &self.role)?;
27911 Ok(())
27912 }
27913}
27914
27915impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfo {
27916 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27917 use serde::de::{MapAccess, Visitor};
27919 struct StructVisitor;
27920 impl<'de> Visitor<'de> for StructVisitor {
27921 type Value = TeamMemberInfo;
27922 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27923 f.write_str("a TeamMemberInfo struct")
27924 }
27925 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27926 TeamMemberInfo::internal_deserialize(map)
27927 }
27928 }
27929 deserializer.deserialize_struct("TeamMemberInfo", TEAM_MEMBER_INFO_FIELDS, StructVisitor)
27930 }
27931}
27932
27933impl ::serde::ser::Serialize for TeamMemberInfo {
27934 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27935 use serde::ser::SerializeStruct;
27937 let mut s = serializer.serialize_struct("TeamMemberInfo", 2)?;
27938 self.internal_serialize::<S>(&mut s)?;
27939 s.end()
27940 }
27941}
27942
27943#[derive(Debug, Clone, PartialEq, Eq)]
27945#[non_exhaustive] pub struct TeamMemberInfoV2 {
27947 pub profile: TeamMemberProfile,
27949 pub roles: Option<Vec<TeamMemberRole>>,
27951}
27952
27953impl TeamMemberInfoV2 {
27954 pub fn new(profile: TeamMemberProfile) -> Self {
27955 TeamMemberInfoV2 {
27956 profile,
27957 roles: None,
27958 }
27959 }
27960
27961 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
27962 self.roles = Some(value);
27963 self
27964 }
27965}
27966
27967const TEAM_MEMBER_INFO_V2_FIELDS: &[&str] = &["profile",
27968 "roles"];
27969impl TeamMemberInfoV2 {
27970 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27971 map: V,
27972 ) -> Result<TeamMemberInfoV2, V::Error> {
27973 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27974 }
27975
27976 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27977 mut map: V,
27978 optional: bool,
27979 ) -> Result<Option<TeamMemberInfoV2>, V::Error> {
27980 let mut field_profile = None;
27981 let mut field_roles = None;
27982 let mut nothing = true;
27983 while let Some(key) = map.next_key::<&str>()? {
27984 nothing = false;
27985 match key {
27986 "profile" => {
27987 if field_profile.is_some() {
27988 return Err(::serde::de::Error::duplicate_field("profile"));
27989 }
27990 field_profile = Some(map.next_value()?);
27991 }
27992 "roles" => {
27993 if field_roles.is_some() {
27994 return Err(::serde::de::Error::duplicate_field("roles"));
27995 }
27996 field_roles = Some(map.next_value()?);
27997 }
27998 _ => {
27999 map.next_value::<::serde_json::Value>()?;
28001 }
28002 }
28003 }
28004 if optional && nothing {
28005 return Ok(None);
28006 }
28007 let result = TeamMemberInfoV2 {
28008 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
28009 roles: field_roles.and_then(Option::flatten),
28010 };
28011 Ok(Some(result))
28012 }
28013
28014 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28015 &self,
28016 s: &mut S::SerializeStruct,
28017 ) -> Result<(), S::Error> {
28018 use serde::ser::SerializeStruct;
28019 s.serialize_field("profile", &self.profile)?;
28020 if let Some(val) = &self.roles {
28021 s.serialize_field("roles", val)?;
28022 }
28023 Ok(())
28024 }
28025}
28026
28027impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2 {
28028 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28029 use serde::de::{MapAccess, Visitor};
28031 struct StructVisitor;
28032 impl<'de> Visitor<'de> for StructVisitor {
28033 type Value = TeamMemberInfoV2;
28034 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28035 f.write_str("a TeamMemberInfoV2 struct")
28036 }
28037 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28038 TeamMemberInfoV2::internal_deserialize(map)
28039 }
28040 }
28041 deserializer.deserialize_struct("TeamMemberInfoV2", TEAM_MEMBER_INFO_V2_FIELDS, StructVisitor)
28042 }
28043}
28044
28045impl ::serde::ser::Serialize for TeamMemberInfoV2 {
28046 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28047 use serde::ser::SerializeStruct;
28049 let mut s = serializer.serialize_struct("TeamMemberInfoV2", 2)?;
28050 self.internal_serialize::<S>(&mut s)?;
28051 s.end()
28052 }
28053}
28054
28055#[derive(Debug, Clone, PartialEq, Eq)]
28058#[non_exhaustive] pub struct TeamMemberInfoV2Result {
28060 pub member_info: TeamMemberInfoV2,
28062}
28063
28064impl TeamMemberInfoV2Result {
28065 pub fn new(member_info: TeamMemberInfoV2) -> Self {
28066 TeamMemberInfoV2Result {
28067 member_info,
28068 }
28069 }
28070}
28071
28072const TEAM_MEMBER_INFO_V2_RESULT_FIELDS: &[&str] = &["member_info"];
28073impl TeamMemberInfoV2Result {
28074 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28075 map: V,
28076 ) -> Result<TeamMemberInfoV2Result, V::Error> {
28077 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28078 }
28079
28080 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28081 mut map: V,
28082 optional: bool,
28083 ) -> Result<Option<TeamMemberInfoV2Result>, V::Error> {
28084 let mut field_member_info = None;
28085 let mut nothing = true;
28086 while let Some(key) = map.next_key::<&str>()? {
28087 nothing = false;
28088 match key {
28089 "member_info" => {
28090 if field_member_info.is_some() {
28091 return Err(::serde::de::Error::duplicate_field("member_info"));
28092 }
28093 field_member_info = Some(map.next_value()?);
28094 }
28095 _ => {
28096 map.next_value::<::serde_json::Value>()?;
28098 }
28099 }
28100 }
28101 if optional && nothing {
28102 return Ok(None);
28103 }
28104 let result = TeamMemberInfoV2Result {
28105 member_info: field_member_info.ok_or_else(|| ::serde::de::Error::missing_field("member_info"))?,
28106 };
28107 Ok(Some(result))
28108 }
28109
28110 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28111 &self,
28112 s: &mut S::SerializeStruct,
28113 ) -> Result<(), S::Error> {
28114 use serde::ser::SerializeStruct;
28115 s.serialize_field("member_info", &self.member_info)?;
28116 Ok(())
28117 }
28118}
28119
28120impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2Result {
28121 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28122 use serde::de::{MapAccess, Visitor};
28124 struct StructVisitor;
28125 impl<'de> Visitor<'de> for StructVisitor {
28126 type Value = TeamMemberInfoV2Result;
28127 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28128 f.write_str("a TeamMemberInfoV2Result struct")
28129 }
28130 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28131 TeamMemberInfoV2Result::internal_deserialize(map)
28132 }
28133 }
28134 deserializer.deserialize_struct("TeamMemberInfoV2Result", TEAM_MEMBER_INFO_V2_RESULT_FIELDS, StructVisitor)
28135 }
28136}
28137
28138impl ::serde::ser::Serialize for TeamMemberInfoV2Result {
28139 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28140 use serde::ser::SerializeStruct;
28142 let mut s = serializer.serialize_struct("TeamMemberInfoV2Result", 1)?;
28143 self.internal_serialize::<S>(&mut s)?;
28144 s.end()
28145 }
28146}
28147
28148#[derive(Debug, Clone, PartialEq, Eq)]
28150#[non_exhaustive] pub struct TeamMemberProfile {
28152 pub team_member_id: crate::types::team_common::TeamMemberId,
28154 pub email: String,
28156 pub email_verified: bool,
28158 pub status: TeamMemberStatus,
28160 pub name: crate::types::users::Name,
28162 pub membership_type: TeamMembershipType,
28165 pub groups: Vec<crate::types::team_common::GroupId>,
28167 pub member_folder_id: crate::types::common::NamespaceId,
28169 pub root_folder_id: crate::types::common::NamespaceId,
28171 pub external_id: Option<String>,
28174 pub account_id: Option<crate::types::users_common::AccountId>,
28176 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
28178 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
28181 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
28183 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
28186 pub persistent_id: Option<String>,
28189 pub is_directory_restricted: Option<bool>,
28191 pub profile_photo_url: Option<String>,
28193}
28194
28195impl TeamMemberProfile {
28196 pub fn new(
28197 team_member_id: crate::types::team_common::TeamMemberId,
28198 email: String,
28199 email_verified: bool,
28200 status: TeamMemberStatus,
28201 name: crate::types::users::Name,
28202 membership_type: TeamMembershipType,
28203 groups: Vec<crate::types::team_common::GroupId>,
28204 member_folder_id: crate::types::common::NamespaceId,
28205 root_folder_id: crate::types::common::NamespaceId,
28206 ) -> Self {
28207 TeamMemberProfile {
28208 team_member_id,
28209 email,
28210 email_verified,
28211 status,
28212 name,
28213 membership_type,
28214 groups,
28215 member_folder_id,
28216 root_folder_id,
28217 external_id: None,
28218 account_id: None,
28219 secondary_emails: None,
28220 invited_on: None,
28221 joined_on: None,
28222 suspended_on: None,
28223 persistent_id: None,
28224 is_directory_restricted: None,
28225 profile_photo_url: None,
28226 }
28227 }
28228
28229 pub fn with_external_id(mut self, value: String) -> Self {
28230 self.external_id = Some(value);
28231 self
28232 }
28233
28234 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
28235 self.account_id = Some(value);
28236 self
28237 }
28238
28239 pub fn with_secondary_emails(
28240 mut self,
28241 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
28242 ) -> Self {
28243 self.secondary_emails = Some(value);
28244 self
28245 }
28246
28247 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
28248 self.invited_on = Some(value);
28249 self
28250 }
28251
28252 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
28253 self.joined_on = Some(value);
28254 self
28255 }
28256
28257 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
28258 self.suspended_on = Some(value);
28259 self
28260 }
28261
28262 pub fn with_persistent_id(mut self, value: String) -> Self {
28263 self.persistent_id = Some(value);
28264 self
28265 }
28266
28267 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
28268 self.is_directory_restricted = Some(value);
28269 self
28270 }
28271
28272 pub fn with_profile_photo_url(mut self, value: String) -> Self {
28273 self.profile_photo_url = Some(value);
28274 self
28275 }
28276}
28277
28278const TEAM_MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
28279 "email",
28280 "email_verified",
28281 "status",
28282 "name",
28283 "membership_type",
28284 "groups",
28285 "member_folder_id",
28286 "root_folder_id",
28287 "external_id",
28288 "account_id",
28289 "secondary_emails",
28290 "invited_on",
28291 "joined_on",
28292 "suspended_on",
28293 "persistent_id",
28294 "is_directory_restricted",
28295 "profile_photo_url"];
28296impl TeamMemberProfile {
28297 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28298 map: V,
28299 ) -> Result<TeamMemberProfile, V::Error> {
28300 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28301 }
28302
28303 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28304 mut map: V,
28305 optional: bool,
28306 ) -> Result<Option<TeamMemberProfile>, V::Error> {
28307 let mut field_team_member_id = None;
28308 let mut field_email = None;
28309 let mut field_email_verified = None;
28310 let mut field_status = None;
28311 let mut field_name = None;
28312 let mut field_membership_type = None;
28313 let mut field_groups = None;
28314 let mut field_member_folder_id = None;
28315 let mut field_root_folder_id = None;
28316 let mut field_external_id = None;
28317 let mut field_account_id = None;
28318 let mut field_secondary_emails = None;
28319 let mut field_invited_on = None;
28320 let mut field_joined_on = None;
28321 let mut field_suspended_on = None;
28322 let mut field_persistent_id = None;
28323 let mut field_is_directory_restricted = None;
28324 let mut field_profile_photo_url = None;
28325 let mut nothing = true;
28326 while let Some(key) = map.next_key::<&str>()? {
28327 nothing = false;
28328 match key {
28329 "team_member_id" => {
28330 if field_team_member_id.is_some() {
28331 return Err(::serde::de::Error::duplicate_field("team_member_id"));
28332 }
28333 field_team_member_id = Some(map.next_value()?);
28334 }
28335 "email" => {
28336 if field_email.is_some() {
28337 return Err(::serde::de::Error::duplicate_field("email"));
28338 }
28339 field_email = Some(map.next_value()?);
28340 }
28341 "email_verified" => {
28342 if field_email_verified.is_some() {
28343 return Err(::serde::de::Error::duplicate_field("email_verified"));
28344 }
28345 field_email_verified = Some(map.next_value()?);
28346 }
28347 "status" => {
28348 if field_status.is_some() {
28349 return Err(::serde::de::Error::duplicate_field("status"));
28350 }
28351 field_status = Some(map.next_value()?);
28352 }
28353 "name" => {
28354 if field_name.is_some() {
28355 return Err(::serde::de::Error::duplicate_field("name"));
28356 }
28357 field_name = Some(map.next_value()?);
28358 }
28359 "membership_type" => {
28360 if field_membership_type.is_some() {
28361 return Err(::serde::de::Error::duplicate_field("membership_type"));
28362 }
28363 field_membership_type = Some(map.next_value()?);
28364 }
28365 "groups" => {
28366 if field_groups.is_some() {
28367 return Err(::serde::de::Error::duplicate_field("groups"));
28368 }
28369 field_groups = Some(map.next_value()?);
28370 }
28371 "member_folder_id" => {
28372 if field_member_folder_id.is_some() {
28373 return Err(::serde::de::Error::duplicate_field("member_folder_id"));
28374 }
28375 field_member_folder_id = Some(map.next_value()?);
28376 }
28377 "root_folder_id" => {
28378 if field_root_folder_id.is_some() {
28379 return Err(::serde::de::Error::duplicate_field("root_folder_id"));
28380 }
28381 field_root_folder_id = Some(map.next_value()?);
28382 }
28383 "external_id" => {
28384 if field_external_id.is_some() {
28385 return Err(::serde::de::Error::duplicate_field("external_id"));
28386 }
28387 field_external_id = Some(map.next_value()?);
28388 }
28389 "account_id" => {
28390 if field_account_id.is_some() {
28391 return Err(::serde::de::Error::duplicate_field("account_id"));
28392 }
28393 field_account_id = Some(map.next_value()?);
28394 }
28395 "secondary_emails" => {
28396 if field_secondary_emails.is_some() {
28397 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
28398 }
28399 field_secondary_emails = Some(map.next_value()?);
28400 }
28401 "invited_on" => {
28402 if field_invited_on.is_some() {
28403 return Err(::serde::de::Error::duplicate_field("invited_on"));
28404 }
28405 field_invited_on = Some(map.next_value()?);
28406 }
28407 "joined_on" => {
28408 if field_joined_on.is_some() {
28409 return Err(::serde::de::Error::duplicate_field("joined_on"));
28410 }
28411 field_joined_on = Some(map.next_value()?);
28412 }
28413 "suspended_on" => {
28414 if field_suspended_on.is_some() {
28415 return Err(::serde::de::Error::duplicate_field("suspended_on"));
28416 }
28417 field_suspended_on = Some(map.next_value()?);
28418 }
28419 "persistent_id" => {
28420 if field_persistent_id.is_some() {
28421 return Err(::serde::de::Error::duplicate_field("persistent_id"));
28422 }
28423 field_persistent_id = Some(map.next_value()?);
28424 }
28425 "is_directory_restricted" => {
28426 if field_is_directory_restricted.is_some() {
28427 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
28428 }
28429 field_is_directory_restricted = Some(map.next_value()?);
28430 }
28431 "profile_photo_url" => {
28432 if field_profile_photo_url.is_some() {
28433 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
28434 }
28435 field_profile_photo_url = Some(map.next_value()?);
28436 }
28437 _ => {
28438 map.next_value::<::serde_json::Value>()?;
28440 }
28441 }
28442 }
28443 if optional && nothing {
28444 return Ok(None);
28445 }
28446 let result = TeamMemberProfile {
28447 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
28448 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
28449 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
28450 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
28451 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
28452 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
28453 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
28454 member_folder_id: field_member_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("member_folder_id"))?,
28455 root_folder_id: field_root_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("root_folder_id"))?,
28456 external_id: field_external_id.and_then(Option::flatten),
28457 account_id: field_account_id.and_then(Option::flatten),
28458 secondary_emails: field_secondary_emails.and_then(Option::flatten),
28459 invited_on: field_invited_on.and_then(Option::flatten),
28460 joined_on: field_joined_on.and_then(Option::flatten),
28461 suspended_on: field_suspended_on.and_then(Option::flatten),
28462 persistent_id: field_persistent_id.and_then(Option::flatten),
28463 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
28464 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
28465 };
28466 Ok(Some(result))
28467 }
28468
28469 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28470 &self,
28471 s: &mut S::SerializeStruct,
28472 ) -> Result<(), S::Error> {
28473 use serde::ser::SerializeStruct;
28474 s.serialize_field("team_member_id", &self.team_member_id)?;
28475 s.serialize_field("email", &self.email)?;
28476 s.serialize_field("email_verified", &self.email_verified)?;
28477 s.serialize_field("status", &self.status)?;
28478 s.serialize_field("name", &self.name)?;
28479 s.serialize_field("membership_type", &self.membership_type)?;
28480 s.serialize_field("groups", &self.groups)?;
28481 s.serialize_field("member_folder_id", &self.member_folder_id)?;
28482 s.serialize_field("root_folder_id", &self.root_folder_id)?;
28483 if let Some(val) = &self.external_id {
28484 s.serialize_field("external_id", val)?;
28485 }
28486 if let Some(val) = &self.account_id {
28487 s.serialize_field("account_id", val)?;
28488 }
28489 if let Some(val) = &self.secondary_emails {
28490 s.serialize_field("secondary_emails", val)?;
28491 }
28492 if let Some(val) = &self.invited_on {
28493 s.serialize_field("invited_on", val)?;
28494 }
28495 if let Some(val) = &self.joined_on {
28496 s.serialize_field("joined_on", val)?;
28497 }
28498 if let Some(val) = &self.suspended_on {
28499 s.serialize_field("suspended_on", val)?;
28500 }
28501 if let Some(val) = &self.persistent_id {
28502 s.serialize_field("persistent_id", val)?;
28503 }
28504 if let Some(val) = &self.is_directory_restricted {
28505 s.serialize_field("is_directory_restricted", val)?;
28506 }
28507 if let Some(val) = &self.profile_photo_url {
28508 s.serialize_field("profile_photo_url", val)?;
28509 }
28510 Ok(())
28511 }
28512}
28513
28514impl<'de> ::serde::de::Deserialize<'de> for TeamMemberProfile {
28515 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28516 use serde::de::{MapAccess, Visitor};
28518 struct StructVisitor;
28519 impl<'de> Visitor<'de> for StructVisitor {
28520 type Value = TeamMemberProfile;
28521 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28522 f.write_str("a TeamMemberProfile struct")
28523 }
28524 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28525 TeamMemberProfile::internal_deserialize(map)
28526 }
28527 }
28528 deserializer.deserialize_struct("TeamMemberProfile", TEAM_MEMBER_PROFILE_FIELDS, StructVisitor)
28529 }
28530}
28531
28532impl ::serde::ser::Serialize for TeamMemberProfile {
28533 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28534 use serde::ser::SerializeStruct;
28536 let mut s = serializer.serialize_struct("TeamMemberProfile", 18)?;
28537 self.internal_serialize::<S>(&mut s)?;
28538 s.end()
28539 }
28540}
28541
28542impl From<TeamMemberProfile> for MemberProfile {
28544 fn from(subtype: TeamMemberProfile) -> Self {
28545 Self {
28546 team_member_id: subtype.team_member_id,
28547 email: subtype.email,
28548 email_verified: subtype.email_verified,
28549 status: subtype.status,
28550 name: subtype.name,
28551 membership_type: subtype.membership_type,
28552 external_id: subtype.external_id,
28553 account_id: subtype.account_id,
28554 secondary_emails: subtype.secondary_emails,
28555 invited_on: subtype.invited_on,
28556 joined_on: subtype.joined_on,
28557 suspended_on: subtype.suspended_on,
28558 persistent_id: subtype.persistent_id,
28559 is_directory_restricted: subtype.is_directory_restricted,
28560 profile_photo_url: subtype.profile_photo_url,
28561 }
28562 }
28563}
28564#[derive(Debug, Clone, PartialEq, Eq)]
28567#[non_exhaustive] pub struct TeamMemberRole {
28569 pub role_id: TeamMemberRoleId,
28572 pub name: String,
28574 pub description: String,
28576}
28577
28578impl TeamMemberRole {
28579 pub fn new(role_id: TeamMemberRoleId, name: String, description: String) -> Self {
28580 TeamMemberRole {
28581 role_id,
28582 name,
28583 description,
28584 }
28585 }
28586}
28587
28588const TEAM_MEMBER_ROLE_FIELDS: &[&str] = &["role_id",
28589 "name",
28590 "description"];
28591impl TeamMemberRole {
28592 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28593 map: V,
28594 ) -> Result<TeamMemberRole, V::Error> {
28595 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28596 }
28597
28598 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28599 mut map: V,
28600 optional: bool,
28601 ) -> Result<Option<TeamMemberRole>, V::Error> {
28602 let mut field_role_id = None;
28603 let mut field_name = None;
28604 let mut field_description = None;
28605 let mut nothing = true;
28606 while let Some(key) = map.next_key::<&str>()? {
28607 nothing = false;
28608 match key {
28609 "role_id" => {
28610 if field_role_id.is_some() {
28611 return Err(::serde::de::Error::duplicate_field("role_id"));
28612 }
28613 field_role_id = Some(map.next_value()?);
28614 }
28615 "name" => {
28616 if field_name.is_some() {
28617 return Err(::serde::de::Error::duplicate_field("name"));
28618 }
28619 field_name = Some(map.next_value()?);
28620 }
28621 "description" => {
28622 if field_description.is_some() {
28623 return Err(::serde::de::Error::duplicate_field("description"));
28624 }
28625 field_description = Some(map.next_value()?);
28626 }
28627 _ => {
28628 map.next_value::<::serde_json::Value>()?;
28630 }
28631 }
28632 }
28633 if optional && nothing {
28634 return Ok(None);
28635 }
28636 let result = TeamMemberRole {
28637 role_id: field_role_id.ok_or_else(|| ::serde::de::Error::missing_field("role_id"))?,
28638 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
28639 description: field_description.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
28640 };
28641 Ok(Some(result))
28642 }
28643
28644 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28645 &self,
28646 s: &mut S::SerializeStruct,
28647 ) -> Result<(), S::Error> {
28648 use serde::ser::SerializeStruct;
28649 s.serialize_field("role_id", &self.role_id)?;
28650 s.serialize_field("name", &self.name)?;
28651 s.serialize_field("description", &self.description)?;
28652 Ok(())
28653 }
28654}
28655
28656impl<'de> ::serde::de::Deserialize<'de> for TeamMemberRole {
28657 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28658 use serde::de::{MapAccess, Visitor};
28660 struct StructVisitor;
28661 impl<'de> Visitor<'de> for StructVisitor {
28662 type Value = TeamMemberRole;
28663 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28664 f.write_str("a TeamMemberRole struct")
28665 }
28666 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28667 TeamMemberRole::internal_deserialize(map)
28668 }
28669 }
28670 deserializer.deserialize_struct("TeamMemberRole", TEAM_MEMBER_ROLE_FIELDS, StructVisitor)
28671 }
28672}
28673
28674impl ::serde::ser::Serialize for TeamMemberRole {
28675 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28676 use serde::ser::SerializeStruct;
28678 let mut s = serializer.serialize_struct("TeamMemberRole", 3)?;
28679 self.internal_serialize::<S>(&mut s)?;
28680 s.end()
28681 }
28682}
28683
28684#[derive(Debug, Clone, PartialEq, Eq)]
28686pub enum TeamMemberStatus {
28687 Active,
28689 Invited,
28691 Suspended,
28694 Removed(RemovedStatus),
28697}
28698
28699impl<'de> ::serde::de::Deserialize<'de> for TeamMemberStatus {
28700 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28701 use serde::de::{self, MapAccess, Visitor};
28703 struct EnumVisitor;
28704 impl<'de> Visitor<'de> for EnumVisitor {
28705 type Value = TeamMemberStatus;
28706 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28707 f.write_str("a TeamMemberStatus structure")
28708 }
28709 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28710 let tag: &str = match map.next_key()? {
28711 Some(".tag") => map.next_value()?,
28712 _ => return Err(de::Error::missing_field(".tag"))
28713 };
28714 let value = match tag {
28715 "active" => TeamMemberStatus::Active,
28716 "invited" => TeamMemberStatus::Invited,
28717 "suspended" => TeamMemberStatus::Suspended,
28718 "removed" => TeamMemberStatus::Removed(RemovedStatus::internal_deserialize(&mut map)?),
28719 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
28720 };
28721 crate::eat_json_fields(&mut map)?;
28722 Ok(value)
28723 }
28724 }
28725 const VARIANTS: &[&str] = &["active",
28726 "invited",
28727 "suspended",
28728 "removed"];
28729 deserializer.deserialize_struct("TeamMemberStatus", VARIANTS, EnumVisitor)
28730 }
28731}
28732
28733impl ::serde::ser::Serialize for TeamMemberStatus {
28734 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28735 use serde::ser::SerializeStruct;
28737 match self {
28738 TeamMemberStatus::Active => {
28739 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
28741 s.serialize_field(".tag", "active")?;
28742 s.end()
28743 }
28744 TeamMemberStatus::Invited => {
28745 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
28747 s.serialize_field(".tag", "invited")?;
28748 s.end()
28749 }
28750 TeamMemberStatus::Suspended => {
28751 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
28753 s.serialize_field(".tag", "suspended")?;
28754 s.end()
28755 }
28756 TeamMemberStatus::Removed(x) => {
28757 let mut s = serializer.serialize_struct("TeamMemberStatus", 3)?;
28759 s.serialize_field(".tag", "removed")?;
28760 x.internal_serialize::<S>(&mut s)?;
28761 s.end()
28762 }
28763 }
28764 }
28765}
28766
28767#[derive(Debug, Clone, PartialEq, Eq)]
28768pub enum TeamMembershipType {
28769 Full,
28771 #[deprecated]
28774 Limited,
28775}
28776
28777impl<'de> ::serde::de::Deserialize<'de> for TeamMembershipType {
28778 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28779 use serde::de::{self, MapAccess, Visitor};
28781 struct EnumVisitor;
28782 impl<'de> Visitor<'de> for EnumVisitor {
28783 type Value = TeamMembershipType;
28784 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28785 f.write_str("a TeamMembershipType structure")
28786 }
28787 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28788 let tag: &str = match map.next_key()? {
28789 Some(".tag") => map.next_value()?,
28790 _ => return Err(de::Error::missing_field(".tag"))
28791 };
28792 let value = match tag {
28793 "full" => TeamMembershipType::Full,
28794 #[allow(deprecated)]
28795 "limited" => TeamMembershipType::Limited,
28796 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
28797 };
28798 crate::eat_json_fields(&mut map)?;
28799 Ok(value)
28800 }
28801 }
28802 const VARIANTS: &[&str] = &["full",
28803 "limited"];
28804 deserializer.deserialize_struct("TeamMembershipType", VARIANTS, EnumVisitor)
28805 }
28806}
28807
28808impl ::serde::ser::Serialize for TeamMembershipType {
28809 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28810 use serde::ser::SerializeStruct;
28812 match self {
28813 TeamMembershipType::Full => {
28814 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
28816 s.serialize_field(".tag", "full")?;
28817 s.end()
28818 }
28819 #[allow(deprecated)]
28820 TeamMembershipType::Limited => {
28821 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
28823 s.serialize_field(".tag", "limited")?;
28824 s.end()
28825 }
28826 }
28827 }
28828}
28829
28830#[derive(Debug, Clone, PartialEq, Eq)]
28831#[non_exhaustive] pub struct TeamNamespacesListArg {
28833 #[deprecated]
28835 pub limit: u32,
28836}
28837
28838impl Default for TeamNamespacesListArg {
28839 fn default() -> Self {
28840 TeamNamespacesListArg {
28841 #[allow(deprecated)] limit: 1000,
28842 }
28843 }
28844}
28845
28846impl TeamNamespacesListArg {
28847 #[deprecated]
28848 #[allow(deprecated)]
28849 pub fn with_limit(mut self, value: u32) -> Self {
28850 self.limit = value;
28851 self
28852 }
28853}
28854
28855const TEAM_NAMESPACES_LIST_ARG_FIELDS: &[&str] = &["limit"];
28856impl TeamNamespacesListArg {
28857 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28859 mut map: V,
28860 ) -> Result<TeamNamespacesListArg, V::Error> {
28861 let mut field_limit = None;
28862 while let Some(key) = map.next_key::<&str>()? {
28863 match key {
28864 "limit" => {
28865 if field_limit.is_some() {
28866 return Err(::serde::de::Error::duplicate_field("limit"));
28867 }
28868 field_limit = Some(map.next_value()?);
28869 }
28870 _ => {
28871 map.next_value::<::serde_json::Value>()?;
28873 }
28874 }
28875 }
28876 let result = TeamNamespacesListArg {
28877 #[allow(deprecated)] limit: field_limit.unwrap_or(1000),
28878 };
28879 Ok(result)
28880 }
28881
28882 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28883 &self,
28884 s: &mut S::SerializeStruct,
28885 ) -> Result<(), S::Error> {
28886 use serde::ser::SerializeStruct;
28887 #[allow(deprecated)]
28888 if self.limit != 1000 {
28889 s.serialize_field("limit", &self.limit)?;
28890 }
28891 Ok(())
28892 }
28893}
28894
28895impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListArg {
28896 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28897 use serde::de::{MapAccess, Visitor};
28899 struct StructVisitor;
28900 impl<'de> Visitor<'de> for StructVisitor {
28901 type Value = TeamNamespacesListArg;
28902 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28903 f.write_str("a TeamNamespacesListArg struct")
28904 }
28905 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28906 TeamNamespacesListArg::internal_deserialize(map)
28907 }
28908 }
28909 deserializer.deserialize_struct("TeamNamespacesListArg", TEAM_NAMESPACES_LIST_ARG_FIELDS, StructVisitor)
28910 }
28911}
28912
28913impl ::serde::ser::Serialize for TeamNamespacesListArg {
28914 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28915 use serde::ser::SerializeStruct;
28917 let mut s = serializer.serialize_struct("TeamNamespacesListArg", 1)?;
28918 self.internal_serialize::<S>(&mut s)?;
28919 s.end()
28920 }
28921}
28922
28923#[derive(Debug, Clone, PartialEq, Eq)]
28924#[non_exhaustive] pub struct TeamNamespacesListContinueArg {
28926 pub cursor: String,
28928}
28929
28930impl TeamNamespacesListContinueArg {
28931 pub fn new(cursor: String) -> Self {
28932 TeamNamespacesListContinueArg {
28933 cursor,
28934 }
28935 }
28936}
28937
28938const TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
28939impl TeamNamespacesListContinueArg {
28940 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28941 map: V,
28942 ) -> Result<TeamNamespacesListContinueArg, V::Error> {
28943 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28944 }
28945
28946 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28947 mut map: V,
28948 optional: bool,
28949 ) -> Result<Option<TeamNamespacesListContinueArg>, V::Error> {
28950 let mut field_cursor = None;
28951 let mut nothing = true;
28952 while let Some(key) = map.next_key::<&str>()? {
28953 nothing = false;
28954 match key {
28955 "cursor" => {
28956 if field_cursor.is_some() {
28957 return Err(::serde::de::Error::duplicate_field("cursor"));
28958 }
28959 field_cursor = Some(map.next_value()?);
28960 }
28961 _ => {
28962 map.next_value::<::serde_json::Value>()?;
28964 }
28965 }
28966 }
28967 if optional && nothing {
28968 return Ok(None);
28969 }
28970 let result = TeamNamespacesListContinueArg {
28971 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
28972 };
28973 Ok(Some(result))
28974 }
28975
28976 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28977 &self,
28978 s: &mut S::SerializeStruct,
28979 ) -> Result<(), S::Error> {
28980 use serde::ser::SerializeStruct;
28981 s.serialize_field("cursor", &self.cursor)?;
28982 Ok(())
28983 }
28984}
28985
28986impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueArg {
28987 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28988 use serde::de::{MapAccess, Visitor};
28990 struct StructVisitor;
28991 impl<'de> Visitor<'de> for StructVisitor {
28992 type Value = TeamNamespacesListContinueArg;
28993 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28994 f.write_str("a TeamNamespacesListContinueArg struct")
28995 }
28996 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28997 TeamNamespacesListContinueArg::internal_deserialize(map)
28998 }
28999 }
29000 deserializer.deserialize_struct("TeamNamespacesListContinueArg", TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
29001 }
29002}
29003
29004impl ::serde::ser::Serialize for TeamNamespacesListContinueArg {
29005 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29006 use serde::ser::SerializeStruct;
29008 let mut s = serializer.serialize_struct("TeamNamespacesListContinueArg", 1)?;
29009 self.internal_serialize::<S>(&mut s)?;
29010 s.end()
29011 }
29012}
29013
29014#[derive(Debug, Clone, PartialEq, Eq)]
29015#[non_exhaustive] pub enum TeamNamespacesListContinueError {
29017 InvalidArg,
29019 InvalidCursor,
29021 Other,
29024}
29025
29026impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueError {
29027 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29028 use serde::de::{self, MapAccess, Visitor};
29030 struct EnumVisitor;
29031 impl<'de> Visitor<'de> for EnumVisitor {
29032 type Value = TeamNamespacesListContinueError;
29033 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29034 f.write_str("a TeamNamespacesListContinueError structure")
29035 }
29036 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29037 let tag: &str = match map.next_key()? {
29038 Some(".tag") => map.next_value()?,
29039 _ => return Err(de::Error::missing_field(".tag"))
29040 };
29041 let value = match tag {
29042 "invalid_arg" => TeamNamespacesListContinueError::InvalidArg,
29043 "invalid_cursor" => TeamNamespacesListContinueError::InvalidCursor,
29044 _ => TeamNamespacesListContinueError::Other,
29045 };
29046 crate::eat_json_fields(&mut map)?;
29047 Ok(value)
29048 }
29049 }
29050 const VARIANTS: &[&str] = &["invalid_arg",
29051 "other",
29052 "invalid_cursor"];
29053 deserializer.deserialize_struct("TeamNamespacesListContinueError", VARIANTS, EnumVisitor)
29054 }
29055}
29056
29057impl ::serde::ser::Serialize for TeamNamespacesListContinueError {
29058 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29059 use serde::ser::SerializeStruct;
29061 match self {
29062 TeamNamespacesListContinueError::InvalidArg => {
29063 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
29065 s.serialize_field(".tag", "invalid_arg")?;
29066 s.end()
29067 }
29068 TeamNamespacesListContinueError::InvalidCursor => {
29069 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
29071 s.serialize_field(".tag", "invalid_cursor")?;
29072 s.end()
29073 }
29074 TeamNamespacesListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29075 }
29076 }
29077}
29078
29079impl ::std::error::Error for TeamNamespacesListContinueError {
29080}
29081
29082impl ::std::fmt::Display for TeamNamespacesListContinueError {
29083 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29084 match self {
29085 TeamNamespacesListContinueError::InvalidArg => f.write_str("Argument passed in is invalid."),
29086 TeamNamespacesListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
29087 _ => write!(f, "{:?}", *self),
29088 }
29089 }
29090}
29091
29092impl From<TeamNamespacesListError> for TeamNamespacesListContinueError {
29094 fn from(parent: TeamNamespacesListError) -> Self {
29095 match parent {
29096 TeamNamespacesListError::InvalidArg => TeamNamespacesListContinueError::InvalidArg,
29097 TeamNamespacesListError::Other => TeamNamespacesListContinueError::Other,
29098 }
29099 }
29100}
29101#[derive(Debug, Clone, PartialEq, Eq)]
29102#[non_exhaustive] pub enum TeamNamespacesListError {
29104 InvalidArg,
29106 Other,
29109}
29110
29111impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListError {
29112 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29113 use serde::de::{self, MapAccess, Visitor};
29115 struct EnumVisitor;
29116 impl<'de> Visitor<'de> for EnumVisitor {
29117 type Value = TeamNamespacesListError;
29118 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29119 f.write_str("a TeamNamespacesListError structure")
29120 }
29121 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29122 let tag: &str = match map.next_key()? {
29123 Some(".tag") => map.next_value()?,
29124 _ => return Err(de::Error::missing_field(".tag"))
29125 };
29126 let value = match tag {
29127 "invalid_arg" => TeamNamespacesListError::InvalidArg,
29128 _ => TeamNamespacesListError::Other,
29129 };
29130 crate::eat_json_fields(&mut map)?;
29131 Ok(value)
29132 }
29133 }
29134 const VARIANTS: &[&str] = &["invalid_arg",
29135 "other"];
29136 deserializer.deserialize_struct("TeamNamespacesListError", VARIANTS, EnumVisitor)
29137 }
29138}
29139
29140impl ::serde::ser::Serialize for TeamNamespacesListError {
29141 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29142 use serde::ser::SerializeStruct;
29144 match self {
29145 TeamNamespacesListError::InvalidArg => {
29146 let mut s = serializer.serialize_struct("TeamNamespacesListError", 1)?;
29148 s.serialize_field(".tag", "invalid_arg")?;
29149 s.end()
29150 }
29151 TeamNamespacesListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29152 }
29153 }
29154}
29155
29156impl ::std::error::Error for TeamNamespacesListError {
29157}
29158
29159impl ::std::fmt::Display for TeamNamespacesListError {
29160 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29161 match self {
29162 TeamNamespacesListError::InvalidArg => f.write_str("Argument passed in is invalid."),
29163 _ => write!(f, "{:?}", *self),
29164 }
29165 }
29166}
29167
29168#[derive(Debug, Clone, PartialEq, Eq)]
29170#[non_exhaustive] pub struct TeamNamespacesListResult {
29172 pub namespaces: Vec<NamespaceMetadata>,
29174 pub cursor: String,
29177 pub has_more: bool,
29179}
29180
29181impl TeamNamespacesListResult {
29182 pub fn new(namespaces: Vec<NamespaceMetadata>, cursor: String, has_more: bool) -> Self {
29183 TeamNamespacesListResult {
29184 namespaces,
29185 cursor,
29186 has_more,
29187 }
29188 }
29189}
29190
29191const TEAM_NAMESPACES_LIST_RESULT_FIELDS: &[&str] = &["namespaces",
29192 "cursor",
29193 "has_more"];
29194impl TeamNamespacesListResult {
29195 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29196 map: V,
29197 ) -> Result<TeamNamespacesListResult, V::Error> {
29198 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29199 }
29200
29201 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29202 mut map: V,
29203 optional: bool,
29204 ) -> Result<Option<TeamNamespacesListResult>, V::Error> {
29205 let mut field_namespaces = None;
29206 let mut field_cursor = None;
29207 let mut field_has_more = None;
29208 let mut nothing = true;
29209 while let Some(key) = map.next_key::<&str>()? {
29210 nothing = false;
29211 match key {
29212 "namespaces" => {
29213 if field_namespaces.is_some() {
29214 return Err(::serde::de::Error::duplicate_field("namespaces"));
29215 }
29216 field_namespaces = Some(map.next_value()?);
29217 }
29218 "cursor" => {
29219 if field_cursor.is_some() {
29220 return Err(::serde::de::Error::duplicate_field("cursor"));
29221 }
29222 field_cursor = Some(map.next_value()?);
29223 }
29224 "has_more" => {
29225 if field_has_more.is_some() {
29226 return Err(::serde::de::Error::duplicate_field("has_more"));
29227 }
29228 field_has_more = Some(map.next_value()?);
29229 }
29230 _ => {
29231 map.next_value::<::serde_json::Value>()?;
29233 }
29234 }
29235 }
29236 if optional && nothing {
29237 return Ok(None);
29238 }
29239 let result = TeamNamespacesListResult {
29240 namespaces: field_namespaces.ok_or_else(|| ::serde::de::Error::missing_field("namespaces"))?,
29241 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
29242 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
29243 };
29244 Ok(Some(result))
29245 }
29246
29247 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29248 &self,
29249 s: &mut S::SerializeStruct,
29250 ) -> Result<(), S::Error> {
29251 use serde::ser::SerializeStruct;
29252 s.serialize_field("namespaces", &self.namespaces)?;
29253 s.serialize_field("cursor", &self.cursor)?;
29254 s.serialize_field("has_more", &self.has_more)?;
29255 Ok(())
29256 }
29257}
29258
29259impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListResult {
29260 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29261 use serde::de::{MapAccess, Visitor};
29263 struct StructVisitor;
29264 impl<'de> Visitor<'de> for StructVisitor {
29265 type Value = TeamNamespacesListResult;
29266 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29267 f.write_str("a TeamNamespacesListResult struct")
29268 }
29269 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29270 TeamNamespacesListResult::internal_deserialize(map)
29271 }
29272 }
29273 deserializer.deserialize_struct("TeamNamespacesListResult", TEAM_NAMESPACES_LIST_RESULT_FIELDS, StructVisitor)
29274 }
29275}
29276
29277impl ::serde::ser::Serialize for TeamNamespacesListResult {
29278 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29279 use serde::ser::SerializeStruct;
29281 let mut s = serializer.serialize_struct("TeamNamespacesListResult", 3)?;
29282 self.internal_serialize::<S>(&mut s)?;
29283 s.end()
29284 }
29285}
29286
29287#[derive(Debug, Clone, PartialEq, Eq)]
29288#[non_exhaustive] pub enum TeamReportFailureReason {
29290 TemporaryError,
29293 ManyReportsAtOnce,
29296 TooMuchData,
29298 Other,
29301}
29302
29303impl<'de> ::serde::de::Deserialize<'de> for TeamReportFailureReason {
29304 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29305 use serde::de::{self, MapAccess, Visitor};
29307 struct EnumVisitor;
29308 impl<'de> Visitor<'de> for EnumVisitor {
29309 type Value = TeamReportFailureReason;
29310 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29311 f.write_str("a TeamReportFailureReason structure")
29312 }
29313 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29314 let tag: &str = match map.next_key()? {
29315 Some(".tag") => map.next_value()?,
29316 _ => return Err(de::Error::missing_field(".tag"))
29317 };
29318 let value = match tag {
29319 "temporary_error" => TeamReportFailureReason::TemporaryError,
29320 "many_reports_at_once" => TeamReportFailureReason::ManyReportsAtOnce,
29321 "too_much_data" => TeamReportFailureReason::TooMuchData,
29322 _ => TeamReportFailureReason::Other,
29323 };
29324 crate::eat_json_fields(&mut map)?;
29325 Ok(value)
29326 }
29327 }
29328 const VARIANTS: &[&str] = &["temporary_error",
29329 "many_reports_at_once",
29330 "too_much_data",
29331 "other"];
29332 deserializer.deserialize_struct("TeamReportFailureReason", VARIANTS, EnumVisitor)
29333 }
29334}
29335
29336impl ::serde::ser::Serialize for TeamReportFailureReason {
29337 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29338 use serde::ser::SerializeStruct;
29340 match self {
29341 TeamReportFailureReason::TemporaryError => {
29342 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
29344 s.serialize_field(".tag", "temporary_error")?;
29345 s.end()
29346 }
29347 TeamReportFailureReason::ManyReportsAtOnce => {
29348 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
29350 s.serialize_field(".tag", "many_reports_at_once")?;
29351 s.end()
29352 }
29353 TeamReportFailureReason::TooMuchData => {
29354 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
29356 s.serialize_field(".tag", "too_much_data")?;
29357 s.end()
29358 }
29359 TeamReportFailureReason::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29360 }
29361 }
29362}
29363
29364#[derive(Debug, Clone, PartialEq, Eq)]
29367#[non_exhaustive] pub enum TokenGetAuthenticatedAdminError {
29369 MappingNotFound,
29373 AdminNotActive,
29376 Other,
29379}
29380
29381impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminError {
29382 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29383 use serde::de::{self, MapAccess, Visitor};
29385 struct EnumVisitor;
29386 impl<'de> Visitor<'de> for EnumVisitor {
29387 type Value = TokenGetAuthenticatedAdminError;
29388 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29389 f.write_str("a TokenGetAuthenticatedAdminError structure")
29390 }
29391 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29392 let tag: &str = match map.next_key()? {
29393 Some(".tag") => map.next_value()?,
29394 _ => return Err(de::Error::missing_field(".tag"))
29395 };
29396 let value = match tag {
29397 "mapping_not_found" => TokenGetAuthenticatedAdminError::MappingNotFound,
29398 "admin_not_active" => TokenGetAuthenticatedAdminError::AdminNotActive,
29399 _ => TokenGetAuthenticatedAdminError::Other,
29400 };
29401 crate::eat_json_fields(&mut map)?;
29402 Ok(value)
29403 }
29404 }
29405 const VARIANTS: &[&str] = &["mapping_not_found",
29406 "admin_not_active",
29407 "other"];
29408 deserializer.deserialize_struct("TokenGetAuthenticatedAdminError", VARIANTS, EnumVisitor)
29409 }
29410}
29411
29412impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminError {
29413 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29414 use serde::ser::SerializeStruct;
29416 match self {
29417 TokenGetAuthenticatedAdminError::MappingNotFound => {
29418 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
29420 s.serialize_field(".tag", "mapping_not_found")?;
29421 s.end()
29422 }
29423 TokenGetAuthenticatedAdminError::AdminNotActive => {
29424 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
29426 s.serialize_field(".tag", "admin_not_active")?;
29427 s.end()
29428 }
29429 TokenGetAuthenticatedAdminError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29430 }
29431 }
29432}
29433
29434impl ::std::error::Error for TokenGetAuthenticatedAdminError {
29435}
29436
29437impl ::std::fmt::Display for TokenGetAuthenticatedAdminError {
29438 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29439 match self {
29440 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."),
29441 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."),
29442 _ => write!(f, "{:?}", *self),
29443 }
29444 }
29445}
29446
29447#[derive(Debug, Clone, PartialEq, Eq)]
29449#[non_exhaustive] pub struct TokenGetAuthenticatedAdminResult {
29451 pub admin_profile: TeamMemberProfile,
29453}
29454
29455impl TokenGetAuthenticatedAdminResult {
29456 pub fn new(admin_profile: TeamMemberProfile) -> Self {
29457 TokenGetAuthenticatedAdminResult {
29458 admin_profile,
29459 }
29460 }
29461}
29462
29463const TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS: &[&str] = &["admin_profile"];
29464impl TokenGetAuthenticatedAdminResult {
29465 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29466 map: V,
29467 ) -> Result<TokenGetAuthenticatedAdminResult, V::Error> {
29468 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29469 }
29470
29471 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29472 mut map: V,
29473 optional: bool,
29474 ) -> Result<Option<TokenGetAuthenticatedAdminResult>, V::Error> {
29475 let mut field_admin_profile = None;
29476 let mut nothing = true;
29477 while let Some(key) = map.next_key::<&str>()? {
29478 nothing = false;
29479 match key {
29480 "admin_profile" => {
29481 if field_admin_profile.is_some() {
29482 return Err(::serde::de::Error::duplicate_field("admin_profile"));
29483 }
29484 field_admin_profile = Some(map.next_value()?);
29485 }
29486 _ => {
29487 map.next_value::<::serde_json::Value>()?;
29489 }
29490 }
29491 }
29492 if optional && nothing {
29493 return Ok(None);
29494 }
29495 let result = TokenGetAuthenticatedAdminResult {
29496 admin_profile: field_admin_profile.ok_or_else(|| ::serde::de::Error::missing_field("admin_profile"))?,
29497 };
29498 Ok(Some(result))
29499 }
29500
29501 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29502 &self,
29503 s: &mut S::SerializeStruct,
29504 ) -> Result<(), S::Error> {
29505 use serde::ser::SerializeStruct;
29506 s.serialize_field("admin_profile", &self.admin_profile)?;
29507 Ok(())
29508 }
29509}
29510
29511impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminResult {
29512 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29513 use serde::de::{MapAccess, Visitor};
29515 struct StructVisitor;
29516 impl<'de> Visitor<'de> for StructVisitor {
29517 type Value = TokenGetAuthenticatedAdminResult;
29518 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29519 f.write_str("a TokenGetAuthenticatedAdminResult struct")
29520 }
29521 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29522 TokenGetAuthenticatedAdminResult::internal_deserialize(map)
29523 }
29524 }
29525 deserializer.deserialize_struct("TokenGetAuthenticatedAdminResult", TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS, StructVisitor)
29526 }
29527}
29528
29529impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminResult {
29530 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29531 use serde::ser::SerializeStruct;
29533 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminResult", 1)?;
29534 self.internal_serialize::<S>(&mut s)?;
29535 s.end()
29536 }
29537}
29538
29539#[derive(Debug, Clone, PartialEq, Eq)]
29541#[non_exhaustive] pub enum UploadApiRateLimitValue {
29543 Unlimited,
29546 Limit(u32),
29548 Other,
29551}
29552
29553impl<'de> ::serde::de::Deserialize<'de> for UploadApiRateLimitValue {
29554 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29555 use serde::de::{self, MapAccess, Visitor};
29557 struct EnumVisitor;
29558 impl<'de> Visitor<'de> for EnumVisitor {
29559 type Value = UploadApiRateLimitValue;
29560 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29561 f.write_str("a UploadApiRateLimitValue structure")
29562 }
29563 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29564 let tag: &str = match map.next_key()? {
29565 Some(".tag") => map.next_value()?,
29566 _ => return Err(de::Error::missing_field(".tag"))
29567 };
29568 let value = match tag {
29569 "unlimited" => UploadApiRateLimitValue::Unlimited,
29570 "limit" => {
29571 match map.next_key()? {
29572 Some("limit") => UploadApiRateLimitValue::Limit(map.next_value()?),
29573 None => return Err(de::Error::missing_field("limit")),
29574 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29575 }
29576 }
29577 _ => UploadApiRateLimitValue::Other,
29578 };
29579 crate::eat_json_fields(&mut map)?;
29580 Ok(value)
29581 }
29582 }
29583 const VARIANTS: &[&str] = &["unlimited",
29584 "limit",
29585 "other"];
29586 deserializer.deserialize_struct("UploadApiRateLimitValue", VARIANTS, EnumVisitor)
29587 }
29588}
29589
29590impl ::serde::ser::Serialize for UploadApiRateLimitValue {
29591 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29592 use serde::ser::SerializeStruct;
29594 match self {
29595 UploadApiRateLimitValue::Unlimited => {
29596 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 1)?;
29598 s.serialize_field(".tag", "unlimited")?;
29599 s.end()
29600 }
29601 UploadApiRateLimitValue::Limit(x) => {
29602 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 2)?;
29604 s.serialize_field(".tag", "limit")?;
29605 s.serialize_field("limit", x)?;
29606 s.end()
29607 }
29608 UploadApiRateLimitValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29609 }
29610 }
29611}
29612
29613#[derive(Debug, Clone, PartialEq, Eq)]
29617#[non_exhaustive] pub enum UserAddResult {
29619 Success(UserSecondaryEmailsResult),
29621 InvalidUser(UserSelectorArg),
29623 Unverified(UserSelectorArg),
29625 PlaceholderUser(UserSelectorArg),
29627 Other,
29630}
29631
29632impl<'de> ::serde::de::Deserialize<'de> for UserAddResult {
29633 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29634 use serde::de::{self, MapAccess, Visitor};
29636 struct EnumVisitor;
29637 impl<'de> Visitor<'de> for EnumVisitor {
29638 type Value = UserAddResult;
29639 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29640 f.write_str("a UserAddResult structure")
29641 }
29642 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29643 let tag: &str = match map.next_key()? {
29644 Some(".tag") => map.next_value()?,
29645 _ => return Err(de::Error::missing_field(".tag"))
29646 };
29647 let value = match tag {
29648 "success" => UserAddResult::Success(UserSecondaryEmailsResult::internal_deserialize(&mut map)?),
29649 "invalid_user" => {
29650 match map.next_key()? {
29651 Some("invalid_user") => UserAddResult::InvalidUser(map.next_value()?),
29652 None => return Err(de::Error::missing_field("invalid_user")),
29653 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29654 }
29655 }
29656 "unverified" => {
29657 match map.next_key()? {
29658 Some("unverified") => UserAddResult::Unverified(map.next_value()?),
29659 None => return Err(de::Error::missing_field("unverified")),
29660 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29661 }
29662 }
29663 "placeholder_user" => {
29664 match map.next_key()? {
29665 Some("placeholder_user") => UserAddResult::PlaceholderUser(map.next_value()?),
29666 None => return Err(de::Error::missing_field("placeholder_user")),
29667 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29668 }
29669 }
29670 _ => UserAddResult::Other,
29671 };
29672 crate::eat_json_fields(&mut map)?;
29673 Ok(value)
29674 }
29675 }
29676 const VARIANTS: &[&str] = &["success",
29677 "invalid_user",
29678 "unverified",
29679 "placeholder_user",
29680 "other"];
29681 deserializer.deserialize_struct("UserAddResult", VARIANTS, EnumVisitor)
29682 }
29683}
29684
29685impl ::serde::ser::Serialize for UserAddResult {
29686 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29687 use serde::ser::SerializeStruct;
29689 match self {
29690 UserAddResult::Success(x) => {
29691 let mut s = serializer.serialize_struct("UserAddResult", 3)?;
29693 s.serialize_field(".tag", "success")?;
29694 x.internal_serialize::<S>(&mut s)?;
29695 s.end()
29696 }
29697 UserAddResult::InvalidUser(x) => {
29698 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
29700 s.serialize_field(".tag", "invalid_user")?;
29701 s.serialize_field("invalid_user", x)?;
29702 s.end()
29703 }
29704 UserAddResult::Unverified(x) => {
29705 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
29707 s.serialize_field(".tag", "unverified")?;
29708 s.serialize_field("unverified", x)?;
29709 s.end()
29710 }
29711 UserAddResult::PlaceholderUser(x) => {
29712 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
29714 s.serialize_field(".tag", "placeholder_user")?;
29715 s.serialize_field("placeholder_user", x)?;
29716 s.end()
29717 }
29718 UserAddResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29719 }
29720 }
29721}
29722
29723#[derive(Debug, Clone, PartialEq, Eq)]
29725#[non_exhaustive] pub struct UserCustomQuotaArg {
29727 pub user: UserSelectorArg,
29728 pub quota_gb: UserQuota,
29729}
29730
29731impl UserCustomQuotaArg {
29732 pub fn new(user: UserSelectorArg, quota_gb: UserQuota) -> Self {
29733 UserCustomQuotaArg {
29734 user,
29735 quota_gb,
29736 }
29737 }
29738}
29739
29740const USER_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["user",
29741 "quota_gb"];
29742impl UserCustomQuotaArg {
29743 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29744 map: V,
29745 ) -> Result<UserCustomQuotaArg, V::Error> {
29746 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29747 }
29748
29749 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29750 mut map: V,
29751 optional: bool,
29752 ) -> Result<Option<UserCustomQuotaArg>, V::Error> {
29753 let mut field_user = None;
29754 let mut field_quota_gb = None;
29755 let mut nothing = true;
29756 while let Some(key) = map.next_key::<&str>()? {
29757 nothing = false;
29758 match key {
29759 "user" => {
29760 if field_user.is_some() {
29761 return Err(::serde::de::Error::duplicate_field("user"));
29762 }
29763 field_user = Some(map.next_value()?);
29764 }
29765 "quota_gb" => {
29766 if field_quota_gb.is_some() {
29767 return Err(::serde::de::Error::duplicate_field("quota_gb"));
29768 }
29769 field_quota_gb = Some(map.next_value()?);
29770 }
29771 _ => {
29772 map.next_value::<::serde_json::Value>()?;
29774 }
29775 }
29776 }
29777 if optional && nothing {
29778 return Ok(None);
29779 }
29780 let result = UserCustomQuotaArg {
29781 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29782 quota_gb: field_quota_gb.ok_or_else(|| ::serde::de::Error::missing_field("quota_gb"))?,
29783 };
29784 Ok(Some(result))
29785 }
29786
29787 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29788 &self,
29789 s: &mut S::SerializeStruct,
29790 ) -> Result<(), S::Error> {
29791 use serde::ser::SerializeStruct;
29792 s.serialize_field("user", &self.user)?;
29793 s.serialize_field("quota_gb", &self.quota_gb)?;
29794 Ok(())
29795 }
29796}
29797
29798impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaArg {
29799 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29800 use serde::de::{MapAccess, Visitor};
29802 struct StructVisitor;
29803 impl<'de> Visitor<'de> for StructVisitor {
29804 type Value = UserCustomQuotaArg;
29805 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29806 f.write_str("a UserCustomQuotaArg struct")
29807 }
29808 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29809 UserCustomQuotaArg::internal_deserialize(map)
29810 }
29811 }
29812 deserializer.deserialize_struct("UserCustomQuotaArg", USER_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
29813 }
29814}
29815
29816impl ::serde::ser::Serialize for UserCustomQuotaArg {
29817 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29818 use serde::ser::SerializeStruct;
29820 let mut s = serializer.serialize_struct("UserCustomQuotaArg", 2)?;
29821 self.internal_serialize::<S>(&mut s)?;
29822 s.end()
29823 }
29824}
29825
29826#[derive(Debug, Clone, PartialEq, Eq)]
29829#[non_exhaustive] pub struct UserCustomQuotaResult {
29831 pub user: UserSelectorArg,
29832 pub quota_gb: Option<UserQuota>,
29833}
29834
29835impl UserCustomQuotaResult {
29836 pub fn new(user: UserSelectorArg) -> Self {
29837 UserCustomQuotaResult {
29838 user,
29839 quota_gb: None,
29840 }
29841 }
29842
29843 pub fn with_quota_gb(mut self, value: UserQuota) -> Self {
29844 self.quota_gb = Some(value);
29845 self
29846 }
29847}
29848
29849const USER_CUSTOM_QUOTA_RESULT_FIELDS: &[&str] = &["user",
29850 "quota_gb"];
29851impl UserCustomQuotaResult {
29852 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29853 map: V,
29854 ) -> Result<UserCustomQuotaResult, V::Error> {
29855 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29856 }
29857
29858 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29859 mut map: V,
29860 optional: bool,
29861 ) -> Result<Option<UserCustomQuotaResult>, V::Error> {
29862 let mut field_user = None;
29863 let mut field_quota_gb = None;
29864 let mut nothing = true;
29865 while let Some(key) = map.next_key::<&str>()? {
29866 nothing = false;
29867 match key {
29868 "user" => {
29869 if field_user.is_some() {
29870 return Err(::serde::de::Error::duplicate_field("user"));
29871 }
29872 field_user = Some(map.next_value()?);
29873 }
29874 "quota_gb" => {
29875 if field_quota_gb.is_some() {
29876 return Err(::serde::de::Error::duplicate_field("quota_gb"));
29877 }
29878 field_quota_gb = Some(map.next_value()?);
29879 }
29880 _ => {
29881 map.next_value::<::serde_json::Value>()?;
29883 }
29884 }
29885 }
29886 if optional && nothing {
29887 return Ok(None);
29888 }
29889 let result = UserCustomQuotaResult {
29890 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29891 quota_gb: field_quota_gb.and_then(Option::flatten),
29892 };
29893 Ok(Some(result))
29894 }
29895
29896 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29897 &self,
29898 s: &mut S::SerializeStruct,
29899 ) -> Result<(), S::Error> {
29900 use serde::ser::SerializeStruct;
29901 s.serialize_field("user", &self.user)?;
29902 if let Some(val) = &self.quota_gb {
29903 s.serialize_field("quota_gb", val)?;
29904 }
29905 Ok(())
29906 }
29907}
29908
29909impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaResult {
29910 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29911 use serde::de::{MapAccess, Visitor};
29913 struct StructVisitor;
29914 impl<'de> Visitor<'de> for StructVisitor {
29915 type Value = UserCustomQuotaResult;
29916 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29917 f.write_str("a UserCustomQuotaResult struct")
29918 }
29919 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29920 UserCustomQuotaResult::internal_deserialize(map)
29921 }
29922 }
29923 deserializer.deserialize_struct("UserCustomQuotaResult", USER_CUSTOM_QUOTA_RESULT_FIELDS, StructVisitor)
29924 }
29925}
29926
29927impl ::serde::ser::Serialize for UserCustomQuotaResult {
29928 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29929 use serde::ser::SerializeStruct;
29931 let mut s = serializer.serialize_struct("UserCustomQuotaResult", 2)?;
29932 self.internal_serialize::<S>(&mut s)?;
29933 s.end()
29934 }
29935}
29936
29937#[derive(Debug, Clone, PartialEq, Eq)]
29938#[non_exhaustive] pub struct UserDeleteEmailsResult {
29940 pub user: UserSelectorArg,
29941 pub results: Vec<DeleteSecondaryEmailResult>,
29942}
29943
29944impl UserDeleteEmailsResult {
29945 pub fn new(user: UserSelectorArg, results: Vec<DeleteSecondaryEmailResult>) -> Self {
29946 UserDeleteEmailsResult {
29947 user,
29948 results,
29949 }
29950 }
29951}
29952
29953const USER_DELETE_EMAILS_RESULT_FIELDS: &[&str] = &["user",
29954 "results"];
29955impl UserDeleteEmailsResult {
29956 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29957 map: V,
29958 ) -> Result<UserDeleteEmailsResult, V::Error> {
29959 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29960 }
29961
29962 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29963 mut map: V,
29964 optional: bool,
29965 ) -> Result<Option<UserDeleteEmailsResult>, V::Error> {
29966 let mut field_user = None;
29967 let mut field_results = None;
29968 let mut nothing = true;
29969 while let Some(key) = map.next_key::<&str>()? {
29970 nothing = false;
29971 match key {
29972 "user" => {
29973 if field_user.is_some() {
29974 return Err(::serde::de::Error::duplicate_field("user"));
29975 }
29976 field_user = Some(map.next_value()?);
29977 }
29978 "results" => {
29979 if field_results.is_some() {
29980 return Err(::serde::de::Error::duplicate_field("results"));
29981 }
29982 field_results = Some(map.next_value()?);
29983 }
29984 _ => {
29985 map.next_value::<::serde_json::Value>()?;
29987 }
29988 }
29989 }
29990 if optional && nothing {
29991 return Ok(None);
29992 }
29993 let result = UserDeleteEmailsResult {
29994 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29995 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
29996 };
29997 Ok(Some(result))
29998 }
29999
30000 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30001 &self,
30002 s: &mut S::SerializeStruct,
30003 ) -> Result<(), S::Error> {
30004 use serde::ser::SerializeStruct;
30005 s.serialize_field("user", &self.user)?;
30006 s.serialize_field("results", &self.results)?;
30007 Ok(())
30008 }
30009}
30010
30011impl<'de> ::serde::de::Deserialize<'de> for UserDeleteEmailsResult {
30012 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30013 use serde::de::{MapAccess, Visitor};
30015 struct StructVisitor;
30016 impl<'de> Visitor<'de> for StructVisitor {
30017 type Value = UserDeleteEmailsResult;
30018 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30019 f.write_str("a UserDeleteEmailsResult struct")
30020 }
30021 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30022 UserDeleteEmailsResult::internal_deserialize(map)
30023 }
30024 }
30025 deserializer.deserialize_struct("UserDeleteEmailsResult", USER_DELETE_EMAILS_RESULT_FIELDS, StructVisitor)
30026 }
30027}
30028
30029impl ::serde::ser::Serialize for UserDeleteEmailsResult {
30030 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30031 use serde::ser::SerializeStruct;
30033 let mut s = serializer.serialize_struct("UserDeleteEmailsResult", 2)?;
30034 self.internal_serialize::<S>(&mut s)?;
30035 s.end()
30036 }
30037}
30038
30039#[derive(Debug, Clone, PartialEq, Eq)]
30043#[non_exhaustive] pub enum UserDeleteResult {
30045 Success(UserDeleteEmailsResult),
30047 InvalidUser(UserSelectorArg),
30049 Other,
30052}
30053
30054impl<'de> ::serde::de::Deserialize<'de> for UserDeleteResult {
30055 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30056 use serde::de::{self, MapAccess, Visitor};
30058 struct EnumVisitor;
30059 impl<'de> Visitor<'de> for EnumVisitor {
30060 type Value = UserDeleteResult;
30061 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30062 f.write_str("a UserDeleteResult structure")
30063 }
30064 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30065 let tag: &str = match map.next_key()? {
30066 Some(".tag") => map.next_value()?,
30067 _ => return Err(de::Error::missing_field(".tag"))
30068 };
30069 let value = match tag {
30070 "success" => UserDeleteResult::Success(UserDeleteEmailsResult::internal_deserialize(&mut map)?),
30071 "invalid_user" => {
30072 match map.next_key()? {
30073 Some("invalid_user") => UserDeleteResult::InvalidUser(map.next_value()?),
30074 None => return Err(de::Error::missing_field("invalid_user")),
30075 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30076 }
30077 }
30078 _ => UserDeleteResult::Other,
30079 };
30080 crate::eat_json_fields(&mut map)?;
30081 Ok(value)
30082 }
30083 }
30084 const VARIANTS: &[&str] = &["success",
30085 "invalid_user",
30086 "other"];
30087 deserializer.deserialize_struct("UserDeleteResult", VARIANTS, EnumVisitor)
30088 }
30089}
30090
30091impl ::serde::ser::Serialize for UserDeleteResult {
30092 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30093 use serde::ser::SerializeStruct;
30095 match self {
30096 UserDeleteResult::Success(x) => {
30097 let mut s = serializer.serialize_struct("UserDeleteResult", 3)?;
30099 s.serialize_field(".tag", "success")?;
30100 x.internal_serialize::<S>(&mut s)?;
30101 s.end()
30102 }
30103 UserDeleteResult::InvalidUser(x) => {
30104 let mut s = serializer.serialize_struct("UserDeleteResult", 2)?;
30106 s.serialize_field(".tag", "invalid_user")?;
30107 s.serialize_field("invalid_user", x)?;
30108 s.end()
30109 }
30110 UserDeleteResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30111 }
30112 }
30113}
30114
30115#[derive(Debug, Clone, PartialEq, Eq)]
30116#[non_exhaustive] pub struct UserResendEmailsResult {
30118 pub user: UserSelectorArg,
30119 pub results: Vec<ResendSecondaryEmailResult>,
30120}
30121
30122impl UserResendEmailsResult {
30123 pub fn new(user: UserSelectorArg, results: Vec<ResendSecondaryEmailResult>) -> Self {
30124 UserResendEmailsResult {
30125 user,
30126 results,
30127 }
30128 }
30129}
30130
30131const USER_RESEND_EMAILS_RESULT_FIELDS: &[&str] = &["user",
30132 "results"];
30133impl UserResendEmailsResult {
30134 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30135 map: V,
30136 ) -> Result<UserResendEmailsResult, V::Error> {
30137 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30138 }
30139
30140 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30141 mut map: V,
30142 optional: bool,
30143 ) -> Result<Option<UserResendEmailsResult>, V::Error> {
30144 let mut field_user = None;
30145 let mut field_results = None;
30146 let mut nothing = true;
30147 while let Some(key) = map.next_key::<&str>()? {
30148 nothing = false;
30149 match key {
30150 "user" => {
30151 if field_user.is_some() {
30152 return Err(::serde::de::Error::duplicate_field("user"));
30153 }
30154 field_user = Some(map.next_value()?);
30155 }
30156 "results" => {
30157 if field_results.is_some() {
30158 return Err(::serde::de::Error::duplicate_field("results"));
30159 }
30160 field_results = Some(map.next_value()?);
30161 }
30162 _ => {
30163 map.next_value::<::serde_json::Value>()?;
30165 }
30166 }
30167 }
30168 if optional && nothing {
30169 return Ok(None);
30170 }
30171 let result = UserResendEmailsResult {
30172 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30173 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
30174 };
30175 Ok(Some(result))
30176 }
30177
30178 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30179 &self,
30180 s: &mut S::SerializeStruct,
30181 ) -> Result<(), S::Error> {
30182 use serde::ser::SerializeStruct;
30183 s.serialize_field("user", &self.user)?;
30184 s.serialize_field("results", &self.results)?;
30185 Ok(())
30186 }
30187}
30188
30189impl<'de> ::serde::de::Deserialize<'de> for UserResendEmailsResult {
30190 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30191 use serde::de::{MapAccess, Visitor};
30193 struct StructVisitor;
30194 impl<'de> Visitor<'de> for StructVisitor {
30195 type Value = UserResendEmailsResult;
30196 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30197 f.write_str("a UserResendEmailsResult struct")
30198 }
30199 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30200 UserResendEmailsResult::internal_deserialize(map)
30201 }
30202 }
30203 deserializer.deserialize_struct("UserResendEmailsResult", USER_RESEND_EMAILS_RESULT_FIELDS, StructVisitor)
30204 }
30205}
30206
30207impl ::serde::ser::Serialize for UserResendEmailsResult {
30208 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30209 use serde::ser::SerializeStruct;
30211 let mut s = serializer.serialize_struct("UserResendEmailsResult", 2)?;
30212 self.internal_serialize::<S>(&mut s)?;
30213 s.end()
30214 }
30215}
30216
30217#[derive(Debug, Clone, PartialEq, Eq)]
30221#[non_exhaustive] pub enum UserResendResult {
30223 Success(UserResendEmailsResult),
30225 InvalidUser(UserSelectorArg),
30227 Other,
30230}
30231
30232impl<'de> ::serde::de::Deserialize<'de> for UserResendResult {
30233 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30234 use serde::de::{self, MapAccess, Visitor};
30236 struct EnumVisitor;
30237 impl<'de> Visitor<'de> for EnumVisitor {
30238 type Value = UserResendResult;
30239 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30240 f.write_str("a UserResendResult structure")
30241 }
30242 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30243 let tag: &str = match map.next_key()? {
30244 Some(".tag") => map.next_value()?,
30245 _ => return Err(de::Error::missing_field(".tag"))
30246 };
30247 let value = match tag {
30248 "success" => UserResendResult::Success(UserResendEmailsResult::internal_deserialize(&mut map)?),
30249 "invalid_user" => {
30250 match map.next_key()? {
30251 Some("invalid_user") => UserResendResult::InvalidUser(map.next_value()?),
30252 None => return Err(de::Error::missing_field("invalid_user")),
30253 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30254 }
30255 }
30256 _ => UserResendResult::Other,
30257 };
30258 crate::eat_json_fields(&mut map)?;
30259 Ok(value)
30260 }
30261 }
30262 const VARIANTS: &[&str] = &["success",
30263 "invalid_user",
30264 "other"];
30265 deserializer.deserialize_struct("UserResendResult", VARIANTS, EnumVisitor)
30266 }
30267}
30268
30269impl ::serde::ser::Serialize for UserResendResult {
30270 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30271 use serde::ser::SerializeStruct;
30273 match self {
30274 UserResendResult::Success(x) => {
30275 let mut s = serializer.serialize_struct("UserResendResult", 3)?;
30277 s.serialize_field(".tag", "success")?;
30278 x.internal_serialize::<S>(&mut s)?;
30279 s.end()
30280 }
30281 UserResendResult::InvalidUser(x) => {
30282 let mut s = serializer.serialize_struct("UserResendResult", 2)?;
30284 s.serialize_field(".tag", "invalid_user")?;
30285 s.serialize_field("invalid_user", x)?;
30286 s.end()
30287 }
30288 UserResendResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30289 }
30290 }
30291}
30292
30293#[derive(Debug, Clone, PartialEq, Eq)]
30295#[non_exhaustive] pub struct UserSecondaryEmailsArg {
30297 pub user: UserSelectorArg,
30298 pub secondary_emails: Vec<crate::types::common::EmailAddress>,
30299}
30300
30301impl UserSecondaryEmailsArg {
30302 pub fn new(
30303 user: UserSelectorArg,
30304 secondary_emails: Vec<crate::types::common::EmailAddress>,
30305 ) -> Self {
30306 UserSecondaryEmailsArg {
30307 user,
30308 secondary_emails,
30309 }
30310 }
30311}
30312
30313const USER_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["user",
30314 "secondary_emails"];
30315impl UserSecondaryEmailsArg {
30316 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30317 map: V,
30318 ) -> Result<UserSecondaryEmailsArg, V::Error> {
30319 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30320 }
30321
30322 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30323 mut map: V,
30324 optional: bool,
30325 ) -> Result<Option<UserSecondaryEmailsArg>, V::Error> {
30326 let mut field_user = None;
30327 let mut field_secondary_emails = None;
30328 let mut nothing = true;
30329 while let Some(key) = map.next_key::<&str>()? {
30330 nothing = false;
30331 match key {
30332 "user" => {
30333 if field_user.is_some() {
30334 return Err(::serde::de::Error::duplicate_field("user"));
30335 }
30336 field_user = Some(map.next_value()?);
30337 }
30338 "secondary_emails" => {
30339 if field_secondary_emails.is_some() {
30340 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
30341 }
30342 field_secondary_emails = Some(map.next_value()?);
30343 }
30344 _ => {
30345 map.next_value::<::serde_json::Value>()?;
30347 }
30348 }
30349 }
30350 if optional && nothing {
30351 return Ok(None);
30352 }
30353 let result = UserSecondaryEmailsArg {
30354 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30355 secondary_emails: field_secondary_emails.ok_or_else(|| ::serde::de::Error::missing_field("secondary_emails"))?,
30356 };
30357 Ok(Some(result))
30358 }
30359
30360 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30361 &self,
30362 s: &mut S::SerializeStruct,
30363 ) -> Result<(), S::Error> {
30364 use serde::ser::SerializeStruct;
30365 s.serialize_field("user", &self.user)?;
30366 s.serialize_field("secondary_emails", &self.secondary_emails)?;
30367 Ok(())
30368 }
30369}
30370
30371impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsArg {
30372 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30373 use serde::de::{MapAccess, Visitor};
30375 struct StructVisitor;
30376 impl<'de> Visitor<'de> for StructVisitor {
30377 type Value = UserSecondaryEmailsArg;
30378 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30379 f.write_str("a UserSecondaryEmailsArg struct")
30380 }
30381 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30382 UserSecondaryEmailsArg::internal_deserialize(map)
30383 }
30384 }
30385 deserializer.deserialize_struct("UserSecondaryEmailsArg", USER_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
30386 }
30387}
30388
30389impl ::serde::ser::Serialize for UserSecondaryEmailsArg {
30390 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30391 use serde::ser::SerializeStruct;
30393 let mut s = serializer.serialize_struct("UserSecondaryEmailsArg", 2)?;
30394 self.internal_serialize::<S>(&mut s)?;
30395 s.end()
30396 }
30397}
30398
30399#[derive(Debug, Clone, PartialEq, Eq)]
30400#[non_exhaustive] pub struct UserSecondaryEmailsResult {
30402 pub user: UserSelectorArg,
30403 pub results: Vec<AddSecondaryEmailResult>,
30404}
30405
30406impl UserSecondaryEmailsResult {
30407 pub fn new(user: UserSelectorArg, results: Vec<AddSecondaryEmailResult>) -> Self {
30408 UserSecondaryEmailsResult {
30409 user,
30410 results,
30411 }
30412 }
30413}
30414
30415const USER_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["user",
30416 "results"];
30417impl UserSecondaryEmailsResult {
30418 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30419 map: V,
30420 ) -> Result<UserSecondaryEmailsResult, V::Error> {
30421 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30422 }
30423
30424 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30425 mut map: V,
30426 optional: bool,
30427 ) -> Result<Option<UserSecondaryEmailsResult>, V::Error> {
30428 let mut field_user = None;
30429 let mut field_results = None;
30430 let mut nothing = true;
30431 while let Some(key) = map.next_key::<&str>()? {
30432 nothing = false;
30433 match key {
30434 "user" => {
30435 if field_user.is_some() {
30436 return Err(::serde::de::Error::duplicate_field("user"));
30437 }
30438 field_user = Some(map.next_value()?);
30439 }
30440 "results" => {
30441 if field_results.is_some() {
30442 return Err(::serde::de::Error::duplicate_field("results"));
30443 }
30444 field_results = Some(map.next_value()?);
30445 }
30446 _ => {
30447 map.next_value::<::serde_json::Value>()?;
30449 }
30450 }
30451 }
30452 if optional && nothing {
30453 return Ok(None);
30454 }
30455 let result = UserSecondaryEmailsResult {
30456 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30457 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
30458 };
30459 Ok(Some(result))
30460 }
30461
30462 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30463 &self,
30464 s: &mut S::SerializeStruct,
30465 ) -> Result<(), S::Error> {
30466 use serde::ser::SerializeStruct;
30467 s.serialize_field("user", &self.user)?;
30468 s.serialize_field("results", &self.results)?;
30469 Ok(())
30470 }
30471}
30472
30473impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsResult {
30474 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30475 use serde::de::{MapAccess, Visitor};
30477 struct StructVisitor;
30478 impl<'de> Visitor<'de> for StructVisitor {
30479 type Value = UserSecondaryEmailsResult;
30480 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30481 f.write_str("a UserSecondaryEmailsResult struct")
30482 }
30483 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30484 UserSecondaryEmailsResult::internal_deserialize(map)
30485 }
30486 }
30487 deserializer.deserialize_struct("UserSecondaryEmailsResult", USER_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
30488 }
30489}
30490
30491impl ::serde::ser::Serialize for UserSecondaryEmailsResult {
30492 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30493 use serde::ser::SerializeStruct;
30495 let mut s = serializer.serialize_struct("UserSecondaryEmailsResult", 2)?;
30496 self.internal_serialize::<S>(&mut s)?;
30497 s.end()
30498 }
30499}
30500
30501#[derive(Debug, Clone, PartialEq, Eq)]
30503pub enum UserSelectorArg {
30504 TeamMemberId(crate::types::team_common::TeamMemberId),
30505 ExternalId(crate::types::team_common::MemberExternalId),
30506 Email(crate::types::common::EmailAddress),
30507}
30508
30509impl<'de> ::serde::de::Deserialize<'de> for UserSelectorArg {
30510 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30511 use serde::de::{self, MapAccess, Visitor};
30513 struct EnumVisitor;
30514 impl<'de> Visitor<'de> for EnumVisitor {
30515 type Value = UserSelectorArg;
30516 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30517 f.write_str("a UserSelectorArg structure")
30518 }
30519 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30520 let tag: &str = match map.next_key()? {
30521 Some(".tag") => map.next_value()?,
30522 _ => return Err(de::Error::missing_field(".tag"))
30523 };
30524 let value = match tag {
30525 "team_member_id" => {
30526 match map.next_key()? {
30527 Some("team_member_id") => UserSelectorArg::TeamMemberId(map.next_value()?),
30528 None => return Err(de::Error::missing_field("team_member_id")),
30529 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30530 }
30531 }
30532 "external_id" => {
30533 match map.next_key()? {
30534 Some("external_id") => UserSelectorArg::ExternalId(map.next_value()?),
30535 None => return Err(de::Error::missing_field("external_id")),
30536 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30537 }
30538 }
30539 "email" => {
30540 match map.next_key()? {
30541 Some("email") => UserSelectorArg::Email(map.next_value()?),
30542 None => return Err(de::Error::missing_field("email")),
30543 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30544 }
30545 }
30546 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
30547 };
30548 crate::eat_json_fields(&mut map)?;
30549 Ok(value)
30550 }
30551 }
30552 const VARIANTS: &[&str] = &["team_member_id",
30553 "external_id",
30554 "email"];
30555 deserializer.deserialize_struct("UserSelectorArg", VARIANTS, EnumVisitor)
30556 }
30557}
30558
30559impl ::serde::ser::Serialize for UserSelectorArg {
30560 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30561 use serde::ser::SerializeStruct;
30563 match self {
30564 UserSelectorArg::TeamMemberId(x) => {
30565 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
30567 s.serialize_field(".tag", "team_member_id")?;
30568 s.serialize_field("team_member_id", x)?;
30569 s.end()
30570 }
30571 UserSelectorArg::ExternalId(x) => {
30572 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
30574 s.serialize_field(".tag", "external_id")?;
30575 s.serialize_field("external_id", x)?;
30576 s.end()
30577 }
30578 UserSelectorArg::Email(x) => {
30579 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
30581 s.serialize_field(".tag", "email")?;
30582 s.serialize_field("email", x)?;
30583 s.end()
30584 }
30585 }
30586 }
30587}
30588
30589#[derive(Debug, Clone, PartialEq, Eq)]
30591pub enum UserSelectorError {
30592 UserNotFound,
30595}
30596
30597impl<'de> ::serde::de::Deserialize<'de> for UserSelectorError {
30598 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30599 use serde::de::{self, MapAccess, Visitor};
30601 struct EnumVisitor;
30602 impl<'de> Visitor<'de> for EnumVisitor {
30603 type Value = UserSelectorError;
30604 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30605 f.write_str("a UserSelectorError structure")
30606 }
30607 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30608 let tag: &str = match map.next_key()? {
30609 Some(".tag") => map.next_value()?,
30610 _ => return Err(de::Error::missing_field(".tag"))
30611 };
30612 let value = match tag {
30613 "user_not_found" => UserSelectorError::UserNotFound,
30614 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
30615 };
30616 crate::eat_json_fields(&mut map)?;
30617 Ok(value)
30618 }
30619 }
30620 const VARIANTS: &[&str] = &["user_not_found"];
30621 deserializer.deserialize_struct("UserSelectorError", VARIANTS, EnumVisitor)
30622 }
30623}
30624
30625impl ::serde::ser::Serialize for UserSelectorError {
30626 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30627 use serde::ser::SerializeStruct;
30629 match self {
30630 UserSelectorError::UserNotFound => {
30631 let mut s = serializer.serialize_struct("UserSelectorError", 1)?;
30633 s.serialize_field(".tag", "user_not_found")?;
30634 s.end()
30635 }
30636 }
30637 }
30638}
30639
30640impl ::std::error::Error for UserSelectorError {
30641}
30642
30643impl ::std::fmt::Display for UserSelectorError {
30644 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30645 match self {
30646 UserSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
30647 }
30648 }
30649}
30650
30651#[derive(Debug, Clone, PartialEq, Eq)]
30653pub enum UsersSelectorArg {
30654 TeamMemberIds(Vec<crate::types::team_common::TeamMemberId>),
30656 ExternalIds(Vec<crate::types::team_common::MemberExternalId>),
30658 Emails(Vec<crate::types::common::EmailAddress>),
30660}
30661
30662impl<'de> ::serde::de::Deserialize<'de> for UsersSelectorArg {
30663 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30664 use serde::de::{self, MapAccess, Visitor};
30666 struct EnumVisitor;
30667 impl<'de> Visitor<'de> for EnumVisitor {
30668 type Value = UsersSelectorArg;
30669 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30670 f.write_str("a UsersSelectorArg structure")
30671 }
30672 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30673 let tag: &str = match map.next_key()? {
30674 Some(".tag") => map.next_value()?,
30675 _ => return Err(de::Error::missing_field(".tag"))
30676 };
30677 let value = match tag {
30678 "team_member_ids" => {
30679 match map.next_key()? {
30680 Some("team_member_ids") => UsersSelectorArg::TeamMemberIds(map.next_value()?),
30681 None => return Err(de::Error::missing_field("team_member_ids")),
30682 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30683 }
30684 }
30685 "external_ids" => {
30686 match map.next_key()? {
30687 Some("external_ids") => UsersSelectorArg::ExternalIds(map.next_value()?),
30688 None => return Err(de::Error::missing_field("external_ids")),
30689 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30690 }
30691 }
30692 "emails" => {
30693 match map.next_key()? {
30694 Some("emails") => UsersSelectorArg::Emails(map.next_value()?),
30695 None => return Err(de::Error::missing_field("emails")),
30696 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30697 }
30698 }
30699 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
30700 };
30701 crate::eat_json_fields(&mut map)?;
30702 Ok(value)
30703 }
30704 }
30705 const VARIANTS: &[&str] = &["team_member_ids",
30706 "external_ids",
30707 "emails"];
30708 deserializer.deserialize_struct("UsersSelectorArg", VARIANTS, EnumVisitor)
30709 }
30710}
30711
30712impl ::serde::ser::Serialize for UsersSelectorArg {
30713 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30714 use serde::ser::SerializeStruct;
30716 match self {
30717 UsersSelectorArg::TeamMemberIds(x) => {
30718 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
30720 s.serialize_field(".tag", "team_member_ids")?;
30721 s.serialize_field("team_member_ids", x)?;
30722 s.end()
30723 }
30724 UsersSelectorArg::ExternalIds(x) => {
30725 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
30727 s.serialize_field(".tag", "external_ids")?;
30728 s.serialize_field("external_ids", x)?;
30729 s.end()
30730 }
30731 UsersSelectorArg::Emails(x) => {
30732 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
30734 s.serialize_field(".tag", "emails")?;
30735 s.serialize_field("emails", x)?;
30736 s.end()
30737 }
30738 }
30739 }
30740}
30741