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 TransientError(crate::types::common::EmailAddress),
287 TooManyUpdates(crate::types::common::EmailAddress),
289 UnknownError(crate::types::common::EmailAddress),
291 RateLimited(crate::types::common::EmailAddress),
293 Other,
296}
297
298impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailResult {
299 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
300 use serde::de::{self, MapAccess, Visitor};
302 struct EnumVisitor;
303 impl<'de> Visitor<'de> for EnumVisitor {
304 type Value = AddSecondaryEmailResult;
305 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
306 f.write_str("a AddSecondaryEmailResult structure")
307 }
308 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
309 let tag: &str = match map.next_key()? {
310 Some(".tag") => map.next_value()?,
311 _ => return Err(de::Error::missing_field(".tag"))
312 };
313 let value = match tag {
314 "success" => AddSecondaryEmailResult::Success(crate::types::secondary_emails::SecondaryEmail::internal_deserialize(&mut map)?),
315 "unavailable" => {
316 match map.next_key()? {
317 Some("unavailable") => AddSecondaryEmailResult::Unavailable(map.next_value()?),
318 None => return Err(de::Error::missing_field("unavailable")),
319 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
320 }
321 }
322 "already_pending" => {
323 match map.next_key()? {
324 Some("already_pending") => AddSecondaryEmailResult::AlreadyPending(map.next_value()?),
325 None => return Err(de::Error::missing_field("already_pending")),
326 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
327 }
328 }
329 "already_owned_by_user" => {
330 match map.next_key()? {
331 Some("already_owned_by_user") => AddSecondaryEmailResult::AlreadyOwnedByUser(map.next_value()?),
332 None => return Err(de::Error::missing_field("already_owned_by_user")),
333 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
334 }
335 }
336 "reached_limit" => {
337 match map.next_key()? {
338 Some("reached_limit") => AddSecondaryEmailResult::ReachedLimit(map.next_value()?),
339 None => return Err(de::Error::missing_field("reached_limit")),
340 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
341 }
342 }
343 "transient_error" => {
344 match map.next_key()? {
345 Some("transient_error") => AddSecondaryEmailResult::TransientError(map.next_value()?),
346 None => return Err(de::Error::missing_field("transient_error")),
347 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
348 }
349 }
350 "too_many_updates" => {
351 match map.next_key()? {
352 Some("too_many_updates") => AddSecondaryEmailResult::TooManyUpdates(map.next_value()?),
353 None => return Err(de::Error::missing_field("too_many_updates")),
354 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
355 }
356 }
357 "unknown_error" => {
358 match map.next_key()? {
359 Some("unknown_error") => AddSecondaryEmailResult::UnknownError(map.next_value()?),
360 None => return Err(de::Error::missing_field("unknown_error")),
361 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
362 }
363 }
364 "rate_limited" => {
365 match map.next_key()? {
366 Some("rate_limited") => AddSecondaryEmailResult::RateLimited(map.next_value()?),
367 None => return Err(de::Error::missing_field("rate_limited")),
368 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
369 }
370 }
371 _ => AddSecondaryEmailResult::Other,
372 };
373 crate::eat_json_fields(&mut map)?;
374 Ok(value)
375 }
376 }
377 const VARIANTS: &[&str] = &["success",
378 "unavailable",
379 "already_pending",
380 "already_owned_by_user",
381 "reached_limit",
382 "transient_error",
383 "too_many_updates",
384 "unknown_error",
385 "rate_limited",
386 "other"];
387 deserializer.deserialize_struct("AddSecondaryEmailResult", VARIANTS, EnumVisitor)
388 }
389}
390
391impl ::serde::ser::Serialize for AddSecondaryEmailResult {
392 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
393 use serde::ser::SerializeStruct;
395 match self {
396 AddSecondaryEmailResult::Success(x) => {
397 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 3)?;
399 s.serialize_field(".tag", "success")?;
400 x.internal_serialize::<S>(&mut s)?;
401 s.end()
402 }
403 AddSecondaryEmailResult::Unavailable(x) => {
404 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
406 s.serialize_field(".tag", "unavailable")?;
407 s.serialize_field("unavailable", x)?;
408 s.end()
409 }
410 AddSecondaryEmailResult::AlreadyPending(x) => {
411 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
413 s.serialize_field(".tag", "already_pending")?;
414 s.serialize_field("already_pending", x)?;
415 s.end()
416 }
417 AddSecondaryEmailResult::AlreadyOwnedByUser(x) => {
418 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
420 s.serialize_field(".tag", "already_owned_by_user")?;
421 s.serialize_field("already_owned_by_user", x)?;
422 s.end()
423 }
424 AddSecondaryEmailResult::ReachedLimit(x) => {
425 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
427 s.serialize_field(".tag", "reached_limit")?;
428 s.serialize_field("reached_limit", x)?;
429 s.end()
430 }
431 AddSecondaryEmailResult::TransientError(x) => {
432 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
434 s.serialize_field(".tag", "transient_error")?;
435 s.serialize_field("transient_error", x)?;
436 s.end()
437 }
438 AddSecondaryEmailResult::TooManyUpdates(x) => {
439 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
441 s.serialize_field(".tag", "too_many_updates")?;
442 s.serialize_field("too_many_updates", x)?;
443 s.end()
444 }
445 AddSecondaryEmailResult::UnknownError(x) => {
446 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
448 s.serialize_field(".tag", "unknown_error")?;
449 s.serialize_field("unknown_error", x)?;
450 s.end()
451 }
452 AddSecondaryEmailResult::RateLimited(x) => {
453 let mut s = serializer.serialize_struct("AddSecondaryEmailResult", 2)?;
455 s.serialize_field(".tag", "rate_limited")?;
456 s.serialize_field("rate_limited", x)?;
457 s.end()
458 }
459 AddSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
460 }
461 }
462}
463
464#[derive(Debug, Clone, PartialEq, Eq)]
465#[non_exhaustive] pub struct AddSecondaryEmailsArg {
467 pub new_secondary_emails: Vec<UserSecondaryEmailsArg>,
469}
470
471impl AddSecondaryEmailsArg {
472 pub fn new(new_secondary_emails: Vec<UserSecondaryEmailsArg>) -> Self {
473 AddSecondaryEmailsArg {
474 new_secondary_emails,
475 }
476 }
477}
478
479const ADD_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["new_secondary_emails"];
480impl AddSecondaryEmailsArg {
481 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
482 map: V,
483 ) -> Result<AddSecondaryEmailsArg, V::Error> {
484 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
485 }
486
487 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
488 mut map: V,
489 optional: bool,
490 ) -> Result<Option<AddSecondaryEmailsArg>, V::Error> {
491 let mut field_new_secondary_emails = None;
492 let mut nothing = true;
493 while let Some(key) = map.next_key::<&str>()? {
494 nothing = false;
495 match key {
496 "new_secondary_emails" => {
497 if field_new_secondary_emails.is_some() {
498 return Err(::serde::de::Error::duplicate_field("new_secondary_emails"));
499 }
500 field_new_secondary_emails = Some(map.next_value()?);
501 }
502 _ => {
503 map.next_value::<::serde_json::Value>()?;
505 }
506 }
507 }
508 if optional && nothing {
509 return Ok(None);
510 }
511 let result = AddSecondaryEmailsArg {
512 new_secondary_emails: field_new_secondary_emails.ok_or_else(|| ::serde::de::Error::missing_field("new_secondary_emails"))?,
513 };
514 Ok(Some(result))
515 }
516
517 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
518 &self,
519 s: &mut S::SerializeStruct,
520 ) -> Result<(), S::Error> {
521 use serde::ser::SerializeStruct;
522 s.serialize_field("new_secondary_emails", &self.new_secondary_emails)?;
523 Ok(())
524 }
525}
526
527impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailsArg {
528 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
529 use serde::de::{MapAccess, Visitor};
531 struct StructVisitor;
532 impl<'de> Visitor<'de> for StructVisitor {
533 type Value = AddSecondaryEmailsArg;
534 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
535 f.write_str("a AddSecondaryEmailsArg struct")
536 }
537 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
538 AddSecondaryEmailsArg::internal_deserialize(map)
539 }
540 }
541 deserializer.deserialize_struct("AddSecondaryEmailsArg", ADD_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
542 }
543}
544
545impl ::serde::ser::Serialize for AddSecondaryEmailsArg {
546 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
547 use serde::ser::SerializeStruct;
549 let mut s = serializer.serialize_struct("AddSecondaryEmailsArg", 1)?;
550 self.internal_serialize::<S>(&mut s)?;
551 s.end()
552 }
553}
554
555#[derive(Debug, Clone, PartialEq, Eq)]
557#[non_exhaustive] pub enum AddSecondaryEmailsError {
559 SecondaryEmailsDisabled,
561 TooManyEmails,
563 Other,
566}
567
568impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailsError {
569 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
570 use serde::de::{self, MapAccess, Visitor};
572 struct EnumVisitor;
573 impl<'de> Visitor<'de> for EnumVisitor {
574 type Value = AddSecondaryEmailsError;
575 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
576 f.write_str("a AddSecondaryEmailsError structure")
577 }
578 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
579 let tag: &str = match map.next_key()? {
580 Some(".tag") => map.next_value()?,
581 _ => return Err(de::Error::missing_field(".tag"))
582 };
583 let value = match tag {
584 "secondary_emails_disabled" => AddSecondaryEmailsError::SecondaryEmailsDisabled,
585 "too_many_emails" => AddSecondaryEmailsError::TooManyEmails,
586 _ => AddSecondaryEmailsError::Other,
587 };
588 crate::eat_json_fields(&mut map)?;
589 Ok(value)
590 }
591 }
592 const VARIANTS: &[&str] = &["secondary_emails_disabled",
593 "too_many_emails",
594 "other"];
595 deserializer.deserialize_struct("AddSecondaryEmailsError", VARIANTS, EnumVisitor)
596 }
597}
598
599impl ::serde::ser::Serialize for AddSecondaryEmailsError {
600 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
601 use serde::ser::SerializeStruct;
603 match self {
604 AddSecondaryEmailsError::SecondaryEmailsDisabled => {
605 let mut s = serializer.serialize_struct("AddSecondaryEmailsError", 1)?;
607 s.serialize_field(".tag", "secondary_emails_disabled")?;
608 s.end()
609 }
610 AddSecondaryEmailsError::TooManyEmails => {
611 let mut s = serializer.serialize_struct("AddSecondaryEmailsError", 1)?;
613 s.serialize_field(".tag", "too_many_emails")?;
614 s.end()
615 }
616 AddSecondaryEmailsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
617 }
618 }
619}
620
621impl ::std::error::Error for AddSecondaryEmailsError {
622}
623
624impl ::std::fmt::Display for AddSecondaryEmailsError {
625 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
626 match self {
627 AddSecondaryEmailsError::SecondaryEmailsDisabled => f.write_str("Secondary emails are disabled for the team."),
628 AddSecondaryEmailsError::TooManyEmails => f.write_str("A maximum of 20 secondary emails can be added in a single call."),
629 _ => write!(f, "{:?}", *self),
630 }
631 }
632}
633
634#[derive(Debug, Clone, PartialEq, Eq)]
635#[non_exhaustive] pub struct AddSecondaryEmailsResult {
637 pub results: Vec<UserAddResult>,
639}
640
641impl AddSecondaryEmailsResult {
642 pub fn new(results: Vec<UserAddResult>) -> Self {
643 AddSecondaryEmailsResult {
644 results,
645 }
646 }
647}
648
649const ADD_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["results"];
650impl AddSecondaryEmailsResult {
651 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
652 map: V,
653 ) -> Result<AddSecondaryEmailsResult, V::Error> {
654 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
655 }
656
657 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
658 mut map: V,
659 optional: bool,
660 ) -> Result<Option<AddSecondaryEmailsResult>, V::Error> {
661 let mut field_results = None;
662 let mut nothing = true;
663 while let Some(key) = map.next_key::<&str>()? {
664 nothing = false;
665 match key {
666 "results" => {
667 if field_results.is_some() {
668 return Err(::serde::de::Error::duplicate_field("results"));
669 }
670 field_results = Some(map.next_value()?);
671 }
672 _ => {
673 map.next_value::<::serde_json::Value>()?;
675 }
676 }
677 }
678 if optional && nothing {
679 return Ok(None);
680 }
681 let result = AddSecondaryEmailsResult {
682 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
683 };
684 Ok(Some(result))
685 }
686
687 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
688 &self,
689 s: &mut S::SerializeStruct,
690 ) -> Result<(), S::Error> {
691 use serde::ser::SerializeStruct;
692 s.serialize_field("results", &self.results)?;
693 Ok(())
694 }
695}
696
697impl<'de> ::serde::de::Deserialize<'de> for AddSecondaryEmailsResult {
698 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
699 use serde::de::{MapAccess, Visitor};
701 struct StructVisitor;
702 impl<'de> Visitor<'de> for StructVisitor {
703 type Value = AddSecondaryEmailsResult;
704 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
705 f.write_str("a AddSecondaryEmailsResult struct")
706 }
707 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
708 AddSecondaryEmailsResult::internal_deserialize(map)
709 }
710 }
711 deserializer.deserialize_struct("AddSecondaryEmailsResult", ADD_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
712 }
713}
714
715impl ::serde::ser::Serialize for AddSecondaryEmailsResult {
716 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
717 use serde::ser::SerializeStruct;
719 let mut s = serializer.serialize_struct("AddSecondaryEmailsResult", 1)?;
720 self.internal_serialize::<S>(&mut s)?;
721 s.end()
722 }
723}
724
725#[derive(Debug, Clone, PartialEq, Eq)]
727pub enum AdminTier {
728 TeamAdmin,
730 UserManagementAdmin,
732 SupportAdmin,
735 MemberOnly,
737}
738
739impl<'de> ::serde::de::Deserialize<'de> for AdminTier {
740 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
741 use serde::de::{self, MapAccess, Visitor};
743 struct EnumVisitor;
744 impl<'de> Visitor<'de> for EnumVisitor {
745 type Value = AdminTier;
746 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
747 f.write_str("a AdminTier structure")
748 }
749 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
750 let tag: &str = match map.next_key()? {
751 Some(".tag") => map.next_value()?,
752 _ => return Err(de::Error::missing_field(".tag"))
753 };
754 let value = match tag {
755 "team_admin" => AdminTier::TeamAdmin,
756 "user_management_admin" => AdminTier::UserManagementAdmin,
757 "support_admin" => AdminTier::SupportAdmin,
758 "member_only" => AdminTier::MemberOnly,
759 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
760 };
761 crate::eat_json_fields(&mut map)?;
762 Ok(value)
763 }
764 }
765 const VARIANTS: &[&str] = &["team_admin",
766 "user_management_admin",
767 "support_admin",
768 "member_only"];
769 deserializer.deserialize_struct("AdminTier", VARIANTS, EnumVisitor)
770 }
771}
772
773impl ::serde::ser::Serialize for AdminTier {
774 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
775 use serde::ser::SerializeStruct;
777 match self {
778 AdminTier::TeamAdmin => {
779 let mut s = serializer.serialize_struct("AdminTier", 1)?;
781 s.serialize_field(".tag", "team_admin")?;
782 s.end()
783 }
784 AdminTier::UserManagementAdmin => {
785 let mut s = serializer.serialize_struct("AdminTier", 1)?;
787 s.serialize_field(".tag", "user_management_admin")?;
788 s.end()
789 }
790 AdminTier::SupportAdmin => {
791 let mut s = serializer.serialize_struct("AdminTier", 1)?;
793 s.serialize_field(".tag", "support_admin")?;
794 s.end()
795 }
796 AdminTier::MemberOnly => {
797 let mut s = serializer.serialize_struct("AdminTier", 1)?;
799 s.serialize_field(".tag", "member_only")?;
800 s.end()
801 }
802 }
803 }
804}
805
806#[derive(Debug, Clone, PartialEq, Eq)]
808#[non_exhaustive] pub struct ApiApp {
810 pub app_id: String,
812 pub app_name: String,
814 pub is_app_folder: bool,
816 pub publisher: Option<String>,
818 pub publisher_url: Option<String>,
820 pub linked: Option<crate::types::common::DropboxTimestamp>,
822}
823
824impl ApiApp {
825 pub fn new(app_id: String, app_name: String, is_app_folder: bool) -> Self {
826 ApiApp {
827 app_id,
828 app_name,
829 is_app_folder,
830 publisher: None,
831 publisher_url: None,
832 linked: None,
833 }
834 }
835
836 pub fn with_publisher(mut self, value: String) -> Self {
837 self.publisher = Some(value);
838 self
839 }
840
841 pub fn with_publisher_url(mut self, value: String) -> Self {
842 self.publisher_url = Some(value);
843 self
844 }
845
846 pub fn with_linked(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
847 self.linked = Some(value);
848 self
849 }
850}
851
852const API_APP_FIELDS: &[&str] = &["app_id",
853 "app_name",
854 "is_app_folder",
855 "publisher",
856 "publisher_url",
857 "linked"];
858impl ApiApp {
859 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
860 map: V,
861 ) -> Result<ApiApp, V::Error> {
862 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
863 }
864
865 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
866 mut map: V,
867 optional: bool,
868 ) -> Result<Option<ApiApp>, V::Error> {
869 let mut field_app_id = None;
870 let mut field_app_name = None;
871 let mut field_is_app_folder = None;
872 let mut field_publisher = None;
873 let mut field_publisher_url = None;
874 let mut field_linked = None;
875 let mut nothing = true;
876 while let Some(key) = map.next_key::<&str>()? {
877 nothing = false;
878 match key {
879 "app_id" => {
880 if field_app_id.is_some() {
881 return Err(::serde::de::Error::duplicate_field("app_id"));
882 }
883 field_app_id = Some(map.next_value()?);
884 }
885 "app_name" => {
886 if field_app_name.is_some() {
887 return Err(::serde::de::Error::duplicate_field("app_name"));
888 }
889 field_app_name = Some(map.next_value()?);
890 }
891 "is_app_folder" => {
892 if field_is_app_folder.is_some() {
893 return Err(::serde::de::Error::duplicate_field("is_app_folder"));
894 }
895 field_is_app_folder = Some(map.next_value()?);
896 }
897 "publisher" => {
898 if field_publisher.is_some() {
899 return Err(::serde::de::Error::duplicate_field("publisher"));
900 }
901 field_publisher = Some(map.next_value()?);
902 }
903 "publisher_url" => {
904 if field_publisher_url.is_some() {
905 return Err(::serde::de::Error::duplicate_field("publisher_url"));
906 }
907 field_publisher_url = Some(map.next_value()?);
908 }
909 "linked" => {
910 if field_linked.is_some() {
911 return Err(::serde::de::Error::duplicate_field("linked"));
912 }
913 field_linked = Some(map.next_value()?);
914 }
915 _ => {
916 map.next_value::<::serde_json::Value>()?;
918 }
919 }
920 }
921 if optional && nothing {
922 return Ok(None);
923 }
924 let result = ApiApp {
925 app_id: field_app_id.ok_or_else(|| ::serde::de::Error::missing_field("app_id"))?,
926 app_name: field_app_name.ok_or_else(|| ::serde::de::Error::missing_field("app_name"))?,
927 is_app_folder: field_is_app_folder.ok_or_else(|| ::serde::de::Error::missing_field("is_app_folder"))?,
928 publisher: field_publisher.and_then(Option::flatten),
929 publisher_url: field_publisher_url.and_then(Option::flatten),
930 linked: field_linked.and_then(Option::flatten),
931 };
932 Ok(Some(result))
933 }
934
935 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
936 &self,
937 s: &mut S::SerializeStruct,
938 ) -> Result<(), S::Error> {
939 use serde::ser::SerializeStruct;
940 s.serialize_field("app_id", &self.app_id)?;
941 s.serialize_field("app_name", &self.app_name)?;
942 s.serialize_field("is_app_folder", &self.is_app_folder)?;
943 if let Some(val) = &self.publisher {
944 s.serialize_field("publisher", val)?;
945 }
946 if let Some(val) = &self.publisher_url {
947 s.serialize_field("publisher_url", val)?;
948 }
949 if let Some(val) = &self.linked {
950 s.serialize_field("linked", val)?;
951 }
952 Ok(())
953 }
954}
955
956impl<'de> ::serde::de::Deserialize<'de> for ApiApp {
957 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
958 use serde::de::{MapAccess, Visitor};
960 struct StructVisitor;
961 impl<'de> Visitor<'de> for StructVisitor {
962 type Value = ApiApp;
963 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
964 f.write_str("a ApiApp struct")
965 }
966 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
967 ApiApp::internal_deserialize(map)
968 }
969 }
970 deserializer.deserialize_struct("ApiApp", API_APP_FIELDS, StructVisitor)
971 }
972}
973
974impl ::serde::ser::Serialize for ApiApp {
975 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
976 use serde::ser::SerializeStruct;
978 let mut s = serializer.serialize_struct("ApiApp", 6)?;
979 self.internal_serialize::<S>(&mut s)?;
980 s.end()
981 }
982}
983
984#[derive(Debug, Clone, PartialEq, Eq)]
986#[non_exhaustive] pub struct BaseDfbReport {
988 pub start_date: String,
990}
991
992impl BaseDfbReport {
993 pub fn new(start_date: String) -> Self {
994 BaseDfbReport {
995 start_date,
996 }
997 }
998}
999
1000const BASE_DFB_REPORT_FIELDS: &[&str] = &["start_date"];
1001impl BaseDfbReport {
1002 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1003 map: V,
1004 ) -> Result<BaseDfbReport, V::Error> {
1005 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1006 }
1007
1008 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1009 mut map: V,
1010 optional: bool,
1011 ) -> Result<Option<BaseDfbReport>, V::Error> {
1012 let mut field_start_date = None;
1013 let mut nothing = true;
1014 while let Some(key) = map.next_key::<&str>()? {
1015 nothing = false;
1016 match key {
1017 "start_date" => {
1018 if field_start_date.is_some() {
1019 return Err(::serde::de::Error::duplicate_field("start_date"));
1020 }
1021 field_start_date = Some(map.next_value()?);
1022 }
1023 _ => {
1024 map.next_value::<::serde_json::Value>()?;
1026 }
1027 }
1028 }
1029 if optional && nothing {
1030 return Ok(None);
1031 }
1032 let result = BaseDfbReport {
1033 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
1034 };
1035 Ok(Some(result))
1036 }
1037
1038 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1039 &self,
1040 s: &mut S::SerializeStruct,
1041 ) -> Result<(), S::Error> {
1042 use serde::ser::SerializeStruct;
1043 s.serialize_field("start_date", &self.start_date)?;
1044 Ok(())
1045 }
1046}
1047
1048impl<'de> ::serde::de::Deserialize<'de> for BaseDfbReport {
1049 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1050 use serde::de::{MapAccess, Visitor};
1052 struct StructVisitor;
1053 impl<'de> Visitor<'de> for StructVisitor {
1054 type Value = BaseDfbReport;
1055 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1056 f.write_str("a BaseDfbReport struct")
1057 }
1058 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1059 BaseDfbReport::internal_deserialize(map)
1060 }
1061 }
1062 deserializer.deserialize_struct("BaseDfbReport", BASE_DFB_REPORT_FIELDS, StructVisitor)
1063 }
1064}
1065
1066impl ::serde::ser::Serialize for BaseDfbReport {
1067 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1068 use serde::ser::SerializeStruct;
1070 let mut s = serializer.serialize_struct("BaseDfbReport", 1)?;
1071 self.internal_serialize::<S>(&mut s)?;
1072 s.end()
1073 }
1074}
1075
1076#[derive(Debug, Clone, PartialEq, Eq)]
1078#[non_exhaustive] pub enum BaseTeamFolderError {
1080 AccessError(TeamFolderAccessError),
1081 StatusError(TeamFolderInvalidStatusError),
1082 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
1083 Other,
1086}
1087
1088impl<'de> ::serde::de::Deserialize<'de> for BaseTeamFolderError {
1089 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1090 use serde::de::{self, MapAccess, Visitor};
1092 struct EnumVisitor;
1093 impl<'de> Visitor<'de> for EnumVisitor {
1094 type Value = BaseTeamFolderError;
1095 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1096 f.write_str("a BaseTeamFolderError structure")
1097 }
1098 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1099 let tag: &str = match map.next_key()? {
1100 Some(".tag") => map.next_value()?,
1101 _ => return Err(de::Error::missing_field(".tag"))
1102 };
1103 let value = match tag {
1104 "access_error" => {
1105 match map.next_key()? {
1106 Some("access_error") => BaseTeamFolderError::AccessError(map.next_value()?),
1107 None => return Err(de::Error::missing_field("access_error")),
1108 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1109 }
1110 }
1111 "status_error" => {
1112 match map.next_key()? {
1113 Some("status_error") => BaseTeamFolderError::StatusError(map.next_value()?),
1114 None => return Err(de::Error::missing_field("status_error")),
1115 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1116 }
1117 }
1118 "team_shared_dropbox_error" => {
1119 match map.next_key()? {
1120 Some("team_shared_dropbox_error") => BaseTeamFolderError::TeamSharedDropboxError(map.next_value()?),
1121 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
1122 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1123 }
1124 }
1125 _ => BaseTeamFolderError::Other,
1126 };
1127 crate::eat_json_fields(&mut map)?;
1128 Ok(value)
1129 }
1130 }
1131 const VARIANTS: &[&str] = &["access_error",
1132 "status_error",
1133 "team_shared_dropbox_error",
1134 "other"];
1135 deserializer.deserialize_struct("BaseTeamFolderError", VARIANTS, EnumVisitor)
1136 }
1137}
1138
1139impl ::serde::ser::Serialize for BaseTeamFolderError {
1140 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1141 use serde::ser::SerializeStruct;
1143 match self {
1144 BaseTeamFolderError::AccessError(x) => {
1145 let mut s = serializer.serialize_struct("BaseTeamFolderError", 2)?;
1147 s.serialize_field(".tag", "access_error")?;
1148 s.serialize_field("access_error", x)?;
1149 s.end()
1150 }
1151 BaseTeamFolderError::StatusError(x) => {
1152 let mut s = serializer.serialize_struct("BaseTeamFolderError", 2)?;
1154 s.serialize_field(".tag", "status_error")?;
1155 s.serialize_field("status_error", x)?;
1156 s.end()
1157 }
1158 BaseTeamFolderError::TeamSharedDropboxError(x) => {
1159 let mut s = serializer.serialize_struct("BaseTeamFolderError", 2)?;
1161 s.serialize_field(".tag", "team_shared_dropbox_error")?;
1162 s.serialize_field("team_shared_dropbox_error", x)?;
1163 s.end()
1164 }
1165 BaseTeamFolderError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1166 }
1167 }
1168}
1169
1170impl ::std::error::Error for BaseTeamFolderError {
1171 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
1172 match self {
1173 BaseTeamFolderError::AccessError(inner) => Some(inner),
1174 BaseTeamFolderError::StatusError(inner) => Some(inner),
1175 BaseTeamFolderError::TeamSharedDropboxError(inner) => Some(inner),
1176 _ => None,
1177 }
1178 }
1179}
1180
1181impl ::std::fmt::Display for BaseTeamFolderError {
1182 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1183 match self {
1184 BaseTeamFolderError::AccessError(inner) => write!(f, "BaseTeamFolderError: {}", inner),
1185 BaseTeamFolderError::StatusError(inner) => write!(f, "BaseTeamFolderError: {}", inner),
1186 BaseTeamFolderError::TeamSharedDropboxError(inner) => write!(f, "BaseTeamFolderError: {}", inner),
1187 _ => write!(f, "{:?}", *self),
1188 }
1189 }
1190}
1191
1192#[derive(Debug, Clone, PartialEq, Eq)]
1194#[non_exhaustive] pub enum CustomQuotaError {
1196 TooManyUsers,
1198 Other,
1201}
1202
1203impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaError {
1204 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1205 use serde::de::{self, MapAccess, Visitor};
1207 struct EnumVisitor;
1208 impl<'de> Visitor<'de> for EnumVisitor {
1209 type Value = CustomQuotaError;
1210 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1211 f.write_str("a CustomQuotaError structure")
1212 }
1213 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1214 let tag: &str = match map.next_key()? {
1215 Some(".tag") => map.next_value()?,
1216 _ => return Err(de::Error::missing_field(".tag"))
1217 };
1218 let value = match tag {
1219 "too_many_users" => CustomQuotaError::TooManyUsers,
1220 _ => CustomQuotaError::Other,
1221 };
1222 crate::eat_json_fields(&mut map)?;
1223 Ok(value)
1224 }
1225 }
1226 const VARIANTS: &[&str] = &["too_many_users",
1227 "other"];
1228 deserializer.deserialize_struct("CustomQuotaError", VARIANTS, EnumVisitor)
1229 }
1230}
1231
1232impl ::serde::ser::Serialize for CustomQuotaError {
1233 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1234 use serde::ser::SerializeStruct;
1236 match self {
1237 CustomQuotaError::TooManyUsers => {
1238 let mut s = serializer.serialize_struct("CustomQuotaError", 1)?;
1240 s.serialize_field(".tag", "too_many_users")?;
1241 s.end()
1242 }
1243 CustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1244 }
1245 }
1246}
1247
1248impl ::std::error::Error for CustomQuotaError {
1249}
1250
1251impl ::std::fmt::Display for CustomQuotaError {
1252 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1253 match self {
1254 CustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
1255 _ => write!(f, "{:?}", *self),
1256 }
1257 }
1258}
1259
1260#[derive(Debug, Clone, PartialEq, Eq)]
1262#[non_exhaustive] pub enum CustomQuotaResult {
1264 Success(UserCustomQuotaResult),
1266 InvalidUser(UserSelectorArg),
1268 Other,
1271}
1272
1273impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaResult {
1274 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1275 use serde::de::{self, MapAccess, Visitor};
1277 struct EnumVisitor;
1278 impl<'de> Visitor<'de> for EnumVisitor {
1279 type Value = CustomQuotaResult;
1280 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1281 f.write_str("a CustomQuotaResult structure")
1282 }
1283 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1284 let tag: &str = match map.next_key()? {
1285 Some(".tag") => map.next_value()?,
1286 _ => return Err(de::Error::missing_field(".tag"))
1287 };
1288 let value = match tag {
1289 "success" => CustomQuotaResult::Success(UserCustomQuotaResult::internal_deserialize(&mut map)?),
1290 "invalid_user" => {
1291 match map.next_key()? {
1292 Some("invalid_user") => CustomQuotaResult::InvalidUser(map.next_value()?),
1293 None => return Err(de::Error::missing_field("invalid_user")),
1294 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1295 }
1296 }
1297 _ => CustomQuotaResult::Other,
1298 };
1299 crate::eat_json_fields(&mut map)?;
1300 Ok(value)
1301 }
1302 }
1303 const VARIANTS: &[&str] = &["success",
1304 "invalid_user",
1305 "other"];
1306 deserializer.deserialize_struct("CustomQuotaResult", VARIANTS, EnumVisitor)
1307 }
1308}
1309
1310impl ::serde::ser::Serialize for CustomQuotaResult {
1311 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1312 use serde::ser::SerializeStruct;
1314 match self {
1315 CustomQuotaResult::Success(x) => {
1316 let mut s = serializer.serialize_struct("CustomQuotaResult", 3)?;
1318 s.serialize_field(".tag", "success")?;
1319 x.internal_serialize::<S>(&mut s)?;
1320 s.end()
1321 }
1322 CustomQuotaResult::InvalidUser(x) => {
1323 let mut s = serializer.serialize_struct("CustomQuotaResult", 2)?;
1325 s.serialize_field(".tag", "invalid_user")?;
1326 s.serialize_field("invalid_user", x)?;
1327 s.end()
1328 }
1329 CustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1330 }
1331 }
1332}
1333
1334#[derive(Debug, Clone, PartialEq, Eq)]
1335#[non_exhaustive] pub struct CustomQuotaUsersArg {
1337 pub users: Vec<UserSelectorArg>,
1339}
1340
1341impl CustomQuotaUsersArg {
1342 pub fn new(users: Vec<UserSelectorArg>) -> Self {
1343 CustomQuotaUsersArg {
1344 users,
1345 }
1346 }
1347}
1348
1349const CUSTOM_QUOTA_USERS_ARG_FIELDS: &[&str] = &["users"];
1350impl CustomQuotaUsersArg {
1351 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1352 map: V,
1353 ) -> Result<CustomQuotaUsersArg, V::Error> {
1354 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1355 }
1356
1357 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1358 mut map: V,
1359 optional: bool,
1360 ) -> Result<Option<CustomQuotaUsersArg>, V::Error> {
1361 let mut field_users = None;
1362 let mut nothing = true;
1363 while let Some(key) = map.next_key::<&str>()? {
1364 nothing = false;
1365 match key {
1366 "users" => {
1367 if field_users.is_some() {
1368 return Err(::serde::de::Error::duplicate_field("users"));
1369 }
1370 field_users = Some(map.next_value()?);
1371 }
1372 _ => {
1373 map.next_value::<::serde_json::Value>()?;
1375 }
1376 }
1377 }
1378 if optional && nothing {
1379 return Ok(None);
1380 }
1381 let result = CustomQuotaUsersArg {
1382 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
1383 };
1384 Ok(Some(result))
1385 }
1386
1387 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1388 &self,
1389 s: &mut S::SerializeStruct,
1390 ) -> Result<(), S::Error> {
1391 use serde::ser::SerializeStruct;
1392 s.serialize_field("users", &self.users)?;
1393 Ok(())
1394 }
1395}
1396
1397impl<'de> ::serde::de::Deserialize<'de> for CustomQuotaUsersArg {
1398 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1399 use serde::de::{MapAccess, Visitor};
1401 struct StructVisitor;
1402 impl<'de> Visitor<'de> for StructVisitor {
1403 type Value = CustomQuotaUsersArg;
1404 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1405 f.write_str("a CustomQuotaUsersArg struct")
1406 }
1407 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1408 CustomQuotaUsersArg::internal_deserialize(map)
1409 }
1410 }
1411 deserializer.deserialize_struct("CustomQuotaUsersArg", CUSTOM_QUOTA_USERS_ARG_FIELDS, StructVisitor)
1412 }
1413}
1414
1415impl ::serde::ser::Serialize for CustomQuotaUsersArg {
1416 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1417 use serde::ser::SerializeStruct;
1419 let mut s = serializer.serialize_struct("CustomQuotaUsersArg", 1)?;
1420 self.internal_serialize::<S>(&mut s)?;
1421 s.end()
1422 }
1423}
1424
1425#[derive(Debug, Clone, PartialEq, Eq, Default)]
1427#[non_exhaustive] pub struct DateRange {
1429 pub start_date: Option<crate::types::common::Date>,
1432 pub end_date: Option<crate::types::common::Date>,
1434}
1435
1436impl DateRange {
1437 pub fn with_start_date(mut self, value: crate::types::common::Date) -> Self {
1438 self.start_date = Some(value);
1439 self
1440 }
1441
1442 pub fn with_end_date(mut self, value: crate::types::common::Date) -> Self {
1443 self.end_date = Some(value);
1444 self
1445 }
1446}
1447
1448const DATE_RANGE_FIELDS: &[&str] = &["start_date",
1449 "end_date"];
1450impl DateRange {
1451 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1453 mut map: V,
1454 ) -> Result<DateRange, V::Error> {
1455 let mut field_start_date = None;
1456 let mut field_end_date = None;
1457 while let Some(key) = map.next_key::<&str>()? {
1458 match key {
1459 "start_date" => {
1460 if field_start_date.is_some() {
1461 return Err(::serde::de::Error::duplicate_field("start_date"));
1462 }
1463 field_start_date = Some(map.next_value()?);
1464 }
1465 "end_date" => {
1466 if field_end_date.is_some() {
1467 return Err(::serde::de::Error::duplicate_field("end_date"));
1468 }
1469 field_end_date = Some(map.next_value()?);
1470 }
1471 _ => {
1472 map.next_value::<::serde_json::Value>()?;
1474 }
1475 }
1476 }
1477 let result = DateRange {
1478 start_date: field_start_date.and_then(Option::flatten),
1479 end_date: field_end_date.and_then(Option::flatten),
1480 };
1481 Ok(result)
1482 }
1483
1484 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1485 &self,
1486 s: &mut S::SerializeStruct,
1487 ) -> Result<(), S::Error> {
1488 use serde::ser::SerializeStruct;
1489 if let Some(val) = &self.start_date {
1490 s.serialize_field("start_date", val)?;
1491 }
1492 if let Some(val) = &self.end_date {
1493 s.serialize_field("end_date", val)?;
1494 }
1495 Ok(())
1496 }
1497}
1498
1499impl<'de> ::serde::de::Deserialize<'de> for DateRange {
1500 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1501 use serde::de::{MapAccess, Visitor};
1503 struct StructVisitor;
1504 impl<'de> Visitor<'de> for StructVisitor {
1505 type Value = DateRange;
1506 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1507 f.write_str("a DateRange struct")
1508 }
1509 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1510 DateRange::internal_deserialize(map)
1511 }
1512 }
1513 deserializer.deserialize_struct("DateRange", DATE_RANGE_FIELDS, StructVisitor)
1514 }
1515}
1516
1517impl ::serde::ser::Serialize for DateRange {
1518 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1519 use serde::ser::SerializeStruct;
1521 let mut s = serializer.serialize_struct("DateRange", 2)?;
1522 self.internal_serialize::<S>(&mut s)?;
1523 s.end()
1524 }
1525}
1526
1527#[derive(Debug, Clone, PartialEq, Eq)]
1529#[non_exhaustive] pub enum DateRangeError {
1531 Other,
1534}
1535
1536impl<'de> ::serde::de::Deserialize<'de> for DateRangeError {
1537 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1538 use serde::de::{self, MapAccess, Visitor};
1540 struct EnumVisitor;
1541 impl<'de> Visitor<'de> for EnumVisitor {
1542 type Value = DateRangeError;
1543 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1544 f.write_str("a DateRangeError structure")
1545 }
1546 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1547 let tag: &str = match map.next_key()? {
1548 Some(".tag") => map.next_value()?,
1549 _ => return Err(de::Error::missing_field(".tag"))
1550 };
1551 let _ = tag;
1553 crate::eat_json_fields(&mut map)?;
1554 Ok(DateRangeError::Other)
1555 }
1556 }
1557 const VARIANTS: &[&str] = &["other"];
1558 deserializer.deserialize_struct("DateRangeError", VARIANTS, EnumVisitor)
1559 }
1560}
1561
1562impl ::serde::ser::Serialize for DateRangeError {
1563 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1564 #![allow(unused_variables)]
1566 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
1567 }
1568}
1569
1570impl ::std::error::Error for DateRangeError {
1571}
1572
1573impl ::std::fmt::Display for DateRangeError {
1574 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1575 write!(f, "{:?}", *self)
1576 }
1577}
1578
1579#[derive(Debug, Clone, PartialEq, Eq)]
1583#[non_exhaustive] pub enum DeleteSecondaryEmailResult {
1585 Success(crate::types::common::EmailAddress),
1587 NotFound(crate::types::common::EmailAddress),
1589 CannotRemovePrimary(crate::types::common::EmailAddress),
1591 Other,
1594}
1595
1596impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailResult {
1597 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1598 use serde::de::{self, MapAccess, Visitor};
1600 struct EnumVisitor;
1601 impl<'de> Visitor<'de> for EnumVisitor {
1602 type Value = DeleteSecondaryEmailResult;
1603 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1604 f.write_str("a DeleteSecondaryEmailResult structure")
1605 }
1606 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1607 let tag: &str = match map.next_key()? {
1608 Some(".tag") => map.next_value()?,
1609 _ => return Err(de::Error::missing_field(".tag"))
1610 };
1611 let value = match tag {
1612 "success" => {
1613 match map.next_key()? {
1614 Some("success") => DeleteSecondaryEmailResult::Success(map.next_value()?),
1615 None => return Err(de::Error::missing_field("success")),
1616 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1617 }
1618 }
1619 "not_found" => {
1620 match map.next_key()? {
1621 Some("not_found") => DeleteSecondaryEmailResult::NotFound(map.next_value()?),
1622 None => return Err(de::Error::missing_field("not_found")),
1623 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1624 }
1625 }
1626 "cannot_remove_primary" => {
1627 match map.next_key()? {
1628 Some("cannot_remove_primary") => DeleteSecondaryEmailResult::CannotRemovePrimary(map.next_value()?),
1629 None => return Err(de::Error::missing_field("cannot_remove_primary")),
1630 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1631 }
1632 }
1633 _ => DeleteSecondaryEmailResult::Other,
1634 };
1635 crate::eat_json_fields(&mut map)?;
1636 Ok(value)
1637 }
1638 }
1639 const VARIANTS: &[&str] = &["success",
1640 "not_found",
1641 "cannot_remove_primary",
1642 "other"];
1643 deserializer.deserialize_struct("DeleteSecondaryEmailResult", VARIANTS, EnumVisitor)
1644 }
1645}
1646
1647impl ::serde::ser::Serialize for DeleteSecondaryEmailResult {
1648 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1649 use serde::ser::SerializeStruct;
1651 match self {
1652 DeleteSecondaryEmailResult::Success(x) => {
1653 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
1655 s.serialize_field(".tag", "success")?;
1656 s.serialize_field("success", x)?;
1657 s.end()
1658 }
1659 DeleteSecondaryEmailResult::NotFound(x) => {
1660 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
1662 s.serialize_field(".tag", "not_found")?;
1663 s.serialize_field("not_found", x)?;
1664 s.end()
1665 }
1666 DeleteSecondaryEmailResult::CannotRemovePrimary(x) => {
1667 let mut s = serializer.serialize_struct("DeleteSecondaryEmailResult", 2)?;
1669 s.serialize_field(".tag", "cannot_remove_primary")?;
1670 s.serialize_field("cannot_remove_primary", x)?;
1671 s.end()
1672 }
1673 DeleteSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1674 }
1675 }
1676}
1677
1678#[derive(Debug, Clone, PartialEq, Eq)]
1679#[non_exhaustive] pub struct DeleteSecondaryEmailsArg {
1681 pub emails_to_delete: Vec<UserSecondaryEmailsArg>,
1683}
1684
1685impl DeleteSecondaryEmailsArg {
1686 pub fn new(emails_to_delete: Vec<UserSecondaryEmailsArg>) -> Self {
1687 DeleteSecondaryEmailsArg {
1688 emails_to_delete,
1689 }
1690 }
1691}
1692
1693const DELETE_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["emails_to_delete"];
1694impl DeleteSecondaryEmailsArg {
1695 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1696 map: V,
1697 ) -> Result<DeleteSecondaryEmailsArg, V::Error> {
1698 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1699 }
1700
1701 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1702 mut map: V,
1703 optional: bool,
1704 ) -> Result<Option<DeleteSecondaryEmailsArg>, V::Error> {
1705 let mut field_emails_to_delete = None;
1706 let mut nothing = true;
1707 while let Some(key) = map.next_key::<&str>()? {
1708 nothing = false;
1709 match key {
1710 "emails_to_delete" => {
1711 if field_emails_to_delete.is_some() {
1712 return Err(::serde::de::Error::duplicate_field("emails_to_delete"));
1713 }
1714 field_emails_to_delete = Some(map.next_value()?);
1715 }
1716 _ => {
1717 map.next_value::<::serde_json::Value>()?;
1719 }
1720 }
1721 }
1722 if optional && nothing {
1723 return Ok(None);
1724 }
1725 let result = DeleteSecondaryEmailsArg {
1726 emails_to_delete: field_emails_to_delete.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_delete"))?,
1727 };
1728 Ok(Some(result))
1729 }
1730
1731 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1732 &self,
1733 s: &mut S::SerializeStruct,
1734 ) -> Result<(), S::Error> {
1735 use serde::ser::SerializeStruct;
1736 s.serialize_field("emails_to_delete", &self.emails_to_delete)?;
1737 Ok(())
1738 }
1739}
1740
1741impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailsArg {
1742 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1743 use serde::de::{MapAccess, Visitor};
1745 struct StructVisitor;
1746 impl<'de> Visitor<'de> for StructVisitor {
1747 type Value = DeleteSecondaryEmailsArg;
1748 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1749 f.write_str("a DeleteSecondaryEmailsArg struct")
1750 }
1751 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1752 DeleteSecondaryEmailsArg::internal_deserialize(map)
1753 }
1754 }
1755 deserializer.deserialize_struct("DeleteSecondaryEmailsArg", DELETE_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
1756 }
1757}
1758
1759impl ::serde::ser::Serialize for DeleteSecondaryEmailsArg {
1760 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1761 use serde::ser::SerializeStruct;
1763 let mut s = serializer.serialize_struct("DeleteSecondaryEmailsArg", 1)?;
1764 self.internal_serialize::<S>(&mut s)?;
1765 s.end()
1766 }
1767}
1768
1769#[derive(Debug, Clone, PartialEq, Eq)]
1770#[non_exhaustive] pub struct DeleteSecondaryEmailsResult {
1772 pub results: Vec<UserDeleteResult>,
1773}
1774
1775impl DeleteSecondaryEmailsResult {
1776 pub fn new(results: Vec<UserDeleteResult>) -> Self {
1777 DeleteSecondaryEmailsResult {
1778 results,
1779 }
1780 }
1781}
1782
1783const DELETE_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["results"];
1784impl DeleteSecondaryEmailsResult {
1785 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1786 map: V,
1787 ) -> Result<DeleteSecondaryEmailsResult, V::Error> {
1788 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1789 }
1790
1791 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1792 mut map: V,
1793 optional: bool,
1794 ) -> Result<Option<DeleteSecondaryEmailsResult>, V::Error> {
1795 let mut field_results = None;
1796 let mut nothing = true;
1797 while let Some(key) = map.next_key::<&str>()? {
1798 nothing = false;
1799 match key {
1800 "results" => {
1801 if field_results.is_some() {
1802 return Err(::serde::de::Error::duplicate_field("results"));
1803 }
1804 field_results = Some(map.next_value()?);
1805 }
1806 _ => {
1807 map.next_value::<::serde_json::Value>()?;
1809 }
1810 }
1811 }
1812 if optional && nothing {
1813 return Ok(None);
1814 }
1815 let result = DeleteSecondaryEmailsResult {
1816 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
1817 };
1818 Ok(Some(result))
1819 }
1820
1821 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1822 &self,
1823 s: &mut S::SerializeStruct,
1824 ) -> Result<(), S::Error> {
1825 use serde::ser::SerializeStruct;
1826 s.serialize_field("results", &self.results)?;
1827 Ok(())
1828 }
1829}
1830
1831impl<'de> ::serde::de::Deserialize<'de> for DeleteSecondaryEmailsResult {
1832 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1833 use serde::de::{MapAccess, Visitor};
1835 struct StructVisitor;
1836 impl<'de> Visitor<'de> for StructVisitor {
1837 type Value = DeleteSecondaryEmailsResult;
1838 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1839 f.write_str("a DeleteSecondaryEmailsResult struct")
1840 }
1841 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1842 DeleteSecondaryEmailsResult::internal_deserialize(map)
1843 }
1844 }
1845 deserializer.deserialize_struct("DeleteSecondaryEmailsResult", DELETE_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
1846 }
1847}
1848
1849impl ::serde::ser::Serialize for DeleteSecondaryEmailsResult {
1850 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1851 use serde::ser::SerializeStruct;
1853 let mut s = serializer.serialize_struct("DeleteSecondaryEmailsResult", 1)?;
1854 self.internal_serialize::<S>(&mut s)?;
1855 s.end()
1856 }
1857}
1858
1859#[derive(Debug, Clone, PartialEq, Eq)]
1861#[non_exhaustive] pub struct DesktopClientSession {
1863 pub session_id: String,
1865 pub host_name: String,
1867 pub client_type: DesktopPlatform,
1869 pub client_version: String,
1871 pub platform: String,
1873 pub is_delete_on_unlink_supported: bool,
1875 pub ip_address: Option<String>,
1877 pub country: Option<String>,
1879 pub created: Option<crate::types::common::DropboxTimestamp>,
1881 pub updated: Option<crate::types::common::DropboxTimestamp>,
1883}
1884
1885impl DesktopClientSession {
1886 pub fn new(
1887 session_id: String,
1888 host_name: String,
1889 client_type: DesktopPlatform,
1890 client_version: String,
1891 platform: String,
1892 is_delete_on_unlink_supported: bool,
1893 ) -> Self {
1894 DesktopClientSession {
1895 session_id,
1896 host_name,
1897 client_type,
1898 client_version,
1899 platform,
1900 is_delete_on_unlink_supported,
1901 ip_address: None,
1902 country: None,
1903 created: None,
1904 updated: None,
1905 }
1906 }
1907
1908 pub fn with_ip_address(mut self, value: String) -> Self {
1909 self.ip_address = Some(value);
1910 self
1911 }
1912
1913 pub fn with_country(mut self, value: String) -> Self {
1914 self.country = Some(value);
1915 self
1916 }
1917
1918 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
1919 self.created = Some(value);
1920 self
1921 }
1922
1923 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
1924 self.updated = Some(value);
1925 self
1926 }
1927}
1928
1929const DESKTOP_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
1930 "host_name",
1931 "client_type",
1932 "client_version",
1933 "platform",
1934 "is_delete_on_unlink_supported",
1935 "ip_address",
1936 "country",
1937 "created",
1938 "updated"];
1939impl DesktopClientSession {
1940 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1941 map: V,
1942 ) -> Result<DesktopClientSession, V::Error> {
1943 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1944 }
1945
1946 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1947 mut map: V,
1948 optional: bool,
1949 ) -> Result<Option<DesktopClientSession>, V::Error> {
1950 let mut field_session_id = None;
1951 let mut field_host_name = None;
1952 let mut field_client_type = None;
1953 let mut field_client_version = None;
1954 let mut field_platform = None;
1955 let mut field_is_delete_on_unlink_supported = None;
1956 let mut field_ip_address = None;
1957 let mut field_country = None;
1958 let mut field_created = None;
1959 let mut field_updated = None;
1960 let mut nothing = true;
1961 while let Some(key) = map.next_key::<&str>()? {
1962 nothing = false;
1963 match key {
1964 "session_id" => {
1965 if field_session_id.is_some() {
1966 return Err(::serde::de::Error::duplicate_field("session_id"));
1967 }
1968 field_session_id = Some(map.next_value()?);
1969 }
1970 "host_name" => {
1971 if field_host_name.is_some() {
1972 return Err(::serde::de::Error::duplicate_field("host_name"));
1973 }
1974 field_host_name = Some(map.next_value()?);
1975 }
1976 "client_type" => {
1977 if field_client_type.is_some() {
1978 return Err(::serde::de::Error::duplicate_field("client_type"));
1979 }
1980 field_client_type = Some(map.next_value()?);
1981 }
1982 "client_version" => {
1983 if field_client_version.is_some() {
1984 return Err(::serde::de::Error::duplicate_field("client_version"));
1985 }
1986 field_client_version = Some(map.next_value()?);
1987 }
1988 "platform" => {
1989 if field_platform.is_some() {
1990 return Err(::serde::de::Error::duplicate_field("platform"));
1991 }
1992 field_platform = Some(map.next_value()?);
1993 }
1994 "is_delete_on_unlink_supported" => {
1995 if field_is_delete_on_unlink_supported.is_some() {
1996 return Err(::serde::de::Error::duplicate_field("is_delete_on_unlink_supported"));
1997 }
1998 field_is_delete_on_unlink_supported = Some(map.next_value()?);
1999 }
2000 "ip_address" => {
2001 if field_ip_address.is_some() {
2002 return Err(::serde::de::Error::duplicate_field("ip_address"));
2003 }
2004 field_ip_address = Some(map.next_value()?);
2005 }
2006 "country" => {
2007 if field_country.is_some() {
2008 return Err(::serde::de::Error::duplicate_field("country"));
2009 }
2010 field_country = Some(map.next_value()?);
2011 }
2012 "created" => {
2013 if field_created.is_some() {
2014 return Err(::serde::de::Error::duplicate_field("created"));
2015 }
2016 field_created = Some(map.next_value()?);
2017 }
2018 "updated" => {
2019 if field_updated.is_some() {
2020 return Err(::serde::de::Error::duplicate_field("updated"));
2021 }
2022 field_updated = Some(map.next_value()?);
2023 }
2024 _ => {
2025 map.next_value::<::serde_json::Value>()?;
2027 }
2028 }
2029 }
2030 if optional && nothing {
2031 return Ok(None);
2032 }
2033 let result = DesktopClientSession {
2034 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2035 host_name: field_host_name.ok_or_else(|| ::serde::de::Error::missing_field("host_name"))?,
2036 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
2037 client_version: field_client_version.ok_or_else(|| ::serde::de::Error::missing_field("client_version"))?,
2038 platform: field_platform.ok_or_else(|| ::serde::de::Error::missing_field("platform"))?,
2039 is_delete_on_unlink_supported: field_is_delete_on_unlink_supported.ok_or_else(|| ::serde::de::Error::missing_field("is_delete_on_unlink_supported"))?,
2040 ip_address: field_ip_address.and_then(Option::flatten),
2041 country: field_country.and_then(Option::flatten),
2042 created: field_created.and_then(Option::flatten),
2043 updated: field_updated.and_then(Option::flatten),
2044 };
2045 Ok(Some(result))
2046 }
2047
2048 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2049 &self,
2050 s: &mut S::SerializeStruct,
2051 ) -> Result<(), S::Error> {
2052 use serde::ser::SerializeStruct;
2053 s.serialize_field("session_id", &self.session_id)?;
2054 s.serialize_field("host_name", &self.host_name)?;
2055 s.serialize_field("client_type", &self.client_type)?;
2056 s.serialize_field("client_version", &self.client_version)?;
2057 s.serialize_field("platform", &self.platform)?;
2058 s.serialize_field("is_delete_on_unlink_supported", &self.is_delete_on_unlink_supported)?;
2059 if let Some(val) = &self.ip_address {
2060 s.serialize_field("ip_address", val)?;
2061 }
2062 if let Some(val) = &self.country {
2063 s.serialize_field("country", val)?;
2064 }
2065 if let Some(val) = &self.created {
2066 s.serialize_field("created", val)?;
2067 }
2068 if let Some(val) = &self.updated {
2069 s.serialize_field("updated", val)?;
2070 }
2071 Ok(())
2072 }
2073}
2074
2075impl<'de> ::serde::de::Deserialize<'de> for DesktopClientSession {
2076 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2077 use serde::de::{MapAccess, Visitor};
2079 struct StructVisitor;
2080 impl<'de> Visitor<'de> for StructVisitor {
2081 type Value = DesktopClientSession;
2082 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2083 f.write_str("a DesktopClientSession struct")
2084 }
2085 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2086 DesktopClientSession::internal_deserialize(map)
2087 }
2088 }
2089 deserializer.deserialize_struct("DesktopClientSession", DESKTOP_CLIENT_SESSION_FIELDS, StructVisitor)
2090 }
2091}
2092
2093impl ::serde::ser::Serialize for DesktopClientSession {
2094 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2095 use serde::ser::SerializeStruct;
2097 let mut s = serializer.serialize_struct("DesktopClientSession", 10)?;
2098 self.internal_serialize::<S>(&mut s)?;
2099 s.end()
2100 }
2101}
2102
2103impl From<DesktopClientSession> for DeviceSession {
2105 fn from(subtype: DesktopClientSession) -> Self {
2106 Self {
2107 session_id: subtype.session_id,
2108 ip_address: subtype.ip_address,
2109 country: subtype.country,
2110 created: subtype.created,
2111 updated: subtype.updated,
2112 }
2113 }
2114}
2115#[derive(Debug, Clone, PartialEq, Eq)]
2116#[non_exhaustive] pub enum DesktopPlatform {
2118 Windows,
2120 Mac,
2122 Linux,
2124 Other,
2127}
2128
2129impl<'de> ::serde::de::Deserialize<'de> for DesktopPlatform {
2130 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2131 use serde::de::{self, MapAccess, Visitor};
2133 struct EnumVisitor;
2134 impl<'de> Visitor<'de> for EnumVisitor {
2135 type Value = DesktopPlatform;
2136 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2137 f.write_str("a DesktopPlatform structure")
2138 }
2139 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2140 let tag: &str = match map.next_key()? {
2141 Some(".tag") => map.next_value()?,
2142 _ => return Err(de::Error::missing_field(".tag"))
2143 };
2144 let value = match tag {
2145 "windows" => DesktopPlatform::Windows,
2146 "mac" => DesktopPlatform::Mac,
2147 "linux" => DesktopPlatform::Linux,
2148 _ => DesktopPlatform::Other,
2149 };
2150 crate::eat_json_fields(&mut map)?;
2151 Ok(value)
2152 }
2153 }
2154 const VARIANTS: &[&str] = &["windows",
2155 "mac",
2156 "linux",
2157 "other"];
2158 deserializer.deserialize_struct("DesktopPlatform", VARIANTS, EnumVisitor)
2159 }
2160}
2161
2162impl ::serde::ser::Serialize for DesktopPlatform {
2163 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2164 use serde::ser::SerializeStruct;
2166 match self {
2167 DesktopPlatform::Windows => {
2168 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
2170 s.serialize_field(".tag", "windows")?;
2171 s.end()
2172 }
2173 DesktopPlatform::Mac => {
2174 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
2176 s.serialize_field(".tag", "mac")?;
2177 s.end()
2178 }
2179 DesktopPlatform::Linux => {
2180 let mut s = serializer.serialize_struct("DesktopPlatform", 1)?;
2182 s.serialize_field(".tag", "linux")?;
2183 s.end()
2184 }
2185 DesktopPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2186 }
2187 }
2188}
2189
2190#[derive(Debug, Clone, PartialEq, Eq)]
2191#[non_exhaustive] pub struct DeviceSession {
2193 pub session_id: String,
2195 pub ip_address: Option<String>,
2197 pub country: Option<String>,
2199 pub created: Option<crate::types::common::DropboxTimestamp>,
2201 pub updated: Option<crate::types::common::DropboxTimestamp>,
2203}
2204
2205impl DeviceSession {
2206 pub fn new(session_id: String) -> Self {
2207 DeviceSession {
2208 session_id,
2209 ip_address: None,
2210 country: None,
2211 created: None,
2212 updated: None,
2213 }
2214 }
2215
2216 pub fn with_ip_address(mut self, value: String) -> Self {
2217 self.ip_address = Some(value);
2218 self
2219 }
2220
2221 pub fn with_country(mut self, value: String) -> Self {
2222 self.country = Some(value);
2223 self
2224 }
2225
2226 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
2227 self.created = Some(value);
2228 self
2229 }
2230
2231 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
2232 self.updated = Some(value);
2233 self
2234 }
2235}
2236
2237const DEVICE_SESSION_FIELDS: &[&str] = &["session_id",
2238 "ip_address",
2239 "country",
2240 "created",
2241 "updated"];
2242impl DeviceSession {
2243 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2244 map: V,
2245 ) -> Result<DeviceSession, V::Error> {
2246 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2247 }
2248
2249 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2250 mut map: V,
2251 optional: bool,
2252 ) -> Result<Option<DeviceSession>, V::Error> {
2253 let mut field_session_id = None;
2254 let mut field_ip_address = None;
2255 let mut field_country = None;
2256 let mut field_created = None;
2257 let mut field_updated = None;
2258 let mut nothing = true;
2259 while let Some(key) = map.next_key::<&str>()? {
2260 nothing = false;
2261 match key {
2262 "session_id" => {
2263 if field_session_id.is_some() {
2264 return Err(::serde::de::Error::duplicate_field("session_id"));
2265 }
2266 field_session_id = Some(map.next_value()?);
2267 }
2268 "ip_address" => {
2269 if field_ip_address.is_some() {
2270 return Err(::serde::de::Error::duplicate_field("ip_address"));
2271 }
2272 field_ip_address = Some(map.next_value()?);
2273 }
2274 "country" => {
2275 if field_country.is_some() {
2276 return Err(::serde::de::Error::duplicate_field("country"));
2277 }
2278 field_country = Some(map.next_value()?);
2279 }
2280 "created" => {
2281 if field_created.is_some() {
2282 return Err(::serde::de::Error::duplicate_field("created"));
2283 }
2284 field_created = Some(map.next_value()?);
2285 }
2286 "updated" => {
2287 if field_updated.is_some() {
2288 return Err(::serde::de::Error::duplicate_field("updated"));
2289 }
2290 field_updated = Some(map.next_value()?);
2291 }
2292 _ => {
2293 map.next_value::<::serde_json::Value>()?;
2295 }
2296 }
2297 }
2298 if optional && nothing {
2299 return Ok(None);
2300 }
2301 let result = DeviceSession {
2302 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2303 ip_address: field_ip_address.and_then(Option::flatten),
2304 country: field_country.and_then(Option::flatten),
2305 created: field_created.and_then(Option::flatten),
2306 updated: field_updated.and_then(Option::flatten),
2307 };
2308 Ok(Some(result))
2309 }
2310
2311 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2312 &self,
2313 s: &mut S::SerializeStruct,
2314 ) -> Result<(), S::Error> {
2315 use serde::ser::SerializeStruct;
2316 s.serialize_field("session_id", &self.session_id)?;
2317 if let Some(val) = &self.ip_address {
2318 s.serialize_field("ip_address", val)?;
2319 }
2320 if let Some(val) = &self.country {
2321 s.serialize_field("country", val)?;
2322 }
2323 if let Some(val) = &self.created {
2324 s.serialize_field("created", val)?;
2325 }
2326 if let Some(val) = &self.updated {
2327 s.serialize_field("updated", val)?;
2328 }
2329 Ok(())
2330 }
2331}
2332
2333impl<'de> ::serde::de::Deserialize<'de> for DeviceSession {
2334 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2335 use serde::de::{MapAccess, Visitor};
2337 struct StructVisitor;
2338 impl<'de> Visitor<'de> for StructVisitor {
2339 type Value = DeviceSession;
2340 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2341 f.write_str("a DeviceSession struct")
2342 }
2343 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2344 DeviceSession::internal_deserialize(map)
2345 }
2346 }
2347 deserializer.deserialize_struct("DeviceSession", DEVICE_SESSION_FIELDS, StructVisitor)
2348 }
2349}
2350
2351impl ::serde::ser::Serialize for DeviceSession {
2352 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2353 use serde::ser::SerializeStruct;
2355 let mut s = serializer.serialize_struct("DeviceSession", 5)?;
2356 self.internal_serialize::<S>(&mut s)?;
2357 s.end()
2358 }
2359}
2360
2361#[derive(Debug, Clone, PartialEq, Eq)]
2362#[non_exhaustive] pub struct DeviceSessionArg {
2364 pub session_id: String,
2366 pub team_member_id: String,
2368}
2369
2370impl DeviceSessionArg {
2371 pub fn new(session_id: String, team_member_id: String) -> Self {
2372 DeviceSessionArg {
2373 session_id,
2374 team_member_id,
2375 }
2376 }
2377}
2378
2379const DEVICE_SESSION_ARG_FIELDS: &[&str] = &["session_id",
2380 "team_member_id"];
2381impl DeviceSessionArg {
2382 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2383 map: V,
2384 ) -> Result<DeviceSessionArg, V::Error> {
2385 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2386 }
2387
2388 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2389 mut map: V,
2390 optional: bool,
2391 ) -> Result<Option<DeviceSessionArg>, V::Error> {
2392 let mut field_session_id = None;
2393 let mut field_team_member_id = None;
2394 let mut nothing = true;
2395 while let Some(key) = map.next_key::<&str>()? {
2396 nothing = false;
2397 match key {
2398 "session_id" => {
2399 if field_session_id.is_some() {
2400 return Err(::serde::de::Error::duplicate_field("session_id"));
2401 }
2402 field_session_id = Some(map.next_value()?);
2403 }
2404 "team_member_id" => {
2405 if field_team_member_id.is_some() {
2406 return Err(::serde::de::Error::duplicate_field("team_member_id"));
2407 }
2408 field_team_member_id = Some(map.next_value()?);
2409 }
2410 _ => {
2411 map.next_value::<::serde_json::Value>()?;
2413 }
2414 }
2415 }
2416 if optional && nothing {
2417 return Ok(None);
2418 }
2419 let result = DeviceSessionArg {
2420 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
2421 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
2422 };
2423 Ok(Some(result))
2424 }
2425
2426 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2427 &self,
2428 s: &mut S::SerializeStruct,
2429 ) -> Result<(), S::Error> {
2430 use serde::ser::SerializeStruct;
2431 s.serialize_field("session_id", &self.session_id)?;
2432 s.serialize_field("team_member_id", &self.team_member_id)?;
2433 Ok(())
2434 }
2435}
2436
2437impl<'de> ::serde::de::Deserialize<'de> for DeviceSessionArg {
2438 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2439 use serde::de::{MapAccess, Visitor};
2441 struct StructVisitor;
2442 impl<'de> Visitor<'de> for StructVisitor {
2443 type Value = DeviceSessionArg;
2444 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2445 f.write_str("a DeviceSessionArg struct")
2446 }
2447 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2448 DeviceSessionArg::internal_deserialize(map)
2449 }
2450 }
2451 deserializer.deserialize_struct("DeviceSessionArg", DEVICE_SESSION_ARG_FIELDS, StructVisitor)
2452 }
2453}
2454
2455impl ::serde::ser::Serialize for DeviceSessionArg {
2456 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2457 use serde::ser::SerializeStruct;
2459 let mut s = serializer.serialize_struct("DeviceSessionArg", 2)?;
2460 self.internal_serialize::<S>(&mut s)?;
2461 s.end()
2462 }
2463}
2464
2465#[derive(Debug, Clone, PartialEq, Eq)]
2469#[non_exhaustive] pub struct DevicesActive {
2471 pub windows: NumberPerDay,
2473 pub macos: NumberPerDay,
2475 pub linux: NumberPerDay,
2477 pub ios: NumberPerDay,
2479 pub android: NumberPerDay,
2481 pub other: NumberPerDay,
2483 pub total: NumberPerDay,
2485}
2486
2487impl DevicesActive {
2488 pub fn new(
2489 windows: NumberPerDay,
2490 macos: NumberPerDay,
2491 linux: NumberPerDay,
2492 ios: NumberPerDay,
2493 android: NumberPerDay,
2494 other: NumberPerDay,
2495 total: NumberPerDay,
2496 ) -> Self {
2497 DevicesActive {
2498 windows,
2499 macos,
2500 linux,
2501 ios,
2502 android,
2503 other,
2504 total,
2505 }
2506 }
2507}
2508
2509const DEVICES_ACTIVE_FIELDS: &[&str] = &["windows",
2510 "macos",
2511 "linux",
2512 "ios",
2513 "android",
2514 "other",
2515 "total"];
2516impl DevicesActive {
2517 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2518 map: V,
2519 ) -> Result<DevicesActive, V::Error> {
2520 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2521 }
2522
2523 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2524 mut map: V,
2525 optional: bool,
2526 ) -> Result<Option<DevicesActive>, V::Error> {
2527 let mut field_windows = None;
2528 let mut field_macos = None;
2529 let mut field_linux = None;
2530 let mut field_ios = None;
2531 let mut field_android = None;
2532 let mut field_other = None;
2533 let mut field_total = None;
2534 let mut nothing = true;
2535 while let Some(key) = map.next_key::<&str>()? {
2536 nothing = false;
2537 match key {
2538 "windows" => {
2539 if field_windows.is_some() {
2540 return Err(::serde::de::Error::duplicate_field("windows"));
2541 }
2542 field_windows = Some(map.next_value()?);
2543 }
2544 "macos" => {
2545 if field_macos.is_some() {
2546 return Err(::serde::de::Error::duplicate_field("macos"));
2547 }
2548 field_macos = Some(map.next_value()?);
2549 }
2550 "linux" => {
2551 if field_linux.is_some() {
2552 return Err(::serde::de::Error::duplicate_field("linux"));
2553 }
2554 field_linux = Some(map.next_value()?);
2555 }
2556 "ios" => {
2557 if field_ios.is_some() {
2558 return Err(::serde::de::Error::duplicate_field("ios"));
2559 }
2560 field_ios = Some(map.next_value()?);
2561 }
2562 "android" => {
2563 if field_android.is_some() {
2564 return Err(::serde::de::Error::duplicate_field("android"));
2565 }
2566 field_android = Some(map.next_value()?);
2567 }
2568 "other" => {
2569 if field_other.is_some() {
2570 return Err(::serde::de::Error::duplicate_field("other"));
2571 }
2572 field_other = Some(map.next_value()?);
2573 }
2574 "total" => {
2575 if field_total.is_some() {
2576 return Err(::serde::de::Error::duplicate_field("total"));
2577 }
2578 field_total = Some(map.next_value()?);
2579 }
2580 _ => {
2581 map.next_value::<::serde_json::Value>()?;
2583 }
2584 }
2585 }
2586 if optional && nothing {
2587 return Ok(None);
2588 }
2589 let result = DevicesActive {
2590 windows: field_windows.ok_or_else(|| ::serde::de::Error::missing_field("windows"))?,
2591 macos: field_macos.ok_or_else(|| ::serde::de::Error::missing_field("macos"))?,
2592 linux: field_linux.ok_or_else(|| ::serde::de::Error::missing_field("linux"))?,
2593 ios: field_ios.ok_or_else(|| ::serde::de::Error::missing_field("ios"))?,
2594 android: field_android.ok_or_else(|| ::serde::de::Error::missing_field("android"))?,
2595 other: field_other.ok_or_else(|| ::serde::de::Error::missing_field("other"))?,
2596 total: field_total.ok_or_else(|| ::serde::de::Error::missing_field("total"))?,
2597 };
2598 Ok(Some(result))
2599 }
2600
2601 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2602 &self,
2603 s: &mut S::SerializeStruct,
2604 ) -> Result<(), S::Error> {
2605 use serde::ser::SerializeStruct;
2606 s.serialize_field("windows", &self.windows)?;
2607 s.serialize_field("macos", &self.macos)?;
2608 s.serialize_field("linux", &self.linux)?;
2609 s.serialize_field("ios", &self.ios)?;
2610 s.serialize_field("android", &self.android)?;
2611 s.serialize_field("other", &self.other)?;
2612 s.serialize_field("total", &self.total)?;
2613 Ok(())
2614 }
2615}
2616
2617impl<'de> ::serde::de::Deserialize<'de> for DevicesActive {
2618 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2619 use serde::de::{MapAccess, Visitor};
2621 struct StructVisitor;
2622 impl<'de> Visitor<'de> for StructVisitor {
2623 type Value = DevicesActive;
2624 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2625 f.write_str("a DevicesActive struct")
2626 }
2627 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2628 DevicesActive::internal_deserialize(map)
2629 }
2630 }
2631 deserializer.deserialize_struct("DevicesActive", DEVICES_ACTIVE_FIELDS, StructVisitor)
2632 }
2633}
2634
2635impl ::serde::ser::Serialize for DevicesActive {
2636 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2637 use serde::ser::SerializeStruct;
2639 let mut s = serializer.serialize_struct("DevicesActive", 7)?;
2640 self.internal_serialize::<S>(&mut s)?;
2641 s.end()
2642 }
2643}
2644
2645#[derive(Debug, Clone, PartialEq, Eq)]
2647#[non_exhaustive] pub struct ExcludedUsersListArg {
2649 pub limit: u32,
2651}
2652
2653impl Default for ExcludedUsersListArg {
2654 fn default() -> Self {
2655 ExcludedUsersListArg {
2656 limit: 1000,
2657 }
2658 }
2659}
2660
2661impl ExcludedUsersListArg {
2662 pub fn with_limit(mut self, value: u32) -> Self {
2663 self.limit = value;
2664 self
2665 }
2666}
2667
2668const EXCLUDED_USERS_LIST_ARG_FIELDS: &[&str] = &["limit"];
2669impl ExcludedUsersListArg {
2670 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2672 mut map: V,
2673 ) -> Result<ExcludedUsersListArg, V::Error> {
2674 let mut field_limit = None;
2675 while let Some(key) = map.next_key::<&str>()? {
2676 match key {
2677 "limit" => {
2678 if field_limit.is_some() {
2679 return Err(::serde::de::Error::duplicate_field("limit"));
2680 }
2681 field_limit = Some(map.next_value()?);
2682 }
2683 _ => {
2684 map.next_value::<::serde_json::Value>()?;
2686 }
2687 }
2688 }
2689 let result = ExcludedUsersListArg {
2690 limit: field_limit.unwrap_or(1000),
2691 };
2692 Ok(result)
2693 }
2694
2695 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2696 &self,
2697 s: &mut S::SerializeStruct,
2698 ) -> Result<(), S::Error> {
2699 use serde::ser::SerializeStruct;
2700 if self.limit != 1000 {
2701 s.serialize_field("limit", &self.limit)?;
2702 }
2703 Ok(())
2704 }
2705}
2706
2707impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListArg {
2708 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2709 use serde::de::{MapAccess, Visitor};
2711 struct StructVisitor;
2712 impl<'de> Visitor<'de> for StructVisitor {
2713 type Value = ExcludedUsersListArg;
2714 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2715 f.write_str("a ExcludedUsersListArg struct")
2716 }
2717 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2718 ExcludedUsersListArg::internal_deserialize(map)
2719 }
2720 }
2721 deserializer.deserialize_struct("ExcludedUsersListArg", EXCLUDED_USERS_LIST_ARG_FIELDS, StructVisitor)
2722 }
2723}
2724
2725impl ::serde::ser::Serialize for ExcludedUsersListArg {
2726 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2727 use serde::ser::SerializeStruct;
2729 let mut s = serializer.serialize_struct("ExcludedUsersListArg", 1)?;
2730 self.internal_serialize::<S>(&mut s)?;
2731 s.end()
2732 }
2733}
2734
2735#[derive(Debug, Clone, PartialEq, Eq)]
2737#[non_exhaustive] pub struct ExcludedUsersListContinueArg {
2739 pub cursor: String,
2741}
2742
2743impl ExcludedUsersListContinueArg {
2744 pub fn new(cursor: String) -> Self {
2745 ExcludedUsersListContinueArg {
2746 cursor,
2747 }
2748 }
2749}
2750
2751const EXCLUDED_USERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
2752impl ExcludedUsersListContinueArg {
2753 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2754 map: V,
2755 ) -> Result<ExcludedUsersListContinueArg, V::Error> {
2756 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2757 }
2758
2759 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2760 mut map: V,
2761 optional: bool,
2762 ) -> Result<Option<ExcludedUsersListContinueArg>, V::Error> {
2763 let mut field_cursor = None;
2764 let mut nothing = true;
2765 while let Some(key) = map.next_key::<&str>()? {
2766 nothing = false;
2767 match key {
2768 "cursor" => {
2769 if field_cursor.is_some() {
2770 return Err(::serde::de::Error::duplicate_field("cursor"));
2771 }
2772 field_cursor = Some(map.next_value()?);
2773 }
2774 _ => {
2775 map.next_value::<::serde_json::Value>()?;
2777 }
2778 }
2779 }
2780 if optional && nothing {
2781 return Ok(None);
2782 }
2783 let result = ExcludedUsersListContinueArg {
2784 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
2785 };
2786 Ok(Some(result))
2787 }
2788
2789 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2790 &self,
2791 s: &mut S::SerializeStruct,
2792 ) -> Result<(), S::Error> {
2793 use serde::ser::SerializeStruct;
2794 s.serialize_field("cursor", &self.cursor)?;
2795 Ok(())
2796 }
2797}
2798
2799impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListContinueArg {
2800 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2801 use serde::de::{MapAccess, Visitor};
2803 struct StructVisitor;
2804 impl<'de> Visitor<'de> for StructVisitor {
2805 type Value = ExcludedUsersListContinueArg;
2806 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2807 f.write_str("a ExcludedUsersListContinueArg struct")
2808 }
2809 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2810 ExcludedUsersListContinueArg::internal_deserialize(map)
2811 }
2812 }
2813 deserializer.deserialize_struct("ExcludedUsersListContinueArg", EXCLUDED_USERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
2814 }
2815}
2816
2817impl ::serde::ser::Serialize for ExcludedUsersListContinueArg {
2818 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2819 use serde::ser::SerializeStruct;
2821 let mut s = serializer.serialize_struct("ExcludedUsersListContinueArg", 1)?;
2822 self.internal_serialize::<S>(&mut s)?;
2823 s.end()
2824 }
2825}
2826
2827#[derive(Debug, Clone, PartialEq, Eq)]
2829#[non_exhaustive] pub enum ExcludedUsersListContinueError {
2831 InvalidCursor,
2833 Other,
2836}
2837
2838impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListContinueError {
2839 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2840 use serde::de::{self, MapAccess, Visitor};
2842 struct EnumVisitor;
2843 impl<'de> Visitor<'de> for EnumVisitor {
2844 type Value = ExcludedUsersListContinueError;
2845 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2846 f.write_str("a ExcludedUsersListContinueError structure")
2847 }
2848 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2849 let tag: &str = match map.next_key()? {
2850 Some(".tag") => map.next_value()?,
2851 _ => return Err(de::Error::missing_field(".tag"))
2852 };
2853 let value = match tag {
2854 "invalid_cursor" => ExcludedUsersListContinueError::InvalidCursor,
2855 _ => ExcludedUsersListContinueError::Other,
2856 };
2857 crate::eat_json_fields(&mut map)?;
2858 Ok(value)
2859 }
2860 }
2861 const VARIANTS: &[&str] = &["invalid_cursor",
2862 "other"];
2863 deserializer.deserialize_struct("ExcludedUsersListContinueError", VARIANTS, EnumVisitor)
2864 }
2865}
2866
2867impl ::serde::ser::Serialize for ExcludedUsersListContinueError {
2868 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2869 use serde::ser::SerializeStruct;
2871 match self {
2872 ExcludedUsersListContinueError::InvalidCursor => {
2873 let mut s = serializer.serialize_struct("ExcludedUsersListContinueError", 1)?;
2875 s.serialize_field(".tag", "invalid_cursor")?;
2876 s.end()
2877 }
2878 ExcludedUsersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2879 }
2880 }
2881}
2882
2883impl ::std::error::Error for ExcludedUsersListContinueError {
2884}
2885
2886impl ::std::fmt::Display for ExcludedUsersListContinueError {
2887 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2888 match self {
2889 ExcludedUsersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
2890 _ => write!(f, "{:?}", *self),
2891 }
2892 }
2893}
2894
2895#[derive(Debug, Clone, PartialEq, Eq)]
2897#[non_exhaustive] pub enum ExcludedUsersListError {
2899 ListError,
2901 Other,
2904}
2905
2906impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListError {
2907 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2908 use serde::de::{self, MapAccess, Visitor};
2910 struct EnumVisitor;
2911 impl<'de> Visitor<'de> for EnumVisitor {
2912 type Value = ExcludedUsersListError;
2913 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2914 f.write_str("a ExcludedUsersListError structure")
2915 }
2916 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2917 let tag: &str = match map.next_key()? {
2918 Some(".tag") => map.next_value()?,
2919 _ => return Err(de::Error::missing_field(".tag"))
2920 };
2921 let value = match tag {
2922 "list_error" => ExcludedUsersListError::ListError,
2923 _ => ExcludedUsersListError::Other,
2924 };
2925 crate::eat_json_fields(&mut map)?;
2926 Ok(value)
2927 }
2928 }
2929 const VARIANTS: &[&str] = &["list_error",
2930 "other"];
2931 deserializer.deserialize_struct("ExcludedUsersListError", VARIANTS, EnumVisitor)
2932 }
2933}
2934
2935impl ::serde::ser::Serialize for ExcludedUsersListError {
2936 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2937 use serde::ser::SerializeStruct;
2939 match self {
2940 ExcludedUsersListError::ListError => {
2941 let mut s = serializer.serialize_struct("ExcludedUsersListError", 1)?;
2943 s.serialize_field(".tag", "list_error")?;
2944 s.end()
2945 }
2946 ExcludedUsersListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2947 }
2948 }
2949}
2950
2951impl ::std::error::Error for ExcludedUsersListError {
2952}
2953
2954impl ::std::fmt::Display for ExcludedUsersListError {
2955 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2956 match self {
2957 ExcludedUsersListError::ListError => f.write_str("An error occurred."),
2958 _ => write!(f, "{:?}", *self),
2959 }
2960 }
2961}
2962
2963#[derive(Debug, Clone, PartialEq, Eq)]
2965#[non_exhaustive] pub struct ExcludedUsersListResult {
2967 pub users: Vec<MemberProfile>,
2968 pub has_more: bool,
2973 pub cursor: Option<String>,
2977}
2978
2979impl ExcludedUsersListResult {
2980 pub fn new(users: Vec<MemberProfile>, has_more: bool) -> Self {
2981 ExcludedUsersListResult {
2982 users,
2983 has_more,
2984 cursor: None,
2985 }
2986 }
2987
2988 pub fn with_cursor(mut self, value: String) -> Self {
2989 self.cursor = Some(value);
2990 self
2991 }
2992}
2993
2994const EXCLUDED_USERS_LIST_RESULT_FIELDS: &[&str] = &["users",
2995 "has_more",
2996 "cursor"];
2997impl ExcludedUsersListResult {
2998 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2999 map: V,
3000 ) -> Result<ExcludedUsersListResult, V::Error> {
3001 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3002 }
3003
3004 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3005 mut map: V,
3006 optional: bool,
3007 ) -> Result<Option<ExcludedUsersListResult>, V::Error> {
3008 let mut field_users = None;
3009 let mut field_has_more = None;
3010 let mut field_cursor = None;
3011 let mut nothing = true;
3012 while let Some(key) = map.next_key::<&str>()? {
3013 nothing = false;
3014 match key {
3015 "users" => {
3016 if field_users.is_some() {
3017 return Err(::serde::de::Error::duplicate_field("users"));
3018 }
3019 field_users = Some(map.next_value()?);
3020 }
3021 "has_more" => {
3022 if field_has_more.is_some() {
3023 return Err(::serde::de::Error::duplicate_field("has_more"));
3024 }
3025 field_has_more = Some(map.next_value()?);
3026 }
3027 "cursor" => {
3028 if field_cursor.is_some() {
3029 return Err(::serde::de::Error::duplicate_field("cursor"));
3030 }
3031 field_cursor = Some(map.next_value()?);
3032 }
3033 _ => {
3034 map.next_value::<::serde_json::Value>()?;
3036 }
3037 }
3038 }
3039 if optional && nothing {
3040 return Ok(None);
3041 }
3042 let result = ExcludedUsersListResult {
3043 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
3044 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
3045 cursor: field_cursor.and_then(Option::flatten),
3046 };
3047 Ok(Some(result))
3048 }
3049
3050 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3051 &self,
3052 s: &mut S::SerializeStruct,
3053 ) -> Result<(), S::Error> {
3054 use serde::ser::SerializeStruct;
3055 s.serialize_field("users", &self.users)?;
3056 s.serialize_field("has_more", &self.has_more)?;
3057 if let Some(val) = &self.cursor {
3058 s.serialize_field("cursor", val)?;
3059 }
3060 Ok(())
3061 }
3062}
3063
3064impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersListResult {
3065 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3066 use serde::de::{MapAccess, Visitor};
3068 struct StructVisitor;
3069 impl<'de> Visitor<'de> for StructVisitor {
3070 type Value = ExcludedUsersListResult;
3071 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3072 f.write_str("a ExcludedUsersListResult struct")
3073 }
3074 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3075 ExcludedUsersListResult::internal_deserialize(map)
3076 }
3077 }
3078 deserializer.deserialize_struct("ExcludedUsersListResult", EXCLUDED_USERS_LIST_RESULT_FIELDS, StructVisitor)
3079 }
3080}
3081
3082impl ::serde::ser::Serialize for ExcludedUsersListResult {
3083 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3084 use serde::ser::SerializeStruct;
3086 let mut s = serializer.serialize_struct("ExcludedUsersListResult", 3)?;
3087 self.internal_serialize::<S>(&mut s)?;
3088 s.end()
3089 }
3090}
3091
3092#[derive(Debug, Clone, PartialEq, Eq, Default)]
3095#[non_exhaustive] pub struct ExcludedUsersUpdateArg {
3097 pub users: Option<Vec<UserSelectorArg>>,
3099}
3100
3101impl ExcludedUsersUpdateArg {
3102 pub fn with_users(mut self, value: Vec<UserSelectorArg>) -> Self {
3103 self.users = Some(value);
3104 self
3105 }
3106}
3107
3108const EXCLUDED_USERS_UPDATE_ARG_FIELDS: &[&str] = &["users"];
3109impl ExcludedUsersUpdateArg {
3110 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3112 mut map: V,
3113 ) -> Result<ExcludedUsersUpdateArg, V::Error> {
3114 let mut field_users = None;
3115 while let Some(key) = map.next_key::<&str>()? {
3116 match key {
3117 "users" => {
3118 if field_users.is_some() {
3119 return Err(::serde::de::Error::duplicate_field("users"));
3120 }
3121 field_users = Some(map.next_value()?);
3122 }
3123 _ => {
3124 map.next_value::<::serde_json::Value>()?;
3126 }
3127 }
3128 }
3129 let result = ExcludedUsersUpdateArg {
3130 users: field_users.and_then(Option::flatten),
3131 };
3132 Ok(result)
3133 }
3134
3135 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3136 &self,
3137 s: &mut S::SerializeStruct,
3138 ) -> Result<(), S::Error> {
3139 use serde::ser::SerializeStruct;
3140 if let Some(val) = &self.users {
3141 s.serialize_field("users", val)?;
3142 }
3143 Ok(())
3144 }
3145}
3146
3147impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateArg {
3148 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3149 use serde::de::{MapAccess, Visitor};
3151 struct StructVisitor;
3152 impl<'de> Visitor<'de> for StructVisitor {
3153 type Value = ExcludedUsersUpdateArg;
3154 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3155 f.write_str("a ExcludedUsersUpdateArg struct")
3156 }
3157 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3158 ExcludedUsersUpdateArg::internal_deserialize(map)
3159 }
3160 }
3161 deserializer.deserialize_struct("ExcludedUsersUpdateArg", EXCLUDED_USERS_UPDATE_ARG_FIELDS, StructVisitor)
3162 }
3163}
3164
3165impl ::serde::ser::Serialize for ExcludedUsersUpdateArg {
3166 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3167 use serde::ser::SerializeStruct;
3169 let mut s = serializer.serialize_struct("ExcludedUsersUpdateArg", 1)?;
3170 self.internal_serialize::<S>(&mut s)?;
3171 s.end()
3172 }
3173}
3174
3175#[derive(Debug, Clone, PartialEq, Eq)]
3177#[non_exhaustive] pub enum ExcludedUsersUpdateError {
3179 UsersNotInTeam,
3181 TooManyUsers,
3183 Other,
3186}
3187
3188impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateError {
3189 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3190 use serde::de::{self, MapAccess, Visitor};
3192 struct EnumVisitor;
3193 impl<'de> Visitor<'de> for EnumVisitor {
3194 type Value = ExcludedUsersUpdateError;
3195 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3196 f.write_str("a ExcludedUsersUpdateError structure")
3197 }
3198 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3199 let tag: &str = match map.next_key()? {
3200 Some(".tag") => map.next_value()?,
3201 _ => return Err(de::Error::missing_field(".tag"))
3202 };
3203 let value = match tag {
3204 "users_not_in_team" => ExcludedUsersUpdateError::UsersNotInTeam,
3205 "too_many_users" => ExcludedUsersUpdateError::TooManyUsers,
3206 _ => ExcludedUsersUpdateError::Other,
3207 };
3208 crate::eat_json_fields(&mut map)?;
3209 Ok(value)
3210 }
3211 }
3212 const VARIANTS: &[&str] = &["users_not_in_team",
3213 "too_many_users",
3214 "other"];
3215 deserializer.deserialize_struct("ExcludedUsersUpdateError", VARIANTS, EnumVisitor)
3216 }
3217}
3218
3219impl ::serde::ser::Serialize for ExcludedUsersUpdateError {
3220 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3221 use serde::ser::SerializeStruct;
3223 match self {
3224 ExcludedUsersUpdateError::UsersNotInTeam => {
3225 let mut s = serializer.serialize_struct("ExcludedUsersUpdateError", 1)?;
3227 s.serialize_field(".tag", "users_not_in_team")?;
3228 s.end()
3229 }
3230 ExcludedUsersUpdateError::TooManyUsers => {
3231 let mut s = serializer.serialize_struct("ExcludedUsersUpdateError", 1)?;
3233 s.serialize_field(".tag", "too_many_users")?;
3234 s.end()
3235 }
3236 ExcludedUsersUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3237 }
3238 }
3239}
3240
3241impl ::std::error::Error for ExcludedUsersUpdateError {
3242}
3243
3244impl ::std::fmt::Display for ExcludedUsersUpdateError {
3245 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3246 match self {
3247 ExcludedUsersUpdateError::UsersNotInTeam => f.write_str("At least one of the users is not part of your team."),
3248 ExcludedUsersUpdateError::TooManyUsers => f.write_str("A maximum of 1000 users for each of addition/removal can be supplied."),
3249 _ => write!(f, "{:?}", *self),
3250 }
3251 }
3252}
3253
3254#[derive(Debug, Clone, PartialEq, Eq)]
3256#[non_exhaustive] pub struct ExcludedUsersUpdateResult {
3258 pub status: ExcludedUsersUpdateStatus,
3260}
3261
3262impl ExcludedUsersUpdateResult {
3263 pub fn new(status: ExcludedUsersUpdateStatus) -> Self {
3264 ExcludedUsersUpdateResult {
3265 status,
3266 }
3267 }
3268}
3269
3270const EXCLUDED_USERS_UPDATE_RESULT_FIELDS: &[&str] = &["status"];
3271impl ExcludedUsersUpdateResult {
3272 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3273 map: V,
3274 ) -> Result<ExcludedUsersUpdateResult, V::Error> {
3275 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3276 }
3277
3278 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3279 mut map: V,
3280 optional: bool,
3281 ) -> Result<Option<ExcludedUsersUpdateResult>, V::Error> {
3282 let mut field_status = None;
3283 let mut nothing = true;
3284 while let Some(key) = map.next_key::<&str>()? {
3285 nothing = false;
3286 match key {
3287 "status" => {
3288 if field_status.is_some() {
3289 return Err(::serde::de::Error::duplicate_field("status"));
3290 }
3291 field_status = Some(map.next_value()?);
3292 }
3293 _ => {
3294 map.next_value::<::serde_json::Value>()?;
3296 }
3297 }
3298 }
3299 if optional && nothing {
3300 return Ok(None);
3301 }
3302 let result = ExcludedUsersUpdateResult {
3303 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
3304 };
3305 Ok(Some(result))
3306 }
3307
3308 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3309 &self,
3310 s: &mut S::SerializeStruct,
3311 ) -> Result<(), S::Error> {
3312 use serde::ser::SerializeStruct;
3313 s.serialize_field("status", &self.status)?;
3314 Ok(())
3315 }
3316}
3317
3318impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateResult {
3319 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3320 use serde::de::{MapAccess, Visitor};
3322 struct StructVisitor;
3323 impl<'de> Visitor<'de> for StructVisitor {
3324 type Value = ExcludedUsersUpdateResult;
3325 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3326 f.write_str("a ExcludedUsersUpdateResult struct")
3327 }
3328 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3329 ExcludedUsersUpdateResult::internal_deserialize(map)
3330 }
3331 }
3332 deserializer.deserialize_struct("ExcludedUsersUpdateResult", EXCLUDED_USERS_UPDATE_RESULT_FIELDS, StructVisitor)
3333 }
3334}
3335
3336impl ::serde::ser::Serialize for ExcludedUsersUpdateResult {
3337 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3338 use serde::ser::SerializeStruct;
3340 let mut s = serializer.serialize_struct("ExcludedUsersUpdateResult", 1)?;
3341 self.internal_serialize::<S>(&mut s)?;
3342 s.end()
3343 }
3344}
3345
3346#[derive(Debug, Clone, PartialEq, Eq)]
3348#[non_exhaustive] pub enum ExcludedUsersUpdateStatus {
3350 Success,
3352 Other,
3355}
3356
3357impl<'de> ::serde::de::Deserialize<'de> for ExcludedUsersUpdateStatus {
3358 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3359 use serde::de::{self, MapAccess, Visitor};
3361 struct EnumVisitor;
3362 impl<'de> Visitor<'de> for EnumVisitor {
3363 type Value = ExcludedUsersUpdateStatus;
3364 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3365 f.write_str("a ExcludedUsersUpdateStatus structure")
3366 }
3367 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3368 let tag: &str = match map.next_key()? {
3369 Some(".tag") => map.next_value()?,
3370 _ => return Err(de::Error::missing_field(".tag"))
3371 };
3372 let value = match tag {
3373 "success" => ExcludedUsersUpdateStatus::Success,
3374 _ => ExcludedUsersUpdateStatus::Other,
3375 };
3376 crate::eat_json_fields(&mut map)?;
3377 Ok(value)
3378 }
3379 }
3380 const VARIANTS: &[&str] = &["success",
3381 "other"];
3382 deserializer.deserialize_struct("ExcludedUsersUpdateStatus", VARIANTS, EnumVisitor)
3383 }
3384}
3385
3386impl ::serde::ser::Serialize for ExcludedUsersUpdateStatus {
3387 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3388 use serde::ser::SerializeStruct;
3390 match self {
3391 ExcludedUsersUpdateStatus::Success => {
3392 let mut s = serializer.serialize_struct("ExcludedUsersUpdateStatus", 1)?;
3394 s.serialize_field(".tag", "success")?;
3395 s.end()
3396 }
3397 ExcludedUsersUpdateStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3398 }
3399 }
3400}
3401
3402#[derive(Debug, Clone, PartialEq, Eq)]
3404#[non_exhaustive] pub enum Feature {
3406 UploadApiRateLimit,
3408 HasTeamSharedDropbox,
3410 HasTeamFileEvents,
3412 HasTeamSelectiveSync,
3414 HasDistinctMemberHomes,
3416 Other,
3419}
3420
3421impl<'de> ::serde::de::Deserialize<'de> for Feature {
3422 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3423 use serde::de::{self, MapAccess, Visitor};
3425 struct EnumVisitor;
3426 impl<'de> Visitor<'de> for EnumVisitor {
3427 type Value = Feature;
3428 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3429 f.write_str("a Feature structure")
3430 }
3431 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3432 let tag: &str = match map.next_key()? {
3433 Some(".tag") => map.next_value()?,
3434 _ => return Err(de::Error::missing_field(".tag"))
3435 };
3436 let value = match tag {
3437 "upload_api_rate_limit" => Feature::UploadApiRateLimit,
3438 "has_team_shared_dropbox" => Feature::HasTeamSharedDropbox,
3439 "has_team_file_events" => Feature::HasTeamFileEvents,
3440 "has_team_selective_sync" => Feature::HasTeamSelectiveSync,
3441 "has_distinct_member_homes" => Feature::HasDistinctMemberHomes,
3442 _ => Feature::Other,
3443 };
3444 crate::eat_json_fields(&mut map)?;
3445 Ok(value)
3446 }
3447 }
3448 const VARIANTS: &[&str] = &["upload_api_rate_limit",
3449 "has_team_shared_dropbox",
3450 "has_team_file_events",
3451 "has_team_selective_sync",
3452 "has_distinct_member_homes",
3453 "other"];
3454 deserializer.deserialize_struct("Feature", VARIANTS, EnumVisitor)
3455 }
3456}
3457
3458impl ::serde::ser::Serialize for Feature {
3459 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3460 use serde::ser::SerializeStruct;
3462 match self {
3463 Feature::UploadApiRateLimit => {
3464 let mut s = serializer.serialize_struct("Feature", 1)?;
3466 s.serialize_field(".tag", "upload_api_rate_limit")?;
3467 s.end()
3468 }
3469 Feature::HasTeamSharedDropbox => {
3470 let mut s = serializer.serialize_struct("Feature", 1)?;
3472 s.serialize_field(".tag", "has_team_shared_dropbox")?;
3473 s.end()
3474 }
3475 Feature::HasTeamFileEvents => {
3476 let mut s = serializer.serialize_struct("Feature", 1)?;
3478 s.serialize_field(".tag", "has_team_file_events")?;
3479 s.end()
3480 }
3481 Feature::HasTeamSelectiveSync => {
3482 let mut s = serializer.serialize_struct("Feature", 1)?;
3484 s.serialize_field(".tag", "has_team_selective_sync")?;
3485 s.end()
3486 }
3487 Feature::HasDistinctMemberHomes => {
3488 let mut s = serializer.serialize_struct("Feature", 1)?;
3490 s.serialize_field(".tag", "has_distinct_member_homes")?;
3491 s.end()
3492 }
3493 Feature::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3494 }
3495 }
3496}
3497
3498#[derive(Debug, Clone, PartialEq, Eq)]
3501#[non_exhaustive] pub enum FeatureValue {
3503 UploadApiRateLimit(UploadApiRateLimitValue),
3504 HasTeamSharedDropbox(HasTeamSharedDropboxValue),
3505 HasTeamFileEvents(HasTeamFileEventsValue),
3506 HasTeamSelectiveSync(HasTeamSelectiveSyncValue),
3507 HasDistinctMemberHomes(HasDistinctMemberHomesValue),
3508 Other,
3511}
3512
3513impl<'de> ::serde::de::Deserialize<'de> for FeatureValue {
3514 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3515 use serde::de::{self, MapAccess, Visitor};
3517 struct EnumVisitor;
3518 impl<'de> Visitor<'de> for EnumVisitor {
3519 type Value = FeatureValue;
3520 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3521 f.write_str("a FeatureValue structure")
3522 }
3523 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3524 let tag: &str = match map.next_key()? {
3525 Some(".tag") => map.next_value()?,
3526 _ => return Err(de::Error::missing_field(".tag"))
3527 };
3528 let value = match tag {
3529 "upload_api_rate_limit" => {
3530 match map.next_key()? {
3531 Some("upload_api_rate_limit") => FeatureValue::UploadApiRateLimit(map.next_value()?),
3532 None => return Err(de::Error::missing_field("upload_api_rate_limit")),
3533 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3534 }
3535 }
3536 "has_team_shared_dropbox" => {
3537 match map.next_key()? {
3538 Some("has_team_shared_dropbox") => FeatureValue::HasTeamSharedDropbox(map.next_value()?),
3539 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
3540 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3541 }
3542 }
3543 "has_team_file_events" => {
3544 match map.next_key()? {
3545 Some("has_team_file_events") => FeatureValue::HasTeamFileEvents(map.next_value()?),
3546 None => return Err(de::Error::missing_field("has_team_file_events")),
3547 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3548 }
3549 }
3550 "has_team_selective_sync" => {
3551 match map.next_key()? {
3552 Some("has_team_selective_sync") => FeatureValue::HasTeamSelectiveSync(map.next_value()?),
3553 None => return Err(de::Error::missing_field("has_team_selective_sync")),
3554 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3555 }
3556 }
3557 "has_distinct_member_homes" => {
3558 match map.next_key()? {
3559 Some("has_distinct_member_homes") => FeatureValue::HasDistinctMemberHomes(map.next_value()?),
3560 None => return Err(de::Error::missing_field("has_distinct_member_homes")),
3561 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3562 }
3563 }
3564 _ => FeatureValue::Other,
3565 };
3566 crate::eat_json_fields(&mut map)?;
3567 Ok(value)
3568 }
3569 }
3570 const VARIANTS: &[&str] = &["upload_api_rate_limit",
3571 "has_team_shared_dropbox",
3572 "has_team_file_events",
3573 "has_team_selective_sync",
3574 "has_distinct_member_homes",
3575 "other"];
3576 deserializer.deserialize_struct("FeatureValue", VARIANTS, EnumVisitor)
3577 }
3578}
3579
3580impl ::serde::ser::Serialize for FeatureValue {
3581 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3582 use serde::ser::SerializeStruct;
3584 match self {
3585 FeatureValue::UploadApiRateLimit(x) => {
3586 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3588 s.serialize_field(".tag", "upload_api_rate_limit")?;
3589 s.serialize_field("upload_api_rate_limit", x)?;
3590 s.end()
3591 }
3592 FeatureValue::HasTeamSharedDropbox(x) => {
3593 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3595 s.serialize_field(".tag", "has_team_shared_dropbox")?;
3596 s.serialize_field("has_team_shared_dropbox", x)?;
3597 s.end()
3598 }
3599 FeatureValue::HasTeamFileEvents(x) => {
3600 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3602 s.serialize_field(".tag", "has_team_file_events")?;
3603 s.serialize_field("has_team_file_events", x)?;
3604 s.end()
3605 }
3606 FeatureValue::HasTeamSelectiveSync(x) => {
3607 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3609 s.serialize_field(".tag", "has_team_selective_sync")?;
3610 s.serialize_field("has_team_selective_sync", x)?;
3611 s.end()
3612 }
3613 FeatureValue::HasDistinctMemberHomes(x) => {
3614 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3616 s.serialize_field(".tag", "has_distinct_member_homes")?;
3617 s.serialize_field("has_distinct_member_homes", x)?;
3618 s.end()
3619 }
3620 FeatureValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3621 }
3622 }
3623}
3624
3625#[derive(Debug, Clone, PartialEq, Eq)]
3626#[non_exhaustive] pub struct FeaturesGetValuesBatchArg {
3628 pub features: Vec<Feature>,
3631}
3632
3633impl FeaturesGetValuesBatchArg {
3634 pub fn new(features: Vec<Feature>) -> Self {
3635 FeaturesGetValuesBatchArg {
3636 features,
3637 }
3638 }
3639}
3640
3641const FEATURES_GET_VALUES_BATCH_ARG_FIELDS: &[&str] = &["features"];
3642impl FeaturesGetValuesBatchArg {
3643 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3644 map: V,
3645 ) -> Result<FeaturesGetValuesBatchArg, V::Error> {
3646 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3647 }
3648
3649 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3650 mut map: V,
3651 optional: bool,
3652 ) -> Result<Option<FeaturesGetValuesBatchArg>, V::Error> {
3653 let mut field_features = None;
3654 let mut nothing = true;
3655 while let Some(key) = map.next_key::<&str>()? {
3656 nothing = false;
3657 match key {
3658 "features" => {
3659 if field_features.is_some() {
3660 return Err(::serde::de::Error::duplicate_field("features"));
3661 }
3662 field_features = Some(map.next_value()?);
3663 }
3664 _ => {
3665 map.next_value::<::serde_json::Value>()?;
3667 }
3668 }
3669 }
3670 if optional && nothing {
3671 return Ok(None);
3672 }
3673 let result = FeaturesGetValuesBatchArg {
3674 features: field_features.ok_or_else(|| ::serde::de::Error::missing_field("features"))?,
3675 };
3676 Ok(Some(result))
3677 }
3678
3679 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3680 &self,
3681 s: &mut S::SerializeStruct,
3682 ) -> Result<(), S::Error> {
3683 use serde::ser::SerializeStruct;
3684 s.serialize_field("features", &self.features)?;
3685 Ok(())
3686 }
3687}
3688
3689impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchArg {
3690 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3691 use serde::de::{MapAccess, Visitor};
3693 struct StructVisitor;
3694 impl<'de> Visitor<'de> for StructVisitor {
3695 type Value = FeaturesGetValuesBatchArg;
3696 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3697 f.write_str("a FeaturesGetValuesBatchArg struct")
3698 }
3699 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3700 FeaturesGetValuesBatchArg::internal_deserialize(map)
3701 }
3702 }
3703 deserializer.deserialize_struct("FeaturesGetValuesBatchArg", FEATURES_GET_VALUES_BATCH_ARG_FIELDS, StructVisitor)
3704 }
3705}
3706
3707impl ::serde::ser::Serialize for FeaturesGetValuesBatchArg {
3708 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3709 use serde::ser::SerializeStruct;
3711 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchArg", 1)?;
3712 self.internal_serialize::<S>(&mut s)?;
3713 s.end()
3714 }
3715}
3716
3717#[derive(Debug, Clone, PartialEq, Eq)]
3718#[non_exhaustive] pub enum FeaturesGetValuesBatchError {
3720 EmptyFeaturesList,
3723 Other,
3726}
3727
3728impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchError {
3729 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3730 use serde::de::{self, MapAccess, Visitor};
3732 struct EnumVisitor;
3733 impl<'de> Visitor<'de> for EnumVisitor {
3734 type Value = FeaturesGetValuesBatchError;
3735 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3736 f.write_str("a FeaturesGetValuesBatchError structure")
3737 }
3738 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3739 let tag: &str = match map.next_key()? {
3740 Some(".tag") => map.next_value()?,
3741 _ => return Err(de::Error::missing_field(".tag"))
3742 };
3743 let value = match tag {
3744 "empty_features_list" => FeaturesGetValuesBatchError::EmptyFeaturesList,
3745 _ => FeaturesGetValuesBatchError::Other,
3746 };
3747 crate::eat_json_fields(&mut map)?;
3748 Ok(value)
3749 }
3750 }
3751 const VARIANTS: &[&str] = &["empty_features_list",
3752 "other"];
3753 deserializer.deserialize_struct("FeaturesGetValuesBatchError", VARIANTS, EnumVisitor)
3754 }
3755}
3756
3757impl ::serde::ser::Serialize for FeaturesGetValuesBatchError {
3758 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3759 use serde::ser::SerializeStruct;
3761 match self {
3762 FeaturesGetValuesBatchError::EmptyFeaturesList => {
3763 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchError", 1)?;
3765 s.serialize_field(".tag", "empty_features_list")?;
3766 s.end()
3767 }
3768 FeaturesGetValuesBatchError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3769 }
3770 }
3771}
3772
3773impl ::std::error::Error for FeaturesGetValuesBatchError {
3774}
3775
3776impl ::std::fmt::Display for FeaturesGetValuesBatchError {
3777 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3778 write!(f, "{:?}", *self)
3779 }
3780}
3781
3782#[derive(Debug, Clone, PartialEq, Eq)]
3783#[non_exhaustive] pub struct FeaturesGetValuesBatchResult {
3785 pub values: Vec<FeatureValue>,
3786}
3787
3788impl FeaturesGetValuesBatchResult {
3789 pub fn new(values: Vec<FeatureValue>) -> Self {
3790 FeaturesGetValuesBatchResult {
3791 values,
3792 }
3793 }
3794}
3795
3796const FEATURES_GET_VALUES_BATCH_RESULT_FIELDS: &[&str] = &["values"];
3797impl FeaturesGetValuesBatchResult {
3798 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3799 map: V,
3800 ) -> Result<FeaturesGetValuesBatchResult, V::Error> {
3801 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3802 }
3803
3804 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3805 mut map: V,
3806 optional: bool,
3807 ) -> Result<Option<FeaturesGetValuesBatchResult>, V::Error> {
3808 let mut field_values = None;
3809 let mut nothing = true;
3810 while let Some(key) = map.next_key::<&str>()? {
3811 nothing = false;
3812 match key {
3813 "values" => {
3814 if field_values.is_some() {
3815 return Err(::serde::de::Error::duplicate_field("values"));
3816 }
3817 field_values = Some(map.next_value()?);
3818 }
3819 _ => {
3820 map.next_value::<::serde_json::Value>()?;
3822 }
3823 }
3824 }
3825 if optional && nothing {
3826 return Ok(None);
3827 }
3828 let result = FeaturesGetValuesBatchResult {
3829 values: field_values.ok_or_else(|| ::serde::de::Error::missing_field("values"))?,
3830 };
3831 Ok(Some(result))
3832 }
3833
3834 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3835 &self,
3836 s: &mut S::SerializeStruct,
3837 ) -> Result<(), S::Error> {
3838 use serde::ser::SerializeStruct;
3839 s.serialize_field("values", &self.values)?;
3840 Ok(())
3841 }
3842}
3843
3844impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchResult {
3845 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3846 use serde::de::{MapAccess, Visitor};
3848 struct StructVisitor;
3849 impl<'de> Visitor<'de> for StructVisitor {
3850 type Value = FeaturesGetValuesBatchResult;
3851 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3852 f.write_str("a FeaturesGetValuesBatchResult struct")
3853 }
3854 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3855 FeaturesGetValuesBatchResult::internal_deserialize(map)
3856 }
3857 }
3858 deserializer.deserialize_struct("FeaturesGetValuesBatchResult", FEATURES_GET_VALUES_BATCH_RESULT_FIELDS, StructVisitor)
3859 }
3860}
3861
3862impl ::serde::ser::Serialize for FeaturesGetValuesBatchResult {
3863 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3864 use serde::ser::SerializeStruct;
3866 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchResult", 1)?;
3867 self.internal_serialize::<S>(&mut s)?;
3868 s.end()
3869 }
3870}
3871
3872#[derive(Debug, Clone, PartialEq, Eq)]
3875#[non_exhaustive] pub struct GetActivityReport {
3877 pub start_date: String,
3879 pub adds: NumberPerDay,
3881 pub edits: NumberPerDay,
3884 pub deletes: NumberPerDay,
3886 pub active_users_28_day: NumberPerDay,
3888 pub active_users_7_day: NumberPerDay,
3890 pub active_users_1_day: NumberPerDay,
3892 pub active_shared_folders_28_day: NumberPerDay,
3894 pub active_shared_folders_7_day: NumberPerDay,
3896 pub active_shared_folders_1_day: NumberPerDay,
3898 pub shared_links_created: NumberPerDay,
3900 pub shared_links_viewed_by_team: NumberPerDay,
3902 pub shared_links_viewed_by_outside_user: NumberPerDay,
3905 pub shared_links_viewed_by_not_logged_in: NumberPerDay,
3907 pub shared_links_viewed_total: NumberPerDay,
3909}
3910
3911impl GetActivityReport {
3912 pub fn new(
3913 start_date: String,
3914 adds: NumberPerDay,
3915 edits: NumberPerDay,
3916 deletes: NumberPerDay,
3917 active_users_28_day: NumberPerDay,
3918 active_users_7_day: NumberPerDay,
3919 active_users_1_day: NumberPerDay,
3920 active_shared_folders_28_day: NumberPerDay,
3921 active_shared_folders_7_day: NumberPerDay,
3922 active_shared_folders_1_day: NumberPerDay,
3923 shared_links_created: NumberPerDay,
3924 shared_links_viewed_by_team: NumberPerDay,
3925 shared_links_viewed_by_outside_user: NumberPerDay,
3926 shared_links_viewed_by_not_logged_in: NumberPerDay,
3927 shared_links_viewed_total: NumberPerDay,
3928 ) -> Self {
3929 GetActivityReport {
3930 start_date,
3931 adds,
3932 edits,
3933 deletes,
3934 active_users_28_day,
3935 active_users_7_day,
3936 active_users_1_day,
3937 active_shared_folders_28_day,
3938 active_shared_folders_7_day,
3939 active_shared_folders_1_day,
3940 shared_links_created,
3941 shared_links_viewed_by_team,
3942 shared_links_viewed_by_outside_user,
3943 shared_links_viewed_by_not_logged_in,
3944 shared_links_viewed_total,
3945 }
3946 }
3947}
3948
3949const GET_ACTIVITY_REPORT_FIELDS: &[&str] = &["start_date",
3950 "adds",
3951 "edits",
3952 "deletes",
3953 "active_users_28_day",
3954 "active_users_7_day",
3955 "active_users_1_day",
3956 "active_shared_folders_28_day",
3957 "active_shared_folders_7_day",
3958 "active_shared_folders_1_day",
3959 "shared_links_created",
3960 "shared_links_viewed_by_team",
3961 "shared_links_viewed_by_outside_user",
3962 "shared_links_viewed_by_not_logged_in",
3963 "shared_links_viewed_total"];
3964impl GetActivityReport {
3965 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3966 map: V,
3967 ) -> Result<GetActivityReport, V::Error> {
3968 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3969 }
3970
3971 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3972 mut map: V,
3973 optional: bool,
3974 ) -> Result<Option<GetActivityReport>, V::Error> {
3975 let mut field_start_date = None;
3976 let mut field_adds = None;
3977 let mut field_edits = None;
3978 let mut field_deletes = None;
3979 let mut field_active_users_28_day = None;
3980 let mut field_active_users_7_day = None;
3981 let mut field_active_users_1_day = None;
3982 let mut field_active_shared_folders_28_day = None;
3983 let mut field_active_shared_folders_7_day = None;
3984 let mut field_active_shared_folders_1_day = None;
3985 let mut field_shared_links_created = None;
3986 let mut field_shared_links_viewed_by_team = None;
3987 let mut field_shared_links_viewed_by_outside_user = None;
3988 let mut field_shared_links_viewed_by_not_logged_in = None;
3989 let mut field_shared_links_viewed_total = None;
3990 let mut nothing = true;
3991 while let Some(key) = map.next_key::<&str>()? {
3992 nothing = false;
3993 match key {
3994 "start_date" => {
3995 if field_start_date.is_some() {
3996 return Err(::serde::de::Error::duplicate_field("start_date"));
3997 }
3998 field_start_date = Some(map.next_value()?);
3999 }
4000 "adds" => {
4001 if field_adds.is_some() {
4002 return Err(::serde::de::Error::duplicate_field("adds"));
4003 }
4004 field_adds = Some(map.next_value()?);
4005 }
4006 "edits" => {
4007 if field_edits.is_some() {
4008 return Err(::serde::de::Error::duplicate_field("edits"));
4009 }
4010 field_edits = Some(map.next_value()?);
4011 }
4012 "deletes" => {
4013 if field_deletes.is_some() {
4014 return Err(::serde::de::Error::duplicate_field("deletes"));
4015 }
4016 field_deletes = Some(map.next_value()?);
4017 }
4018 "active_users_28_day" => {
4019 if field_active_users_28_day.is_some() {
4020 return Err(::serde::de::Error::duplicate_field("active_users_28_day"));
4021 }
4022 field_active_users_28_day = Some(map.next_value()?);
4023 }
4024 "active_users_7_day" => {
4025 if field_active_users_7_day.is_some() {
4026 return Err(::serde::de::Error::duplicate_field("active_users_7_day"));
4027 }
4028 field_active_users_7_day = Some(map.next_value()?);
4029 }
4030 "active_users_1_day" => {
4031 if field_active_users_1_day.is_some() {
4032 return Err(::serde::de::Error::duplicate_field("active_users_1_day"));
4033 }
4034 field_active_users_1_day = Some(map.next_value()?);
4035 }
4036 "active_shared_folders_28_day" => {
4037 if field_active_shared_folders_28_day.is_some() {
4038 return Err(::serde::de::Error::duplicate_field("active_shared_folders_28_day"));
4039 }
4040 field_active_shared_folders_28_day = Some(map.next_value()?);
4041 }
4042 "active_shared_folders_7_day" => {
4043 if field_active_shared_folders_7_day.is_some() {
4044 return Err(::serde::de::Error::duplicate_field("active_shared_folders_7_day"));
4045 }
4046 field_active_shared_folders_7_day = Some(map.next_value()?);
4047 }
4048 "active_shared_folders_1_day" => {
4049 if field_active_shared_folders_1_day.is_some() {
4050 return Err(::serde::de::Error::duplicate_field("active_shared_folders_1_day"));
4051 }
4052 field_active_shared_folders_1_day = Some(map.next_value()?);
4053 }
4054 "shared_links_created" => {
4055 if field_shared_links_created.is_some() {
4056 return Err(::serde::de::Error::duplicate_field("shared_links_created"));
4057 }
4058 field_shared_links_created = Some(map.next_value()?);
4059 }
4060 "shared_links_viewed_by_team" => {
4061 if field_shared_links_viewed_by_team.is_some() {
4062 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_team"));
4063 }
4064 field_shared_links_viewed_by_team = Some(map.next_value()?);
4065 }
4066 "shared_links_viewed_by_outside_user" => {
4067 if field_shared_links_viewed_by_outside_user.is_some() {
4068 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_outside_user"));
4069 }
4070 field_shared_links_viewed_by_outside_user = Some(map.next_value()?);
4071 }
4072 "shared_links_viewed_by_not_logged_in" => {
4073 if field_shared_links_viewed_by_not_logged_in.is_some() {
4074 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_not_logged_in"));
4075 }
4076 field_shared_links_viewed_by_not_logged_in = Some(map.next_value()?);
4077 }
4078 "shared_links_viewed_total" => {
4079 if field_shared_links_viewed_total.is_some() {
4080 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_total"));
4081 }
4082 field_shared_links_viewed_total = Some(map.next_value()?);
4083 }
4084 _ => {
4085 map.next_value::<::serde_json::Value>()?;
4087 }
4088 }
4089 }
4090 if optional && nothing {
4091 return Ok(None);
4092 }
4093 let result = GetActivityReport {
4094 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4095 adds: field_adds.ok_or_else(|| ::serde::de::Error::missing_field("adds"))?,
4096 edits: field_edits.ok_or_else(|| ::serde::de::Error::missing_field("edits"))?,
4097 deletes: field_deletes.ok_or_else(|| ::serde::de::Error::missing_field("deletes"))?,
4098 active_users_28_day: field_active_users_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_28_day"))?,
4099 active_users_7_day: field_active_users_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_7_day"))?,
4100 active_users_1_day: field_active_users_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_1_day"))?,
4101 active_shared_folders_28_day: field_active_shared_folders_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_28_day"))?,
4102 active_shared_folders_7_day: field_active_shared_folders_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_7_day"))?,
4103 active_shared_folders_1_day: field_active_shared_folders_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_1_day"))?,
4104 shared_links_created: field_shared_links_created.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_created"))?,
4105 shared_links_viewed_by_team: field_shared_links_viewed_by_team.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_by_team"))?,
4106 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"))?,
4107 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"))?,
4108 shared_links_viewed_total: field_shared_links_viewed_total.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_total"))?,
4109 };
4110 Ok(Some(result))
4111 }
4112
4113 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4114 &self,
4115 s: &mut S::SerializeStruct,
4116 ) -> Result<(), S::Error> {
4117 use serde::ser::SerializeStruct;
4118 s.serialize_field("start_date", &self.start_date)?;
4119 s.serialize_field("adds", &self.adds)?;
4120 s.serialize_field("edits", &self.edits)?;
4121 s.serialize_field("deletes", &self.deletes)?;
4122 s.serialize_field("active_users_28_day", &self.active_users_28_day)?;
4123 s.serialize_field("active_users_7_day", &self.active_users_7_day)?;
4124 s.serialize_field("active_users_1_day", &self.active_users_1_day)?;
4125 s.serialize_field("active_shared_folders_28_day", &self.active_shared_folders_28_day)?;
4126 s.serialize_field("active_shared_folders_7_day", &self.active_shared_folders_7_day)?;
4127 s.serialize_field("active_shared_folders_1_day", &self.active_shared_folders_1_day)?;
4128 s.serialize_field("shared_links_created", &self.shared_links_created)?;
4129 s.serialize_field("shared_links_viewed_by_team", &self.shared_links_viewed_by_team)?;
4130 s.serialize_field("shared_links_viewed_by_outside_user", &self.shared_links_viewed_by_outside_user)?;
4131 s.serialize_field("shared_links_viewed_by_not_logged_in", &self.shared_links_viewed_by_not_logged_in)?;
4132 s.serialize_field("shared_links_viewed_total", &self.shared_links_viewed_total)?;
4133 Ok(())
4134 }
4135}
4136
4137impl<'de> ::serde::de::Deserialize<'de> for GetActivityReport {
4138 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4139 use serde::de::{MapAccess, Visitor};
4141 struct StructVisitor;
4142 impl<'de> Visitor<'de> for StructVisitor {
4143 type Value = GetActivityReport;
4144 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4145 f.write_str("a GetActivityReport struct")
4146 }
4147 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4148 GetActivityReport::internal_deserialize(map)
4149 }
4150 }
4151 deserializer.deserialize_struct("GetActivityReport", GET_ACTIVITY_REPORT_FIELDS, StructVisitor)
4152 }
4153}
4154
4155impl ::serde::ser::Serialize for GetActivityReport {
4156 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4157 use serde::ser::SerializeStruct;
4159 let mut s = serializer.serialize_struct("GetActivityReport", 15)?;
4160 self.internal_serialize::<S>(&mut s)?;
4161 s.end()
4162 }
4163}
4164
4165impl From<GetActivityReport> for BaseDfbReport {
4167 fn from(subtype: GetActivityReport) -> Self {
4168 Self {
4169 start_date: subtype.start_date,
4170 }
4171 }
4172}
4173#[derive(Debug, Clone, PartialEq, Eq)]
4177#[non_exhaustive] pub struct GetDevicesReport {
4179 pub start_date: String,
4181 pub active_1_day: DevicesActive,
4183 pub active_7_day: DevicesActive,
4185 pub active_28_day: DevicesActive,
4187}
4188
4189impl GetDevicesReport {
4190 pub fn new(
4191 start_date: String,
4192 active_1_day: DevicesActive,
4193 active_7_day: DevicesActive,
4194 active_28_day: DevicesActive,
4195 ) -> Self {
4196 GetDevicesReport {
4197 start_date,
4198 active_1_day,
4199 active_7_day,
4200 active_28_day,
4201 }
4202 }
4203}
4204
4205const GET_DEVICES_REPORT_FIELDS: &[&str] = &["start_date",
4206 "active_1_day",
4207 "active_7_day",
4208 "active_28_day"];
4209impl GetDevicesReport {
4210 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4211 map: V,
4212 ) -> Result<GetDevicesReport, V::Error> {
4213 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4214 }
4215
4216 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4217 mut map: V,
4218 optional: bool,
4219 ) -> Result<Option<GetDevicesReport>, V::Error> {
4220 let mut field_start_date = None;
4221 let mut field_active_1_day = None;
4222 let mut field_active_7_day = None;
4223 let mut field_active_28_day = None;
4224 let mut nothing = true;
4225 while let Some(key) = map.next_key::<&str>()? {
4226 nothing = false;
4227 match key {
4228 "start_date" => {
4229 if field_start_date.is_some() {
4230 return Err(::serde::de::Error::duplicate_field("start_date"));
4231 }
4232 field_start_date = Some(map.next_value()?);
4233 }
4234 "active_1_day" => {
4235 if field_active_1_day.is_some() {
4236 return Err(::serde::de::Error::duplicate_field("active_1_day"));
4237 }
4238 field_active_1_day = Some(map.next_value()?);
4239 }
4240 "active_7_day" => {
4241 if field_active_7_day.is_some() {
4242 return Err(::serde::de::Error::duplicate_field("active_7_day"));
4243 }
4244 field_active_7_day = Some(map.next_value()?);
4245 }
4246 "active_28_day" => {
4247 if field_active_28_day.is_some() {
4248 return Err(::serde::de::Error::duplicate_field("active_28_day"));
4249 }
4250 field_active_28_day = Some(map.next_value()?);
4251 }
4252 _ => {
4253 map.next_value::<::serde_json::Value>()?;
4255 }
4256 }
4257 }
4258 if optional && nothing {
4259 return Ok(None);
4260 }
4261 let result = GetDevicesReport {
4262 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4263 active_1_day: field_active_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_1_day"))?,
4264 active_7_day: field_active_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_7_day"))?,
4265 active_28_day: field_active_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_28_day"))?,
4266 };
4267 Ok(Some(result))
4268 }
4269
4270 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4271 &self,
4272 s: &mut S::SerializeStruct,
4273 ) -> Result<(), S::Error> {
4274 use serde::ser::SerializeStruct;
4275 s.serialize_field("start_date", &self.start_date)?;
4276 s.serialize_field("active_1_day", &self.active_1_day)?;
4277 s.serialize_field("active_7_day", &self.active_7_day)?;
4278 s.serialize_field("active_28_day", &self.active_28_day)?;
4279 Ok(())
4280 }
4281}
4282
4283impl<'de> ::serde::de::Deserialize<'de> for GetDevicesReport {
4284 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4285 use serde::de::{MapAccess, Visitor};
4287 struct StructVisitor;
4288 impl<'de> Visitor<'de> for StructVisitor {
4289 type Value = GetDevicesReport;
4290 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4291 f.write_str("a GetDevicesReport struct")
4292 }
4293 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4294 GetDevicesReport::internal_deserialize(map)
4295 }
4296 }
4297 deserializer.deserialize_struct("GetDevicesReport", GET_DEVICES_REPORT_FIELDS, StructVisitor)
4298 }
4299}
4300
4301impl ::serde::ser::Serialize for GetDevicesReport {
4302 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4303 use serde::ser::SerializeStruct;
4305 let mut s = serializer.serialize_struct("GetDevicesReport", 4)?;
4306 self.internal_serialize::<S>(&mut s)?;
4307 s.end()
4308 }
4309}
4310
4311impl From<GetDevicesReport> for BaseDfbReport {
4313 fn from(subtype: GetDevicesReport) -> Self {
4314 Self {
4315 start_date: subtype.start_date,
4316 }
4317 }
4318}
4319#[derive(Debug, Clone, PartialEq, Eq)]
4322#[non_exhaustive] pub struct GetMembershipReport {
4324 pub start_date: String,
4326 pub team_size: NumberPerDay,
4328 pub pending_invites: NumberPerDay,
4330 pub members_joined: NumberPerDay,
4332 pub suspended_members: NumberPerDay,
4334 pub licenses: NumberPerDay,
4336}
4337
4338impl GetMembershipReport {
4339 pub fn new(
4340 start_date: String,
4341 team_size: NumberPerDay,
4342 pending_invites: NumberPerDay,
4343 members_joined: NumberPerDay,
4344 suspended_members: NumberPerDay,
4345 licenses: NumberPerDay,
4346 ) -> Self {
4347 GetMembershipReport {
4348 start_date,
4349 team_size,
4350 pending_invites,
4351 members_joined,
4352 suspended_members,
4353 licenses,
4354 }
4355 }
4356}
4357
4358const GET_MEMBERSHIP_REPORT_FIELDS: &[&str] = &["start_date",
4359 "team_size",
4360 "pending_invites",
4361 "members_joined",
4362 "suspended_members",
4363 "licenses"];
4364impl GetMembershipReport {
4365 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4366 map: V,
4367 ) -> Result<GetMembershipReport, V::Error> {
4368 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4369 }
4370
4371 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4372 mut map: V,
4373 optional: bool,
4374 ) -> Result<Option<GetMembershipReport>, V::Error> {
4375 let mut field_start_date = None;
4376 let mut field_team_size = None;
4377 let mut field_pending_invites = None;
4378 let mut field_members_joined = None;
4379 let mut field_suspended_members = None;
4380 let mut field_licenses = None;
4381 let mut nothing = true;
4382 while let Some(key) = map.next_key::<&str>()? {
4383 nothing = false;
4384 match key {
4385 "start_date" => {
4386 if field_start_date.is_some() {
4387 return Err(::serde::de::Error::duplicate_field("start_date"));
4388 }
4389 field_start_date = Some(map.next_value()?);
4390 }
4391 "team_size" => {
4392 if field_team_size.is_some() {
4393 return Err(::serde::de::Error::duplicate_field("team_size"));
4394 }
4395 field_team_size = Some(map.next_value()?);
4396 }
4397 "pending_invites" => {
4398 if field_pending_invites.is_some() {
4399 return Err(::serde::de::Error::duplicate_field("pending_invites"));
4400 }
4401 field_pending_invites = Some(map.next_value()?);
4402 }
4403 "members_joined" => {
4404 if field_members_joined.is_some() {
4405 return Err(::serde::de::Error::duplicate_field("members_joined"));
4406 }
4407 field_members_joined = Some(map.next_value()?);
4408 }
4409 "suspended_members" => {
4410 if field_suspended_members.is_some() {
4411 return Err(::serde::de::Error::duplicate_field("suspended_members"));
4412 }
4413 field_suspended_members = Some(map.next_value()?);
4414 }
4415 "licenses" => {
4416 if field_licenses.is_some() {
4417 return Err(::serde::de::Error::duplicate_field("licenses"));
4418 }
4419 field_licenses = Some(map.next_value()?);
4420 }
4421 _ => {
4422 map.next_value::<::serde_json::Value>()?;
4424 }
4425 }
4426 }
4427 if optional && nothing {
4428 return Ok(None);
4429 }
4430 let result = GetMembershipReport {
4431 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4432 team_size: field_team_size.ok_or_else(|| ::serde::de::Error::missing_field("team_size"))?,
4433 pending_invites: field_pending_invites.ok_or_else(|| ::serde::de::Error::missing_field("pending_invites"))?,
4434 members_joined: field_members_joined.ok_or_else(|| ::serde::de::Error::missing_field("members_joined"))?,
4435 suspended_members: field_suspended_members.ok_or_else(|| ::serde::de::Error::missing_field("suspended_members"))?,
4436 licenses: field_licenses.ok_or_else(|| ::serde::de::Error::missing_field("licenses"))?,
4437 };
4438 Ok(Some(result))
4439 }
4440
4441 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4442 &self,
4443 s: &mut S::SerializeStruct,
4444 ) -> Result<(), S::Error> {
4445 use serde::ser::SerializeStruct;
4446 s.serialize_field("start_date", &self.start_date)?;
4447 s.serialize_field("team_size", &self.team_size)?;
4448 s.serialize_field("pending_invites", &self.pending_invites)?;
4449 s.serialize_field("members_joined", &self.members_joined)?;
4450 s.serialize_field("suspended_members", &self.suspended_members)?;
4451 s.serialize_field("licenses", &self.licenses)?;
4452 Ok(())
4453 }
4454}
4455
4456impl<'de> ::serde::de::Deserialize<'de> for GetMembershipReport {
4457 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4458 use serde::de::{MapAccess, Visitor};
4460 struct StructVisitor;
4461 impl<'de> Visitor<'de> for StructVisitor {
4462 type Value = GetMembershipReport;
4463 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4464 f.write_str("a GetMembershipReport struct")
4465 }
4466 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4467 GetMembershipReport::internal_deserialize(map)
4468 }
4469 }
4470 deserializer.deserialize_struct("GetMembershipReport", GET_MEMBERSHIP_REPORT_FIELDS, StructVisitor)
4471 }
4472}
4473
4474impl ::serde::ser::Serialize for GetMembershipReport {
4475 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4476 use serde::ser::SerializeStruct;
4478 let mut s = serializer.serialize_struct("GetMembershipReport", 6)?;
4479 self.internal_serialize::<S>(&mut s)?;
4480 s.end()
4481 }
4482}
4483
4484impl From<GetMembershipReport> for BaseDfbReport {
4486 fn from(subtype: GetMembershipReport) -> Self {
4487 Self {
4488 start_date: subtype.start_date,
4489 }
4490 }
4491}
4492#[derive(Debug, Clone, PartialEq, Eq)]
4495#[non_exhaustive] pub struct GetStorageReport {
4497 pub start_date: String,
4499 pub total_usage: NumberPerDay,
4501 pub shared_usage: NumberPerDay,
4503 pub unshared_usage: NumberPerDay,
4505 pub shared_folders: NumberPerDay,
4507 pub member_storage_map: Vec<Vec<StorageBucket>>,
4512}
4513
4514impl GetStorageReport {
4515 pub fn new(
4516 start_date: String,
4517 total_usage: NumberPerDay,
4518 shared_usage: NumberPerDay,
4519 unshared_usage: NumberPerDay,
4520 shared_folders: NumberPerDay,
4521 member_storage_map: Vec<Vec<StorageBucket>>,
4522 ) -> Self {
4523 GetStorageReport {
4524 start_date,
4525 total_usage,
4526 shared_usage,
4527 unshared_usage,
4528 shared_folders,
4529 member_storage_map,
4530 }
4531 }
4532}
4533
4534const GET_STORAGE_REPORT_FIELDS: &[&str] = &["start_date",
4535 "total_usage",
4536 "shared_usage",
4537 "unshared_usage",
4538 "shared_folders",
4539 "member_storage_map"];
4540impl GetStorageReport {
4541 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4542 map: V,
4543 ) -> Result<GetStorageReport, V::Error> {
4544 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4545 }
4546
4547 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4548 mut map: V,
4549 optional: bool,
4550 ) -> Result<Option<GetStorageReport>, V::Error> {
4551 let mut field_start_date = None;
4552 let mut field_total_usage = None;
4553 let mut field_shared_usage = None;
4554 let mut field_unshared_usage = None;
4555 let mut field_shared_folders = None;
4556 let mut field_member_storage_map = None;
4557 let mut nothing = true;
4558 while let Some(key) = map.next_key::<&str>()? {
4559 nothing = false;
4560 match key {
4561 "start_date" => {
4562 if field_start_date.is_some() {
4563 return Err(::serde::de::Error::duplicate_field("start_date"));
4564 }
4565 field_start_date = Some(map.next_value()?);
4566 }
4567 "total_usage" => {
4568 if field_total_usage.is_some() {
4569 return Err(::serde::de::Error::duplicate_field("total_usage"));
4570 }
4571 field_total_usage = Some(map.next_value()?);
4572 }
4573 "shared_usage" => {
4574 if field_shared_usage.is_some() {
4575 return Err(::serde::de::Error::duplicate_field("shared_usage"));
4576 }
4577 field_shared_usage = Some(map.next_value()?);
4578 }
4579 "unshared_usage" => {
4580 if field_unshared_usage.is_some() {
4581 return Err(::serde::de::Error::duplicate_field("unshared_usage"));
4582 }
4583 field_unshared_usage = Some(map.next_value()?);
4584 }
4585 "shared_folders" => {
4586 if field_shared_folders.is_some() {
4587 return Err(::serde::de::Error::duplicate_field("shared_folders"));
4588 }
4589 field_shared_folders = Some(map.next_value()?);
4590 }
4591 "member_storage_map" => {
4592 if field_member_storage_map.is_some() {
4593 return Err(::serde::de::Error::duplicate_field("member_storage_map"));
4594 }
4595 field_member_storage_map = Some(map.next_value()?);
4596 }
4597 _ => {
4598 map.next_value::<::serde_json::Value>()?;
4600 }
4601 }
4602 }
4603 if optional && nothing {
4604 return Ok(None);
4605 }
4606 let result = GetStorageReport {
4607 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4608 total_usage: field_total_usage.ok_or_else(|| ::serde::de::Error::missing_field("total_usage"))?,
4609 shared_usage: field_shared_usage.ok_or_else(|| ::serde::de::Error::missing_field("shared_usage"))?,
4610 unshared_usage: field_unshared_usage.ok_or_else(|| ::serde::de::Error::missing_field("unshared_usage"))?,
4611 shared_folders: field_shared_folders.ok_or_else(|| ::serde::de::Error::missing_field("shared_folders"))?,
4612 member_storage_map: field_member_storage_map.ok_or_else(|| ::serde::de::Error::missing_field("member_storage_map"))?,
4613 };
4614 Ok(Some(result))
4615 }
4616
4617 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4618 &self,
4619 s: &mut S::SerializeStruct,
4620 ) -> Result<(), S::Error> {
4621 use serde::ser::SerializeStruct;
4622 s.serialize_field("start_date", &self.start_date)?;
4623 s.serialize_field("total_usage", &self.total_usage)?;
4624 s.serialize_field("shared_usage", &self.shared_usage)?;
4625 s.serialize_field("unshared_usage", &self.unshared_usage)?;
4626 s.serialize_field("shared_folders", &self.shared_folders)?;
4627 s.serialize_field("member_storage_map", &self.member_storage_map)?;
4628 Ok(())
4629 }
4630}
4631
4632impl<'de> ::serde::de::Deserialize<'de> for GetStorageReport {
4633 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4634 use serde::de::{MapAccess, Visitor};
4636 struct StructVisitor;
4637 impl<'de> Visitor<'de> for StructVisitor {
4638 type Value = GetStorageReport;
4639 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4640 f.write_str("a GetStorageReport struct")
4641 }
4642 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4643 GetStorageReport::internal_deserialize(map)
4644 }
4645 }
4646 deserializer.deserialize_struct("GetStorageReport", GET_STORAGE_REPORT_FIELDS, StructVisitor)
4647 }
4648}
4649
4650impl ::serde::ser::Serialize for GetStorageReport {
4651 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4652 use serde::ser::SerializeStruct;
4654 let mut s = serializer.serialize_struct("GetStorageReport", 6)?;
4655 self.internal_serialize::<S>(&mut s)?;
4656 s.end()
4657 }
4658}
4659
4660impl From<GetStorageReport> for BaseDfbReport {
4662 fn from(subtype: GetStorageReport) -> Self {
4663 Self {
4664 start_date: subtype.start_date,
4665 }
4666 }
4667}
4668#[derive(Debug, Clone, PartialEq, Eq)]
4670pub enum GroupAccessType {
4671 Member,
4673 Owner,
4675}
4676
4677impl<'de> ::serde::de::Deserialize<'de> for GroupAccessType {
4678 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4679 use serde::de::{self, MapAccess, Visitor};
4681 struct EnumVisitor;
4682 impl<'de> Visitor<'de> for EnumVisitor {
4683 type Value = GroupAccessType;
4684 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4685 f.write_str("a GroupAccessType structure")
4686 }
4687 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4688 let tag: &str = match map.next_key()? {
4689 Some(".tag") => map.next_value()?,
4690 _ => return Err(de::Error::missing_field(".tag"))
4691 };
4692 let value = match tag {
4693 "member" => GroupAccessType::Member,
4694 "owner" => GroupAccessType::Owner,
4695 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
4696 };
4697 crate::eat_json_fields(&mut map)?;
4698 Ok(value)
4699 }
4700 }
4701 const VARIANTS: &[&str] = &["member",
4702 "owner"];
4703 deserializer.deserialize_struct("GroupAccessType", VARIANTS, EnumVisitor)
4704 }
4705}
4706
4707impl ::serde::ser::Serialize for GroupAccessType {
4708 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4709 use serde::ser::SerializeStruct;
4711 match self {
4712 GroupAccessType::Member => {
4713 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
4715 s.serialize_field(".tag", "member")?;
4716 s.end()
4717 }
4718 GroupAccessType::Owner => {
4719 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
4721 s.serialize_field(".tag", "owner")?;
4722 s.end()
4723 }
4724 }
4725 }
4726}
4727
4728#[derive(Debug, Clone, PartialEq, Eq)]
4729#[non_exhaustive] pub struct GroupCreateArg {
4731 pub group_name: String,
4733 pub add_creator_as_owner: bool,
4735 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
4737 pub group_management_type: Option<crate::types::team_common::GroupManagementType>,
4739}
4740
4741impl GroupCreateArg {
4742 pub fn new(group_name: String) -> Self {
4743 GroupCreateArg {
4744 group_name,
4745 add_creator_as_owner: false,
4746 group_external_id: None,
4747 group_management_type: None,
4748 }
4749 }
4750
4751 pub fn with_add_creator_as_owner(mut self, value: bool) -> Self {
4752 self.add_creator_as_owner = value;
4753 self
4754 }
4755
4756 pub fn with_group_external_id(
4757 mut self,
4758 value: crate::types::team_common::GroupExternalId,
4759 ) -> Self {
4760 self.group_external_id = Some(value);
4761 self
4762 }
4763
4764 pub fn with_group_management_type(
4765 mut self,
4766 value: crate::types::team_common::GroupManagementType,
4767 ) -> Self {
4768 self.group_management_type = Some(value);
4769 self
4770 }
4771}
4772
4773const GROUP_CREATE_ARG_FIELDS: &[&str] = &["group_name",
4774 "add_creator_as_owner",
4775 "group_external_id",
4776 "group_management_type"];
4777impl GroupCreateArg {
4778 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4779 map: V,
4780 ) -> Result<GroupCreateArg, V::Error> {
4781 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4782 }
4783
4784 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4785 mut map: V,
4786 optional: bool,
4787 ) -> Result<Option<GroupCreateArg>, V::Error> {
4788 let mut field_group_name = None;
4789 let mut field_add_creator_as_owner = None;
4790 let mut field_group_external_id = None;
4791 let mut field_group_management_type = None;
4792 let mut nothing = true;
4793 while let Some(key) = map.next_key::<&str>()? {
4794 nothing = false;
4795 match key {
4796 "group_name" => {
4797 if field_group_name.is_some() {
4798 return Err(::serde::de::Error::duplicate_field("group_name"));
4799 }
4800 field_group_name = Some(map.next_value()?);
4801 }
4802 "add_creator_as_owner" => {
4803 if field_add_creator_as_owner.is_some() {
4804 return Err(::serde::de::Error::duplicate_field("add_creator_as_owner"));
4805 }
4806 field_add_creator_as_owner = Some(map.next_value()?);
4807 }
4808 "group_external_id" => {
4809 if field_group_external_id.is_some() {
4810 return Err(::serde::de::Error::duplicate_field("group_external_id"));
4811 }
4812 field_group_external_id = Some(map.next_value()?);
4813 }
4814 "group_management_type" => {
4815 if field_group_management_type.is_some() {
4816 return Err(::serde::de::Error::duplicate_field("group_management_type"));
4817 }
4818 field_group_management_type = Some(map.next_value()?);
4819 }
4820 _ => {
4821 map.next_value::<::serde_json::Value>()?;
4823 }
4824 }
4825 }
4826 if optional && nothing {
4827 return Ok(None);
4828 }
4829 let result = GroupCreateArg {
4830 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
4831 add_creator_as_owner: field_add_creator_as_owner.unwrap_or(false),
4832 group_external_id: field_group_external_id.and_then(Option::flatten),
4833 group_management_type: field_group_management_type.and_then(Option::flatten),
4834 };
4835 Ok(Some(result))
4836 }
4837
4838 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4839 &self,
4840 s: &mut S::SerializeStruct,
4841 ) -> Result<(), S::Error> {
4842 use serde::ser::SerializeStruct;
4843 s.serialize_field("group_name", &self.group_name)?;
4844 if self.add_creator_as_owner {
4845 s.serialize_field("add_creator_as_owner", &self.add_creator_as_owner)?;
4846 }
4847 if let Some(val) = &self.group_external_id {
4848 s.serialize_field("group_external_id", val)?;
4849 }
4850 if let Some(val) = &self.group_management_type {
4851 s.serialize_field("group_management_type", val)?;
4852 }
4853 Ok(())
4854 }
4855}
4856
4857impl<'de> ::serde::de::Deserialize<'de> for GroupCreateArg {
4858 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4859 use serde::de::{MapAccess, Visitor};
4861 struct StructVisitor;
4862 impl<'de> Visitor<'de> for StructVisitor {
4863 type Value = GroupCreateArg;
4864 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4865 f.write_str("a GroupCreateArg struct")
4866 }
4867 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4868 GroupCreateArg::internal_deserialize(map)
4869 }
4870 }
4871 deserializer.deserialize_struct("GroupCreateArg", GROUP_CREATE_ARG_FIELDS, StructVisitor)
4872 }
4873}
4874
4875impl ::serde::ser::Serialize for GroupCreateArg {
4876 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4877 use serde::ser::SerializeStruct;
4879 let mut s = serializer.serialize_struct("GroupCreateArg", 4)?;
4880 self.internal_serialize::<S>(&mut s)?;
4881 s.end()
4882 }
4883}
4884
4885#[derive(Debug, Clone, PartialEq, Eq)]
4886#[non_exhaustive] pub enum GroupCreateError {
4888 GroupNameAlreadyUsed,
4890 GroupNameInvalid,
4892 ExternalIdAlreadyInUse,
4894 SystemManagedGroupDisallowed,
4896 Other,
4899}
4900
4901impl<'de> ::serde::de::Deserialize<'de> for GroupCreateError {
4902 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4903 use serde::de::{self, MapAccess, Visitor};
4905 struct EnumVisitor;
4906 impl<'de> Visitor<'de> for EnumVisitor {
4907 type Value = GroupCreateError;
4908 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4909 f.write_str("a GroupCreateError structure")
4910 }
4911 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4912 let tag: &str = match map.next_key()? {
4913 Some(".tag") => map.next_value()?,
4914 _ => return Err(de::Error::missing_field(".tag"))
4915 };
4916 let value = match tag {
4917 "group_name_already_used" => GroupCreateError::GroupNameAlreadyUsed,
4918 "group_name_invalid" => GroupCreateError::GroupNameInvalid,
4919 "external_id_already_in_use" => GroupCreateError::ExternalIdAlreadyInUse,
4920 "system_managed_group_disallowed" => GroupCreateError::SystemManagedGroupDisallowed,
4921 _ => GroupCreateError::Other,
4922 };
4923 crate::eat_json_fields(&mut map)?;
4924 Ok(value)
4925 }
4926 }
4927 const VARIANTS: &[&str] = &["group_name_already_used",
4928 "group_name_invalid",
4929 "external_id_already_in_use",
4930 "system_managed_group_disallowed",
4931 "other"];
4932 deserializer.deserialize_struct("GroupCreateError", VARIANTS, EnumVisitor)
4933 }
4934}
4935
4936impl ::serde::ser::Serialize for GroupCreateError {
4937 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4938 use serde::ser::SerializeStruct;
4940 match self {
4941 GroupCreateError::GroupNameAlreadyUsed => {
4942 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4944 s.serialize_field(".tag", "group_name_already_used")?;
4945 s.end()
4946 }
4947 GroupCreateError::GroupNameInvalid => {
4948 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4950 s.serialize_field(".tag", "group_name_invalid")?;
4951 s.end()
4952 }
4953 GroupCreateError::ExternalIdAlreadyInUse => {
4954 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4956 s.serialize_field(".tag", "external_id_already_in_use")?;
4957 s.end()
4958 }
4959 GroupCreateError::SystemManagedGroupDisallowed => {
4960 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4962 s.serialize_field(".tag", "system_managed_group_disallowed")?;
4963 s.end()
4964 }
4965 GroupCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4966 }
4967 }
4968}
4969
4970impl ::std::error::Error for GroupCreateError {
4971}
4972
4973impl ::std::fmt::Display for GroupCreateError {
4974 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4975 match self {
4976 GroupCreateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
4977 GroupCreateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
4978 GroupCreateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
4979 GroupCreateError::SystemManagedGroupDisallowed => f.write_str("System-managed group cannot be manually created."),
4980 _ => write!(f, "{:?}", *self),
4981 }
4982 }
4983}
4984
4985#[derive(Debug, Clone, PartialEq, Eq)]
4986#[non_exhaustive] pub enum GroupDeleteError {
4988 GroupNotFound,
4990 SystemManagedGroupDisallowed,
4992 GroupAlreadyDeleted,
4994 Other,
4997}
4998
4999impl<'de> ::serde::de::Deserialize<'de> for GroupDeleteError {
5000 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5001 use serde::de::{self, MapAccess, Visitor};
5003 struct EnumVisitor;
5004 impl<'de> Visitor<'de> for EnumVisitor {
5005 type Value = GroupDeleteError;
5006 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5007 f.write_str("a GroupDeleteError structure")
5008 }
5009 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5010 let tag: &str = match map.next_key()? {
5011 Some(".tag") => map.next_value()?,
5012 _ => return Err(de::Error::missing_field(".tag"))
5013 };
5014 let value = match tag {
5015 "group_not_found" => GroupDeleteError::GroupNotFound,
5016 "system_managed_group_disallowed" => GroupDeleteError::SystemManagedGroupDisallowed,
5017 "group_already_deleted" => GroupDeleteError::GroupAlreadyDeleted,
5018 _ => GroupDeleteError::Other,
5019 };
5020 crate::eat_json_fields(&mut map)?;
5021 Ok(value)
5022 }
5023 }
5024 const VARIANTS: &[&str] = &["group_not_found",
5025 "other",
5026 "system_managed_group_disallowed",
5027 "group_already_deleted"];
5028 deserializer.deserialize_struct("GroupDeleteError", VARIANTS, EnumVisitor)
5029 }
5030}
5031
5032impl ::serde::ser::Serialize for GroupDeleteError {
5033 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5034 use serde::ser::SerializeStruct;
5036 match self {
5037 GroupDeleteError::GroupNotFound => {
5038 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5040 s.serialize_field(".tag", "group_not_found")?;
5041 s.end()
5042 }
5043 GroupDeleteError::SystemManagedGroupDisallowed => {
5044 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5046 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5047 s.end()
5048 }
5049 GroupDeleteError::GroupAlreadyDeleted => {
5050 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5052 s.serialize_field(".tag", "group_already_deleted")?;
5053 s.end()
5054 }
5055 GroupDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5056 }
5057 }
5058}
5059
5060impl ::std::error::Error for GroupDeleteError {
5061}
5062
5063impl ::std::fmt::Display for GroupDeleteError {
5064 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5065 match self {
5066 GroupDeleteError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5067 GroupDeleteError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5068 GroupDeleteError::GroupAlreadyDeleted => f.write_str("This group has already been deleted."),
5069 _ => write!(f, "{:?}", *self),
5070 }
5071 }
5072}
5073
5074impl From<GroupSelectorWithTeamGroupError> for GroupDeleteError {
5076 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5077 match parent {
5078 GroupSelectorWithTeamGroupError::GroupNotFound => GroupDeleteError::GroupNotFound,
5079 GroupSelectorWithTeamGroupError::Other => GroupDeleteError::Other,
5080 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupDeleteError::SystemManagedGroupDisallowed,
5081 }
5082 }
5083}
5084#[derive(Debug, Clone, PartialEq, Eq)]
5086#[non_exhaustive] pub struct GroupFullInfo {
5088 pub group_name: String,
5089 pub group_id: crate::types::team_common::GroupId,
5090 pub group_management_type: crate::types::team_common::GroupManagementType,
5092 pub created: u64,
5094 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
5096 pub member_count: Option<u32>,
5098 pub members: Option<Vec<GroupMemberInfo>>,
5100}
5101
5102impl GroupFullInfo {
5103 pub fn new(
5104 group_name: String,
5105 group_id: crate::types::team_common::GroupId,
5106 group_management_type: crate::types::team_common::GroupManagementType,
5107 created: u64,
5108 ) -> Self {
5109 GroupFullInfo {
5110 group_name,
5111 group_id,
5112 group_management_type,
5113 created,
5114 group_external_id: None,
5115 member_count: None,
5116 members: None,
5117 }
5118 }
5119
5120 pub fn with_group_external_id(
5121 mut self,
5122 value: crate::types::team_common::GroupExternalId,
5123 ) -> Self {
5124 self.group_external_id = Some(value);
5125 self
5126 }
5127
5128 pub fn with_member_count(mut self, value: u32) -> Self {
5129 self.member_count = Some(value);
5130 self
5131 }
5132
5133 pub fn with_members(mut self, value: Vec<GroupMemberInfo>) -> Self {
5134 self.members = Some(value);
5135 self
5136 }
5137}
5138
5139const GROUP_FULL_INFO_FIELDS: &[&str] = &["group_name",
5140 "group_id",
5141 "group_management_type",
5142 "created",
5143 "group_external_id",
5144 "member_count",
5145 "members"];
5146impl GroupFullInfo {
5147 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5148 map: V,
5149 ) -> Result<GroupFullInfo, V::Error> {
5150 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5151 }
5152
5153 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5154 mut map: V,
5155 optional: bool,
5156 ) -> Result<Option<GroupFullInfo>, V::Error> {
5157 let mut field_group_name = None;
5158 let mut field_group_id = None;
5159 let mut field_group_management_type = None;
5160 let mut field_created = None;
5161 let mut field_group_external_id = None;
5162 let mut field_member_count = None;
5163 let mut field_members = None;
5164 let mut nothing = true;
5165 while let Some(key) = map.next_key::<&str>()? {
5166 nothing = false;
5167 match key {
5168 "group_name" => {
5169 if field_group_name.is_some() {
5170 return Err(::serde::de::Error::duplicate_field("group_name"));
5171 }
5172 field_group_name = Some(map.next_value()?);
5173 }
5174 "group_id" => {
5175 if field_group_id.is_some() {
5176 return Err(::serde::de::Error::duplicate_field("group_id"));
5177 }
5178 field_group_id = Some(map.next_value()?);
5179 }
5180 "group_management_type" => {
5181 if field_group_management_type.is_some() {
5182 return Err(::serde::de::Error::duplicate_field("group_management_type"));
5183 }
5184 field_group_management_type = Some(map.next_value()?);
5185 }
5186 "created" => {
5187 if field_created.is_some() {
5188 return Err(::serde::de::Error::duplicate_field("created"));
5189 }
5190 field_created = Some(map.next_value()?);
5191 }
5192 "group_external_id" => {
5193 if field_group_external_id.is_some() {
5194 return Err(::serde::de::Error::duplicate_field("group_external_id"));
5195 }
5196 field_group_external_id = Some(map.next_value()?);
5197 }
5198 "member_count" => {
5199 if field_member_count.is_some() {
5200 return Err(::serde::de::Error::duplicate_field("member_count"));
5201 }
5202 field_member_count = Some(map.next_value()?);
5203 }
5204 "members" => {
5205 if field_members.is_some() {
5206 return Err(::serde::de::Error::duplicate_field("members"));
5207 }
5208 field_members = Some(map.next_value()?);
5209 }
5210 _ => {
5211 map.next_value::<::serde_json::Value>()?;
5213 }
5214 }
5215 }
5216 if optional && nothing {
5217 return Ok(None);
5218 }
5219 let result = GroupFullInfo {
5220 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
5221 group_id: field_group_id.ok_or_else(|| ::serde::de::Error::missing_field("group_id"))?,
5222 group_management_type: field_group_management_type.ok_or_else(|| ::serde::de::Error::missing_field("group_management_type"))?,
5223 created: field_created.ok_or_else(|| ::serde::de::Error::missing_field("created"))?,
5224 group_external_id: field_group_external_id.and_then(Option::flatten),
5225 member_count: field_member_count.and_then(Option::flatten),
5226 members: field_members.and_then(Option::flatten),
5227 };
5228 Ok(Some(result))
5229 }
5230
5231 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5232 &self,
5233 s: &mut S::SerializeStruct,
5234 ) -> Result<(), S::Error> {
5235 use serde::ser::SerializeStruct;
5236 s.serialize_field("group_name", &self.group_name)?;
5237 s.serialize_field("group_id", &self.group_id)?;
5238 s.serialize_field("group_management_type", &self.group_management_type)?;
5239 s.serialize_field("created", &self.created)?;
5240 if let Some(val) = &self.group_external_id {
5241 s.serialize_field("group_external_id", val)?;
5242 }
5243 if let Some(val) = &self.member_count {
5244 s.serialize_field("member_count", val)?;
5245 }
5246 if let Some(val) = &self.members {
5247 s.serialize_field("members", val)?;
5248 }
5249 Ok(())
5250 }
5251}
5252
5253impl<'de> ::serde::de::Deserialize<'de> for GroupFullInfo {
5254 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5255 use serde::de::{MapAccess, Visitor};
5257 struct StructVisitor;
5258 impl<'de> Visitor<'de> for StructVisitor {
5259 type Value = GroupFullInfo;
5260 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5261 f.write_str("a GroupFullInfo struct")
5262 }
5263 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5264 GroupFullInfo::internal_deserialize(map)
5265 }
5266 }
5267 deserializer.deserialize_struct("GroupFullInfo", GROUP_FULL_INFO_FIELDS, StructVisitor)
5268 }
5269}
5270
5271impl ::serde::ser::Serialize for GroupFullInfo {
5272 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5273 use serde::ser::SerializeStruct;
5275 let mut s = serializer.serialize_struct("GroupFullInfo", 7)?;
5276 self.internal_serialize::<S>(&mut s)?;
5277 s.end()
5278 }
5279}
5280
5281impl From<GroupFullInfo> for crate::types::team_common::GroupSummary {
5283 fn from(subtype: GroupFullInfo) -> Self {
5284 Self {
5285 group_name: subtype.group_name,
5286 group_id: subtype.group_id,
5287 group_management_type: subtype.group_management_type,
5288 group_external_id: subtype.group_external_id,
5289 member_count: subtype.member_count,
5290 }
5291 }
5292}
5293#[derive(Debug, Clone, PartialEq, Eq)]
5295#[non_exhaustive] pub struct GroupMemberInfo {
5297 pub profile: MemberProfile,
5299 pub access_type: GroupAccessType,
5301}
5302
5303impl GroupMemberInfo {
5304 pub fn new(profile: MemberProfile, access_type: GroupAccessType) -> Self {
5305 GroupMemberInfo {
5306 profile,
5307 access_type,
5308 }
5309 }
5310}
5311
5312const GROUP_MEMBER_INFO_FIELDS: &[&str] = &["profile",
5313 "access_type"];
5314impl GroupMemberInfo {
5315 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5316 map: V,
5317 ) -> Result<GroupMemberInfo, V::Error> {
5318 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5319 }
5320
5321 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5322 mut map: V,
5323 optional: bool,
5324 ) -> Result<Option<GroupMemberInfo>, V::Error> {
5325 let mut field_profile = None;
5326 let mut field_access_type = None;
5327 let mut nothing = true;
5328 while let Some(key) = map.next_key::<&str>()? {
5329 nothing = false;
5330 match key {
5331 "profile" => {
5332 if field_profile.is_some() {
5333 return Err(::serde::de::Error::duplicate_field("profile"));
5334 }
5335 field_profile = Some(map.next_value()?);
5336 }
5337 "access_type" => {
5338 if field_access_type.is_some() {
5339 return Err(::serde::de::Error::duplicate_field("access_type"));
5340 }
5341 field_access_type = Some(map.next_value()?);
5342 }
5343 _ => {
5344 map.next_value::<::serde_json::Value>()?;
5346 }
5347 }
5348 }
5349 if optional && nothing {
5350 return Ok(None);
5351 }
5352 let result = GroupMemberInfo {
5353 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
5354 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
5355 };
5356 Ok(Some(result))
5357 }
5358
5359 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5360 &self,
5361 s: &mut S::SerializeStruct,
5362 ) -> Result<(), S::Error> {
5363 use serde::ser::SerializeStruct;
5364 s.serialize_field("profile", &self.profile)?;
5365 s.serialize_field("access_type", &self.access_type)?;
5366 Ok(())
5367 }
5368}
5369
5370impl<'de> ::serde::de::Deserialize<'de> for GroupMemberInfo {
5371 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5372 use serde::de::{MapAccess, Visitor};
5374 struct StructVisitor;
5375 impl<'de> Visitor<'de> for StructVisitor {
5376 type Value = GroupMemberInfo;
5377 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5378 f.write_str("a GroupMemberInfo struct")
5379 }
5380 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5381 GroupMemberInfo::internal_deserialize(map)
5382 }
5383 }
5384 deserializer.deserialize_struct("GroupMemberInfo", GROUP_MEMBER_INFO_FIELDS, StructVisitor)
5385 }
5386}
5387
5388impl ::serde::ser::Serialize for GroupMemberInfo {
5389 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5390 use serde::ser::SerializeStruct;
5392 let mut s = serializer.serialize_struct("GroupMemberInfo", 2)?;
5393 self.internal_serialize::<S>(&mut s)?;
5394 s.end()
5395 }
5396}
5397
5398#[derive(Debug, Clone, PartialEq, Eq)]
5400#[non_exhaustive] pub struct GroupMemberSelector {
5402 pub group: GroupSelector,
5404 pub user: UserSelectorArg,
5406}
5407
5408impl GroupMemberSelector {
5409 pub fn new(group: GroupSelector, user: UserSelectorArg) -> Self {
5410 GroupMemberSelector {
5411 group,
5412 user,
5413 }
5414 }
5415}
5416
5417const GROUP_MEMBER_SELECTOR_FIELDS: &[&str] = &["group",
5418 "user"];
5419impl GroupMemberSelector {
5420 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5421 map: V,
5422 ) -> Result<GroupMemberSelector, V::Error> {
5423 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5424 }
5425
5426 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5427 mut map: V,
5428 optional: bool,
5429 ) -> Result<Option<GroupMemberSelector>, V::Error> {
5430 let mut field_group = None;
5431 let mut field_user = None;
5432 let mut nothing = true;
5433 while let Some(key) = map.next_key::<&str>()? {
5434 nothing = false;
5435 match key {
5436 "group" => {
5437 if field_group.is_some() {
5438 return Err(::serde::de::Error::duplicate_field("group"));
5439 }
5440 field_group = Some(map.next_value()?);
5441 }
5442 "user" => {
5443 if field_user.is_some() {
5444 return Err(::serde::de::Error::duplicate_field("user"));
5445 }
5446 field_user = Some(map.next_value()?);
5447 }
5448 _ => {
5449 map.next_value::<::serde_json::Value>()?;
5451 }
5452 }
5453 }
5454 if optional && nothing {
5455 return Ok(None);
5456 }
5457 let result = GroupMemberSelector {
5458 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
5459 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
5460 };
5461 Ok(Some(result))
5462 }
5463
5464 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5465 &self,
5466 s: &mut S::SerializeStruct,
5467 ) -> Result<(), S::Error> {
5468 use serde::ser::SerializeStruct;
5469 s.serialize_field("group", &self.group)?;
5470 s.serialize_field("user", &self.user)?;
5471 Ok(())
5472 }
5473}
5474
5475impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelector {
5476 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5477 use serde::de::{MapAccess, Visitor};
5479 struct StructVisitor;
5480 impl<'de> Visitor<'de> for StructVisitor {
5481 type Value = GroupMemberSelector;
5482 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5483 f.write_str("a GroupMemberSelector struct")
5484 }
5485 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5486 GroupMemberSelector::internal_deserialize(map)
5487 }
5488 }
5489 deserializer.deserialize_struct("GroupMemberSelector", GROUP_MEMBER_SELECTOR_FIELDS, StructVisitor)
5490 }
5491}
5492
5493impl ::serde::ser::Serialize for GroupMemberSelector {
5494 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5495 use serde::ser::SerializeStruct;
5497 let mut s = serializer.serialize_struct("GroupMemberSelector", 2)?;
5498 self.internal_serialize::<S>(&mut s)?;
5499 s.end()
5500 }
5501}
5502
5503#[derive(Debug, Clone, PartialEq, Eq)]
5506#[non_exhaustive] pub enum GroupMemberSelectorError {
5508 GroupNotFound,
5510 SystemManagedGroupDisallowed,
5512 MemberNotInGroup,
5514 Other,
5517}
5518
5519impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelectorError {
5520 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5521 use serde::de::{self, MapAccess, Visitor};
5523 struct EnumVisitor;
5524 impl<'de> Visitor<'de> for EnumVisitor {
5525 type Value = GroupMemberSelectorError;
5526 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5527 f.write_str("a GroupMemberSelectorError structure")
5528 }
5529 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5530 let tag: &str = match map.next_key()? {
5531 Some(".tag") => map.next_value()?,
5532 _ => return Err(de::Error::missing_field(".tag"))
5533 };
5534 let value = match tag {
5535 "group_not_found" => GroupMemberSelectorError::GroupNotFound,
5536 "system_managed_group_disallowed" => GroupMemberSelectorError::SystemManagedGroupDisallowed,
5537 "member_not_in_group" => GroupMemberSelectorError::MemberNotInGroup,
5538 _ => GroupMemberSelectorError::Other,
5539 };
5540 crate::eat_json_fields(&mut map)?;
5541 Ok(value)
5542 }
5543 }
5544 const VARIANTS: &[&str] = &["group_not_found",
5545 "other",
5546 "system_managed_group_disallowed",
5547 "member_not_in_group"];
5548 deserializer.deserialize_struct("GroupMemberSelectorError", VARIANTS, EnumVisitor)
5549 }
5550}
5551
5552impl ::serde::ser::Serialize for GroupMemberSelectorError {
5553 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5554 use serde::ser::SerializeStruct;
5556 match self {
5557 GroupMemberSelectorError::GroupNotFound => {
5558 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5560 s.serialize_field(".tag", "group_not_found")?;
5561 s.end()
5562 }
5563 GroupMemberSelectorError::SystemManagedGroupDisallowed => {
5564 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5566 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5567 s.end()
5568 }
5569 GroupMemberSelectorError::MemberNotInGroup => {
5570 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5572 s.serialize_field(".tag", "member_not_in_group")?;
5573 s.end()
5574 }
5575 GroupMemberSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5576 }
5577 }
5578}
5579
5580impl ::std::error::Error for GroupMemberSelectorError {
5581}
5582
5583impl ::std::fmt::Display for GroupMemberSelectorError {
5584 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5585 match self {
5586 GroupMemberSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5587 GroupMemberSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5588 GroupMemberSelectorError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
5589 _ => write!(f, "{:?}", *self),
5590 }
5591 }
5592}
5593
5594impl From<GroupSelectorWithTeamGroupError> for GroupMemberSelectorError {
5596 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5597 match parent {
5598 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMemberSelectorError::GroupNotFound,
5599 GroupSelectorWithTeamGroupError::Other => GroupMemberSelectorError::Other,
5600 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMemberSelectorError::SystemManagedGroupDisallowed,
5601 }
5602 }
5603}
5604#[derive(Debug, Clone, PartialEq, Eq)]
5605#[non_exhaustive] pub enum GroupMemberSetAccessTypeError {
5607 GroupNotFound,
5609 SystemManagedGroupDisallowed,
5611 MemberNotInGroup,
5613 UserCannotBeManagerOfCompanyManagedGroup,
5615 Other,
5618}
5619
5620impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSetAccessTypeError {
5621 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5622 use serde::de::{self, MapAccess, Visitor};
5624 struct EnumVisitor;
5625 impl<'de> Visitor<'de> for EnumVisitor {
5626 type Value = GroupMemberSetAccessTypeError;
5627 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5628 f.write_str("a GroupMemberSetAccessTypeError structure")
5629 }
5630 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5631 let tag: &str = match map.next_key()? {
5632 Some(".tag") => map.next_value()?,
5633 _ => return Err(de::Error::missing_field(".tag"))
5634 };
5635 let value = match tag {
5636 "group_not_found" => GroupMemberSetAccessTypeError::GroupNotFound,
5637 "system_managed_group_disallowed" => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
5638 "member_not_in_group" => GroupMemberSetAccessTypeError::MemberNotInGroup,
5639 "user_cannot_be_manager_of_company_managed_group" => GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup,
5640 _ => GroupMemberSetAccessTypeError::Other,
5641 };
5642 crate::eat_json_fields(&mut map)?;
5643 Ok(value)
5644 }
5645 }
5646 const VARIANTS: &[&str] = &["group_not_found",
5647 "other",
5648 "system_managed_group_disallowed",
5649 "member_not_in_group",
5650 "user_cannot_be_manager_of_company_managed_group"];
5651 deserializer.deserialize_struct("GroupMemberSetAccessTypeError", VARIANTS, EnumVisitor)
5652 }
5653}
5654
5655impl ::serde::ser::Serialize for GroupMemberSetAccessTypeError {
5656 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5657 use serde::ser::SerializeStruct;
5659 match self {
5660 GroupMemberSetAccessTypeError::GroupNotFound => {
5661 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5663 s.serialize_field(".tag", "group_not_found")?;
5664 s.end()
5665 }
5666 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => {
5667 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5669 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5670 s.end()
5671 }
5672 GroupMemberSetAccessTypeError::MemberNotInGroup => {
5673 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5675 s.serialize_field(".tag", "member_not_in_group")?;
5676 s.end()
5677 }
5678 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => {
5679 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5681 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
5682 s.end()
5683 }
5684 GroupMemberSetAccessTypeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5685 }
5686 }
5687}
5688
5689impl ::std::error::Error for GroupMemberSetAccessTypeError {
5690}
5691
5692impl ::std::fmt::Display for GroupMemberSetAccessTypeError {
5693 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5694 match self {
5695 GroupMemberSetAccessTypeError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5696 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5697 GroupMemberSetAccessTypeError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
5698 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => f.write_str("A company managed group cannot be managed by a user."),
5699 _ => write!(f, "{:?}", *self),
5700 }
5701 }
5702}
5703
5704impl From<GroupMemberSelectorError> for GroupMemberSetAccessTypeError {
5706 fn from(parent: GroupMemberSelectorError) -> Self {
5707 match parent {
5708 GroupMemberSelectorError::GroupNotFound => GroupMemberSetAccessTypeError::GroupNotFound,
5709 GroupMemberSelectorError::Other => GroupMemberSetAccessTypeError::Other,
5710 GroupMemberSelectorError::SystemManagedGroupDisallowed => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
5711 GroupMemberSelectorError::MemberNotInGroup => GroupMemberSetAccessTypeError::MemberNotInGroup,
5712 }
5713 }
5714}
5715#[derive(Debug, Clone, PartialEq, Eq)]
5716#[non_exhaustive] pub struct GroupMembersAddArg {
5718 pub group: GroupSelector,
5720 pub members: Vec<MemberAccess>,
5722 pub return_members: bool,
5726}
5727
5728impl GroupMembersAddArg {
5729 pub fn new(group: GroupSelector, members: Vec<MemberAccess>) -> Self {
5730 GroupMembersAddArg {
5731 group,
5732 members,
5733 return_members: true,
5734 }
5735 }
5736
5737 pub fn with_return_members(mut self, value: bool) -> Self {
5738 self.return_members = value;
5739 self
5740 }
5741}
5742
5743const GROUP_MEMBERS_ADD_ARG_FIELDS: &[&str] = &["group",
5744 "members",
5745 "return_members"];
5746impl GroupMembersAddArg {
5747 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5748 map: V,
5749 ) -> Result<GroupMembersAddArg, V::Error> {
5750 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5751 }
5752
5753 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5754 mut map: V,
5755 optional: bool,
5756 ) -> Result<Option<GroupMembersAddArg>, V::Error> {
5757 let mut field_group = None;
5758 let mut field_members = None;
5759 let mut field_return_members = None;
5760 let mut nothing = true;
5761 while let Some(key) = map.next_key::<&str>()? {
5762 nothing = false;
5763 match key {
5764 "group" => {
5765 if field_group.is_some() {
5766 return Err(::serde::de::Error::duplicate_field("group"));
5767 }
5768 field_group = Some(map.next_value()?);
5769 }
5770 "members" => {
5771 if field_members.is_some() {
5772 return Err(::serde::de::Error::duplicate_field("members"));
5773 }
5774 field_members = Some(map.next_value()?);
5775 }
5776 "return_members" => {
5777 if field_return_members.is_some() {
5778 return Err(::serde::de::Error::duplicate_field("return_members"));
5779 }
5780 field_return_members = Some(map.next_value()?);
5781 }
5782 _ => {
5783 map.next_value::<::serde_json::Value>()?;
5785 }
5786 }
5787 }
5788 if optional && nothing {
5789 return Ok(None);
5790 }
5791 let result = GroupMembersAddArg {
5792 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
5793 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
5794 return_members: field_return_members.unwrap_or(true),
5795 };
5796 Ok(Some(result))
5797 }
5798
5799 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5800 &self,
5801 s: &mut S::SerializeStruct,
5802 ) -> Result<(), S::Error> {
5803 use serde::ser::SerializeStruct;
5804 s.serialize_field("group", &self.group)?;
5805 s.serialize_field("members", &self.members)?;
5806 if !self.return_members {
5807 s.serialize_field("return_members", &self.return_members)?;
5808 }
5809 Ok(())
5810 }
5811}
5812
5813impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddArg {
5814 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5815 use serde::de::{MapAccess, Visitor};
5817 struct StructVisitor;
5818 impl<'de> Visitor<'de> for StructVisitor {
5819 type Value = GroupMembersAddArg;
5820 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5821 f.write_str("a GroupMembersAddArg struct")
5822 }
5823 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5824 GroupMembersAddArg::internal_deserialize(map)
5825 }
5826 }
5827 deserializer.deserialize_struct("GroupMembersAddArg", GROUP_MEMBERS_ADD_ARG_FIELDS, StructVisitor)
5828 }
5829}
5830
5831impl ::serde::ser::Serialize for GroupMembersAddArg {
5832 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5833 use serde::ser::SerializeStruct;
5835 let mut s = serializer.serialize_struct("GroupMembersAddArg", 3)?;
5836 self.internal_serialize::<S>(&mut s)?;
5837 s.end()
5838 }
5839}
5840
5841impl From<GroupMembersAddArg> for IncludeMembersArg {
5843 fn from(subtype: GroupMembersAddArg) -> Self {
5844 Self {
5845 return_members: subtype.return_members,
5846 }
5847 }
5848}
5849#[derive(Debug, Clone, PartialEq, Eq)]
5850#[non_exhaustive] pub enum GroupMembersAddError {
5852 GroupNotFound,
5854 SystemManagedGroupDisallowed,
5856 DuplicateUser,
5859 GroupNotInTeam,
5861 MembersNotInTeam(Vec<String>),
5866 UsersNotFound(Vec<String>),
5868 UserMustBeActiveToBeOwner,
5870 UserCannotBeManagerOfCompanyManagedGroup(Vec<String>),
5872 Other,
5875}
5876
5877impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddError {
5878 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5879 use serde::de::{self, MapAccess, Visitor};
5881 struct EnumVisitor;
5882 impl<'de> Visitor<'de> for EnumVisitor {
5883 type Value = GroupMembersAddError;
5884 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5885 f.write_str("a GroupMembersAddError structure")
5886 }
5887 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5888 let tag: &str = match map.next_key()? {
5889 Some(".tag") => map.next_value()?,
5890 _ => return Err(de::Error::missing_field(".tag"))
5891 };
5892 let value = match tag {
5893 "group_not_found" => GroupMembersAddError::GroupNotFound,
5894 "system_managed_group_disallowed" => GroupMembersAddError::SystemManagedGroupDisallowed,
5895 "duplicate_user" => GroupMembersAddError::DuplicateUser,
5896 "group_not_in_team" => GroupMembersAddError::GroupNotInTeam,
5897 "members_not_in_team" => {
5898 match map.next_key()? {
5899 Some("members_not_in_team") => GroupMembersAddError::MembersNotInTeam(map.next_value()?),
5900 None => return Err(de::Error::missing_field("members_not_in_team")),
5901 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5902 }
5903 }
5904 "users_not_found" => {
5905 match map.next_key()? {
5906 Some("users_not_found") => GroupMembersAddError::UsersNotFound(map.next_value()?),
5907 None => return Err(de::Error::missing_field("users_not_found")),
5908 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5909 }
5910 }
5911 "user_must_be_active_to_be_owner" => GroupMembersAddError::UserMustBeActiveToBeOwner,
5912 "user_cannot_be_manager_of_company_managed_group" => {
5913 match map.next_key()? {
5914 Some("user_cannot_be_manager_of_company_managed_group") => GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(map.next_value()?),
5915 None => return Err(de::Error::missing_field("user_cannot_be_manager_of_company_managed_group")),
5916 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5917 }
5918 }
5919 _ => GroupMembersAddError::Other,
5920 };
5921 crate::eat_json_fields(&mut map)?;
5922 Ok(value)
5923 }
5924 }
5925 const VARIANTS: &[&str] = &["group_not_found",
5926 "other",
5927 "system_managed_group_disallowed",
5928 "duplicate_user",
5929 "group_not_in_team",
5930 "members_not_in_team",
5931 "users_not_found",
5932 "user_must_be_active_to_be_owner",
5933 "user_cannot_be_manager_of_company_managed_group"];
5934 deserializer.deserialize_struct("GroupMembersAddError", VARIANTS, EnumVisitor)
5935 }
5936}
5937
5938impl ::serde::ser::Serialize for GroupMembersAddError {
5939 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5940 use serde::ser::SerializeStruct;
5942 match self {
5943 GroupMembersAddError::GroupNotFound => {
5944 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5946 s.serialize_field(".tag", "group_not_found")?;
5947 s.end()
5948 }
5949 GroupMembersAddError::SystemManagedGroupDisallowed => {
5950 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5952 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5953 s.end()
5954 }
5955 GroupMembersAddError::DuplicateUser => {
5956 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5958 s.serialize_field(".tag", "duplicate_user")?;
5959 s.end()
5960 }
5961 GroupMembersAddError::GroupNotInTeam => {
5962 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5964 s.serialize_field(".tag", "group_not_in_team")?;
5965 s.end()
5966 }
5967 GroupMembersAddError::MembersNotInTeam(x) => {
5968 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5970 s.serialize_field(".tag", "members_not_in_team")?;
5971 s.serialize_field("members_not_in_team", x)?;
5972 s.end()
5973 }
5974 GroupMembersAddError::UsersNotFound(x) => {
5975 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5977 s.serialize_field(".tag", "users_not_found")?;
5978 s.serialize_field("users_not_found", x)?;
5979 s.end()
5980 }
5981 GroupMembersAddError::UserMustBeActiveToBeOwner => {
5982 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5984 s.serialize_field(".tag", "user_must_be_active_to_be_owner")?;
5985 s.end()
5986 }
5987 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(x) => {
5988 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5990 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
5991 s.serialize_field("user_cannot_be_manager_of_company_managed_group", x)?;
5992 s.end()
5993 }
5994 GroupMembersAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5995 }
5996 }
5997}
5998
5999impl ::std::error::Error for GroupMembersAddError {
6000}
6001
6002impl ::std::fmt::Display for GroupMembersAddError {
6003 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6004 match self {
6005 GroupMembersAddError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6006 GroupMembersAddError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6007 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."),
6008 GroupMembersAddError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot add members to a group that is outside of your team."),
6009 GroupMembersAddError::MembersNotInTeam(inner) => write!(f, "members_not_in_team: {:?}", inner),
6010 GroupMembersAddError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
6011 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(inner) => write!(f, "A company-managed group cannot be managed by a user: {:?}", inner),
6012 _ => write!(f, "{:?}", *self),
6013 }
6014 }
6015}
6016
6017impl From<GroupSelectorWithTeamGroupError> for GroupMembersAddError {
6019 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6020 match parent {
6021 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersAddError::GroupNotFound,
6022 GroupSelectorWithTeamGroupError::Other => GroupMembersAddError::Other,
6023 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersAddError::SystemManagedGroupDisallowed,
6024 }
6025 }
6026}
6027#[derive(Debug, Clone, PartialEq, Eq)]
6030#[non_exhaustive] pub struct GroupMembersChangeResult {
6032 pub group_info: GroupFullInfo,
6034 pub async_job_id: crate::types::dbx_async::AsyncJobId,
6038}
6039
6040impl GroupMembersChangeResult {
6041 pub fn new(
6042 group_info: GroupFullInfo,
6043 async_job_id: crate::types::dbx_async::AsyncJobId,
6044 ) -> Self {
6045 GroupMembersChangeResult {
6046 group_info,
6047 async_job_id,
6048 }
6049 }
6050}
6051
6052const GROUP_MEMBERS_CHANGE_RESULT_FIELDS: &[&str] = &["group_info",
6053 "async_job_id"];
6054impl GroupMembersChangeResult {
6055 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6056 map: V,
6057 ) -> Result<GroupMembersChangeResult, V::Error> {
6058 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6059 }
6060
6061 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6062 mut map: V,
6063 optional: bool,
6064 ) -> Result<Option<GroupMembersChangeResult>, V::Error> {
6065 let mut field_group_info = None;
6066 let mut field_async_job_id = None;
6067 let mut nothing = true;
6068 while let Some(key) = map.next_key::<&str>()? {
6069 nothing = false;
6070 match key {
6071 "group_info" => {
6072 if field_group_info.is_some() {
6073 return Err(::serde::de::Error::duplicate_field("group_info"));
6074 }
6075 field_group_info = Some(map.next_value()?);
6076 }
6077 "async_job_id" => {
6078 if field_async_job_id.is_some() {
6079 return Err(::serde::de::Error::duplicate_field("async_job_id"));
6080 }
6081 field_async_job_id = Some(map.next_value()?);
6082 }
6083 _ => {
6084 map.next_value::<::serde_json::Value>()?;
6086 }
6087 }
6088 }
6089 if optional && nothing {
6090 return Ok(None);
6091 }
6092 let result = GroupMembersChangeResult {
6093 group_info: field_group_info.ok_or_else(|| ::serde::de::Error::missing_field("group_info"))?,
6094 async_job_id: field_async_job_id.ok_or_else(|| ::serde::de::Error::missing_field("async_job_id"))?,
6095 };
6096 Ok(Some(result))
6097 }
6098
6099 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6100 &self,
6101 s: &mut S::SerializeStruct,
6102 ) -> Result<(), S::Error> {
6103 use serde::ser::SerializeStruct;
6104 s.serialize_field("group_info", &self.group_info)?;
6105 s.serialize_field("async_job_id", &self.async_job_id)?;
6106 Ok(())
6107 }
6108}
6109
6110impl<'de> ::serde::de::Deserialize<'de> for GroupMembersChangeResult {
6111 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6112 use serde::de::{MapAccess, Visitor};
6114 struct StructVisitor;
6115 impl<'de> Visitor<'de> for StructVisitor {
6116 type Value = GroupMembersChangeResult;
6117 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6118 f.write_str("a GroupMembersChangeResult struct")
6119 }
6120 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6121 GroupMembersChangeResult::internal_deserialize(map)
6122 }
6123 }
6124 deserializer.deserialize_struct("GroupMembersChangeResult", GROUP_MEMBERS_CHANGE_RESULT_FIELDS, StructVisitor)
6125 }
6126}
6127
6128impl ::serde::ser::Serialize for GroupMembersChangeResult {
6129 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6130 use serde::ser::SerializeStruct;
6132 let mut s = serializer.serialize_struct("GroupMembersChangeResult", 2)?;
6133 self.internal_serialize::<S>(&mut s)?;
6134 s.end()
6135 }
6136}
6137
6138#[derive(Debug, Clone, PartialEq, Eq)]
6139#[non_exhaustive] pub struct GroupMembersRemoveArg {
6141 pub group: GroupSelector,
6143 pub users: Vec<UserSelectorArg>,
6145 pub return_members: bool,
6149}
6150
6151impl GroupMembersRemoveArg {
6152 pub fn new(group: GroupSelector, users: Vec<UserSelectorArg>) -> Self {
6153 GroupMembersRemoveArg {
6154 group,
6155 users,
6156 return_members: true,
6157 }
6158 }
6159
6160 pub fn with_return_members(mut self, value: bool) -> Self {
6161 self.return_members = value;
6162 self
6163 }
6164}
6165
6166const GROUP_MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["group",
6167 "users",
6168 "return_members"];
6169impl GroupMembersRemoveArg {
6170 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6171 map: V,
6172 ) -> Result<GroupMembersRemoveArg, V::Error> {
6173 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6174 }
6175
6176 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6177 mut map: V,
6178 optional: bool,
6179 ) -> Result<Option<GroupMembersRemoveArg>, V::Error> {
6180 let mut field_group = None;
6181 let mut field_users = None;
6182 let mut field_return_members = None;
6183 let mut nothing = true;
6184 while let Some(key) = map.next_key::<&str>()? {
6185 nothing = false;
6186 match key {
6187 "group" => {
6188 if field_group.is_some() {
6189 return Err(::serde::de::Error::duplicate_field("group"));
6190 }
6191 field_group = Some(map.next_value()?);
6192 }
6193 "users" => {
6194 if field_users.is_some() {
6195 return Err(::serde::de::Error::duplicate_field("users"));
6196 }
6197 field_users = Some(map.next_value()?);
6198 }
6199 "return_members" => {
6200 if field_return_members.is_some() {
6201 return Err(::serde::de::Error::duplicate_field("return_members"));
6202 }
6203 field_return_members = Some(map.next_value()?);
6204 }
6205 _ => {
6206 map.next_value::<::serde_json::Value>()?;
6208 }
6209 }
6210 }
6211 if optional && nothing {
6212 return Ok(None);
6213 }
6214 let result = GroupMembersRemoveArg {
6215 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6216 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
6217 return_members: field_return_members.unwrap_or(true),
6218 };
6219 Ok(Some(result))
6220 }
6221
6222 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6223 &self,
6224 s: &mut S::SerializeStruct,
6225 ) -> Result<(), S::Error> {
6226 use serde::ser::SerializeStruct;
6227 s.serialize_field("group", &self.group)?;
6228 s.serialize_field("users", &self.users)?;
6229 if !self.return_members {
6230 s.serialize_field("return_members", &self.return_members)?;
6231 }
6232 Ok(())
6233 }
6234}
6235
6236impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveArg {
6237 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6238 use serde::de::{MapAccess, Visitor};
6240 struct StructVisitor;
6241 impl<'de> Visitor<'de> for StructVisitor {
6242 type Value = GroupMembersRemoveArg;
6243 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6244 f.write_str("a GroupMembersRemoveArg struct")
6245 }
6246 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6247 GroupMembersRemoveArg::internal_deserialize(map)
6248 }
6249 }
6250 deserializer.deserialize_struct("GroupMembersRemoveArg", GROUP_MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
6251 }
6252}
6253
6254impl ::serde::ser::Serialize for GroupMembersRemoveArg {
6255 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6256 use serde::ser::SerializeStruct;
6258 let mut s = serializer.serialize_struct("GroupMembersRemoveArg", 3)?;
6259 self.internal_serialize::<S>(&mut s)?;
6260 s.end()
6261 }
6262}
6263
6264impl From<GroupMembersRemoveArg> for IncludeMembersArg {
6266 fn from(subtype: GroupMembersRemoveArg) -> Self {
6267 Self {
6268 return_members: subtype.return_members,
6269 }
6270 }
6271}
6272#[derive(Debug, Clone, PartialEq, Eq)]
6273#[non_exhaustive] pub enum GroupMembersRemoveError {
6275 GroupNotFound,
6277 SystemManagedGroupDisallowed,
6279 MemberNotInGroup,
6281 GroupNotInTeam,
6284 MembersNotInTeam(Vec<String>),
6286 UsersNotFound(Vec<String>),
6288 Other,
6291}
6292
6293impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveError {
6294 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6295 use serde::de::{self, MapAccess, Visitor};
6297 struct EnumVisitor;
6298 impl<'de> Visitor<'de> for EnumVisitor {
6299 type Value = GroupMembersRemoveError;
6300 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6301 f.write_str("a GroupMembersRemoveError structure")
6302 }
6303 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6304 let tag: &str = match map.next_key()? {
6305 Some(".tag") => map.next_value()?,
6306 _ => return Err(de::Error::missing_field(".tag"))
6307 };
6308 let value = match tag {
6309 "group_not_found" => GroupMembersRemoveError::GroupNotFound,
6310 "system_managed_group_disallowed" => GroupMembersRemoveError::SystemManagedGroupDisallowed,
6311 "member_not_in_group" => GroupMembersRemoveError::MemberNotInGroup,
6312 "group_not_in_team" => GroupMembersRemoveError::GroupNotInTeam,
6313 "members_not_in_team" => {
6314 match map.next_key()? {
6315 Some("members_not_in_team") => GroupMembersRemoveError::MembersNotInTeam(map.next_value()?),
6316 None => return Err(de::Error::missing_field("members_not_in_team")),
6317 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6318 }
6319 }
6320 "users_not_found" => {
6321 match map.next_key()? {
6322 Some("users_not_found") => GroupMembersRemoveError::UsersNotFound(map.next_value()?),
6323 None => return Err(de::Error::missing_field("users_not_found")),
6324 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6325 }
6326 }
6327 _ => GroupMembersRemoveError::Other,
6328 };
6329 crate::eat_json_fields(&mut map)?;
6330 Ok(value)
6331 }
6332 }
6333 const VARIANTS: &[&str] = &["group_not_found",
6334 "other",
6335 "system_managed_group_disallowed",
6336 "member_not_in_group",
6337 "group_not_in_team",
6338 "members_not_in_team",
6339 "users_not_found"];
6340 deserializer.deserialize_struct("GroupMembersRemoveError", VARIANTS, EnumVisitor)
6341 }
6342}
6343
6344impl ::serde::ser::Serialize for GroupMembersRemoveError {
6345 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6346 use serde::ser::SerializeStruct;
6348 match self {
6349 GroupMembersRemoveError::GroupNotFound => {
6350 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6352 s.serialize_field(".tag", "group_not_found")?;
6353 s.end()
6354 }
6355 GroupMembersRemoveError::SystemManagedGroupDisallowed => {
6356 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6358 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6359 s.end()
6360 }
6361 GroupMembersRemoveError::MemberNotInGroup => {
6362 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6364 s.serialize_field(".tag", "member_not_in_group")?;
6365 s.end()
6366 }
6367 GroupMembersRemoveError::GroupNotInTeam => {
6368 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6370 s.serialize_field(".tag", "group_not_in_team")?;
6371 s.end()
6372 }
6373 GroupMembersRemoveError::MembersNotInTeam(x) => {
6374 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
6376 s.serialize_field(".tag", "members_not_in_team")?;
6377 s.serialize_field("members_not_in_team", x)?;
6378 s.end()
6379 }
6380 GroupMembersRemoveError::UsersNotFound(x) => {
6381 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
6383 s.serialize_field(".tag", "users_not_found")?;
6384 s.serialize_field("users_not_found", x)?;
6385 s.end()
6386 }
6387 GroupMembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6388 }
6389 }
6390}
6391
6392impl ::std::error::Error for GroupMembersRemoveError {
6393}
6394
6395impl ::std::fmt::Display for GroupMembersRemoveError {
6396 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6397 match self {
6398 GroupMembersRemoveError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6399 GroupMembersRemoveError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6400 GroupMembersRemoveError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
6401 GroupMembersRemoveError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot remove members from a group that is outside of your team."),
6402 GroupMembersRemoveError::MembersNotInTeam(inner) => write!(f, "These members are not part of your team: {:?}", inner),
6403 GroupMembersRemoveError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
6404 _ => write!(f, "{:?}", *self),
6405 }
6406 }
6407}
6408
6409impl From<GroupMembersSelectorError> for GroupMembersRemoveError {
6411 fn from(parent: GroupMembersSelectorError) -> Self {
6412 match parent {
6413 GroupMembersSelectorError::GroupNotFound => GroupMembersRemoveError::GroupNotFound,
6414 GroupMembersSelectorError::Other => GroupMembersRemoveError::Other,
6415 GroupMembersSelectorError::SystemManagedGroupDisallowed => GroupMembersRemoveError::SystemManagedGroupDisallowed,
6416 GroupMembersSelectorError::MemberNotInGroup => GroupMembersRemoveError::MemberNotInGroup,
6417 }
6418 }
6419}
6420#[derive(Debug, Clone, PartialEq, Eq)]
6422#[non_exhaustive] pub struct GroupMembersSelector {
6424 pub group: GroupSelector,
6426 pub users: UsersSelectorArg,
6428}
6429
6430impl GroupMembersSelector {
6431 pub fn new(group: GroupSelector, users: UsersSelectorArg) -> Self {
6432 GroupMembersSelector {
6433 group,
6434 users,
6435 }
6436 }
6437}
6438
6439const GROUP_MEMBERS_SELECTOR_FIELDS: &[&str] = &["group",
6440 "users"];
6441impl GroupMembersSelector {
6442 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6443 map: V,
6444 ) -> Result<GroupMembersSelector, V::Error> {
6445 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6446 }
6447
6448 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6449 mut map: V,
6450 optional: bool,
6451 ) -> Result<Option<GroupMembersSelector>, V::Error> {
6452 let mut field_group = None;
6453 let mut field_users = None;
6454 let mut nothing = true;
6455 while let Some(key) = map.next_key::<&str>()? {
6456 nothing = false;
6457 match key {
6458 "group" => {
6459 if field_group.is_some() {
6460 return Err(::serde::de::Error::duplicate_field("group"));
6461 }
6462 field_group = Some(map.next_value()?);
6463 }
6464 "users" => {
6465 if field_users.is_some() {
6466 return Err(::serde::de::Error::duplicate_field("users"));
6467 }
6468 field_users = Some(map.next_value()?);
6469 }
6470 _ => {
6471 map.next_value::<::serde_json::Value>()?;
6473 }
6474 }
6475 }
6476 if optional && nothing {
6477 return Ok(None);
6478 }
6479 let result = GroupMembersSelector {
6480 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6481 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
6482 };
6483 Ok(Some(result))
6484 }
6485
6486 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6487 &self,
6488 s: &mut S::SerializeStruct,
6489 ) -> Result<(), S::Error> {
6490 use serde::ser::SerializeStruct;
6491 s.serialize_field("group", &self.group)?;
6492 s.serialize_field("users", &self.users)?;
6493 Ok(())
6494 }
6495}
6496
6497impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelector {
6498 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6499 use serde::de::{MapAccess, Visitor};
6501 struct StructVisitor;
6502 impl<'de> Visitor<'de> for StructVisitor {
6503 type Value = GroupMembersSelector;
6504 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6505 f.write_str("a GroupMembersSelector struct")
6506 }
6507 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6508 GroupMembersSelector::internal_deserialize(map)
6509 }
6510 }
6511 deserializer.deserialize_struct("GroupMembersSelector", GROUP_MEMBERS_SELECTOR_FIELDS, StructVisitor)
6512 }
6513}
6514
6515impl ::serde::ser::Serialize for GroupMembersSelector {
6516 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6517 use serde::ser::SerializeStruct;
6519 let mut s = serializer.serialize_struct("GroupMembersSelector", 2)?;
6520 self.internal_serialize::<S>(&mut s)?;
6521 s.end()
6522 }
6523}
6524
6525#[derive(Debug, Clone, PartialEq, Eq)]
6528#[non_exhaustive] pub enum GroupMembersSelectorError {
6530 GroupNotFound,
6532 SystemManagedGroupDisallowed,
6534 MemberNotInGroup,
6536 Other,
6539}
6540
6541impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelectorError {
6542 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6543 use serde::de::{self, MapAccess, Visitor};
6545 struct EnumVisitor;
6546 impl<'de> Visitor<'de> for EnumVisitor {
6547 type Value = GroupMembersSelectorError;
6548 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6549 f.write_str("a GroupMembersSelectorError structure")
6550 }
6551 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6552 let tag: &str = match map.next_key()? {
6553 Some(".tag") => map.next_value()?,
6554 _ => return Err(de::Error::missing_field(".tag"))
6555 };
6556 let value = match tag {
6557 "group_not_found" => GroupMembersSelectorError::GroupNotFound,
6558 "system_managed_group_disallowed" => GroupMembersSelectorError::SystemManagedGroupDisallowed,
6559 "member_not_in_group" => GroupMembersSelectorError::MemberNotInGroup,
6560 _ => GroupMembersSelectorError::Other,
6561 };
6562 crate::eat_json_fields(&mut map)?;
6563 Ok(value)
6564 }
6565 }
6566 const VARIANTS: &[&str] = &["group_not_found",
6567 "other",
6568 "system_managed_group_disallowed",
6569 "member_not_in_group"];
6570 deserializer.deserialize_struct("GroupMembersSelectorError", VARIANTS, EnumVisitor)
6571 }
6572}
6573
6574impl ::serde::ser::Serialize for GroupMembersSelectorError {
6575 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6576 use serde::ser::SerializeStruct;
6578 match self {
6579 GroupMembersSelectorError::GroupNotFound => {
6580 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6582 s.serialize_field(".tag", "group_not_found")?;
6583 s.end()
6584 }
6585 GroupMembersSelectorError::SystemManagedGroupDisallowed => {
6586 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6588 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6589 s.end()
6590 }
6591 GroupMembersSelectorError::MemberNotInGroup => {
6592 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6594 s.serialize_field(".tag", "member_not_in_group")?;
6595 s.end()
6596 }
6597 GroupMembersSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6598 }
6599 }
6600}
6601
6602impl ::std::error::Error for GroupMembersSelectorError {
6603}
6604
6605impl ::std::fmt::Display for GroupMembersSelectorError {
6606 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6607 match self {
6608 GroupMembersSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6609 GroupMembersSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6610 GroupMembersSelectorError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
6611 _ => write!(f, "{:?}", *self),
6612 }
6613 }
6614}
6615
6616impl From<GroupSelectorWithTeamGroupError> for GroupMembersSelectorError {
6618 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6619 match parent {
6620 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersSelectorError::GroupNotFound,
6621 GroupSelectorWithTeamGroupError::Other => GroupMembersSelectorError::Other,
6622 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersSelectorError::SystemManagedGroupDisallowed,
6623 }
6624 }
6625}
6626#[derive(Debug, Clone, PartialEq, Eq)]
6627#[non_exhaustive] pub struct GroupMembersSetAccessTypeArg {
6629 pub group: GroupSelector,
6631 pub user: UserSelectorArg,
6633 pub access_type: GroupAccessType,
6635 pub return_members: bool,
6639}
6640
6641impl GroupMembersSetAccessTypeArg {
6642 pub fn new(group: GroupSelector, user: UserSelectorArg, access_type: GroupAccessType) -> Self {
6643 GroupMembersSetAccessTypeArg {
6644 group,
6645 user,
6646 access_type,
6647 return_members: true,
6648 }
6649 }
6650
6651 pub fn with_return_members(mut self, value: bool) -> Self {
6652 self.return_members = value;
6653 self
6654 }
6655}
6656
6657const GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS: &[&str] = &["group",
6658 "user",
6659 "access_type",
6660 "return_members"];
6661impl GroupMembersSetAccessTypeArg {
6662 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6663 map: V,
6664 ) -> Result<GroupMembersSetAccessTypeArg, V::Error> {
6665 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6666 }
6667
6668 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6669 mut map: V,
6670 optional: bool,
6671 ) -> Result<Option<GroupMembersSetAccessTypeArg>, V::Error> {
6672 let mut field_group = None;
6673 let mut field_user = None;
6674 let mut field_access_type = None;
6675 let mut field_return_members = None;
6676 let mut nothing = true;
6677 while let Some(key) = map.next_key::<&str>()? {
6678 nothing = false;
6679 match key {
6680 "group" => {
6681 if field_group.is_some() {
6682 return Err(::serde::de::Error::duplicate_field("group"));
6683 }
6684 field_group = Some(map.next_value()?);
6685 }
6686 "user" => {
6687 if field_user.is_some() {
6688 return Err(::serde::de::Error::duplicate_field("user"));
6689 }
6690 field_user = Some(map.next_value()?);
6691 }
6692 "access_type" => {
6693 if field_access_type.is_some() {
6694 return Err(::serde::de::Error::duplicate_field("access_type"));
6695 }
6696 field_access_type = Some(map.next_value()?);
6697 }
6698 "return_members" => {
6699 if field_return_members.is_some() {
6700 return Err(::serde::de::Error::duplicate_field("return_members"));
6701 }
6702 field_return_members = Some(map.next_value()?);
6703 }
6704 _ => {
6705 map.next_value::<::serde_json::Value>()?;
6707 }
6708 }
6709 }
6710 if optional && nothing {
6711 return Ok(None);
6712 }
6713 let result = GroupMembersSetAccessTypeArg {
6714 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6715 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
6716 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
6717 return_members: field_return_members.unwrap_or(true),
6718 };
6719 Ok(Some(result))
6720 }
6721
6722 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6723 &self,
6724 s: &mut S::SerializeStruct,
6725 ) -> Result<(), S::Error> {
6726 use serde::ser::SerializeStruct;
6727 s.serialize_field("group", &self.group)?;
6728 s.serialize_field("user", &self.user)?;
6729 s.serialize_field("access_type", &self.access_type)?;
6730 if !self.return_members {
6731 s.serialize_field("return_members", &self.return_members)?;
6732 }
6733 Ok(())
6734 }
6735}
6736
6737impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSetAccessTypeArg {
6738 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6739 use serde::de::{MapAccess, Visitor};
6741 struct StructVisitor;
6742 impl<'de> Visitor<'de> for StructVisitor {
6743 type Value = GroupMembersSetAccessTypeArg;
6744 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6745 f.write_str("a GroupMembersSetAccessTypeArg struct")
6746 }
6747 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6748 GroupMembersSetAccessTypeArg::internal_deserialize(map)
6749 }
6750 }
6751 deserializer.deserialize_struct("GroupMembersSetAccessTypeArg", GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS, StructVisitor)
6752 }
6753}
6754
6755impl ::serde::ser::Serialize for GroupMembersSetAccessTypeArg {
6756 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6757 use serde::ser::SerializeStruct;
6759 let mut s = serializer.serialize_struct("GroupMembersSetAccessTypeArg", 4)?;
6760 self.internal_serialize::<S>(&mut s)?;
6761 s.end()
6762 }
6763}
6764
6765impl From<GroupMembersSetAccessTypeArg> for GroupMemberSelector {
6767 fn from(subtype: GroupMembersSetAccessTypeArg) -> Self {
6768 Self {
6769 group: subtype.group,
6770 user: subtype.user,
6771 }
6772 }
6773}
6774#[derive(Debug, Clone, PartialEq, Eq)]
6776pub enum GroupSelector {
6777 GroupId(crate::types::team_common::GroupId),
6779 GroupExternalId(crate::types::team_common::GroupExternalId),
6781}
6782
6783impl<'de> ::serde::de::Deserialize<'de> for GroupSelector {
6784 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6785 use serde::de::{self, MapAccess, Visitor};
6787 struct EnumVisitor;
6788 impl<'de> Visitor<'de> for EnumVisitor {
6789 type Value = GroupSelector;
6790 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6791 f.write_str("a GroupSelector structure")
6792 }
6793 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6794 let tag: &str = match map.next_key()? {
6795 Some(".tag") => map.next_value()?,
6796 _ => return Err(de::Error::missing_field(".tag"))
6797 };
6798 let value = match tag {
6799 "group_id" => {
6800 match map.next_key()? {
6801 Some("group_id") => GroupSelector::GroupId(map.next_value()?),
6802 None => return Err(de::Error::missing_field("group_id")),
6803 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6804 }
6805 }
6806 "group_external_id" => {
6807 match map.next_key()? {
6808 Some("group_external_id") => GroupSelector::GroupExternalId(map.next_value()?),
6809 None => return Err(de::Error::missing_field("group_external_id")),
6810 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6811 }
6812 }
6813 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
6814 };
6815 crate::eat_json_fields(&mut map)?;
6816 Ok(value)
6817 }
6818 }
6819 const VARIANTS: &[&str] = &["group_id",
6820 "group_external_id"];
6821 deserializer.deserialize_struct("GroupSelector", VARIANTS, EnumVisitor)
6822 }
6823}
6824
6825impl ::serde::ser::Serialize for GroupSelector {
6826 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6827 use serde::ser::SerializeStruct;
6829 match self {
6830 GroupSelector::GroupId(x) => {
6831 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
6833 s.serialize_field(".tag", "group_id")?;
6834 s.serialize_field("group_id", x)?;
6835 s.end()
6836 }
6837 GroupSelector::GroupExternalId(x) => {
6838 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
6840 s.serialize_field(".tag", "group_external_id")?;
6841 s.serialize_field("group_external_id", x)?;
6842 s.end()
6843 }
6844 }
6845 }
6846}
6847
6848#[derive(Debug, Clone, PartialEq, Eq)]
6850#[non_exhaustive] pub enum GroupSelectorError {
6852 GroupNotFound,
6854 Other,
6857}
6858
6859impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorError {
6860 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6861 use serde::de::{self, MapAccess, Visitor};
6863 struct EnumVisitor;
6864 impl<'de> Visitor<'de> for EnumVisitor {
6865 type Value = GroupSelectorError;
6866 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6867 f.write_str("a GroupSelectorError structure")
6868 }
6869 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6870 let tag: &str = match map.next_key()? {
6871 Some(".tag") => map.next_value()?,
6872 _ => return Err(de::Error::missing_field(".tag"))
6873 };
6874 let value = match tag {
6875 "group_not_found" => GroupSelectorError::GroupNotFound,
6876 _ => GroupSelectorError::Other,
6877 };
6878 crate::eat_json_fields(&mut map)?;
6879 Ok(value)
6880 }
6881 }
6882 const VARIANTS: &[&str] = &["group_not_found",
6883 "other"];
6884 deserializer.deserialize_struct("GroupSelectorError", VARIANTS, EnumVisitor)
6885 }
6886}
6887
6888impl ::serde::ser::Serialize for GroupSelectorError {
6889 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6890 use serde::ser::SerializeStruct;
6892 match self {
6893 GroupSelectorError::GroupNotFound => {
6894 let mut s = serializer.serialize_struct("GroupSelectorError", 1)?;
6896 s.serialize_field(".tag", "group_not_found")?;
6897 s.end()
6898 }
6899 GroupSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6900 }
6901 }
6902}
6903
6904impl ::std::error::Error for GroupSelectorError {
6905}
6906
6907impl ::std::fmt::Display for GroupSelectorError {
6908 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6909 match self {
6910 GroupSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6911 _ => write!(f, "{:?}", *self),
6912 }
6913 }
6914}
6915
6916#[derive(Debug, Clone, PartialEq, Eq)]
6919#[non_exhaustive] pub enum GroupSelectorWithTeamGroupError {
6921 GroupNotFound,
6923 SystemManagedGroupDisallowed,
6925 Other,
6928}
6929
6930impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorWithTeamGroupError {
6931 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6932 use serde::de::{self, MapAccess, Visitor};
6934 struct EnumVisitor;
6935 impl<'de> Visitor<'de> for EnumVisitor {
6936 type Value = GroupSelectorWithTeamGroupError;
6937 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6938 f.write_str("a GroupSelectorWithTeamGroupError structure")
6939 }
6940 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6941 let tag: &str = match map.next_key()? {
6942 Some(".tag") => map.next_value()?,
6943 _ => return Err(de::Error::missing_field(".tag"))
6944 };
6945 let value = match tag {
6946 "group_not_found" => GroupSelectorWithTeamGroupError::GroupNotFound,
6947 "system_managed_group_disallowed" => GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed,
6948 _ => GroupSelectorWithTeamGroupError::Other,
6949 };
6950 crate::eat_json_fields(&mut map)?;
6951 Ok(value)
6952 }
6953 }
6954 const VARIANTS: &[&str] = &["group_not_found",
6955 "other",
6956 "system_managed_group_disallowed"];
6957 deserializer.deserialize_struct("GroupSelectorWithTeamGroupError", VARIANTS, EnumVisitor)
6958 }
6959}
6960
6961impl ::serde::ser::Serialize for GroupSelectorWithTeamGroupError {
6962 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6963 use serde::ser::SerializeStruct;
6965 match self {
6966 GroupSelectorWithTeamGroupError::GroupNotFound => {
6967 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
6969 s.serialize_field(".tag", "group_not_found")?;
6970 s.end()
6971 }
6972 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => {
6973 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
6975 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6976 s.end()
6977 }
6978 GroupSelectorWithTeamGroupError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6979 }
6980 }
6981}
6982
6983impl ::std::error::Error for GroupSelectorWithTeamGroupError {
6984}
6985
6986impl ::std::fmt::Display for GroupSelectorWithTeamGroupError {
6987 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6988 match self {
6989 GroupSelectorWithTeamGroupError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6990 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6991 _ => write!(f, "{:?}", *self),
6992 }
6993 }
6994}
6995
6996impl From<GroupSelectorError> for GroupSelectorWithTeamGroupError {
6998 fn from(parent: GroupSelectorError) -> Self {
6999 match parent {
7000 GroupSelectorError::GroupNotFound => GroupSelectorWithTeamGroupError::GroupNotFound,
7001 GroupSelectorError::Other => GroupSelectorWithTeamGroupError::Other,
7002 }
7003 }
7004}
7005#[derive(Debug, Clone, PartialEq, Eq)]
7006#[non_exhaustive] pub struct GroupUpdateArgs {
7008 pub group: GroupSelector,
7010 pub return_members: bool,
7014 pub new_group_name: Option<String>,
7016 pub new_group_external_id: Option<crate::types::team_common::GroupExternalId>,
7019 pub new_group_management_type: Option<crate::types::team_common::GroupManagementType>,
7021}
7022
7023impl GroupUpdateArgs {
7024 pub fn new(group: GroupSelector) -> Self {
7025 GroupUpdateArgs {
7026 group,
7027 return_members: true,
7028 new_group_name: None,
7029 new_group_external_id: None,
7030 new_group_management_type: None,
7031 }
7032 }
7033
7034 pub fn with_return_members(mut self, value: bool) -> Self {
7035 self.return_members = value;
7036 self
7037 }
7038
7039 pub fn with_new_group_name(mut self, value: String) -> Self {
7040 self.new_group_name = Some(value);
7041 self
7042 }
7043
7044 pub fn with_new_group_external_id(
7045 mut self,
7046 value: crate::types::team_common::GroupExternalId,
7047 ) -> Self {
7048 self.new_group_external_id = Some(value);
7049 self
7050 }
7051
7052 pub fn with_new_group_management_type(
7053 mut self,
7054 value: crate::types::team_common::GroupManagementType,
7055 ) -> Self {
7056 self.new_group_management_type = Some(value);
7057 self
7058 }
7059}
7060
7061const GROUP_UPDATE_ARGS_FIELDS: &[&str] = &["group",
7062 "return_members",
7063 "new_group_name",
7064 "new_group_external_id",
7065 "new_group_management_type"];
7066impl GroupUpdateArgs {
7067 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7068 map: V,
7069 ) -> Result<GroupUpdateArgs, V::Error> {
7070 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7071 }
7072
7073 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7074 mut map: V,
7075 optional: bool,
7076 ) -> Result<Option<GroupUpdateArgs>, V::Error> {
7077 let mut field_group = None;
7078 let mut field_return_members = None;
7079 let mut field_new_group_name = None;
7080 let mut field_new_group_external_id = None;
7081 let mut field_new_group_management_type = None;
7082 let mut nothing = true;
7083 while let Some(key) = map.next_key::<&str>()? {
7084 nothing = false;
7085 match key {
7086 "group" => {
7087 if field_group.is_some() {
7088 return Err(::serde::de::Error::duplicate_field("group"));
7089 }
7090 field_group = Some(map.next_value()?);
7091 }
7092 "return_members" => {
7093 if field_return_members.is_some() {
7094 return Err(::serde::de::Error::duplicate_field("return_members"));
7095 }
7096 field_return_members = Some(map.next_value()?);
7097 }
7098 "new_group_name" => {
7099 if field_new_group_name.is_some() {
7100 return Err(::serde::de::Error::duplicate_field("new_group_name"));
7101 }
7102 field_new_group_name = Some(map.next_value()?);
7103 }
7104 "new_group_external_id" => {
7105 if field_new_group_external_id.is_some() {
7106 return Err(::serde::de::Error::duplicate_field("new_group_external_id"));
7107 }
7108 field_new_group_external_id = Some(map.next_value()?);
7109 }
7110 "new_group_management_type" => {
7111 if field_new_group_management_type.is_some() {
7112 return Err(::serde::de::Error::duplicate_field("new_group_management_type"));
7113 }
7114 field_new_group_management_type = Some(map.next_value()?);
7115 }
7116 _ => {
7117 map.next_value::<::serde_json::Value>()?;
7119 }
7120 }
7121 }
7122 if optional && nothing {
7123 return Ok(None);
7124 }
7125 let result = GroupUpdateArgs {
7126 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7127 return_members: field_return_members.unwrap_or(true),
7128 new_group_name: field_new_group_name.and_then(Option::flatten),
7129 new_group_external_id: field_new_group_external_id.and_then(Option::flatten),
7130 new_group_management_type: field_new_group_management_type.and_then(Option::flatten),
7131 };
7132 Ok(Some(result))
7133 }
7134
7135 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7136 &self,
7137 s: &mut S::SerializeStruct,
7138 ) -> Result<(), S::Error> {
7139 use serde::ser::SerializeStruct;
7140 s.serialize_field("group", &self.group)?;
7141 if !self.return_members {
7142 s.serialize_field("return_members", &self.return_members)?;
7143 }
7144 if let Some(val) = &self.new_group_name {
7145 s.serialize_field("new_group_name", val)?;
7146 }
7147 if let Some(val) = &self.new_group_external_id {
7148 s.serialize_field("new_group_external_id", val)?;
7149 }
7150 if let Some(val) = &self.new_group_management_type {
7151 s.serialize_field("new_group_management_type", val)?;
7152 }
7153 Ok(())
7154 }
7155}
7156
7157impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateArgs {
7158 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7159 use serde::de::{MapAccess, Visitor};
7161 struct StructVisitor;
7162 impl<'de> Visitor<'de> for StructVisitor {
7163 type Value = GroupUpdateArgs;
7164 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7165 f.write_str("a GroupUpdateArgs struct")
7166 }
7167 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7168 GroupUpdateArgs::internal_deserialize(map)
7169 }
7170 }
7171 deserializer.deserialize_struct("GroupUpdateArgs", GROUP_UPDATE_ARGS_FIELDS, StructVisitor)
7172 }
7173}
7174
7175impl ::serde::ser::Serialize for GroupUpdateArgs {
7176 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7177 use serde::ser::SerializeStruct;
7179 let mut s = serializer.serialize_struct("GroupUpdateArgs", 5)?;
7180 self.internal_serialize::<S>(&mut s)?;
7181 s.end()
7182 }
7183}
7184
7185impl From<GroupUpdateArgs> for IncludeMembersArg {
7187 fn from(subtype: GroupUpdateArgs) -> Self {
7188 Self {
7189 return_members: subtype.return_members,
7190 }
7191 }
7192}
7193#[derive(Debug, Clone, PartialEq, Eq)]
7194#[non_exhaustive] pub enum GroupUpdateError {
7196 GroupNotFound,
7198 SystemManagedGroupDisallowed,
7200 GroupNameAlreadyUsed,
7202 GroupNameInvalid,
7204 ExternalIdAlreadyInUse,
7206 Other,
7209}
7210
7211impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateError {
7212 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7213 use serde::de::{self, MapAccess, Visitor};
7215 struct EnumVisitor;
7216 impl<'de> Visitor<'de> for EnumVisitor {
7217 type Value = GroupUpdateError;
7218 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7219 f.write_str("a GroupUpdateError structure")
7220 }
7221 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7222 let tag: &str = match map.next_key()? {
7223 Some(".tag") => map.next_value()?,
7224 _ => return Err(de::Error::missing_field(".tag"))
7225 };
7226 let value = match tag {
7227 "group_not_found" => GroupUpdateError::GroupNotFound,
7228 "system_managed_group_disallowed" => GroupUpdateError::SystemManagedGroupDisallowed,
7229 "group_name_already_used" => GroupUpdateError::GroupNameAlreadyUsed,
7230 "group_name_invalid" => GroupUpdateError::GroupNameInvalid,
7231 "external_id_already_in_use" => GroupUpdateError::ExternalIdAlreadyInUse,
7232 _ => GroupUpdateError::Other,
7233 };
7234 crate::eat_json_fields(&mut map)?;
7235 Ok(value)
7236 }
7237 }
7238 const VARIANTS: &[&str] = &["group_not_found",
7239 "other",
7240 "system_managed_group_disallowed",
7241 "group_name_already_used",
7242 "group_name_invalid",
7243 "external_id_already_in_use"];
7244 deserializer.deserialize_struct("GroupUpdateError", VARIANTS, EnumVisitor)
7245 }
7246}
7247
7248impl ::serde::ser::Serialize for GroupUpdateError {
7249 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7250 use serde::ser::SerializeStruct;
7252 match self {
7253 GroupUpdateError::GroupNotFound => {
7254 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7256 s.serialize_field(".tag", "group_not_found")?;
7257 s.end()
7258 }
7259 GroupUpdateError::SystemManagedGroupDisallowed => {
7260 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7262 s.serialize_field(".tag", "system_managed_group_disallowed")?;
7263 s.end()
7264 }
7265 GroupUpdateError::GroupNameAlreadyUsed => {
7266 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7268 s.serialize_field(".tag", "group_name_already_used")?;
7269 s.end()
7270 }
7271 GroupUpdateError::GroupNameInvalid => {
7272 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7274 s.serialize_field(".tag", "group_name_invalid")?;
7275 s.end()
7276 }
7277 GroupUpdateError::ExternalIdAlreadyInUse => {
7278 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7280 s.serialize_field(".tag", "external_id_already_in_use")?;
7281 s.end()
7282 }
7283 GroupUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7284 }
7285 }
7286}
7287
7288impl ::std::error::Error for GroupUpdateError {
7289}
7290
7291impl ::std::fmt::Display for GroupUpdateError {
7292 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7293 match self {
7294 GroupUpdateError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7295 GroupUpdateError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
7296 GroupUpdateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
7297 GroupUpdateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
7298 GroupUpdateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
7299 _ => write!(f, "{:?}", *self),
7300 }
7301 }
7302}
7303
7304impl From<GroupSelectorWithTeamGroupError> for GroupUpdateError {
7306 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
7307 match parent {
7308 GroupSelectorWithTeamGroupError::GroupNotFound => GroupUpdateError::GroupNotFound,
7309 GroupSelectorWithTeamGroupError::Other => GroupUpdateError::Other,
7310 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupUpdateError::SystemManagedGroupDisallowed,
7311 }
7312 }
7313}
7314#[derive(Debug, Clone, PartialEq, Eq)]
7315#[non_exhaustive] pub enum GroupsGetInfoError {
7317 GroupNotOnTeam,
7319 Other,
7322}
7323
7324impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoError {
7325 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7326 use serde::de::{self, MapAccess, Visitor};
7328 struct EnumVisitor;
7329 impl<'de> Visitor<'de> for EnumVisitor {
7330 type Value = GroupsGetInfoError;
7331 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7332 f.write_str("a GroupsGetInfoError structure")
7333 }
7334 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7335 let tag: &str = match map.next_key()? {
7336 Some(".tag") => map.next_value()?,
7337 _ => return Err(de::Error::missing_field(".tag"))
7338 };
7339 let value = match tag {
7340 "group_not_on_team" => GroupsGetInfoError::GroupNotOnTeam,
7341 _ => GroupsGetInfoError::Other,
7342 };
7343 crate::eat_json_fields(&mut map)?;
7344 Ok(value)
7345 }
7346 }
7347 const VARIANTS: &[&str] = &["group_not_on_team",
7348 "other"];
7349 deserializer.deserialize_struct("GroupsGetInfoError", VARIANTS, EnumVisitor)
7350 }
7351}
7352
7353impl ::serde::ser::Serialize for GroupsGetInfoError {
7354 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7355 use serde::ser::SerializeStruct;
7357 match self {
7358 GroupsGetInfoError::GroupNotOnTeam => {
7359 let mut s = serializer.serialize_struct("GroupsGetInfoError", 1)?;
7361 s.serialize_field(".tag", "group_not_on_team")?;
7362 s.end()
7363 }
7364 GroupsGetInfoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7365 }
7366 }
7367}
7368
7369impl ::std::error::Error for GroupsGetInfoError {
7370}
7371
7372impl ::std::fmt::Display for GroupsGetInfoError {
7373 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7374 match self {
7375 GroupsGetInfoError::GroupNotOnTeam => f.write_str("The group is not on your team."),
7376 _ => write!(f, "{:?}", *self),
7377 }
7378 }
7379}
7380
7381#[derive(Debug, Clone, PartialEq, Eq)]
7382pub enum GroupsGetInfoItem {
7383 IdNotFound(String),
7387 GroupInfo(GroupFullInfo),
7389}
7390
7391impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoItem {
7392 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7393 use serde::de::{self, MapAccess, Visitor};
7395 struct EnumVisitor;
7396 impl<'de> Visitor<'de> for EnumVisitor {
7397 type Value = GroupsGetInfoItem;
7398 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7399 f.write_str("a GroupsGetInfoItem structure")
7400 }
7401 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7402 let tag: &str = match map.next_key()? {
7403 Some(".tag") => map.next_value()?,
7404 _ => return Err(de::Error::missing_field(".tag"))
7405 };
7406 let value = match tag {
7407 "id_not_found" => {
7408 match map.next_key()? {
7409 Some("id_not_found") => GroupsGetInfoItem::IdNotFound(map.next_value()?),
7410 None => return Err(de::Error::missing_field("id_not_found")),
7411 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7412 }
7413 }
7414 "group_info" => GroupsGetInfoItem::GroupInfo(GroupFullInfo::internal_deserialize(&mut map)?),
7415 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
7416 };
7417 crate::eat_json_fields(&mut map)?;
7418 Ok(value)
7419 }
7420 }
7421 const VARIANTS: &[&str] = &["id_not_found",
7422 "group_info"];
7423 deserializer.deserialize_struct("GroupsGetInfoItem", VARIANTS, EnumVisitor)
7424 }
7425}
7426
7427impl ::serde::ser::Serialize for GroupsGetInfoItem {
7428 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7429 use serde::ser::SerializeStruct;
7431 match self {
7432 GroupsGetInfoItem::IdNotFound(x) => {
7433 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 2)?;
7435 s.serialize_field(".tag", "id_not_found")?;
7436 s.serialize_field("id_not_found", x)?;
7437 s.end()
7438 }
7439 GroupsGetInfoItem::GroupInfo(x) => {
7440 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 8)?;
7442 s.serialize_field(".tag", "group_info")?;
7443 x.internal_serialize::<S>(&mut s)?;
7444 s.end()
7445 }
7446 }
7447 }
7448}
7449
7450#[derive(Debug, Clone, PartialEq, Eq)]
7451#[non_exhaustive] pub struct GroupsListArg {
7453 pub limit: u32,
7455}
7456
7457impl Default for GroupsListArg {
7458 fn default() -> Self {
7459 GroupsListArg {
7460 limit: 1000,
7461 }
7462 }
7463}
7464
7465impl GroupsListArg {
7466 pub fn with_limit(mut self, value: u32) -> Self {
7467 self.limit = value;
7468 self
7469 }
7470}
7471
7472const GROUPS_LIST_ARG_FIELDS: &[&str] = &["limit"];
7473impl GroupsListArg {
7474 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7476 mut map: V,
7477 ) -> Result<GroupsListArg, V::Error> {
7478 let mut field_limit = None;
7479 while let Some(key) = map.next_key::<&str>()? {
7480 match key {
7481 "limit" => {
7482 if field_limit.is_some() {
7483 return Err(::serde::de::Error::duplicate_field("limit"));
7484 }
7485 field_limit = Some(map.next_value()?);
7486 }
7487 _ => {
7488 map.next_value::<::serde_json::Value>()?;
7490 }
7491 }
7492 }
7493 let result = GroupsListArg {
7494 limit: field_limit.unwrap_or(1000),
7495 };
7496 Ok(result)
7497 }
7498
7499 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7500 &self,
7501 s: &mut S::SerializeStruct,
7502 ) -> Result<(), S::Error> {
7503 use serde::ser::SerializeStruct;
7504 if self.limit != 1000 {
7505 s.serialize_field("limit", &self.limit)?;
7506 }
7507 Ok(())
7508 }
7509}
7510
7511impl<'de> ::serde::de::Deserialize<'de> for GroupsListArg {
7512 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7513 use serde::de::{MapAccess, Visitor};
7515 struct StructVisitor;
7516 impl<'de> Visitor<'de> for StructVisitor {
7517 type Value = GroupsListArg;
7518 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7519 f.write_str("a GroupsListArg struct")
7520 }
7521 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7522 GroupsListArg::internal_deserialize(map)
7523 }
7524 }
7525 deserializer.deserialize_struct("GroupsListArg", GROUPS_LIST_ARG_FIELDS, StructVisitor)
7526 }
7527}
7528
7529impl ::serde::ser::Serialize for GroupsListArg {
7530 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7531 use serde::ser::SerializeStruct;
7533 let mut s = serializer.serialize_struct("GroupsListArg", 1)?;
7534 self.internal_serialize::<S>(&mut s)?;
7535 s.end()
7536 }
7537}
7538
7539#[derive(Debug, Clone, PartialEq, Eq)]
7540#[non_exhaustive] pub struct GroupsListContinueArg {
7542 pub cursor: String,
7544}
7545
7546impl GroupsListContinueArg {
7547 pub fn new(cursor: String) -> Self {
7548 GroupsListContinueArg {
7549 cursor,
7550 }
7551 }
7552}
7553
7554const GROUPS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
7555impl GroupsListContinueArg {
7556 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7557 map: V,
7558 ) -> Result<GroupsListContinueArg, V::Error> {
7559 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7560 }
7561
7562 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7563 mut map: V,
7564 optional: bool,
7565 ) -> Result<Option<GroupsListContinueArg>, V::Error> {
7566 let mut field_cursor = None;
7567 let mut nothing = true;
7568 while let Some(key) = map.next_key::<&str>()? {
7569 nothing = false;
7570 match key {
7571 "cursor" => {
7572 if field_cursor.is_some() {
7573 return Err(::serde::de::Error::duplicate_field("cursor"));
7574 }
7575 field_cursor = Some(map.next_value()?);
7576 }
7577 _ => {
7578 map.next_value::<::serde_json::Value>()?;
7580 }
7581 }
7582 }
7583 if optional && nothing {
7584 return Ok(None);
7585 }
7586 let result = GroupsListContinueArg {
7587 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7588 };
7589 Ok(Some(result))
7590 }
7591
7592 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7593 &self,
7594 s: &mut S::SerializeStruct,
7595 ) -> Result<(), S::Error> {
7596 use serde::ser::SerializeStruct;
7597 s.serialize_field("cursor", &self.cursor)?;
7598 Ok(())
7599 }
7600}
7601
7602impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueArg {
7603 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7604 use serde::de::{MapAccess, Visitor};
7606 struct StructVisitor;
7607 impl<'de> Visitor<'de> for StructVisitor {
7608 type Value = GroupsListContinueArg;
7609 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7610 f.write_str("a GroupsListContinueArg struct")
7611 }
7612 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7613 GroupsListContinueArg::internal_deserialize(map)
7614 }
7615 }
7616 deserializer.deserialize_struct("GroupsListContinueArg", GROUPS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
7617 }
7618}
7619
7620impl ::serde::ser::Serialize for GroupsListContinueArg {
7621 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7622 use serde::ser::SerializeStruct;
7624 let mut s = serializer.serialize_struct("GroupsListContinueArg", 1)?;
7625 self.internal_serialize::<S>(&mut s)?;
7626 s.end()
7627 }
7628}
7629
7630#[derive(Debug, Clone, PartialEq, Eq)]
7631#[non_exhaustive] pub enum GroupsListContinueError {
7633 InvalidCursor,
7635 Other,
7638}
7639
7640impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueError {
7641 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7642 use serde::de::{self, MapAccess, Visitor};
7644 struct EnumVisitor;
7645 impl<'de> Visitor<'de> for EnumVisitor {
7646 type Value = GroupsListContinueError;
7647 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7648 f.write_str("a GroupsListContinueError structure")
7649 }
7650 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7651 let tag: &str = match map.next_key()? {
7652 Some(".tag") => map.next_value()?,
7653 _ => return Err(de::Error::missing_field(".tag"))
7654 };
7655 let value = match tag {
7656 "invalid_cursor" => GroupsListContinueError::InvalidCursor,
7657 _ => GroupsListContinueError::Other,
7658 };
7659 crate::eat_json_fields(&mut map)?;
7660 Ok(value)
7661 }
7662 }
7663 const VARIANTS: &[&str] = &["invalid_cursor",
7664 "other"];
7665 deserializer.deserialize_struct("GroupsListContinueError", VARIANTS, EnumVisitor)
7666 }
7667}
7668
7669impl ::serde::ser::Serialize for GroupsListContinueError {
7670 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7671 use serde::ser::SerializeStruct;
7673 match self {
7674 GroupsListContinueError::InvalidCursor => {
7675 let mut s = serializer.serialize_struct("GroupsListContinueError", 1)?;
7677 s.serialize_field(".tag", "invalid_cursor")?;
7678 s.end()
7679 }
7680 GroupsListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7681 }
7682 }
7683}
7684
7685impl ::std::error::Error for GroupsListContinueError {
7686}
7687
7688impl ::std::fmt::Display for GroupsListContinueError {
7689 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7690 match self {
7691 GroupsListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
7692 _ => write!(f, "{:?}", *self),
7693 }
7694 }
7695}
7696
7697#[derive(Debug, Clone, PartialEq, Eq)]
7698#[non_exhaustive] pub struct GroupsListResult {
7700 pub groups: Vec<crate::types::team_common::GroupSummary>,
7701 pub cursor: String,
7704 pub has_more: bool,
7707}
7708
7709impl GroupsListResult {
7710 pub fn new(
7711 groups: Vec<crate::types::team_common::GroupSummary>,
7712 cursor: String,
7713 has_more: bool,
7714 ) -> Self {
7715 GroupsListResult {
7716 groups,
7717 cursor,
7718 has_more,
7719 }
7720 }
7721}
7722
7723const GROUPS_LIST_RESULT_FIELDS: &[&str] = &["groups",
7724 "cursor",
7725 "has_more"];
7726impl GroupsListResult {
7727 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7728 map: V,
7729 ) -> Result<GroupsListResult, V::Error> {
7730 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7731 }
7732
7733 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7734 mut map: V,
7735 optional: bool,
7736 ) -> Result<Option<GroupsListResult>, V::Error> {
7737 let mut field_groups = None;
7738 let mut field_cursor = None;
7739 let mut field_has_more = None;
7740 let mut nothing = true;
7741 while let Some(key) = map.next_key::<&str>()? {
7742 nothing = false;
7743 match key {
7744 "groups" => {
7745 if field_groups.is_some() {
7746 return Err(::serde::de::Error::duplicate_field("groups"));
7747 }
7748 field_groups = Some(map.next_value()?);
7749 }
7750 "cursor" => {
7751 if field_cursor.is_some() {
7752 return Err(::serde::de::Error::duplicate_field("cursor"));
7753 }
7754 field_cursor = Some(map.next_value()?);
7755 }
7756 "has_more" => {
7757 if field_has_more.is_some() {
7758 return Err(::serde::de::Error::duplicate_field("has_more"));
7759 }
7760 field_has_more = Some(map.next_value()?);
7761 }
7762 _ => {
7763 map.next_value::<::serde_json::Value>()?;
7765 }
7766 }
7767 }
7768 if optional && nothing {
7769 return Ok(None);
7770 }
7771 let result = GroupsListResult {
7772 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
7773 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7774 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
7775 };
7776 Ok(Some(result))
7777 }
7778
7779 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7780 &self,
7781 s: &mut S::SerializeStruct,
7782 ) -> Result<(), S::Error> {
7783 use serde::ser::SerializeStruct;
7784 s.serialize_field("groups", &self.groups)?;
7785 s.serialize_field("cursor", &self.cursor)?;
7786 s.serialize_field("has_more", &self.has_more)?;
7787 Ok(())
7788 }
7789}
7790
7791impl<'de> ::serde::de::Deserialize<'de> for GroupsListResult {
7792 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7793 use serde::de::{MapAccess, Visitor};
7795 struct StructVisitor;
7796 impl<'de> Visitor<'de> for StructVisitor {
7797 type Value = GroupsListResult;
7798 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7799 f.write_str("a GroupsListResult struct")
7800 }
7801 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7802 GroupsListResult::internal_deserialize(map)
7803 }
7804 }
7805 deserializer.deserialize_struct("GroupsListResult", GROUPS_LIST_RESULT_FIELDS, StructVisitor)
7806 }
7807}
7808
7809impl ::serde::ser::Serialize for GroupsListResult {
7810 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7811 use serde::ser::SerializeStruct;
7813 let mut s = serializer.serialize_struct("GroupsListResult", 3)?;
7814 self.internal_serialize::<S>(&mut s)?;
7815 s.end()
7816 }
7817}
7818
7819#[derive(Debug, Clone, PartialEq, Eq)]
7820#[non_exhaustive] pub struct GroupsMembersListArg {
7822 pub group: GroupSelector,
7824 pub limit: u32,
7826}
7827
7828impl GroupsMembersListArg {
7829 pub fn new(group: GroupSelector) -> Self {
7830 GroupsMembersListArg {
7831 group,
7832 limit: 1000,
7833 }
7834 }
7835
7836 pub fn with_limit(mut self, value: u32) -> Self {
7837 self.limit = value;
7838 self
7839 }
7840}
7841
7842const GROUPS_MEMBERS_LIST_ARG_FIELDS: &[&str] = &["group",
7843 "limit"];
7844impl GroupsMembersListArg {
7845 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7846 map: V,
7847 ) -> Result<GroupsMembersListArg, V::Error> {
7848 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7849 }
7850
7851 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7852 mut map: V,
7853 optional: bool,
7854 ) -> Result<Option<GroupsMembersListArg>, V::Error> {
7855 let mut field_group = None;
7856 let mut field_limit = None;
7857 let mut nothing = true;
7858 while let Some(key) = map.next_key::<&str>()? {
7859 nothing = false;
7860 match key {
7861 "group" => {
7862 if field_group.is_some() {
7863 return Err(::serde::de::Error::duplicate_field("group"));
7864 }
7865 field_group = Some(map.next_value()?);
7866 }
7867 "limit" => {
7868 if field_limit.is_some() {
7869 return Err(::serde::de::Error::duplicate_field("limit"));
7870 }
7871 field_limit = Some(map.next_value()?);
7872 }
7873 _ => {
7874 map.next_value::<::serde_json::Value>()?;
7876 }
7877 }
7878 }
7879 if optional && nothing {
7880 return Ok(None);
7881 }
7882 let result = GroupsMembersListArg {
7883 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7884 limit: field_limit.unwrap_or(1000),
7885 };
7886 Ok(Some(result))
7887 }
7888
7889 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7890 &self,
7891 s: &mut S::SerializeStruct,
7892 ) -> Result<(), S::Error> {
7893 use serde::ser::SerializeStruct;
7894 s.serialize_field("group", &self.group)?;
7895 if self.limit != 1000 {
7896 s.serialize_field("limit", &self.limit)?;
7897 }
7898 Ok(())
7899 }
7900}
7901
7902impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListArg {
7903 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7904 use serde::de::{MapAccess, Visitor};
7906 struct StructVisitor;
7907 impl<'de> Visitor<'de> for StructVisitor {
7908 type Value = GroupsMembersListArg;
7909 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7910 f.write_str("a GroupsMembersListArg struct")
7911 }
7912 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7913 GroupsMembersListArg::internal_deserialize(map)
7914 }
7915 }
7916 deserializer.deserialize_struct("GroupsMembersListArg", GROUPS_MEMBERS_LIST_ARG_FIELDS, StructVisitor)
7917 }
7918}
7919
7920impl ::serde::ser::Serialize for GroupsMembersListArg {
7921 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7922 use serde::ser::SerializeStruct;
7924 let mut s = serializer.serialize_struct("GroupsMembersListArg", 2)?;
7925 self.internal_serialize::<S>(&mut s)?;
7926 s.end()
7927 }
7928}
7929
7930#[derive(Debug, Clone, PartialEq, Eq)]
7931#[non_exhaustive] pub struct GroupsMembersListContinueArg {
7933 pub cursor: String,
7935}
7936
7937impl GroupsMembersListContinueArg {
7938 pub fn new(cursor: String) -> Self {
7939 GroupsMembersListContinueArg {
7940 cursor,
7941 }
7942 }
7943}
7944
7945const GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
7946impl GroupsMembersListContinueArg {
7947 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7948 map: V,
7949 ) -> Result<GroupsMembersListContinueArg, V::Error> {
7950 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7951 }
7952
7953 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7954 mut map: V,
7955 optional: bool,
7956 ) -> Result<Option<GroupsMembersListContinueArg>, V::Error> {
7957 let mut field_cursor = None;
7958 let mut nothing = true;
7959 while let Some(key) = map.next_key::<&str>()? {
7960 nothing = false;
7961 match key {
7962 "cursor" => {
7963 if field_cursor.is_some() {
7964 return Err(::serde::de::Error::duplicate_field("cursor"));
7965 }
7966 field_cursor = Some(map.next_value()?);
7967 }
7968 _ => {
7969 map.next_value::<::serde_json::Value>()?;
7971 }
7972 }
7973 }
7974 if optional && nothing {
7975 return Ok(None);
7976 }
7977 let result = GroupsMembersListContinueArg {
7978 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7979 };
7980 Ok(Some(result))
7981 }
7982
7983 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7984 &self,
7985 s: &mut S::SerializeStruct,
7986 ) -> Result<(), S::Error> {
7987 use serde::ser::SerializeStruct;
7988 s.serialize_field("cursor", &self.cursor)?;
7989 Ok(())
7990 }
7991}
7992
7993impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueArg {
7994 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7995 use serde::de::{MapAccess, Visitor};
7997 struct StructVisitor;
7998 impl<'de> Visitor<'de> for StructVisitor {
7999 type Value = GroupsMembersListContinueArg;
8000 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8001 f.write_str("a GroupsMembersListContinueArg struct")
8002 }
8003 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8004 GroupsMembersListContinueArg::internal_deserialize(map)
8005 }
8006 }
8007 deserializer.deserialize_struct("GroupsMembersListContinueArg", GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
8008 }
8009}
8010
8011impl ::serde::ser::Serialize for GroupsMembersListContinueArg {
8012 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8013 use serde::ser::SerializeStruct;
8015 let mut s = serializer.serialize_struct("GroupsMembersListContinueArg", 1)?;
8016 self.internal_serialize::<S>(&mut s)?;
8017 s.end()
8018 }
8019}
8020
8021#[derive(Debug, Clone, PartialEq, Eq)]
8022#[non_exhaustive] pub enum GroupsMembersListContinueError {
8024 InvalidCursor,
8026 Other,
8029}
8030
8031impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueError {
8032 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8033 use serde::de::{self, MapAccess, Visitor};
8035 struct EnumVisitor;
8036 impl<'de> Visitor<'de> for EnumVisitor {
8037 type Value = GroupsMembersListContinueError;
8038 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8039 f.write_str("a GroupsMembersListContinueError structure")
8040 }
8041 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8042 let tag: &str = match map.next_key()? {
8043 Some(".tag") => map.next_value()?,
8044 _ => return Err(de::Error::missing_field(".tag"))
8045 };
8046 let value = match tag {
8047 "invalid_cursor" => GroupsMembersListContinueError::InvalidCursor,
8048 _ => GroupsMembersListContinueError::Other,
8049 };
8050 crate::eat_json_fields(&mut map)?;
8051 Ok(value)
8052 }
8053 }
8054 const VARIANTS: &[&str] = &["invalid_cursor",
8055 "other"];
8056 deserializer.deserialize_struct("GroupsMembersListContinueError", VARIANTS, EnumVisitor)
8057 }
8058}
8059
8060impl ::serde::ser::Serialize for GroupsMembersListContinueError {
8061 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8062 use serde::ser::SerializeStruct;
8064 match self {
8065 GroupsMembersListContinueError::InvalidCursor => {
8066 let mut s = serializer.serialize_struct("GroupsMembersListContinueError", 1)?;
8068 s.serialize_field(".tag", "invalid_cursor")?;
8069 s.end()
8070 }
8071 GroupsMembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8072 }
8073 }
8074}
8075
8076impl ::std::error::Error for GroupsMembersListContinueError {
8077}
8078
8079impl ::std::fmt::Display for GroupsMembersListContinueError {
8080 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8081 match self {
8082 GroupsMembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
8083 _ => write!(f, "{:?}", *self),
8084 }
8085 }
8086}
8087
8088#[derive(Debug, Clone, PartialEq, Eq)]
8089#[non_exhaustive] pub struct GroupsMembersListResult {
8091 pub members: Vec<GroupMemberInfo>,
8092 pub cursor: String,
8096 pub has_more: bool,
8100}
8101
8102impl GroupsMembersListResult {
8103 pub fn new(members: Vec<GroupMemberInfo>, cursor: String, has_more: bool) -> Self {
8104 GroupsMembersListResult {
8105 members,
8106 cursor,
8107 has_more,
8108 }
8109 }
8110}
8111
8112const GROUPS_MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
8113 "cursor",
8114 "has_more"];
8115impl GroupsMembersListResult {
8116 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8117 map: V,
8118 ) -> Result<GroupsMembersListResult, V::Error> {
8119 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8120 }
8121
8122 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8123 mut map: V,
8124 optional: bool,
8125 ) -> Result<Option<GroupsMembersListResult>, V::Error> {
8126 let mut field_members = None;
8127 let mut field_cursor = None;
8128 let mut field_has_more = None;
8129 let mut nothing = true;
8130 while let Some(key) = map.next_key::<&str>()? {
8131 nothing = false;
8132 match key {
8133 "members" => {
8134 if field_members.is_some() {
8135 return Err(::serde::de::Error::duplicate_field("members"));
8136 }
8137 field_members = Some(map.next_value()?);
8138 }
8139 "cursor" => {
8140 if field_cursor.is_some() {
8141 return Err(::serde::de::Error::duplicate_field("cursor"));
8142 }
8143 field_cursor = Some(map.next_value()?);
8144 }
8145 "has_more" => {
8146 if field_has_more.is_some() {
8147 return Err(::serde::de::Error::duplicate_field("has_more"));
8148 }
8149 field_has_more = Some(map.next_value()?);
8150 }
8151 _ => {
8152 map.next_value::<::serde_json::Value>()?;
8154 }
8155 }
8156 }
8157 if optional && nothing {
8158 return Ok(None);
8159 }
8160 let result = GroupsMembersListResult {
8161 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
8162 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
8163 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
8164 };
8165 Ok(Some(result))
8166 }
8167
8168 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8169 &self,
8170 s: &mut S::SerializeStruct,
8171 ) -> Result<(), S::Error> {
8172 use serde::ser::SerializeStruct;
8173 s.serialize_field("members", &self.members)?;
8174 s.serialize_field("cursor", &self.cursor)?;
8175 s.serialize_field("has_more", &self.has_more)?;
8176 Ok(())
8177 }
8178}
8179
8180impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListResult {
8181 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8182 use serde::de::{MapAccess, Visitor};
8184 struct StructVisitor;
8185 impl<'de> Visitor<'de> for StructVisitor {
8186 type Value = GroupsMembersListResult;
8187 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8188 f.write_str("a GroupsMembersListResult struct")
8189 }
8190 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8191 GroupsMembersListResult::internal_deserialize(map)
8192 }
8193 }
8194 deserializer.deserialize_struct("GroupsMembersListResult", GROUPS_MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
8195 }
8196}
8197
8198impl ::serde::ser::Serialize for GroupsMembersListResult {
8199 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8200 use serde::ser::SerializeStruct;
8202 let mut s = serializer.serialize_struct("GroupsMembersListResult", 3)?;
8203 self.internal_serialize::<S>(&mut s)?;
8204 s.end()
8205 }
8206}
8207
8208#[derive(Debug, Clone, PartialEq, Eq)]
8209#[non_exhaustive] pub enum GroupsPollError {
8211 InvalidAsyncJobId,
8213 InternalError,
8216 AccessDenied,
8218 Other,
8221}
8222
8223impl<'de> ::serde::de::Deserialize<'de> for GroupsPollError {
8224 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8225 use serde::de::{self, MapAccess, Visitor};
8227 struct EnumVisitor;
8228 impl<'de> Visitor<'de> for EnumVisitor {
8229 type Value = GroupsPollError;
8230 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8231 f.write_str("a GroupsPollError structure")
8232 }
8233 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8234 let tag: &str = match map.next_key()? {
8235 Some(".tag") => map.next_value()?,
8236 _ => return Err(de::Error::missing_field(".tag"))
8237 };
8238 let value = match tag {
8239 "invalid_async_job_id" => GroupsPollError::InvalidAsyncJobId,
8240 "internal_error" => GroupsPollError::InternalError,
8241 "access_denied" => GroupsPollError::AccessDenied,
8242 _ => GroupsPollError::Other,
8243 };
8244 crate::eat_json_fields(&mut map)?;
8245 Ok(value)
8246 }
8247 }
8248 const VARIANTS: &[&str] = &["invalid_async_job_id",
8249 "internal_error",
8250 "other",
8251 "access_denied"];
8252 deserializer.deserialize_struct("GroupsPollError", VARIANTS, EnumVisitor)
8253 }
8254}
8255
8256impl ::serde::ser::Serialize for GroupsPollError {
8257 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8258 use serde::ser::SerializeStruct;
8260 match self {
8261 GroupsPollError::InvalidAsyncJobId => {
8262 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8264 s.serialize_field(".tag", "invalid_async_job_id")?;
8265 s.end()
8266 }
8267 GroupsPollError::InternalError => {
8268 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8270 s.serialize_field(".tag", "internal_error")?;
8271 s.end()
8272 }
8273 GroupsPollError::AccessDenied => {
8274 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8276 s.serialize_field(".tag", "access_denied")?;
8277 s.end()
8278 }
8279 GroupsPollError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8280 }
8281 }
8282}
8283
8284impl ::std::error::Error for GroupsPollError {
8285}
8286
8287impl ::std::fmt::Display for GroupsPollError {
8288 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8289 match self {
8290 GroupsPollError::InvalidAsyncJobId => f.write_str("The job ID is invalid."),
8291 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."),
8292 GroupsPollError::AccessDenied => f.write_str("You are not allowed to poll this job."),
8293 _ => write!(f, "{:?}", *self),
8294 }
8295 }
8296}
8297
8298impl From<crate::types::dbx_async::PollError> for GroupsPollError {
8300 fn from(parent: crate::types::dbx_async::PollError) -> Self {
8301 match parent {
8302 crate::types::dbx_async::PollError::InvalidAsyncJobId => GroupsPollError::InvalidAsyncJobId,
8303 crate::types::dbx_async::PollError::InternalError => GroupsPollError::InternalError,
8304 crate::types::dbx_async::PollError::Other => GroupsPollError::Other,
8305 }
8306 }
8307}
8308#[derive(Debug, Clone, PartialEq, Eq)]
8310pub enum GroupsSelector {
8311 GroupIds(Vec<crate::types::team_common::GroupId>),
8313 GroupExternalIds(Vec<String>),
8315}
8316
8317impl<'de> ::serde::de::Deserialize<'de> for GroupsSelector {
8318 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8319 use serde::de::{self, MapAccess, Visitor};
8321 struct EnumVisitor;
8322 impl<'de> Visitor<'de> for EnumVisitor {
8323 type Value = GroupsSelector;
8324 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8325 f.write_str("a GroupsSelector structure")
8326 }
8327 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8328 let tag: &str = match map.next_key()? {
8329 Some(".tag") => map.next_value()?,
8330 _ => return Err(de::Error::missing_field(".tag"))
8331 };
8332 let value = match tag {
8333 "group_ids" => {
8334 match map.next_key()? {
8335 Some("group_ids") => GroupsSelector::GroupIds(map.next_value()?),
8336 None => return Err(de::Error::missing_field("group_ids")),
8337 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8338 }
8339 }
8340 "group_external_ids" => {
8341 match map.next_key()? {
8342 Some("group_external_ids") => GroupsSelector::GroupExternalIds(map.next_value()?),
8343 None => return Err(de::Error::missing_field("group_external_ids")),
8344 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8345 }
8346 }
8347 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
8348 };
8349 crate::eat_json_fields(&mut map)?;
8350 Ok(value)
8351 }
8352 }
8353 const VARIANTS: &[&str] = &["group_ids",
8354 "group_external_ids"];
8355 deserializer.deserialize_struct("GroupsSelector", VARIANTS, EnumVisitor)
8356 }
8357}
8358
8359impl ::serde::ser::Serialize for GroupsSelector {
8360 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8361 use serde::ser::SerializeStruct;
8363 match self {
8364 GroupsSelector::GroupIds(x) => {
8365 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
8367 s.serialize_field(".tag", "group_ids")?;
8368 s.serialize_field("group_ids", x)?;
8369 s.end()
8370 }
8371 GroupsSelector::GroupExternalIds(x) => {
8372 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
8374 s.serialize_field(".tag", "group_external_ids")?;
8375 s.serialize_field("group_external_ids", x)?;
8376 s.end()
8377 }
8378 }
8379 }
8380}
8381
8382#[derive(Debug, Clone, PartialEq, Eq)]
8384#[non_exhaustive] pub enum HasDistinctMemberHomesValue {
8386 HasDistinctMemberHomes(bool),
8388 Other,
8391}
8392
8393impl<'de> ::serde::de::Deserialize<'de> for HasDistinctMemberHomesValue {
8394 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8395 use serde::de::{self, MapAccess, Visitor};
8397 struct EnumVisitor;
8398 impl<'de> Visitor<'de> for EnumVisitor {
8399 type Value = HasDistinctMemberHomesValue;
8400 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8401 f.write_str("a HasDistinctMemberHomesValue structure")
8402 }
8403 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8404 let tag: &str = match map.next_key()? {
8405 Some(".tag") => map.next_value()?,
8406 _ => return Err(de::Error::missing_field(".tag"))
8407 };
8408 let value = match tag {
8409 "has_distinct_member_homes" => {
8410 match map.next_key()? {
8411 Some("has_distinct_member_homes") => HasDistinctMemberHomesValue::HasDistinctMemberHomes(map.next_value()?),
8412 None => return Err(de::Error::missing_field("has_distinct_member_homes")),
8413 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8414 }
8415 }
8416 _ => HasDistinctMemberHomesValue::Other,
8417 };
8418 crate::eat_json_fields(&mut map)?;
8419 Ok(value)
8420 }
8421 }
8422 const VARIANTS: &[&str] = &["has_distinct_member_homes",
8423 "other"];
8424 deserializer.deserialize_struct("HasDistinctMemberHomesValue", VARIANTS, EnumVisitor)
8425 }
8426}
8427
8428impl ::serde::ser::Serialize for HasDistinctMemberHomesValue {
8429 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8430 use serde::ser::SerializeStruct;
8432 match self {
8433 HasDistinctMemberHomesValue::HasDistinctMemberHomes(x) => {
8434 let mut s = serializer.serialize_struct("HasDistinctMemberHomesValue", 2)?;
8436 s.serialize_field(".tag", "has_distinct_member_homes")?;
8437 s.serialize_field("has_distinct_member_homes", x)?;
8438 s.end()
8439 }
8440 HasDistinctMemberHomesValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8441 }
8442 }
8443}
8444
8445#[derive(Debug, Clone, PartialEq, Eq)]
8447#[non_exhaustive] pub enum HasTeamFileEventsValue {
8449 Enabled(bool),
8451 Other,
8454}
8455
8456impl<'de> ::serde::de::Deserialize<'de> for HasTeamFileEventsValue {
8457 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8458 use serde::de::{self, MapAccess, Visitor};
8460 struct EnumVisitor;
8461 impl<'de> Visitor<'de> for EnumVisitor {
8462 type Value = HasTeamFileEventsValue;
8463 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8464 f.write_str("a HasTeamFileEventsValue structure")
8465 }
8466 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8467 let tag: &str = match map.next_key()? {
8468 Some(".tag") => map.next_value()?,
8469 _ => return Err(de::Error::missing_field(".tag"))
8470 };
8471 let value = match tag {
8472 "enabled" => {
8473 match map.next_key()? {
8474 Some("enabled") => HasTeamFileEventsValue::Enabled(map.next_value()?),
8475 None => return Err(de::Error::missing_field("enabled")),
8476 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8477 }
8478 }
8479 _ => HasTeamFileEventsValue::Other,
8480 };
8481 crate::eat_json_fields(&mut map)?;
8482 Ok(value)
8483 }
8484 }
8485 const VARIANTS: &[&str] = &["enabled",
8486 "other"];
8487 deserializer.deserialize_struct("HasTeamFileEventsValue", VARIANTS, EnumVisitor)
8488 }
8489}
8490
8491impl ::serde::ser::Serialize for HasTeamFileEventsValue {
8492 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8493 use serde::ser::SerializeStruct;
8495 match self {
8496 HasTeamFileEventsValue::Enabled(x) => {
8497 let mut s = serializer.serialize_struct("HasTeamFileEventsValue", 2)?;
8499 s.serialize_field(".tag", "enabled")?;
8500 s.serialize_field("enabled", x)?;
8501 s.end()
8502 }
8503 HasTeamFileEventsValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8504 }
8505 }
8506}
8507
8508#[derive(Debug, Clone, PartialEq, Eq)]
8510#[non_exhaustive] pub enum HasTeamSelectiveSyncValue {
8512 HasTeamSelectiveSync(bool),
8514 Other,
8517}
8518
8519impl<'de> ::serde::de::Deserialize<'de> for HasTeamSelectiveSyncValue {
8520 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8521 use serde::de::{self, MapAccess, Visitor};
8523 struct EnumVisitor;
8524 impl<'de> Visitor<'de> for EnumVisitor {
8525 type Value = HasTeamSelectiveSyncValue;
8526 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8527 f.write_str("a HasTeamSelectiveSyncValue structure")
8528 }
8529 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8530 let tag: &str = match map.next_key()? {
8531 Some(".tag") => map.next_value()?,
8532 _ => return Err(de::Error::missing_field(".tag"))
8533 };
8534 let value = match tag {
8535 "has_team_selective_sync" => {
8536 match map.next_key()? {
8537 Some("has_team_selective_sync") => HasTeamSelectiveSyncValue::HasTeamSelectiveSync(map.next_value()?),
8538 None => return Err(de::Error::missing_field("has_team_selective_sync")),
8539 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8540 }
8541 }
8542 _ => HasTeamSelectiveSyncValue::Other,
8543 };
8544 crate::eat_json_fields(&mut map)?;
8545 Ok(value)
8546 }
8547 }
8548 const VARIANTS: &[&str] = &["has_team_selective_sync",
8549 "other"];
8550 deserializer.deserialize_struct("HasTeamSelectiveSyncValue", VARIANTS, EnumVisitor)
8551 }
8552}
8553
8554impl ::serde::ser::Serialize for HasTeamSelectiveSyncValue {
8555 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8556 use serde::ser::SerializeStruct;
8558 match self {
8559 HasTeamSelectiveSyncValue::HasTeamSelectiveSync(x) => {
8560 let mut s = serializer.serialize_struct("HasTeamSelectiveSyncValue", 2)?;
8562 s.serialize_field(".tag", "has_team_selective_sync")?;
8563 s.serialize_field("has_team_selective_sync", x)?;
8564 s.end()
8565 }
8566 HasTeamSelectiveSyncValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8567 }
8568 }
8569}
8570
8571#[derive(Debug, Clone, PartialEq, Eq)]
8573#[non_exhaustive] pub enum HasTeamSharedDropboxValue {
8575 HasTeamSharedDropbox(bool),
8577 Other,
8580}
8581
8582impl<'de> ::serde::de::Deserialize<'de> for HasTeamSharedDropboxValue {
8583 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8584 use serde::de::{self, MapAccess, Visitor};
8586 struct EnumVisitor;
8587 impl<'de> Visitor<'de> for EnumVisitor {
8588 type Value = HasTeamSharedDropboxValue;
8589 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8590 f.write_str("a HasTeamSharedDropboxValue structure")
8591 }
8592 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8593 let tag: &str = match map.next_key()? {
8594 Some(".tag") => map.next_value()?,
8595 _ => return Err(de::Error::missing_field(".tag"))
8596 };
8597 let value = match tag {
8598 "has_team_shared_dropbox" => {
8599 match map.next_key()? {
8600 Some("has_team_shared_dropbox") => HasTeamSharedDropboxValue::HasTeamSharedDropbox(map.next_value()?),
8601 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
8602 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8603 }
8604 }
8605 _ => HasTeamSharedDropboxValue::Other,
8606 };
8607 crate::eat_json_fields(&mut map)?;
8608 Ok(value)
8609 }
8610 }
8611 const VARIANTS: &[&str] = &["has_team_shared_dropbox",
8612 "other"];
8613 deserializer.deserialize_struct("HasTeamSharedDropboxValue", VARIANTS, EnumVisitor)
8614 }
8615}
8616
8617impl ::serde::ser::Serialize for HasTeamSharedDropboxValue {
8618 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8619 use serde::ser::SerializeStruct;
8621 match self {
8622 HasTeamSharedDropboxValue::HasTeamSharedDropbox(x) => {
8623 let mut s = serializer.serialize_struct("HasTeamSharedDropboxValue", 2)?;
8625 s.serialize_field(".tag", "has_team_shared_dropbox")?;
8626 s.serialize_field("has_team_shared_dropbox", x)?;
8627 s.end()
8628 }
8629 HasTeamSharedDropboxValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8630 }
8631 }
8632}
8633
8634#[derive(Debug, Clone, PartialEq, Eq)]
8635#[non_exhaustive] pub struct IncludeMembersArg {
8637 pub return_members: bool,
8641}
8642
8643impl Default for IncludeMembersArg {
8644 fn default() -> Self {
8645 IncludeMembersArg {
8646 return_members: true,
8647 }
8648 }
8649}
8650
8651impl IncludeMembersArg {
8652 pub fn with_return_members(mut self, value: bool) -> Self {
8653 self.return_members = value;
8654 self
8655 }
8656}
8657
8658const INCLUDE_MEMBERS_ARG_FIELDS: &[&str] = &["return_members"];
8659impl IncludeMembersArg {
8660 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8662 mut map: V,
8663 ) -> Result<IncludeMembersArg, V::Error> {
8664 let mut field_return_members = None;
8665 while let Some(key) = map.next_key::<&str>()? {
8666 match key {
8667 "return_members" => {
8668 if field_return_members.is_some() {
8669 return Err(::serde::de::Error::duplicate_field("return_members"));
8670 }
8671 field_return_members = Some(map.next_value()?);
8672 }
8673 _ => {
8674 map.next_value::<::serde_json::Value>()?;
8676 }
8677 }
8678 }
8679 let result = IncludeMembersArg {
8680 return_members: field_return_members.unwrap_or(true),
8681 };
8682 Ok(result)
8683 }
8684
8685 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8686 &self,
8687 s: &mut S::SerializeStruct,
8688 ) -> Result<(), S::Error> {
8689 use serde::ser::SerializeStruct;
8690 if !self.return_members {
8691 s.serialize_field("return_members", &self.return_members)?;
8692 }
8693 Ok(())
8694 }
8695}
8696
8697impl<'de> ::serde::de::Deserialize<'de> for IncludeMembersArg {
8698 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8699 use serde::de::{MapAccess, Visitor};
8701 struct StructVisitor;
8702 impl<'de> Visitor<'de> for StructVisitor {
8703 type Value = IncludeMembersArg;
8704 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8705 f.write_str("a IncludeMembersArg struct")
8706 }
8707 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8708 IncludeMembersArg::internal_deserialize(map)
8709 }
8710 }
8711 deserializer.deserialize_struct("IncludeMembersArg", INCLUDE_MEMBERS_ARG_FIELDS, StructVisitor)
8712 }
8713}
8714
8715impl ::serde::ser::Serialize for IncludeMembersArg {
8716 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8717 use serde::ser::SerializeStruct;
8719 let mut s = serializer.serialize_struct("IncludeMembersArg", 1)?;
8720 self.internal_serialize::<S>(&mut s)?;
8721 s.end()
8722 }
8723}
8724
8725#[derive(Debug, Clone, PartialEq, Eq)]
8726#[non_exhaustive] pub struct LegalHoldHeldRevisionMetadata {
8728 pub new_filename: String,
8730 pub original_revision_id: crate::types::files::Rev,
8732 pub original_file_path: Path,
8734 pub server_modified: crate::types::common::DropboxTimestamp,
8736 pub author_member_id: crate::types::team_common::TeamMemberId,
8738 pub author_member_status: TeamMemberStatus,
8740 pub author_email: crate::types::common::EmailAddress,
8742 pub file_type: String,
8744 pub size: u64,
8746 pub content_hash: crate::types::files::Sha256HexHash,
8750}
8751
8752impl LegalHoldHeldRevisionMetadata {
8753 pub fn new(
8754 new_filename: String,
8755 original_revision_id: crate::types::files::Rev,
8756 original_file_path: Path,
8757 server_modified: crate::types::common::DropboxTimestamp,
8758 author_member_id: crate::types::team_common::TeamMemberId,
8759 author_member_status: TeamMemberStatus,
8760 author_email: crate::types::common::EmailAddress,
8761 file_type: String,
8762 size: u64,
8763 content_hash: crate::types::files::Sha256HexHash,
8764 ) -> Self {
8765 LegalHoldHeldRevisionMetadata {
8766 new_filename,
8767 original_revision_id,
8768 original_file_path,
8769 server_modified,
8770 author_member_id,
8771 author_member_status,
8772 author_email,
8773 file_type,
8774 size,
8775 content_hash,
8776 }
8777 }
8778}
8779
8780const LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS: &[&str] = &["new_filename",
8781 "original_revision_id",
8782 "original_file_path",
8783 "server_modified",
8784 "author_member_id",
8785 "author_member_status",
8786 "author_email",
8787 "file_type",
8788 "size",
8789 "content_hash"];
8790impl LegalHoldHeldRevisionMetadata {
8791 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8792 map: V,
8793 ) -> Result<LegalHoldHeldRevisionMetadata, V::Error> {
8794 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8795 }
8796
8797 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8798 mut map: V,
8799 optional: bool,
8800 ) -> Result<Option<LegalHoldHeldRevisionMetadata>, V::Error> {
8801 let mut field_new_filename = None;
8802 let mut field_original_revision_id = None;
8803 let mut field_original_file_path = None;
8804 let mut field_server_modified = None;
8805 let mut field_author_member_id = None;
8806 let mut field_author_member_status = None;
8807 let mut field_author_email = None;
8808 let mut field_file_type = None;
8809 let mut field_size = None;
8810 let mut field_content_hash = None;
8811 let mut nothing = true;
8812 while let Some(key) = map.next_key::<&str>()? {
8813 nothing = false;
8814 match key {
8815 "new_filename" => {
8816 if field_new_filename.is_some() {
8817 return Err(::serde::de::Error::duplicate_field("new_filename"));
8818 }
8819 field_new_filename = Some(map.next_value()?);
8820 }
8821 "original_revision_id" => {
8822 if field_original_revision_id.is_some() {
8823 return Err(::serde::de::Error::duplicate_field("original_revision_id"));
8824 }
8825 field_original_revision_id = Some(map.next_value()?);
8826 }
8827 "original_file_path" => {
8828 if field_original_file_path.is_some() {
8829 return Err(::serde::de::Error::duplicate_field("original_file_path"));
8830 }
8831 field_original_file_path = Some(map.next_value()?);
8832 }
8833 "server_modified" => {
8834 if field_server_modified.is_some() {
8835 return Err(::serde::de::Error::duplicate_field("server_modified"));
8836 }
8837 field_server_modified = Some(map.next_value()?);
8838 }
8839 "author_member_id" => {
8840 if field_author_member_id.is_some() {
8841 return Err(::serde::de::Error::duplicate_field("author_member_id"));
8842 }
8843 field_author_member_id = Some(map.next_value()?);
8844 }
8845 "author_member_status" => {
8846 if field_author_member_status.is_some() {
8847 return Err(::serde::de::Error::duplicate_field("author_member_status"));
8848 }
8849 field_author_member_status = Some(map.next_value()?);
8850 }
8851 "author_email" => {
8852 if field_author_email.is_some() {
8853 return Err(::serde::de::Error::duplicate_field("author_email"));
8854 }
8855 field_author_email = Some(map.next_value()?);
8856 }
8857 "file_type" => {
8858 if field_file_type.is_some() {
8859 return Err(::serde::de::Error::duplicate_field("file_type"));
8860 }
8861 field_file_type = Some(map.next_value()?);
8862 }
8863 "size" => {
8864 if field_size.is_some() {
8865 return Err(::serde::de::Error::duplicate_field("size"));
8866 }
8867 field_size = Some(map.next_value()?);
8868 }
8869 "content_hash" => {
8870 if field_content_hash.is_some() {
8871 return Err(::serde::de::Error::duplicate_field("content_hash"));
8872 }
8873 field_content_hash = Some(map.next_value()?);
8874 }
8875 _ => {
8876 map.next_value::<::serde_json::Value>()?;
8878 }
8879 }
8880 }
8881 if optional && nothing {
8882 return Ok(None);
8883 }
8884 let result = LegalHoldHeldRevisionMetadata {
8885 new_filename: field_new_filename.ok_or_else(|| ::serde::de::Error::missing_field("new_filename"))?,
8886 original_revision_id: field_original_revision_id.ok_or_else(|| ::serde::de::Error::missing_field("original_revision_id"))?,
8887 original_file_path: field_original_file_path.ok_or_else(|| ::serde::de::Error::missing_field("original_file_path"))?,
8888 server_modified: field_server_modified.ok_or_else(|| ::serde::de::Error::missing_field("server_modified"))?,
8889 author_member_id: field_author_member_id.ok_or_else(|| ::serde::de::Error::missing_field("author_member_id"))?,
8890 author_member_status: field_author_member_status.ok_or_else(|| ::serde::de::Error::missing_field("author_member_status"))?,
8891 author_email: field_author_email.ok_or_else(|| ::serde::de::Error::missing_field("author_email"))?,
8892 file_type: field_file_type.ok_or_else(|| ::serde::de::Error::missing_field("file_type"))?,
8893 size: field_size.ok_or_else(|| ::serde::de::Error::missing_field("size"))?,
8894 content_hash: field_content_hash.ok_or_else(|| ::serde::de::Error::missing_field("content_hash"))?,
8895 };
8896 Ok(Some(result))
8897 }
8898
8899 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8900 &self,
8901 s: &mut S::SerializeStruct,
8902 ) -> Result<(), S::Error> {
8903 use serde::ser::SerializeStruct;
8904 s.serialize_field("new_filename", &self.new_filename)?;
8905 s.serialize_field("original_revision_id", &self.original_revision_id)?;
8906 s.serialize_field("original_file_path", &self.original_file_path)?;
8907 s.serialize_field("server_modified", &self.server_modified)?;
8908 s.serialize_field("author_member_id", &self.author_member_id)?;
8909 s.serialize_field("author_member_status", &self.author_member_status)?;
8910 s.serialize_field("author_email", &self.author_email)?;
8911 s.serialize_field("file_type", &self.file_type)?;
8912 s.serialize_field("size", &self.size)?;
8913 s.serialize_field("content_hash", &self.content_hash)?;
8914 Ok(())
8915 }
8916}
8917
8918impl<'de> ::serde::de::Deserialize<'de> for LegalHoldHeldRevisionMetadata {
8919 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8920 use serde::de::{MapAccess, Visitor};
8922 struct StructVisitor;
8923 impl<'de> Visitor<'de> for StructVisitor {
8924 type Value = LegalHoldHeldRevisionMetadata;
8925 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8926 f.write_str("a LegalHoldHeldRevisionMetadata struct")
8927 }
8928 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8929 LegalHoldHeldRevisionMetadata::internal_deserialize(map)
8930 }
8931 }
8932 deserializer.deserialize_struct("LegalHoldHeldRevisionMetadata", LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS, StructVisitor)
8933 }
8934}
8935
8936impl ::serde::ser::Serialize for LegalHoldHeldRevisionMetadata {
8937 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8938 use serde::ser::SerializeStruct;
8940 let mut s = serializer.serialize_struct("LegalHoldHeldRevisionMetadata", 10)?;
8941 self.internal_serialize::<S>(&mut s)?;
8942 s.end()
8943 }
8944}
8945
8946#[derive(Debug, Clone, PartialEq, Eq)]
8947#[non_exhaustive] pub struct LegalHoldPolicy {
8949 pub id: LegalHoldId,
8951 pub name: LegalHoldPolicyName,
8953 pub members: MembersInfo,
8955 pub status: LegalHoldStatus,
8957 pub start_date: crate::types::common::DropboxTimestamp,
8959 pub description: Option<LegalHoldPolicyDescription>,
8961 pub activation_time: Option<crate::types::common::DropboxTimestamp>,
8963 pub end_date: Option<crate::types::common::DropboxTimestamp>,
8965}
8966
8967impl LegalHoldPolicy {
8968 pub fn new(
8969 id: LegalHoldId,
8970 name: LegalHoldPolicyName,
8971 members: MembersInfo,
8972 status: LegalHoldStatus,
8973 start_date: crate::types::common::DropboxTimestamp,
8974 ) -> Self {
8975 LegalHoldPolicy {
8976 id,
8977 name,
8978 members,
8979 status,
8980 start_date,
8981 description: None,
8982 activation_time: None,
8983 end_date: None,
8984 }
8985 }
8986
8987 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
8988 self.description = Some(value);
8989 self
8990 }
8991
8992 pub fn with_activation_time(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
8993 self.activation_time = Some(value);
8994 self
8995 }
8996
8997 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
8998 self.end_date = Some(value);
8999 self
9000 }
9001}
9002
9003const LEGAL_HOLD_POLICY_FIELDS: &[&str] = &["id",
9004 "name",
9005 "members",
9006 "status",
9007 "start_date",
9008 "description",
9009 "activation_time",
9010 "end_date"];
9011impl LegalHoldPolicy {
9012 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9013 map: V,
9014 ) -> Result<LegalHoldPolicy, V::Error> {
9015 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9016 }
9017
9018 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9019 mut map: V,
9020 optional: bool,
9021 ) -> Result<Option<LegalHoldPolicy>, V::Error> {
9022 let mut field_id = None;
9023 let mut field_name = None;
9024 let mut field_members = None;
9025 let mut field_status = None;
9026 let mut field_start_date = None;
9027 let mut field_description = None;
9028 let mut field_activation_time = None;
9029 let mut field_end_date = None;
9030 let mut nothing = true;
9031 while let Some(key) = map.next_key::<&str>()? {
9032 nothing = false;
9033 match key {
9034 "id" => {
9035 if field_id.is_some() {
9036 return Err(::serde::de::Error::duplicate_field("id"));
9037 }
9038 field_id = Some(map.next_value()?);
9039 }
9040 "name" => {
9041 if field_name.is_some() {
9042 return Err(::serde::de::Error::duplicate_field("name"));
9043 }
9044 field_name = Some(map.next_value()?);
9045 }
9046 "members" => {
9047 if field_members.is_some() {
9048 return Err(::serde::de::Error::duplicate_field("members"));
9049 }
9050 field_members = Some(map.next_value()?);
9051 }
9052 "status" => {
9053 if field_status.is_some() {
9054 return Err(::serde::de::Error::duplicate_field("status"));
9055 }
9056 field_status = Some(map.next_value()?);
9057 }
9058 "start_date" => {
9059 if field_start_date.is_some() {
9060 return Err(::serde::de::Error::duplicate_field("start_date"));
9061 }
9062 field_start_date = Some(map.next_value()?);
9063 }
9064 "description" => {
9065 if field_description.is_some() {
9066 return Err(::serde::de::Error::duplicate_field("description"));
9067 }
9068 field_description = Some(map.next_value()?);
9069 }
9070 "activation_time" => {
9071 if field_activation_time.is_some() {
9072 return Err(::serde::de::Error::duplicate_field("activation_time"));
9073 }
9074 field_activation_time = Some(map.next_value()?);
9075 }
9076 "end_date" => {
9077 if field_end_date.is_some() {
9078 return Err(::serde::de::Error::duplicate_field("end_date"));
9079 }
9080 field_end_date = Some(map.next_value()?);
9081 }
9082 _ => {
9083 map.next_value::<::serde_json::Value>()?;
9085 }
9086 }
9087 }
9088 if optional && nothing {
9089 return Ok(None);
9090 }
9091 let result = LegalHoldPolicy {
9092 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9093 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
9094 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
9095 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
9096 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
9097 description: field_description.and_then(Option::flatten),
9098 activation_time: field_activation_time.and_then(Option::flatten),
9099 end_date: field_end_date.and_then(Option::flatten),
9100 };
9101 Ok(Some(result))
9102 }
9103
9104 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9105 &self,
9106 s: &mut S::SerializeStruct,
9107 ) -> Result<(), S::Error> {
9108 use serde::ser::SerializeStruct;
9109 s.serialize_field("id", &self.id)?;
9110 s.serialize_field("name", &self.name)?;
9111 s.serialize_field("members", &self.members)?;
9112 s.serialize_field("status", &self.status)?;
9113 s.serialize_field("start_date", &self.start_date)?;
9114 if let Some(val) = &self.description {
9115 s.serialize_field("description", val)?;
9116 }
9117 if let Some(val) = &self.activation_time {
9118 s.serialize_field("activation_time", val)?;
9119 }
9120 if let Some(val) = &self.end_date {
9121 s.serialize_field("end_date", val)?;
9122 }
9123 Ok(())
9124 }
9125}
9126
9127impl<'de> ::serde::de::Deserialize<'de> for LegalHoldPolicy {
9128 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9129 use serde::de::{MapAccess, Visitor};
9131 struct StructVisitor;
9132 impl<'de> Visitor<'de> for StructVisitor {
9133 type Value = LegalHoldPolicy;
9134 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9135 f.write_str("a LegalHoldPolicy struct")
9136 }
9137 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9138 LegalHoldPolicy::internal_deserialize(map)
9139 }
9140 }
9141 deserializer.deserialize_struct("LegalHoldPolicy", LEGAL_HOLD_POLICY_FIELDS, StructVisitor)
9142 }
9143}
9144
9145impl ::serde::ser::Serialize for LegalHoldPolicy {
9146 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9147 use serde::ser::SerializeStruct;
9149 let mut s = serializer.serialize_struct("LegalHoldPolicy", 8)?;
9150 self.internal_serialize::<S>(&mut s)?;
9151 s.end()
9152 }
9153}
9154
9155#[derive(Debug, Clone, PartialEq, Eq)]
9156#[non_exhaustive] pub enum LegalHoldStatus {
9158 Active,
9160 Released,
9162 Activating,
9164 Updating,
9166 Exporting,
9168 Releasing,
9170 Other,
9173}
9174
9175impl<'de> ::serde::de::Deserialize<'de> for LegalHoldStatus {
9176 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9177 use serde::de::{self, MapAccess, Visitor};
9179 struct EnumVisitor;
9180 impl<'de> Visitor<'de> for EnumVisitor {
9181 type Value = LegalHoldStatus;
9182 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9183 f.write_str("a LegalHoldStatus structure")
9184 }
9185 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9186 let tag: &str = match map.next_key()? {
9187 Some(".tag") => map.next_value()?,
9188 _ => return Err(de::Error::missing_field(".tag"))
9189 };
9190 let value = match tag {
9191 "active" => LegalHoldStatus::Active,
9192 "released" => LegalHoldStatus::Released,
9193 "activating" => LegalHoldStatus::Activating,
9194 "updating" => LegalHoldStatus::Updating,
9195 "exporting" => LegalHoldStatus::Exporting,
9196 "releasing" => LegalHoldStatus::Releasing,
9197 _ => LegalHoldStatus::Other,
9198 };
9199 crate::eat_json_fields(&mut map)?;
9200 Ok(value)
9201 }
9202 }
9203 const VARIANTS: &[&str] = &["active",
9204 "released",
9205 "activating",
9206 "updating",
9207 "exporting",
9208 "releasing",
9209 "other"];
9210 deserializer.deserialize_struct("LegalHoldStatus", VARIANTS, EnumVisitor)
9211 }
9212}
9213
9214impl ::serde::ser::Serialize for LegalHoldStatus {
9215 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9216 use serde::ser::SerializeStruct;
9218 match self {
9219 LegalHoldStatus::Active => {
9220 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9222 s.serialize_field(".tag", "active")?;
9223 s.end()
9224 }
9225 LegalHoldStatus::Released => {
9226 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9228 s.serialize_field(".tag", "released")?;
9229 s.end()
9230 }
9231 LegalHoldStatus::Activating => {
9232 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9234 s.serialize_field(".tag", "activating")?;
9235 s.end()
9236 }
9237 LegalHoldStatus::Updating => {
9238 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9240 s.serialize_field(".tag", "updating")?;
9241 s.end()
9242 }
9243 LegalHoldStatus::Exporting => {
9244 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9246 s.serialize_field(".tag", "exporting")?;
9247 s.end()
9248 }
9249 LegalHoldStatus::Releasing => {
9250 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9252 s.serialize_field(".tag", "releasing")?;
9253 s.end()
9254 }
9255 LegalHoldStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9256 }
9257 }
9258}
9259
9260#[derive(Debug, Clone, PartialEq, Eq)]
9261#[non_exhaustive] pub enum LegalHoldsError {
9263 UnknownLegalHoldError,
9265 InsufficientPermissions,
9267 Other,
9270}
9271
9272impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsError {
9273 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9274 use serde::de::{self, MapAccess, Visitor};
9276 struct EnumVisitor;
9277 impl<'de> Visitor<'de> for EnumVisitor {
9278 type Value = LegalHoldsError;
9279 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9280 f.write_str("a LegalHoldsError structure")
9281 }
9282 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9283 let tag: &str = match map.next_key()? {
9284 Some(".tag") => map.next_value()?,
9285 _ => return Err(de::Error::missing_field(".tag"))
9286 };
9287 let value = match tag {
9288 "unknown_legal_hold_error" => LegalHoldsError::UnknownLegalHoldError,
9289 "insufficient_permissions" => LegalHoldsError::InsufficientPermissions,
9290 _ => LegalHoldsError::Other,
9291 };
9292 crate::eat_json_fields(&mut map)?;
9293 Ok(value)
9294 }
9295 }
9296 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9297 "insufficient_permissions",
9298 "other"];
9299 deserializer.deserialize_struct("LegalHoldsError", VARIANTS, EnumVisitor)
9300 }
9301}
9302
9303impl ::serde::ser::Serialize for LegalHoldsError {
9304 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9305 use serde::ser::SerializeStruct;
9307 match self {
9308 LegalHoldsError::UnknownLegalHoldError => {
9309 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
9311 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9312 s.end()
9313 }
9314 LegalHoldsError::InsufficientPermissions => {
9315 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
9317 s.serialize_field(".tag", "insufficient_permissions")?;
9318 s.end()
9319 }
9320 LegalHoldsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9321 }
9322 }
9323}
9324
9325impl ::std::error::Error for LegalHoldsError {
9326}
9327
9328impl ::std::fmt::Display for LegalHoldsError {
9329 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9330 match self {
9331 LegalHoldsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9332 LegalHoldsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9333 _ => write!(f, "{:?}", *self),
9334 }
9335 }
9336}
9337
9338#[derive(Debug, Clone, PartialEq, Eq)]
9339#[non_exhaustive] pub struct LegalHoldsGetPolicyArg {
9341 pub id: LegalHoldId,
9343}
9344
9345impl LegalHoldsGetPolicyArg {
9346 pub fn new(id: LegalHoldId) -> Self {
9347 LegalHoldsGetPolicyArg {
9348 id,
9349 }
9350 }
9351}
9352
9353const LEGAL_HOLDS_GET_POLICY_ARG_FIELDS: &[&str] = &["id"];
9354impl LegalHoldsGetPolicyArg {
9355 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9356 map: V,
9357 ) -> Result<LegalHoldsGetPolicyArg, V::Error> {
9358 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9359 }
9360
9361 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9362 mut map: V,
9363 optional: bool,
9364 ) -> Result<Option<LegalHoldsGetPolicyArg>, V::Error> {
9365 let mut field_id = None;
9366 let mut nothing = true;
9367 while let Some(key) = map.next_key::<&str>()? {
9368 nothing = false;
9369 match key {
9370 "id" => {
9371 if field_id.is_some() {
9372 return Err(::serde::de::Error::duplicate_field("id"));
9373 }
9374 field_id = Some(map.next_value()?);
9375 }
9376 _ => {
9377 map.next_value::<::serde_json::Value>()?;
9379 }
9380 }
9381 }
9382 if optional && nothing {
9383 return Ok(None);
9384 }
9385 let result = LegalHoldsGetPolicyArg {
9386 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9387 };
9388 Ok(Some(result))
9389 }
9390
9391 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9392 &self,
9393 s: &mut S::SerializeStruct,
9394 ) -> Result<(), S::Error> {
9395 use serde::ser::SerializeStruct;
9396 s.serialize_field("id", &self.id)?;
9397 Ok(())
9398 }
9399}
9400
9401impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyArg {
9402 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9403 use serde::de::{MapAccess, Visitor};
9405 struct StructVisitor;
9406 impl<'de> Visitor<'de> for StructVisitor {
9407 type Value = LegalHoldsGetPolicyArg;
9408 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9409 f.write_str("a LegalHoldsGetPolicyArg struct")
9410 }
9411 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9412 LegalHoldsGetPolicyArg::internal_deserialize(map)
9413 }
9414 }
9415 deserializer.deserialize_struct("LegalHoldsGetPolicyArg", LEGAL_HOLDS_GET_POLICY_ARG_FIELDS, StructVisitor)
9416 }
9417}
9418
9419impl ::serde::ser::Serialize for LegalHoldsGetPolicyArg {
9420 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9421 use serde::ser::SerializeStruct;
9423 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyArg", 1)?;
9424 self.internal_serialize::<S>(&mut s)?;
9425 s.end()
9426 }
9427}
9428
9429#[derive(Debug, Clone, PartialEq, Eq)]
9430#[non_exhaustive] pub enum LegalHoldsGetPolicyError {
9432 UnknownLegalHoldError,
9434 InsufficientPermissions,
9436 LegalHoldPolicyNotFound,
9438 Other,
9441}
9442
9443impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyError {
9444 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9445 use serde::de::{self, MapAccess, Visitor};
9447 struct EnumVisitor;
9448 impl<'de> Visitor<'de> for EnumVisitor {
9449 type Value = LegalHoldsGetPolicyError;
9450 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9451 f.write_str("a LegalHoldsGetPolicyError structure")
9452 }
9453 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9454 let tag: &str = match map.next_key()? {
9455 Some(".tag") => map.next_value()?,
9456 _ => return Err(de::Error::missing_field(".tag"))
9457 };
9458 let value = match tag {
9459 "unknown_legal_hold_error" => LegalHoldsGetPolicyError::UnknownLegalHoldError,
9460 "insufficient_permissions" => LegalHoldsGetPolicyError::InsufficientPermissions,
9461 "legal_hold_policy_not_found" => LegalHoldsGetPolicyError::LegalHoldPolicyNotFound,
9462 _ => LegalHoldsGetPolicyError::Other,
9463 };
9464 crate::eat_json_fields(&mut map)?;
9465 Ok(value)
9466 }
9467 }
9468 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9469 "insufficient_permissions",
9470 "other",
9471 "legal_hold_policy_not_found"];
9472 deserializer.deserialize_struct("LegalHoldsGetPolicyError", VARIANTS, EnumVisitor)
9473 }
9474}
9475
9476impl ::serde::ser::Serialize for LegalHoldsGetPolicyError {
9477 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9478 use serde::ser::SerializeStruct;
9480 match self {
9481 LegalHoldsGetPolicyError::UnknownLegalHoldError => {
9482 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9484 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9485 s.end()
9486 }
9487 LegalHoldsGetPolicyError::InsufficientPermissions => {
9488 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9490 s.serialize_field(".tag", "insufficient_permissions")?;
9491 s.end()
9492 }
9493 LegalHoldsGetPolicyError::LegalHoldPolicyNotFound => {
9494 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9496 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
9497 s.end()
9498 }
9499 LegalHoldsGetPolicyError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9500 }
9501 }
9502}
9503
9504impl ::std::error::Error for LegalHoldsGetPolicyError {
9505}
9506
9507impl ::std::fmt::Display for LegalHoldsGetPolicyError {
9508 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9509 match self {
9510 LegalHoldsGetPolicyError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9511 LegalHoldsGetPolicyError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9512 _ => write!(f, "{:?}", *self),
9513 }
9514 }
9515}
9516
9517impl From<LegalHoldsError> for LegalHoldsGetPolicyError {
9519 fn from(parent: LegalHoldsError) -> Self {
9520 match parent {
9521 LegalHoldsError::UnknownLegalHoldError => LegalHoldsGetPolicyError::UnknownLegalHoldError,
9522 LegalHoldsError::InsufficientPermissions => LegalHoldsGetPolicyError::InsufficientPermissions,
9523 LegalHoldsError::Other => LegalHoldsGetPolicyError::Other,
9524 }
9525 }
9526}
9527#[derive(Debug, Clone, PartialEq, Eq)]
9528#[non_exhaustive] pub struct LegalHoldsListHeldRevisionResult {
9530 pub entries: Vec<LegalHoldHeldRevisionMetadata>,
9532 pub has_more: bool,
9535 pub cursor: Option<ListHeldRevisionCursor>,
9539}
9540
9541impl LegalHoldsListHeldRevisionResult {
9542 pub fn new(entries: Vec<LegalHoldHeldRevisionMetadata>, has_more: bool) -> Self {
9543 LegalHoldsListHeldRevisionResult {
9544 entries,
9545 has_more,
9546 cursor: None,
9547 }
9548 }
9549
9550 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
9551 self.cursor = Some(value);
9552 self
9553 }
9554}
9555
9556const LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS: &[&str] = &["entries",
9557 "has_more",
9558 "cursor"];
9559impl LegalHoldsListHeldRevisionResult {
9560 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9561 map: V,
9562 ) -> Result<LegalHoldsListHeldRevisionResult, V::Error> {
9563 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9564 }
9565
9566 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9567 mut map: V,
9568 optional: bool,
9569 ) -> Result<Option<LegalHoldsListHeldRevisionResult>, V::Error> {
9570 let mut field_entries = None;
9571 let mut field_has_more = None;
9572 let mut field_cursor = None;
9573 let mut nothing = true;
9574 while let Some(key) = map.next_key::<&str>()? {
9575 nothing = false;
9576 match key {
9577 "entries" => {
9578 if field_entries.is_some() {
9579 return Err(::serde::de::Error::duplicate_field("entries"));
9580 }
9581 field_entries = Some(map.next_value()?);
9582 }
9583 "has_more" => {
9584 if field_has_more.is_some() {
9585 return Err(::serde::de::Error::duplicate_field("has_more"));
9586 }
9587 field_has_more = Some(map.next_value()?);
9588 }
9589 "cursor" => {
9590 if field_cursor.is_some() {
9591 return Err(::serde::de::Error::duplicate_field("cursor"));
9592 }
9593 field_cursor = Some(map.next_value()?);
9594 }
9595 _ => {
9596 map.next_value::<::serde_json::Value>()?;
9598 }
9599 }
9600 }
9601 if optional && nothing {
9602 return Ok(None);
9603 }
9604 let result = LegalHoldsListHeldRevisionResult {
9605 entries: field_entries.ok_or_else(|| ::serde::de::Error::missing_field("entries"))?,
9606 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
9607 cursor: field_cursor.and_then(Option::flatten),
9608 };
9609 Ok(Some(result))
9610 }
9611
9612 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9613 &self,
9614 s: &mut S::SerializeStruct,
9615 ) -> Result<(), S::Error> {
9616 use serde::ser::SerializeStruct;
9617 s.serialize_field("entries", &self.entries)?;
9618 s.serialize_field("has_more", &self.has_more)?;
9619 if let Some(val) = &self.cursor {
9620 s.serialize_field("cursor", val)?;
9621 }
9622 Ok(())
9623 }
9624}
9625
9626impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionResult {
9627 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9628 use serde::de::{MapAccess, Visitor};
9630 struct StructVisitor;
9631 impl<'de> Visitor<'de> for StructVisitor {
9632 type Value = LegalHoldsListHeldRevisionResult;
9633 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9634 f.write_str("a LegalHoldsListHeldRevisionResult struct")
9635 }
9636 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9637 LegalHoldsListHeldRevisionResult::internal_deserialize(map)
9638 }
9639 }
9640 deserializer.deserialize_struct("LegalHoldsListHeldRevisionResult", LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS, StructVisitor)
9641 }
9642}
9643
9644impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionResult {
9645 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9646 use serde::ser::SerializeStruct;
9648 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionResult", 3)?;
9649 self.internal_serialize::<S>(&mut s)?;
9650 s.end()
9651 }
9652}
9653
9654#[derive(Debug, Clone, PartialEq, Eq)]
9655#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsArg {
9657 pub id: LegalHoldId,
9659}
9660
9661impl LegalHoldsListHeldRevisionsArg {
9662 pub fn new(id: LegalHoldId) -> Self {
9663 LegalHoldsListHeldRevisionsArg {
9664 id,
9665 }
9666 }
9667}
9668
9669const LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS: &[&str] = &["id"];
9670impl LegalHoldsListHeldRevisionsArg {
9671 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9672 map: V,
9673 ) -> Result<LegalHoldsListHeldRevisionsArg, V::Error> {
9674 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9675 }
9676
9677 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9678 mut map: V,
9679 optional: bool,
9680 ) -> Result<Option<LegalHoldsListHeldRevisionsArg>, V::Error> {
9681 let mut field_id = None;
9682 let mut nothing = true;
9683 while let Some(key) = map.next_key::<&str>()? {
9684 nothing = false;
9685 match key {
9686 "id" => {
9687 if field_id.is_some() {
9688 return Err(::serde::de::Error::duplicate_field("id"));
9689 }
9690 field_id = Some(map.next_value()?);
9691 }
9692 _ => {
9693 map.next_value::<::serde_json::Value>()?;
9695 }
9696 }
9697 }
9698 if optional && nothing {
9699 return Ok(None);
9700 }
9701 let result = LegalHoldsListHeldRevisionsArg {
9702 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9703 };
9704 Ok(Some(result))
9705 }
9706
9707 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9708 &self,
9709 s: &mut S::SerializeStruct,
9710 ) -> Result<(), S::Error> {
9711 use serde::ser::SerializeStruct;
9712 s.serialize_field("id", &self.id)?;
9713 Ok(())
9714 }
9715}
9716
9717impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsArg {
9718 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9719 use serde::de::{MapAccess, Visitor};
9721 struct StructVisitor;
9722 impl<'de> Visitor<'de> for StructVisitor {
9723 type Value = LegalHoldsListHeldRevisionsArg;
9724 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9725 f.write_str("a LegalHoldsListHeldRevisionsArg struct")
9726 }
9727 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9728 LegalHoldsListHeldRevisionsArg::internal_deserialize(map)
9729 }
9730 }
9731 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS, StructVisitor)
9732 }
9733}
9734
9735impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsArg {
9736 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9737 use serde::ser::SerializeStruct;
9739 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsArg", 1)?;
9740 self.internal_serialize::<S>(&mut s)?;
9741 s.end()
9742 }
9743}
9744
9745#[derive(Debug, Clone, PartialEq, Eq)]
9746#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsContinueArg {
9748 pub id: LegalHoldId,
9750 pub cursor: Option<ListHeldRevisionCursor>,
9753}
9754
9755impl LegalHoldsListHeldRevisionsContinueArg {
9756 pub fn new(id: LegalHoldId) -> Self {
9757 LegalHoldsListHeldRevisionsContinueArg {
9758 id,
9759 cursor: None,
9760 }
9761 }
9762
9763 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
9764 self.cursor = Some(value);
9765 self
9766 }
9767}
9768
9769const LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS: &[&str] = &["id",
9770 "cursor"];
9771impl LegalHoldsListHeldRevisionsContinueArg {
9772 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9773 map: V,
9774 ) -> Result<LegalHoldsListHeldRevisionsContinueArg, V::Error> {
9775 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9776 }
9777
9778 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9779 mut map: V,
9780 optional: bool,
9781 ) -> Result<Option<LegalHoldsListHeldRevisionsContinueArg>, V::Error> {
9782 let mut field_id = None;
9783 let mut field_cursor = None;
9784 let mut nothing = true;
9785 while let Some(key) = map.next_key::<&str>()? {
9786 nothing = false;
9787 match key {
9788 "id" => {
9789 if field_id.is_some() {
9790 return Err(::serde::de::Error::duplicate_field("id"));
9791 }
9792 field_id = Some(map.next_value()?);
9793 }
9794 "cursor" => {
9795 if field_cursor.is_some() {
9796 return Err(::serde::de::Error::duplicate_field("cursor"));
9797 }
9798 field_cursor = Some(map.next_value()?);
9799 }
9800 _ => {
9801 map.next_value::<::serde_json::Value>()?;
9803 }
9804 }
9805 }
9806 if optional && nothing {
9807 return Ok(None);
9808 }
9809 let result = LegalHoldsListHeldRevisionsContinueArg {
9810 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9811 cursor: field_cursor.and_then(Option::flatten),
9812 };
9813 Ok(Some(result))
9814 }
9815
9816 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9817 &self,
9818 s: &mut S::SerializeStruct,
9819 ) -> Result<(), S::Error> {
9820 use serde::ser::SerializeStruct;
9821 s.serialize_field("id", &self.id)?;
9822 if let Some(val) = &self.cursor {
9823 s.serialize_field("cursor", val)?;
9824 }
9825 Ok(())
9826 }
9827}
9828
9829impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueArg {
9830 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9831 use serde::de::{MapAccess, Visitor};
9833 struct StructVisitor;
9834 impl<'de> Visitor<'de> for StructVisitor {
9835 type Value = LegalHoldsListHeldRevisionsContinueArg;
9836 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9837 f.write_str("a LegalHoldsListHeldRevisionsContinueArg struct")
9838 }
9839 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9840 LegalHoldsListHeldRevisionsContinueArg::internal_deserialize(map)
9841 }
9842 }
9843 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS, StructVisitor)
9844 }
9845}
9846
9847impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueArg {
9848 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9849 use serde::ser::SerializeStruct;
9851 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueArg", 2)?;
9852 self.internal_serialize::<S>(&mut s)?;
9853 s.end()
9854 }
9855}
9856
9857#[derive(Debug, Clone, PartialEq, Eq)]
9858#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsContinueError {
9860 UnknownLegalHoldError,
9862 TransientError,
9864 Reset,
9868 Other,
9871}
9872
9873impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueError {
9874 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9875 use serde::de::{self, MapAccess, Visitor};
9877 struct EnumVisitor;
9878 impl<'de> Visitor<'de> for EnumVisitor {
9879 type Value = LegalHoldsListHeldRevisionsContinueError;
9880 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9881 f.write_str("a LegalHoldsListHeldRevisionsContinueError structure")
9882 }
9883 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9884 let tag: &str = match map.next_key()? {
9885 Some(".tag") => map.next_value()?,
9886 _ => return Err(de::Error::missing_field(".tag"))
9887 };
9888 let value = match tag {
9889 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError,
9890 "transient_error" => LegalHoldsListHeldRevisionsContinueError::TransientError,
9891 "reset" => LegalHoldsListHeldRevisionsContinueError::Reset,
9892 _ => LegalHoldsListHeldRevisionsContinueError::Other,
9893 };
9894 crate::eat_json_fields(&mut map)?;
9895 Ok(value)
9896 }
9897 }
9898 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9899 "transient_error",
9900 "reset",
9901 "other"];
9902 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueError", VARIANTS, EnumVisitor)
9903 }
9904}
9905
9906impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueError {
9907 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9908 use serde::ser::SerializeStruct;
9910 match self {
9911 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => {
9912 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9914 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9915 s.end()
9916 }
9917 LegalHoldsListHeldRevisionsContinueError::TransientError => {
9918 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9920 s.serialize_field(".tag", "transient_error")?;
9921 s.end()
9922 }
9923 LegalHoldsListHeldRevisionsContinueError::Reset => {
9924 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9926 s.serialize_field(".tag", "reset")?;
9927 s.end()
9928 }
9929 LegalHoldsListHeldRevisionsContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9930 }
9931 }
9932}
9933
9934impl ::std::error::Error for LegalHoldsListHeldRevisionsContinueError {
9935}
9936
9937impl ::std::fmt::Display for LegalHoldsListHeldRevisionsContinueError {
9938 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9939 match self {
9940 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9941 LegalHoldsListHeldRevisionsContinueError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
9942 _ => write!(f, "{:?}", *self),
9943 }
9944 }
9945}
9946
9947#[derive(Debug, Clone, PartialEq, Eq)]
9948#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsError {
9950 UnknownLegalHoldError,
9952 InsufficientPermissions,
9954 TransientError,
9956 LegalHoldStillEmpty,
9958 InactiveLegalHold,
9960 Other,
9963}
9964
9965impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsError {
9966 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9967 use serde::de::{self, MapAccess, Visitor};
9969 struct EnumVisitor;
9970 impl<'de> Visitor<'de> for EnumVisitor {
9971 type Value = LegalHoldsListHeldRevisionsError;
9972 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9973 f.write_str("a LegalHoldsListHeldRevisionsError structure")
9974 }
9975 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9976 let tag: &str = match map.next_key()? {
9977 Some(".tag") => map.next_value()?,
9978 _ => return Err(de::Error::missing_field(".tag"))
9979 };
9980 let value = match tag {
9981 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
9982 "insufficient_permissions" => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
9983 "transient_error" => LegalHoldsListHeldRevisionsError::TransientError,
9984 "legal_hold_still_empty" => LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty,
9985 "inactive_legal_hold" => LegalHoldsListHeldRevisionsError::InactiveLegalHold,
9986 _ => LegalHoldsListHeldRevisionsError::Other,
9987 };
9988 crate::eat_json_fields(&mut map)?;
9989 Ok(value)
9990 }
9991 }
9992 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9993 "insufficient_permissions",
9994 "other",
9995 "transient_error",
9996 "legal_hold_still_empty",
9997 "inactive_legal_hold"];
9998 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsError", VARIANTS, EnumVisitor)
9999 }
10000}
10001
10002impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsError {
10003 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10004 use serde::ser::SerializeStruct;
10006 match self {
10007 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => {
10008 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10010 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10011 s.end()
10012 }
10013 LegalHoldsListHeldRevisionsError::InsufficientPermissions => {
10014 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10016 s.serialize_field(".tag", "insufficient_permissions")?;
10017 s.end()
10018 }
10019 LegalHoldsListHeldRevisionsError::TransientError => {
10020 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10022 s.serialize_field(".tag", "transient_error")?;
10023 s.end()
10024 }
10025 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => {
10026 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10028 s.serialize_field(".tag", "legal_hold_still_empty")?;
10029 s.end()
10030 }
10031 LegalHoldsListHeldRevisionsError::InactiveLegalHold => {
10032 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
10034 s.serialize_field(".tag", "inactive_legal_hold")?;
10035 s.end()
10036 }
10037 LegalHoldsListHeldRevisionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10038 }
10039 }
10040}
10041
10042impl ::std::error::Error for LegalHoldsListHeldRevisionsError {
10043}
10044
10045impl ::std::fmt::Display for LegalHoldsListHeldRevisionsError {
10046 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10047 match self {
10048 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10049 LegalHoldsListHeldRevisionsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10050 LegalHoldsListHeldRevisionsError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10051 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => f.write_str("The legal hold is not holding any revisions yet."),
10052 LegalHoldsListHeldRevisionsError::InactiveLegalHold => f.write_str("Trying to list revisions for an inactive legal hold."),
10053 _ => write!(f, "{:?}", *self),
10054 }
10055 }
10056}
10057
10058impl From<LegalHoldsError> for LegalHoldsListHeldRevisionsError {
10060 fn from(parent: LegalHoldsError) -> Self {
10061 match parent {
10062 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
10063 LegalHoldsError::InsufficientPermissions => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
10064 LegalHoldsError::Other => LegalHoldsListHeldRevisionsError::Other,
10065 }
10066 }
10067}
10068#[derive(Debug, Clone, PartialEq, Eq, Default)]
10069#[non_exhaustive] pub struct LegalHoldsListPoliciesArg {
10071 pub include_released: bool,
10073}
10074
10075impl LegalHoldsListPoliciesArg {
10076 pub fn with_include_released(mut self, value: bool) -> Self {
10077 self.include_released = value;
10078 self
10079 }
10080}
10081
10082const LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS: &[&str] = &["include_released"];
10083impl LegalHoldsListPoliciesArg {
10084 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10086 mut map: V,
10087 ) -> Result<LegalHoldsListPoliciesArg, V::Error> {
10088 let mut field_include_released = None;
10089 while let Some(key) = map.next_key::<&str>()? {
10090 match key {
10091 "include_released" => {
10092 if field_include_released.is_some() {
10093 return Err(::serde::de::Error::duplicate_field("include_released"));
10094 }
10095 field_include_released = Some(map.next_value()?);
10096 }
10097 _ => {
10098 map.next_value::<::serde_json::Value>()?;
10100 }
10101 }
10102 }
10103 let result = LegalHoldsListPoliciesArg {
10104 include_released: field_include_released.unwrap_or(false),
10105 };
10106 Ok(result)
10107 }
10108
10109 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10110 &self,
10111 s: &mut S::SerializeStruct,
10112 ) -> Result<(), S::Error> {
10113 use serde::ser::SerializeStruct;
10114 if self.include_released {
10115 s.serialize_field("include_released", &self.include_released)?;
10116 }
10117 Ok(())
10118 }
10119}
10120
10121impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesArg {
10122 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10123 use serde::de::{MapAccess, Visitor};
10125 struct StructVisitor;
10126 impl<'de> Visitor<'de> for StructVisitor {
10127 type Value = LegalHoldsListPoliciesArg;
10128 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10129 f.write_str("a LegalHoldsListPoliciesArg struct")
10130 }
10131 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10132 LegalHoldsListPoliciesArg::internal_deserialize(map)
10133 }
10134 }
10135 deserializer.deserialize_struct("LegalHoldsListPoliciesArg", LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS, StructVisitor)
10136 }
10137}
10138
10139impl ::serde::ser::Serialize for LegalHoldsListPoliciesArg {
10140 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10141 use serde::ser::SerializeStruct;
10143 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesArg", 1)?;
10144 self.internal_serialize::<S>(&mut s)?;
10145 s.end()
10146 }
10147}
10148
10149#[derive(Debug, Clone, PartialEq, Eq)]
10150#[non_exhaustive] pub enum LegalHoldsListPoliciesError {
10152 UnknownLegalHoldError,
10154 InsufficientPermissions,
10156 TransientError,
10158 Other,
10161}
10162
10163impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesError {
10164 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10165 use serde::de::{self, MapAccess, Visitor};
10167 struct EnumVisitor;
10168 impl<'de> Visitor<'de> for EnumVisitor {
10169 type Value = LegalHoldsListPoliciesError;
10170 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10171 f.write_str("a LegalHoldsListPoliciesError structure")
10172 }
10173 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10174 let tag: &str = match map.next_key()? {
10175 Some(".tag") => map.next_value()?,
10176 _ => return Err(de::Error::missing_field(".tag"))
10177 };
10178 let value = match tag {
10179 "unknown_legal_hold_error" => LegalHoldsListPoliciesError::UnknownLegalHoldError,
10180 "insufficient_permissions" => LegalHoldsListPoliciesError::InsufficientPermissions,
10181 "transient_error" => LegalHoldsListPoliciesError::TransientError,
10182 _ => LegalHoldsListPoliciesError::Other,
10183 };
10184 crate::eat_json_fields(&mut map)?;
10185 Ok(value)
10186 }
10187 }
10188 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10189 "insufficient_permissions",
10190 "other",
10191 "transient_error"];
10192 deserializer.deserialize_struct("LegalHoldsListPoliciesError", VARIANTS, EnumVisitor)
10193 }
10194}
10195
10196impl ::serde::ser::Serialize for LegalHoldsListPoliciesError {
10197 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10198 use serde::ser::SerializeStruct;
10200 match self {
10201 LegalHoldsListPoliciesError::UnknownLegalHoldError => {
10202 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10204 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10205 s.end()
10206 }
10207 LegalHoldsListPoliciesError::InsufficientPermissions => {
10208 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10210 s.serialize_field(".tag", "insufficient_permissions")?;
10211 s.end()
10212 }
10213 LegalHoldsListPoliciesError::TransientError => {
10214 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10216 s.serialize_field(".tag", "transient_error")?;
10217 s.end()
10218 }
10219 LegalHoldsListPoliciesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10220 }
10221 }
10222}
10223
10224impl ::std::error::Error for LegalHoldsListPoliciesError {
10225}
10226
10227impl ::std::fmt::Display for LegalHoldsListPoliciesError {
10228 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10229 match self {
10230 LegalHoldsListPoliciesError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10231 LegalHoldsListPoliciesError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10232 LegalHoldsListPoliciesError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10233 _ => write!(f, "{:?}", *self),
10234 }
10235 }
10236}
10237
10238impl From<LegalHoldsError> for LegalHoldsListPoliciesError {
10240 fn from(parent: LegalHoldsError) -> Self {
10241 match parent {
10242 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListPoliciesError::UnknownLegalHoldError,
10243 LegalHoldsError::InsufficientPermissions => LegalHoldsListPoliciesError::InsufficientPermissions,
10244 LegalHoldsError::Other => LegalHoldsListPoliciesError::Other,
10245 }
10246 }
10247}
10248#[derive(Debug, Clone, PartialEq, Eq)]
10249#[non_exhaustive] pub struct LegalHoldsListPoliciesResult {
10251 pub policies: Vec<LegalHoldPolicy>,
10252}
10253
10254impl LegalHoldsListPoliciesResult {
10255 pub fn new(policies: Vec<LegalHoldPolicy>) -> Self {
10256 LegalHoldsListPoliciesResult {
10257 policies,
10258 }
10259 }
10260}
10261
10262const LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS: &[&str] = &["policies"];
10263impl LegalHoldsListPoliciesResult {
10264 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10265 map: V,
10266 ) -> Result<LegalHoldsListPoliciesResult, V::Error> {
10267 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10268 }
10269
10270 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10271 mut map: V,
10272 optional: bool,
10273 ) -> Result<Option<LegalHoldsListPoliciesResult>, V::Error> {
10274 let mut field_policies = None;
10275 let mut nothing = true;
10276 while let Some(key) = map.next_key::<&str>()? {
10277 nothing = false;
10278 match key {
10279 "policies" => {
10280 if field_policies.is_some() {
10281 return Err(::serde::de::Error::duplicate_field("policies"));
10282 }
10283 field_policies = Some(map.next_value()?);
10284 }
10285 _ => {
10286 map.next_value::<::serde_json::Value>()?;
10288 }
10289 }
10290 }
10291 if optional && nothing {
10292 return Ok(None);
10293 }
10294 let result = LegalHoldsListPoliciesResult {
10295 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
10296 };
10297 Ok(Some(result))
10298 }
10299
10300 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10301 &self,
10302 s: &mut S::SerializeStruct,
10303 ) -> Result<(), S::Error> {
10304 use serde::ser::SerializeStruct;
10305 s.serialize_field("policies", &self.policies)?;
10306 Ok(())
10307 }
10308}
10309
10310impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesResult {
10311 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10312 use serde::de::{MapAccess, Visitor};
10314 struct StructVisitor;
10315 impl<'de> Visitor<'de> for StructVisitor {
10316 type Value = LegalHoldsListPoliciesResult;
10317 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10318 f.write_str("a LegalHoldsListPoliciesResult struct")
10319 }
10320 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10321 LegalHoldsListPoliciesResult::internal_deserialize(map)
10322 }
10323 }
10324 deserializer.deserialize_struct("LegalHoldsListPoliciesResult", LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS, StructVisitor)
10325 }
10326}
10327
10328impl ::serde::ser::Serialize for LegalHoldsListPoliciesResult {
10329 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10330 use serde::ser::SerializeStruct;
10332 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesResult", 1)?;
10333 self.internal_serialize::<S>(&mut s)?;
10334 s.end()
10335 }
10336}
10337
10338#[derive(Debug, Clone, PartialEq, Eq)]
10339#[non_exhaustive] pub struct LegalHoldsPolicyCreateArg {
10341 pub name: LegalHoldPolicyName,
10343 pub members: Vec<crate::types::team_common::TeamMemberId>,
10345 pub description: Option<LegalHoldPolicyDescription>,
10347 pub start_date: Option<crate::types::common::DropboxTimestamp>,
10349 pub end_date: Option<crate::types::common::DropboxTimestamp>,
10351}
10352
10353impl LegalHoldsPolicyCreateArg {
10354 pub fn new(
10355 name: LegalHoldPolicyName,
10356 members: Vec<crate::types::team_common::TeamMemberId>,
10357 ) -> Self {
10358 LegalHoldsPolicyCreateArg {
10359 name,
10360 members,
10361 description: None,
10362 start_date: None,
10363 end_date: None,
10364 }
10365 }
10366
10367 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
10368 self.description = Some(value);
10369 self
10370 }
10371
10372 pub fn with_start_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
10373 self.start_date = Some(value);
10374 self
10375 }
10376
10377 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
10378 self.end_date = Some(value);
10379 self
10380 }
10381}
10382
10383const LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS: &[&str] = &["name",
10384 "members",
10385 "description",
10386 "start_date",
10387 "end_date"];
10388impl LegalHoldsPolicyCreateArg {
10389 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10390 map: V,
10391 ) -> Result<LegalHoldsPolicyCreateArg, V::Error> {
10392 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10393 }
10394
10395 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10396 mut map: V,
10397 optional: bool,
10398 ) -> Result<Option<LegalHoldsPolicyCreateArg>, V::Error> {
10399 let mut field_name = None;
10400 let mut field_members = None;
10401 let mut field_description = None;
10402 let mut field_start_date = None;
10403 let mut field_end_date = None;
10404 let mut nothing = true;
10405 while let Some(key) = map.next_key::<&str>()? {
10406 nothing = false;
10407 match key {
10408 "name" => {
10409 if field_name.is_some() {
10410 return Err(::serde::de::Error::duplicate_field("name"));
10411 }
10412 field_name = Some(map.next_value()?);
10413 }
10414 "members" => {
10415 if field_members.is_some() {
10416 return Err(::serde::de::Error::duplicate_field("members"));
10417 }
10418 field_members = Some(map.next_value()?);
10419 }
10420 "description" => {
10421 if field_description.is_some() {
10422 return Err(::serde::de::Error::duplicate_field("description"));
10423 }
10424 field_description = Some(map.next_value()?);
10425 }
10426 "start_date" => {
10427 if field_start_date.is_some() {
10428 return Err(::serde::de::Error::duplicate_field("start_date"));
10429 }
10430 field_start_date = Some(map.next_value()?);
10431 }
10432 "end_date" => {
10433 if field_end_date.is_some() {
10434 return Err(::serde::de::Error::duplicate_field("end_date"));
10435 }
10436 field_end_date = Some(map.next_value()?);
10437 }
10438 _ => {
10439 map.next_value::<::serde_json::Value>()?;
10441 }
10442 }
10443 }
10444 if optional && nothing {
10445 return Ok(None);
10446 }
10447 let result = LegalHoldsPolicyCreateArg {
10448 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
10449 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
10450 description: field_description.and_then(Option::flatten),
10451 start_date: field_start_date.and_then(Option::flatten),
10452 end_date: field_end_date.and_then(Option::flatten),
10453 };
10454 Ok(Some(result))
10455 }
10456
10457 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10458 &self,
10459 s: &mut S::SerializeStruct,
10460 ) -> Result<(), S::Error> {
10461 use serde::ser::SerializeStruct;
10462 s.serialize_field("name", &self.name)?;
10463 s.serialize_field("members", &self.members)?;
10464 if let Some(val) = &self.description {
10465 s.serialize_field("description", val)?;
10466 }
10467 if let Some(val) = &self.start_date {
10468 s.serialize_field("start_date", val)?;
10469 }
10470 if let Some(val) = &self.end_date {
10471 s.serialize_field("end_date", val)?;
10472 }
10473 Ok(())
10474 }
10475}
10476
10477impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateArg {
10478 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10479 use serde::de::{MapAccess, Visitor};
10481 struct StructVisitor;
10482 impl<'de> Visitor<'de> for StructVisitor {
10483 type Value = LegalHoldsPolicyCreateArg;
10484 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10485 f.write_str("a LegalHoldsPolicyCreateArg struct")
10486 }
10487 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10488 LegalHoldsPolicyCreateArg::internal_deserialize(map)
10489 }
10490 }
10491 deserializer.deserialize_struct("LegalHoldsPolicyCreateArg", LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS, StructVisitor)
10492 }
10493}
10494
10495impl ::serde::ser::Serialize for LegalHoldsPolicyCreateArg {
10496 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10497 use serde::ser::SerializeStruct;
10499 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateArg", 5)?;
10500 self.internal_serialize::<S>(&mut s)?;
10501 s.end()
10502 }
10503}
10504
10505#[derive(Debug, Clone, PartialEq, Eq)]
10506#[non_exhaustive] pub enum LegalHoldsPolicyCreateError {
10508 UnknownLegalHoldError,
10510 InsufficientPermissions,
10512 StartDateIsLaterThanEndDate,
10514 EmptyMembersList,
10516 InvalidMembers,
10518 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10520 TransientError,
10522 NameMustBeUnique,
10524 TeamExceededLegalHoldQuota,
10526 InvalidDate,
10528 Other,
10531}
10532
10533impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateError {
10534 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10535 use serde::de::{self, MapAccess, Visitor};
10537 struct EnumVisitor;
10538 impl<'de> Visitor<'de> for EnumVisitor {
10539 type Value = LegalHoldsPolicyCreateError;
10540 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10541 f.write_str("a LegalHoldsPolicyCreateError structure")
10542 }
10543 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10544 let tag: &str = match map.next_key()? {
10545 Some(".tag") => map.next_value()?,
10546 _ => return Err(de::Error::missing_field(".tag"))
10547 };
10548 let value = match tag {
10549 "unknown_legal_hold_error" => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
10550 "insufficient_permissions" => LegalHoldsPolicyCreateError::InsufficientPermissions,
10551 "start_date_is_later_than_end_date" => LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate,
10552 "empty_members_list" => LegalHoldsPolicyCreateError::EmptyMembersList,
10553 "invalid_members" => LegalHoldsPolicyCreateError::InvalidMembers,
10554 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10555 "transient_error" => LegalHoldsPolicyCreateError::TransientError,
10556 "name_must_be_unique" => LegalHoldsPolicyCreateError::NameMustBeUnique,
10557 "team_exceeded_legal_hold_quota" => LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota,
10558 "invalid_date" => LegalHoldsPolicyCreateError::InvalidDate,
10559 _ => LegalHoldsPolicyCreateError::Other,
10560 };
10561 crate::eat_json_fields(&mut map)?;
10562 Ok(value)
10563 }
10564 }
10565 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10566 "insufficient_permissions",
10567 "other",
10568 "start_date_is_later_than_end_date",
10569 "empty_members_list",
10570 "invalid_members",
10571 "number_of_users_on_hold_is_greater_than_hold_limitation",
10572 "transient_error",
10573 "name_must_be_unique",
10574 "team_exceeded_legal_hold_quota",
10575 "invalid_date"];
10576 deserializer.deserialize_struct("LegalHoldsPolicyCreateError", VARIANTS, EnumVisitor)
10577 }
10578}
10579
10580impl ::serde::ser::Serialize for LegalHoldsPolicyCreateError {
10581 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10582 use serde::ser::SerializeStruct;
10584 match self {
10585 LegalHoldsPolicyCreateError::UnknownLegalHoldError => {
10586 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10588 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10589 s.end()
10590 }
10591 LegalHoldsPolicyCreateError::InsufficientPermissions => {
10592 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10594 s.serialize_field(".tag", "insufficient_permissions")?;
10595 s.end()
10596 }
10597 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => {
10598 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10600 s.serialize_field(".tag", "start_date_is_later_than_end_date")?;
10601 s.end()
10602 }
10603 LegalHoldsPolicyCreateError::EmptyMembersList => {
10604 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10606 s.serialize_field(".tag", "empty_members_list")?;
10607 s.end()
10608 }
10609 LegalHoldsPolicyCreateError::InvalidMembers => {
10610 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10612 s.serialize_field(".tag", "invalid_members")?;
10613 s.end()
10614 }
10615 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
10616 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10618 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
10619 s.end()
10620 }
10621 LegalHoldsPolicyCreateError::TransientError => {
10622 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10624 s.serialize_field(".tag", "transient_error")?;
10625 s.end()
10626 }
10627 LegalHoldsPolicyCreateError::NameMustBeUnique => {
10628 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10630 s.serialize_field(".tag", "name_must_be_unique")?;
10631 s.end()
10632 }
10633 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => {
10634 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10636 s.serialize_field(".tag", "team_exceeded_legal_hold_quota")?;
10637 s.end()
10638 }
10639 LegalHoldsPolicyCreateError::InvalidDate => {
10640 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10642 s.serialize_field(".tag", "invalid_date")?;
10643 s.end()
10644 }
10645 LegalHoldsPolicyCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10646 }
10647 }
10648}
10649
10650impl ::std::error::Error for LegalHoldsPolicyCreateError {
10651}
10652
10653impl ::std::fmt::Display for LegalHoldsPolicyCreateError {
10654 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10655 match self {
10656 LegalHoldsPolicyCreateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10657 LegalHoldsPolicyCreateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10658 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => f.write_str("Start date must be earlier than end date."),
10659 LegalHoldsPolicyCreateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
10660 LegalHoldsPolicyCreateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
10661 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
10662 LegalHoldsPolicyCreateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10663 LegalHoldsPolicyCreateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
10664 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => f.write_str("Team exceeded legal hold quota."),
10665 LegalHoldsPolicyCreateError::InvalidDate => f.write_str("The provided date is invalid."),
10666 _ => write!(f, "{:?}", *self),
10667 }
10668 }
10669}
10670
10671impl From<LegalHoldsError> for LegalHoldsPolicyCreateError {
10673 fn from(parent: LegalHoldsError) -> Self {
10674 match parent {
10675 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
10676 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyCreateError::InsufficientPermissions,
10677 LegalHoldsError::Other => LegalHoldsPolicyCreateError::Other,
10678 }
10679 }
10680}
10681#[derive(Debug, Clone, PartialEq, Eq)]
10682#[non_exhaustive] pub struct LegalHoldsPolicyReleaseArg {
10684 pub id: LegalHoldId,
10686}
10687
10688impl LegalHoldsPolicyReleaseArg {
10689 pub fn new(id: LegalHoldId) -> Self {
10690 LegalHoldsPolicyReleaseArg {
10691 id,
10692 }
10693 }
10694}
10695
10696const LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS: &[&str] = &["id"];
10697impl LegalHoldsPolicyReleaseArg {
10698 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10699 map: V,
10700 ) -> Result<LegalHoldsPolicyReleaseArg, V::Error> {
10701 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10702 }
10703
10704 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10705 mut map: V,
10706 optional: bool,
10707 ) -> Result<Option<LegalHoldsPolicyReleaseArg>, V::Error> {
10708 let mut field_id = None;
10709 let mut nothing = true;
10710 while let Some(key) = map.next_key::<&str>()? {
10711 nothing = false;
10712 match key {
10713 "id" => {
10714 if field_id.is_some() {
10715 return Err(::serde::de::Error::duplicate_field("id"));
10716 }
10717 field_id = Some(map.next_value()?);
10718 }
10719 _ => {
10720 map.next_value::<::serde_json::Value>()?;
10722 }
10723 }
10724 }
10725 if optional && nothing {
10726 return Ok(None);
10727 }
10728 let result = LegalHoldsPolicyReleaseArg {
10729 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10730 };
10731 Ok(Some(result))
10732 }
10733
10734 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10735 &self,
10736 s: &mut S::SerializeStruct,
10737 ) -> Result<(), S::Error> {
10738 use serde::ser::SerializeStruct;
10739 s.serialize_field("id", &self.id)?;
10740 Ok(())
10741 }
10742}
10743
10744impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseArg {
10745 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10746 use serde::de::{MapAccess, Visitor};
10748 struct StructVisitor;
10749 impl<'de> Visitor<'de> for StructVisitor {
10750 type Value = LegalHoldsPolicyReleaseArg;
10751 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10752 f.write_str("a LegalHoldsPolicyReleaseArg struct")
10753 }
10754 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10755 LegalHoldsPolicyReleaseArg::internal_deserialize(map)
10756 }
10757 }
10758 deserializer.deserialize_struct("LegalHoldsPolicyReleaseArg", LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS, StructVisitor)
10759 }
10760}
10761
10762impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseArg {
10763 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10764 use serde::ser::SerializeStruct;
10766 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseArg", 1)?;
10767 self.internal_serialize::<S>(&mut s)?;
10768 s.end()
10769 }
10770}
10771
10772#[derive(Debug, Clone, PartialEq, Eq)]
10773#[non_exhaustive] pub enum LegalHoldsPolicyReleaseError {
10775 UnknownLegalHoldError,
10777 InsufficientPermissions,
10779 LegalHoldPerformingAnotherOperation,
10781 LegalHoldAlreadyReleasing,
10783 LegalHoldPolicyNotFound,
10786 Other,
10789}
10790
10791impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseError {
10792 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10793 use serde::de::{self, MapAccess, Visitor};
10795 struct EnumVisitor;
10796 impl<'de> Visitor<'de> for EnumVisitor {
10797 type Value = LegalHoldsPolicyReleaseError;
10798 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10799 f.write_str("a LegalHoldsPolicyReleaseError structure")
10800 }
10801 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10802 let tag: &str = match map.next_key()? {
10803 Some(".tag") => map.next_value()?,
10804 _ => return Err(de::Error::missing_field(".tag"))
10805 };
10806 let value = match tag {
10807 "unknown_legal_hold_error" => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
10808 "insufficient_permissions" => LegalHoldsPolicyReleaseError::InsufficientPermissions,
10809 "legal_hold_performing_another_operation" => LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation,
10810 "legal_hold_already_releasing" => LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing,
10811 "legal_hold_policy_not_found" => LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound,
10812 _ => LegalHoldsPolicyReleaseError::Other,
10813 };
10814 crate::eat_json_fields(&mut map)?;
10815 Ok(value)
10816 }
10817 }
10818 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10819 "insufficient_permissions",
10820 "other",
10821 "legal_hold_performing_another_operation",
10822 "legal_hold_already_releasing",
10823 "legal_hold_policy_not_found"];
10824 deserializer.deserialize_struct("LegalHoldsPolicyReleaseError", VARIANTS, EnumVisitor)
10825 }
10826}
10827
10828impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseError {
10829 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10830 use serde::ser::SerializeStruct;
10832 match self {
10833 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => {
10834 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10836 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10837 s.end()
10838 }
10839 LegalHoldsPolicyReleaseError::InsufficientPermissions => {
10840 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10842 s.serialize_field(".tag", "insufficient_permissions")?;
10843 s.end()
10844 }
10845 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => {
10846 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10848 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
10849 s.end()
10850 }
10851 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => {
10852 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10854 s.serialize_field(".tag", "legal_hold_already_releasing")?;
10855 s.end()
10856 }
10857 LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound => {
10858 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10860 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
10861 s.end()
10862 }
10863 LegalHoldsPolicyReleaseError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10864 }
10865 }
10866}
10867
10868impl ::std::error::Error for LegalHoldsPolicyReleaseError {
10869}
10870
10871impl ::std::fmt::Display for LegalHoldsPolicyReleaseError {
10872 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10873 match self {
10874 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10875 LegalHoldsPolicyReleaseError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10876 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
10877 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => f.write_str("Legal hold is currently performing a release or is already released."),
10878 _ => write!(f, "{:?}", *self),
10879 }
10880 }
10881}
10882
10883impl From<LegalHoldsError> for LegalHoldsPolicyReleaseError {
10885 fn from(parent: LegalHoldsError) -> Self {
10886 match parent {
10887 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
10888 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyReleaseError::InsufficientPermissions,
10889 LegalHoldsError::Other => LegalHoldsPolicyReleaseError::Other,
10890 }
10891 }
10892}
10893#[derive(Debug, Clone, PartialEq, Eq)]
10894#[non_exhaustive] pub struct LegalHoldsPolicyUpdateArg {
10896 pub id: LegalHoldId,
10898 pub name: Option<LegalHoldPolicyName>,
10900 pub description: Option<LegalHoldPolicyDescription>,
10902 pub members: Option<Vec<crate::types::team_common::TeamMemberId>>,
10904}
10905
10906impl LegalHoldsPolicyUpdateArg {
10907 pub fn new(id: LegalHoldId) -> Self {
10908 LegalHoldsPolicyUpdateArg {
10909 id,
10910 name: None,
10911 description: None,
10912 members: None,
10913 }
10914 }
10915
10916 pub fn with_name(mut self, value: LegalHoldPolicyName) -> Self {
10917 self.name = Some(value);
10918 self
10919 }
10920
10921 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
10922 self.description = Some(value);
10923 self
10924 }
10925
10926 pub fn with_members(mut self, value: Vec<crate::types::team_common::TeamMemberId>) -> Self {
10927 self.members = Some(value);
10928 self
10929 }
10930}
10931
10932const LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS: &[&str] = &["id",
10933 "name",
10934 "description",
10935 "members"];
10936impl LegalHoldsPolicyUpdateArg {
10937 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10938 map: V,
10939 ) -> Result<LegalHoldsPolicyUpdateArg, V::Error> {
10940 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10941 }
10942
10943 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10944 mut map: V,
10945 optional: bool,
10946 ) -> Result<Option<LegalHoldsPolicyUpdateArg>, V::Error> {
10947 let mut field_id = None;
10948 let mut field_name = None;
10949 let mut field_description = None;
10950 let mut field_members = None;
10951 let mut nothing = true;
10952 while let Some(key) = map.next_key::<&str>()? {
10953 nothing = false;
10954 match key {
10955 "id" => {
10956 if field_id.is_some() {
10957 return Err(::serde::de::Error::duplicate_field("id"));
10958 }
10959 field_id = Some(map.next_value()?);
10960 }
10961 "name" => {
10962 if field_name.is_some() {
10963 return Err(::serde::de::Error::duplicate_field("name"));
10964 }
10965 field_name = Some(map.next_value()?);
10966 }
10967 "description" => {
10968 if field_description.is_some() {
10969 return Err(::serde::de::Error::duplicate_field("description"));
10970 }
10971 field_description = Some(map.next_value()?);
10972 }
10973 "members" => {
10974 if field_members.is_some() {
10975 return Err(::serde::de::Error::duplicate_field("members"));
10976 }
10977 field_members = Some(map.next_value()?);
10978 }
10979 _ => {
10980 map.next_value::<::serde_json::Value>()?;
10982 }
10983 }
10984 }
10985 if optional && nothing {
10986 return Ok(None);
10987 }
10988 let result = LegalHoldsPolicyUpdateArg {
10989 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10990 name: field_name.and_then(Option::flatten),
10991 description: field_description.and_then(Option::flatten),
10992 members: field_members.and_then(Option::flatten),
10993 };
10994 Ok(Some(result))
10995 }
10996
10997 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10998 &self,
10999 s: &mut S::SerializeStruct,
11000 ) -> Result<(), S::Error> {
11001 use serde::ser::SerializeStruct;
11002 s.serialize_field("id", &self.id)?;
11003 if let Some(val) = &self.name {
11004 s.serialize_field("name", val)?;
11005 }
11006 if let Some(val) = &self.description {
11007 s.serialize_field("description", val)?;
11008 }
11009 if let Some(val) = &self.members {
11010 s.serialize_field("members", val)?;
11011 }
11012 Ok(())
11013 }
11014}
11015
11016impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateArg {
11017 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11018 use serde::de::{MapAccess, Visitor};
11020 struct StructVisitor;
11021 impl<'de> Visitor<'de> for StructVisitor {
11022 type Value = LegalHoldsPolicyUpdateArg;
11023 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11024 f.write_str("a LegalHoldsPolicyUpdateArg struct")
11025 }
11026 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11027 LegalHoldsPolicyUpdateArg::internal_deserialize(map)
11028 }
11029 }
11030 deserializer.deserialize_struct("LegalHoldsPolicyUpdateArg", LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS, StructVisitor)
11031 }
11032}
11033
11034impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateArg {
11035 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11036 use serde::ser::SerializeStruct;
11038 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateArg", 4)?;
11039 self.internal_serialize::<S>(&mut s)?;
11040 s.end()
11041 }
11042}
11043
11044#[derive(Debug, Clone, PartialEq, Eq)]
11045#[non_exhaustive] pub enum LegalHoldsPolicyUpdateError {
11047 UnknownLegalHoldError,
11049 InsufficientPermissions,
11051 TransientError,
11053 InactiveLegalHold,
11055 LegalHoldPerformingAnotherOperation,
11057 InvalidMembers,
11059 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11061 EmptyMembersList,
11063 NameMustBeUnique,
11065 LegalHoldPolicyNotFound,
11068 Other,
11071}
11072
11073impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateError {
11074 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11075 use serde::de::{self, MapAccess, Visitor};
11077 struct EnumVisitor;
11078 impl<'de> Visitor<'de> for EnumVisitor {
11079 type Value = LegalHoldsPolicyUpdateError;
11080 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11081 f.write_str("a LegalHoldsPolicyUpdateError structure")
11082 }
11083 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11084 let tag: &str = match map.next_key()? {
11085 Some(".tag") => map.next_value()?,
11086 _ => return Err(de::Error::missing_field(".tag"))
11087 };
11088 let value = match tag {
11089 "unknown_legal_hold_error" => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11090 "insufficient_permissions" => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11091 "transient_error" => LegalHoldsPolicyUpdateError::TransientError,
11092 "inactive_legal_hold" => LegalHoldsPolicyUpdateError::InactiveLegalHold,
11093 "legal_hold_performing_another_operation" => LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation,
11094 "invalid_members" => LegalHoldsPolicyUpdateError::InvalidMembers,
11095 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11096 "empty_members_list" => LegalHoldsPolicyUpdateError::EmptyMembersList,
11097 "name_must_be_unique" => LegalHoldsPolicyUpdateError::NameMustBeUnique,
11098 "legal_hold_policy_not_found" => LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound,
11099 _ => LegalHoldsPolicyUpdateError::Other,
11100 };
11101 crate::eat_json_fields(&mut map)?;
11102 Ok(value)
11103 }
11104 }
11105 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
11106 "insufficient_permissions",
11107 "other",
11108 "transient_error",
11109 "inactive_legal_hold",
11110 "legal_hold_performing_another_operation",
11111 "invalid_members",
11112 "number_of_users_on_hold_is_greater_than_hold_limitation",
11113 "empty_members_list",
11114 "name_must_be_unique",
11115 "legal_hold_policy_not_found"];
11116 deserializer.deserialize_struct("LegalHoldsPolicyUpdateError", VARIANTS, EnumVisitor)
11117 }
11118}
11119
11120impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateError {
11121 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11122 use serde::ser::SerializeStruct;
11124 match self {
11125 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => {
11126 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11128 s.serialize_field(".tag", "unknown_legal_hold_error")?;
11129 s.end()
11130 }
11131 LegalHoldsPolicyUpdateError::InsufficientPermissions => {
11132 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11134 s.serialize_field(".tag", "insufficient_permissions")?;
11135 s.end()
11136 }
11137 LegalHoldsPolicyUpdateError::TransientError => {
11138 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11140 s.serialize_field(".tag", "transient_error")?;
11141 s.end()
11142 }
11143 LegalHoldsPolicyUpdateError::InactiveLegalHold => {
11144 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11146 s.serialize_field(".tag", "inactive_legal_hold")?;
11147 s.end()
11148 }
11149 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => {
11150 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11152 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
11153 s.end()
11154 }
11155 LegalHoldsPolicyUpdateError::InvalidMembers => {
11156 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11158 s.serialize_field(".tag", "invalid_members")?;
11159 s.end()
11160 }
11161 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
11162 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11164 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
11165 s.end()
11166 }
11167 LegalHoldsPolicyUpdateError::EmptyMembersList => {
11168 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11170 s.serialize_field(".tag", "empty_members_list")?;
11171 s.end()
11172 }
11173 LegalHoldsPolicyUpdateError::NameMustBeUnique => {
11174 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11176 s.serialize_field(".tag", "name_must_be_unique")?;
11177 s.end()
11178 }
11179 LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound => {
11180 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11182 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
11183 s.end()
11184 }
11185 LegalHoldsPolicyUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11186 }
11187 }
11188}
11189
11190impl ::std::error::Error for LegalHoldsPolicyUpdateError {
11191}
11192
11193impl ::std::fmt::Display for LegalHoldsPolicyUpdateError {
11194 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11195 match self {
11196 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
11197 LegalHoldsPolicyUpdateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
11198 LegalHoldsPolicyUpdateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
11199 LegalHoldsPolicyUpdateError::InactiveLegalHold => f.write_str("Trying to release an inactive legal hold."),
11200 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
11201 LegalHoldsPolicyUpdateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
11202 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
11203 LegalHoldsPolicyUpdateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
11204 LegalHoldsPolicyUpdateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
11205 _ => write!(f, "{:?}", *self),
11206 }
11207 }
11208}
11209
11210impl From<LegalHoldsError> for LegalHoldsPolicyUpdateError {
11212 fn from(parent: LegalHoldsError) -> Self {
11213 match parent {
11214 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11215 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11216 LegalHoldsError::Other => LegalHoldsPolicyUpdateError::Other,
11217 }
11218 }
11219}
11220#[derive(Debug, Clone, PartialEq, Eq)]
11221#[non_exhaustive] pub struct ListMemberAppsArg {
11223 pub team_member_id: String,
11225}
11226
11227impl ListMemberAppsArg {
11228 pub fn new(team_member_id: String) -> Self {
11229 ListMemberAppsArg {
11230 team_member_id,
11231 }
11232 }
11233}
11234
11235const LIST_MEMBER_APPS_ARG_FIELDS: &[&str] = &["team_member_id"];
11236impl ListMemberAppsArg {
11237 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11238 map: V,
11239 ) -> Result<ListMemberAppsArg, V::Error> {
11240 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11241 }
11242
11243 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11244 mut map: V,
11245 optional: bool,
11246 ) -> Result<Option<ListMemberAppsArg>, V::Error> {
11247 let mut field_team_member_id = None;
11248 let mut nothing = true;
11249 while let Some(key) = map.next_key::<&str>()? {
11250 nothing = false;
11251 match key {
11252 "team_member_id" => {
11253 if field_team_member_id.is_some() {
11254 return Err(::serde::de::Error::duplicate_field("team_member_id"));
11255 }
11256 field_team_member_id = Some(map.next_value()?);
11257 }
11258 _ => {
11259 map.next_value::<::serde_json::Value>()?;
11261 }
11262 }
11263 }
11264 if optional && nothing {
11265 return Ok(None);
11266 }
11267 let result = ListMemberAppsArg {
11268 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
11269 };
11270 Ok(Some(result))
11271 }
11272
11273 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11274 &self,
11275 s: &mut S::SerializeStruct,
11276 ) -> Result<(), S::Error> {
11277 use serde::ser::SerializeStruct;
11278 s.serialize_field("team_member_id", &self.team_member_id)?;
11279 Ok(())
11280 }
11281}
11282
11283impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsArg {
11284 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11285 use serde::de::{MapAccess, Visitor};
11287 struct StructVisitor;
11288 impl<'de> Visitor<'de> for StructVisitor {
11289 type Value = ListMemberAppsArg;
11290 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11291 f.write_str("a ListMemberAppsArg struct")
11292 }
11293 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11294 ListMemberAppsArg::internal_deserialize(map)
11295 }
11296 }
11297 deserializer.deserialize_struct("ListMemberAppsArg", LIST_MEMBER_APPS_ARG_FIELDS, StructVisitor)
11298 }
11299}
11300
11301impl ::serde::ser::Serialize for ListMemberAppsArg {
11302 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11303 use serde::ser::SerializeStruct;
11305 let mut s = serializer.serialize_struct("ListMemberAppsArg", 1)?;
11306 self.internal_serialize::<S>(&mut s)?;
11307 s.end()
11308 }
11309}
11310
11311#[derive(Debug, Clone, PartialEq, Eq)]
11314#[non_exhaustive] pub enum ListMemberAppsError {
11316 MemberNotFound,
11318 Other,
11321}
11322
11323impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsError {
11324 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11325 use serde::de::{self, MapAccess, Visitor};
11327 struct EnumVisitor;
11328 impl<'de> Visitor<'de> for EnumVisitor {
11329 type Value = ListMemberAppsError;
11330 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11331 f.write_str("a ListMemberAppsError structure")
11332 }
11333 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11334 let tag: &str = match map.next_key()? {
11335 Some(".tag") => map.next_value()?,
11336 _ => return Err(de::Error::missing_field(".tag"))
11337 };
11338 let value = match tag {
11339 "member_not_found" => ListMemberAppsError::MemberNotFound,
11340 _ => ListMemberAppsError::Other,
11341 };
11342 crate::eat_json_fields(&mut map)?;
11343 Ok(value)
11344 }
11345 }
11346 const VARIANTS: &[&str] = &["member_not_found",
11347 "other"];
11348 deserializer.deserialize_struct("ListMemberAppsError", VARIANTS, EnumVisitor)
11349 }
11350}
11351
11352impl ::serde::ser::Serialize for ListMemberAppsError {
11353 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11354 use serde::ser::SerializeStruct;
11356 match self {
11357 ListMemberAppsError::MemberNotFound => {
11358 let mut s = serializer.serialize_struct("ListMemberAppsError", 1)?;
11360 s.serialize_field(".tag", "member_not_found")?;
11361 s.end()
11362 }
11363 ListMemberAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11364 }
11365 }
11366}
11367
11368impl ::std::error::Error for ListMemberAppsError {
11369}
11370
11371impl ::std::fmt::Display for ListMemberAppsError {
11372 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11373 match self {
11374 ListMemberAppsError::MemberNotFound => f.write_str("Member not found."),
11375 _ => write!(f, "{:?}", *self),
11376 }
11377 }
11378}
11379
11380#[derive(Debug, Clone, PartialEq, Eq)]
11381#[non_exhaustive] pub struct ListMemberAppsResult {
11383 pub linked_api_apps: Vec<ApiApp>,
11385}
11386
11387impl ListMemberAppsResult {
11388 pub fn new(linked_api_apps: Vec<ApiApp>) -> Self {
11389 ListMemberAppsResult {
11390 linked_api_apps,
11391 }
11392 }
11393}
11394
11395const LIST_MEMBER_APPS_RESULT_FIELDS: &[&str] = &["linked_api_apps"];
11396impl ListMemberAppsResult {
11397 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11398 map: V,
11399 ) -> Result<ListMemberAppsResult, V::Error> {
11400 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11401 }
11402
11403 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11404 mut map: V,
11405 optional: bool,
11406 ) -> Result<Option<ListMemberAppsResult>, V::Error> {
11407 let mut field_linked_api_apps = None;
11408 let mut nothing = true;
11409 while let Some(key) = map.next_key::<&str>()? {
11410 nothing = false;
11411 match key {
11412 "linked_api_apps" => {
11413 if field_linked_api_apps.is_some() {
11414 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
11415 }
11416 field_linked_api_apps = Some(map.next_value()?);
11417 }
11418 _ => {
11419 map.next_value::<::serde_json::Value>()?;
11421 }
11422 }
11423 }
11424 if optional && nothing {
11425 return Ok(None);
11426 }
11427 let result = ListMemberAppsResult {
11428 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
11429 };
11430 Ok(Some(result))
11431 }
11432
11433 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11434 &self,
11435 s: &mut S::SerializeStruct,
11436 ) -> Result<(), S::Error> {
11437 use serde::ser::SerializeStruct;
11438 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
11439 Ok(())
11440 }
11441}
11442
11443impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsResult {
11444 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11445 use serde::de::{MapAccess, Visitor};
11447 struct StructVisitor;
11448 impl<'de> Visitor<'de> for StructVisitor {
11449 type Value = ListMemberAppsResult;
11450 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11451 f.write_str("a ListMemberAppsResult struct")
11452 }
11453 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11454 ListMemberAppsResult::internal_deserialize(map)
11455 }
11456 }
11457 deserializer.deserialize_struct("ListMemberAppsResult", LIST_MEMBER_APPS_RESULT_FIELDS, StructVisitor)
11458 }
11459}
11460
11461impl ::serde::ser::Serialize for ListMemberAppsResult {
11462 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11463 use serde::ser::SerializeStruct;
11465 let mut s = serializer.serialize_struct("ListMemberAppsResult", 1)?;
11466 self.internal_serialize::<S>(&mut s)?;
11467 s.end()
11468 }
11469}
11470
11471#[derive(Debug, Clone, PartialEq, Eq)]
11472#[non_exhaustive] pub struct ListMemberDevicesArg {
11474 pub team_member_id: String,
11476 pub include_web_sessions: bool,
11478 pub include_desktop_clients: bool,
11480 pub include_mobile_clients: bool,
11482}
11483
11484impl ListMemberDevicesArg {
11485 pub fn new(team_member_id: String) -> Self {
11486 ListMemberDevicesArg {
11487 team_member_id,
11488 include_web_sessions: true,
11489 include_desktop_clients: true,
11490 include_mobile_clients: true,
11491 }
11492 }
11493
11494 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
11495 self.include_web_sessions = value;
11496 self
11497 }
11498
11499 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
11500 self.include_desktop_clients = value;
11501 self
11502 }
11503
11504 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
11505 self.include_mobile_clients = value;
11506 self
11507 }
11508}
11509
11510const LIST_MEMBER_DEVICES_ARG_FIELDS: &[&str] = &["team_member_id",
11511 "include_web_sessions",
11512 "include_desktop_clients",
11513 "include_mobile_clients"];
11514impl ListMemberDevicesArg {
11515 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11516 map: V,
11517 ) -> Result<ListMemberDevicesArg, V::Error> {
11518 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11519 }
11520
11521 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11522 mut map: V,
11523 optional: bool,
11524 ) -> Result<Option<ListMemberDevicesArg>, V::Error> {
11525 let mut field_team_member_id = None;
11526 let mut field_include_web_sessions = None;
11527 let mut field_include_desktop_clients = None;
11528 let mut field_include_mobile_clients = None;
11529 let mut nothing = true;
11530 while let Some(key) = map.next_key::<&str>()? {
11531 nothing = false;
11532 match key {
11533 "team_member_id" => {
11534 if field_team_member_id.is_some() {
11535 return Err(::serde::de::Error::duplicate_field("team_member_id"));
11536 }
11537 field_team_member_id = Some(map.next_value()?);
11538 }
11539 "include_web_sessions" => {
11540 if field_include_web_sessions.is_some() {
11541 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
11542 }
11543 field_include_web_sessions = Some(map.next_value()?);
11544 }
11545 "include_desktop_clients" => {
11546 if field_include_desktop_clients.is_some() {
11547 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
11548 }
11549 field_include_desktop_clients = Some(map.next_value()?);
11550 }
11551 "include_mobile_clients" => {
11552 if field_include_mobile_clients.is_some() {
11553 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
11554 }
11555 field_include_mobile_clients = Some(map.next_value()?);
11556 }
11557 _ => {
11558 map.next_value::<::serde_json::Value>()?;
11560 }
11561 }
11562 }
11563 if optional && nothing {
11564 return Ok(None);
11565 }
11566 let result = ListMemberDevicesArg {
11567 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
11568 include_web_sessions: field_include_web_sessions.unwrap_or(true),
11569 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
11570 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
11571 };
11572 Ok(Some(result))
11573 }
11574
11575 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11576 &self,
11577 s: &mut S::SerializeStruct,
11578 ) -> Result<(), S::Error> {
11579 use serde::ser::SerializeStruct;
11580 s.serialize_field("team_member_id", &self.team_member_id)?;
11581 if !self.include_web_sessions {
11582 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
11583 }
11584 if !self.include_desktop_clients {
11585 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
11586 }
11587 if !self.include_mobile_clients {
11588 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
11589 }
11590 Ok(())
11591 }
11592}
11593
11594impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesArg {
11595 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11596 use serde::de::{MapAccess, Visitor};
11598 struct StructVisitor;
11599 impl<'de> Visitor<'de> for StructVisitor {
11600 type Value = ListMemberDevicesArg;
11601 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11602 f.write_str("a ListMemberDevicesArg struct")
11603 }
11604 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11605 ListMemberDevicesArg::internal_deserialize(map)
11606 }
11607 }
11608 deserializer.deserialize_struct("ListMemberDevicesArg", LIST_MEMBER_DEVICES_ARG_FIELDS, StructVisitor)
11609 }
11610}
11611
11612impl ::serde::ser::Serialize for ListMemberDevicesArg {
11613 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11614 use serde::ser::SerializeStruct;
11616 let mut s = serializer.serialize_struct("ListMemberDevicesArg", 4)?;
11617 self.internal_serialize::<S>(&mut s)?;
11618 s.end()
11619 }
11620}
11621
11622#[derive(Debug, Clone, PartialEq, Eq)]
11623#[non_exhaustive] pub enum ListMemberDevicesError {
11625 MemberNotFound,
11627 Other,
11630}
11631
11632impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesError {
11633 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11634 use serde::de::{self, MapAccess, Visitor};
11636 struct EnumVisitor;
11637 impl<'de> Visitor<'de> for EnumVisitor {
11638 type Value = ListMemberDevicesError;
11639 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11640 f.write_str("a ListMemberDevicesError structure")
11641 }
11642 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11643 let tag: &str = match map.next_key()? {
11644 Some(".tag") => map.next_value()?,
11645 _ => return Err(de::Error::missing_field(".tag"))
11646 };
11647 let value = match tag {
11648 "member_not_found" => ListMemberDevicesError::MemberNotFound,
11649 _ => ListMemberDevicesError::Other,
11650 };
11651 crate::eat_json_fields(&mut map)?;
11652 Ok(value)
11653 }
11654 }
11655 const VARIANTS: &[&str] = &["member_not_found",
11656 "other"];
11657 deserializer.deserialize_struct("ListMemberDevicesError", VARIANTS, EnumVisitor)
11658 }
11659}
11660
11661impl ::serde::ser::Serialize for ListMemberDevicesError {
11662 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11663 use serde::ser::SerializeStruct;
11665 match self {
11666 ListMemberDevicesError::MemberNotFound => {
11667 let mut s = serializer.serialize_struct("ListMemberDevicesError", 1)?;
11669 s.serialize_field(".tag", "member_not_found")?;
11670 s.end()
11671 }
11672 ListMemberDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11673 }
11674 }
11675}
11676
11677impl ::std::error::Error for ListMemberDevicesError {
11678}
11679
11680impl ::std::fmt::Display for ListMemberDevicesError {
11681 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11682 match self {
11683 ListMemberDevicesError::MemberNotFound => f.write_str("Member not found."),
11684 _ => write!(f, "{:?}", *self),
11685 }
11686 }
11687}
11688
11689#[derive(Debug, Clone, PartialEq, Eq, Default)]
11690#[non_exhaustive] pub struct ListMemberDevicesResult {
11692 pub active_web_sessions: Option<Vec<ActiveWebSession>>,
11694 pub desktop_client_sessions: Option<Vec<DesktopClientSession>>,
11696 pub mobile_client_sessions: Option<Vec<MobileClientSession>>,
11698}
11699
11700impl ListMemberDevicesResult {
11701 pub fn with_active_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
11702 self.active_web_sessions = Some(value);
11703 self
11704 }
11705
11706 pub fn with_desktop_client_sessions(mut self, value: Vec<DesktopClientSession>) -> Self {
11707 self.desktop_client_sessions = Some(value);
11708 self
11709 }
11710
11711 pub fn with_mobile_client_sessions(mut self, value: Vec<MobileClientSession>) -> Self {
11712 self.mobile_client_sessions = Some(value);
11713 self
11714 }
11715}
11716
11717const LIST_MEMBER_DEVICES_RESULT_FIELDS: &[&str] = &["active_web_sessions",
11718 "desktop_client_sessions",
11719 "mobile_client_sessions"];
11720impl ListMemberDevicesResult {
11721 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11723 mut map: V,
11724 ) -> Result<ListMemberDevicesResult, V::Error> {
11725 let mut field_active_web_sessions = None;
11726 let mut field_desktop_client_sessions = None;
11727 let mut field_mobile_client_sessions = None;
11728 while let Some(key) = map.next_key::<&str>()? {
11729 match key {
11730 "active_web_sessions" => {
11731 if field_active_web_sessions.is_some() {
11732 return Err(::serde::de::Error::duplicate_field("active_web_sessions"));
11733 }
11734 field_active_web_sessions = Some(map.next_value()?);
11735 }
11736 "desktop_client_sessions" => {
11737 if field_desktop_client_sessions.is_some() {
11738 return Err(::serde::de::Error::duplicate_field("desktop_client_sessions"));
11739 }
11740 field_desktop_client_sessions = Some(map.next_value()?);
11741 }
11742 "mobile_client_sessions" => {
11743 if field_mobile_client_sessions.is_some() {
11744 return Err(::serde::de::Error::duplicate_field("mobile_client_sessions"));
11745 }
11746 field_mobile_client_sessions = Some(map.next_value()?);
11747 }
11748 _ => {
11749 map.next_value::<::serde_json::Value>()?;
11751 }
11752 }
11753 }
11754 let result = ListMemberDevicesResult {
11755 active_web_sessions: field_active_web_sessions.and_then(Option::flatten),
11756 desktop_client_sessions: field_desktop_client_sessions.and_then(Option::flatten),
11757 mobile_client_sessions: field_mobile_client_sessions.and_then(Option::flatten),
11758 };
11759 Ok(result)
11760 }
11761
11762 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11763 &self,
11764 s: &mut S::SerializeStruct,
11765 ) -> Result<(), S::Error> {
11766 use serde::ser::SerializeStruct;
11767 if let Some(val) = &self.active_web_sessions {
11768 s.serialize_field("active_web_sessions", val)?;
11769 }
11770 if let Some(val) = &self.desktop_client_sessions {
11771 s.serialize_field("desktop_client_sessions", val)?;
11772 }
11773 if let Some(val) = &self.mobile_client_sessions {
11774 s.serialize_field("mobile_client_sessions", val)?;
11775 }
11776 Ok(())
11777 }
11778}
11779
11780impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesResult {
11781 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11782 use serde::de::{MapAccess, Visitor};
11784 struct StructVisitor;
11785 impl<'de> Visitor<'de> for StructVisitor {
11786 type Value = ListMemberDevicesResult;
11787 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11788 f.write_str("a ListMemberDevicesResult struct")
11789 }
11790 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11791 ListMemberDevicesResult::internal_deserialize(map)
11792 }
11793 }
11794 deserializer.deserialize_struct("ListMemberDevicesResult", LIST_MEMBER_DEVICES_RESULT_FIELDS, StructVisitor)
11795 }
11796}
11797
11798impl ::serde::ser::Serialize for ListMemberDevicesResult {
11799 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11800 use serde::ser::SerializeStruct;
11802 let mut s = serializer.serialize_struct("ListMemberDevicesResult", 3)?;
11803 self.internal_serialize::<S>(&mut s)?;
11804 s.end()
11805 }
11806}
11807
11808#[derive(Debug, Clone, PartialEq, Eq, Default)]
11811#[non_exhaustive] pub struct ListMembersAppsArg {
11813 pub cursor: Option<String>,
11819}
11820
11821impl ListMembersAppsArg {
11822 pub fn with_cursor(mut self, value: String) -> Self {
11823 self.cursor = Some(value);
11824 self
11825 }
11826}
11827
11828const LIST_MEMBERS_APPS_ARG_FIELDS: &[&str] = &["cursor"];
11829impl ListMembersAppsArg {
11830 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11832 mut map: V,
11833 ) -> Result<ListMembersAppsArg, V::Error> {
11834 let mut field_cursor = None;
11835 while let Some(key) = map.next_key::<&str>()? {
11836 match key {
11837 "cursor" => {
11838 if field_cursor.is_some() {
11839 return Err(::serde::de::Error::duplicate_field("cursor"));
11840 }
11841 field_cursor = Some(map.next_value()?);
11842 }
11843 _ => {
11844 map.next_value::<::serde_json::Value>()?;
11846 }
11847 }
11848 }
11849 let result = ListMembersAppsArg {
11850 cursor: field_cursor.and_then(Option::flatten),
11851 };
11852 Ok(result)
11853 }
11854
11855 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11856 &self,
11857 s: &mut S::SerializeStruct,
11858 ) -> Result<(), S::Error> {
11859 use serde::ser::SerializeStruct;
11860 if let Some(val) = &self.cursor {
11861 s.serialize_field("cursor", val)?;
11862 }
11863 Ok(())
11864 }
11865}
11866
11867impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsArg {
11868 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11869 use serde::de::{MapAccess, Visitor};
11871 struct StructVisitor;
11872 impl<'de> Visitor<'de> for StructVisitor {
11873 type Value = ListMembersAppsArg;
11874 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11875 f.write_str("a ListMembersAppsArg struct")
11876 }
11877 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11878 ListMembersAppsArg::internal_deserialize(map)
11879 }
11880 }
11881 deserializer.deserialize_struct("ListMembersAppsArg", LIST_MEMBERS_APPS_ARG_FIELDS, StructVisitor)
11882 }
11883}
11884
11885impl ::serde::ser::Serialize for ListMembersAppsArg {
11886 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11887 use serde::ser::SerializeStruct;
11889 let mut s = serializer.serialize_struct("ListMembersAppsArg", 1)?;
11890 self.internal_serialize::<S>(&mut s)?;
11891 s.end()
11892 }
11893}
11894
11895#[derive(Debug, Clone, PartialEq, Eq)]
11898#[non_exhaustive] pub enum ListMembersAppsError {
11900 Reset,
11904 Other,
11907}
11908
11909impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsError {
11910 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11911 use serde::de::{self, MapAccess, Visitor};
11913 struct EnumVisitor;
11914 impl<'de> Visitor<'de> for EnumVisitor {
11915 type Value = ListMembersAppsError;
11916 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11917 f.write_str("a ListMembersAppsError structure")
11918 }
11919 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11920 let tag: &str = match map.next_key()? {
11921 Some(".tag") => map.next_value()?,
11922 _ => return Err(de::Error::missing_field(".tag"))
11923 };
11924 let value = match tag {
11925 "reset" => ListMembersAppsError::Reset,
11926 _ => ListMembersAppsError::Other,
11927 };
11928 crate::eat_json_fields(&mut map)?;
11929 Ok(value)
11930 }
11931 }
11932 const VARIANTS: &[&str] = &["reset",
11933 "other"];
11934 deserializer.deserialize_struct("ListMembersAppsError", VARIANTS, EnumVisitor)
11935 }
11936}
11937
11938impl ::serde::ser::Serialize for ListMembersAppsError {
11939 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11940 use serde::ser::SerializeStruct;
11942 match self {
11943 ListMembersAppsError::Reset => {
11944 let mut s = serializer.serialize_struct("ListMembersAppsError", 1)?;
11946 s.serialize_field(".tag", "reset")?;
11947 s.end()
11948 }
11949 ListMembersAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11950 }
11951 }
11952}
11953
11954impl ::std::error::Error for ListMembersAppsError {
11955}
11956
11957impl ::std::fmt::Display for ListMembersAppsError {
11958 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11959 write!(f, "{:?}", *self)
11960 }
11961}
11962
11963#[derive(Debug, Clone, PartialEq, Eq)]
11966#[non_exhaustive] pub struct ListMembersAppsResult {
11968 pub apps: Vec<MemberLinkedApps>,
11970 pub has_more: bool,
11974 pub cursor: Option<String>,
11978}
11979
11980impl ListMembersAppsResult {
11981 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
11982 ListMembersAppsResult {
11983 apps,
11984 has_more,
11985 cursor: None,
11986 }
11987 }
11988
11989 pub fn with_cursor(mut self, value: String) -> Self {
11990 self.cursor = Some(value);
11991 self
11992 }
11993}
11994
11995const LIST_MEMBERS_APPS_RESULT_FIELDS: &[&str] = &["apps",
11996 "has_more",
11997 "cursor"];
11998impl ListMembersAppsResult {
11999 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12000 map: V,
12001 ) -> Result<ListMembersAppsResult, V::Error> {
12002 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12003 }
12004
12005 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12006 mut map: V,
12007 optional: bool,
12008 ) -> Result<Option<ListMembersAppsResult>, V::Error> {
12009 let mut field_apps = None;
12010 let mut field_has_more = None;
12011 let mut field_cursor = None;
12012 let mut nothing = true;
12013 while let Some(key) = map.next_key::<&str>()? {
12014 nothing = false;
12015 match key {
12016 "apps" => {
12017 if field_apps.is_some() {
12018 return Err(::serde::de::Error::duplicate_field("apps"));
12019 }
12020 field_apps = Some(map.next_value()?);
12021 }
12022 "has_more" => {
12023 if field_has_more.is_some() {
12024 return Err(::serde::de::Error::duplicate_field("has_more"));
12025 }
12026 field_has_more = Some(map.next_value()?);
12027 }
12028 "cursor" => {
12029 if field_cursor.is_some() {
12030 return Err(::serde::de::Error::duplicate_field("cursor"));
12031 }
12032 field_cursor = Some(map.next_value()?);
12033 }
12034 _ => {
12035 map.next_value::<::serde_json::Value>()?;
12037 }
12038 }
12039 }
12040 if optional && nothing {
12041 return Ok(None);
12042 }
12043 let result = ListMembersAppsResult {
12044 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
12045 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12046 cursor: field_cursor.and_then(Option::flatten),
12047 };
12048 Ok(Some(result))
12049 }
12050
12051 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12052 &self,
12053 s: &mut S::SerializeStruct,
12054 ) -> Result<(), S::Error> {
12055 use serde::ser::SerializeStruct;
12056 s.serialize_field("apps", &self.apps)?;
12057 s.serialize_field("has_more", &self.has_more)?;
12058 if let Some(val) = &self.cursor {
12059 s.serialize_field("cursor", val)?;
12060 }
12061 Ok(())
12062 }
12063}
12064
12065impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsResult {
12066 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12067 use serde::de::{MapAccess, Visitor};
12069 struct StructVisitor;
12070 impl<'de> Visitor<'de> for StructVisitor {
12071 type Value = ListMembersAppsResult;
12072 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12073 f.write_str("a ListMembersAppsResult struct")
12074 }
12075 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12076 ListMembersAppsResult::internal_deserialize(map)
12077 }
12078 }
12079 deserializer.deserialize_struct("ListMembersAppsResult", LIST_MEMBERS_APPS_RESULT_FIELDS, StructVisitor)
12080 }
12081}
12082
12083impl ::serde::ser::Serialize for ListMembersAppsResult {
12084 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12085 use serde::ser::SerializeStruct;
12087 let mut s = serializer.serialize_struct("ListMembersAppsResult", 3)?;
12088 self.internal_serialize::<S>(&mut s)?;
12089 s.end()
12090 }
12091}
12092
12093#[derive(Debug, Clone, PartialEq, Eq)]
12094#[non_exhaustive] pub struct ListMembersDevicesArg {
12096 pub cursor: Option<String>,
12102 pub include_web_sessions: bool,
12104 pub include_desktop_clients: bool,
12106 pub include_mobile_clients: bool,
12108}
12109
12110impl Default for ListMembersDevicesArg {
12111 fn default() -> Self {
12112 ListMembersDevicesArg {
12113 cursor: None,
12114 include_web_sessions: true,
12115 include_desktop_clients: true,
12116 include_mobile_clients: true,
12117 }
12118 }
12119}
12120
12121impl ListMembersDevicesArg {
12122 pub fn with_cursor(mut self, value: String) -> Self {
12123 self.cursor = Some(value);
12124 self
12125 }
12126
12127 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12128 self.include_web_sessions = value;
12129 self
12130 }
12131
12132 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12133 self.include_desktop_clients = value;
12134 self
12135 }
12136
12137 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12138 self.include_mobile_clients = value;
12139 self
12140 }
12141}
12142
12143const LIST_MEMBERS_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
12144 "include_web_sessions",
12145 "include_desktop_clients",
12146 "include_mobile_clients"];
12147impl ListMembersDevicesArg {
12148 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12150 mut map: V,
12151 ) -> Result<ListMembersDevicesArg, V::Error> {
12152 let mut field_cursor = None;
12153 let mut field_include_web_sessions = None;
12154 let mut field_include_desktop_clients = None;
12155 let mut field_include_mobile_clients = None;
12156 while let Some(key) = map.next_key::<&str>()? {
12157 match key {
12158 "cursor" => {
12159 if field_cursor.is_some() {
12160 return Err(::serde::de::Error::duplicate_field("cursor"));
12161 }
12162 field_cursor = Some(map.next_value()?);
12163 }
12164 "include_web_sessions" => {
12165 if field_include_web_sessions.is_some() {
12166 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12167 }
12168 field_include_web_sessions = Some(map.next_value()?);
12169 }
12170 "include_desktop_clients" => {
12171 if field_include_desktop_clients.is_some() {
12172 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12173 }
12174 field_include_desktop_clients = Some(map.next_value()?);
12175 }
12176 "include_mobile_clients" => {
12177 if field_include_mobile_clients.is_some() {
12178 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12179 }
12180 field_include_mobile_clients = Some(map.next_value()?);
12181 }
12182 _ => {
12183 map.next_value::<::serde_json::Value>()?;
12185 }
12186 }
12187 }
12188 let result = ListMembersDevicesArg {
12189 cursor: field_cursor.and_then(Option::flatten),
12190 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12191 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12192 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12193 };
12194 Ok(result)
12195 }
12196
12197 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12198 &self,
12199 s: &mut S::SerializeStruct,
12200 ) -> Result<(), S::Error> {
12201 use serde::ser::SerializeStruct;
12202 if let Some(val) = &self.cursor {
12203 s.serialize_field("cursor", val)?;
12204 }
12205 if !self.include_web_sessions {
12206 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12207 }
12208 if !self.include_desktop_clients {
12209 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12210 }
12211 if !self.include_mobile_clients {
12212 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12213 }
12214 Ok(())
12215 }
12216}
12217
12218impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesArg {
12219 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12220 use serde::de::{MapAccess, Visitor};
12222 struct StructVisitor;
12223 impl<'de> Visitor<'de> for StructVisitor {
12224 type Value = ListMembersDevicesArg;
12225 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12226 f.write_str("a ListMembersDevicesArg struct")
12227 }
12228 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12229 ListMembersDevicesArg::internal_deserialize(map)
12230 }
12231 }
12232 deserializer.deserialize_struct("ListMembersDevicesArg", LIST_MEMBERS_DEVICES_ARG_FIELDS, StructVisitor)
12233 }
12234}
12235
12236impl ::serde::ser::Serialize for ListMembersDevicesArg {
12237 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12238 use serde::ser::SerializeStruct;
12240 let mut s = serializer.serialize_struct("ListMembersDevicesArg", 4)?;
12241 self.internal_serialize::<S>(&mut s)?;
12242 s.end()
12243 }
12244}
12245
12246#[derive(Debug, Clone, PartialEq, Eq)]
12247#[non_exhaustive] pub enum ListMembersDevicesError {
12249 Reset,
12253 Other,
12256}
12257
12258impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesError {
12259 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12260 use serde::de::{self, MapAccess, Visitor};
12262 struct EnumVisitor;
12263 impl<'de> Visitor<'de> for EnumVisitor {
12264 type Value = ListMembersDevicesError;
12265 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12266 f.write_str("a ListMembersDevicesError structure")
12267 }
12268 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12269 let tag: &str = match map.next_key()? {
12270 Some(".tag") => map.next_value()?,
12271 _ => return Err(de::Error::missing_field(".tag"))
12272 };
12273 let value = match tag {
12274 "reset" => ListMembersDevicesError::Reset,
12275 _ => ListMembersDevicesError::Other,
12276 };
12277 crate::eat_json_fields(&mut map)?;
12278 Ok(value)
12279 }
12280 }
12281 const VARIANTS: &[&str] = &["reset",
12282 "other"];
12283 deserializer.deserialize_struct("ListMembersDevicesError", VARIANTS, EnumVisitor)
12284 }
12285}
12286
12287impl ::serde::ser::Serialize for ListMembersDevicesError {
12288 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12289 use serde::ser::SerializeStruct;
12291 match self {
12292 ListMembersDevicesError::Reset => {
12293 let mut s = serializer.serialize_struct("ListMembersDevicesError", 1)?;
12295 s.serialize_field(".tag", "reset")?;
12296 s.end()
12297 }
12298 ListMembersDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12299 }
12300 }
12301}
12302
12303impl ::std::error::Error for ListMembersDevicesError {
12304}
12305
12306impl ::std::fmt::Display for ListMembersDevicesError {
12307 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12308 write!(f, "{:?}", *self)
12309 }
12310}
12311
12312#[derive(Debug, Clone, PartialEq, Eq)]
12313#[non_exhaustive] pub struct ListMembersDevicesResult {
12315 pub devices: Vec<MemberDevices>,
12317 pub has_more: bool,
12321 pub cursor: Option<String>,
12325}
12326
12327impl ListMembersDevicesResult {
12328 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
12329 ListMembersDevicesResult {
12330 devices,
12331 has_more,
12332 cursor: None,
12333 }
12334 }
12335
12336 pub fn with_cursor(mut self, value: String) -> Self {
12337 self.cursor = Some(value);
12338 self
12339 }
12340}
12341
12342const LIST_MEMBERS_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
12343 "has_more",
12344 "cursor"];
12345impl ListMembersDevicesResult {
12346 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12347 map: V,
12348 ) -> Result<ListMembersDevicesResult, V::Error> {
12349 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12350 }
12351
12352 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12353 mut map: V,
12354 optional: bool,
12355 ) -> Result<Option<ListMembersDevicesResult>, V::Error> {
12356 let mut field_devices = None;
12357 let mut field_has_more = None;
12358 let mut field_cursor = None;
12359 let mut nothing = true;
12360 while let Some(key) = map.next_key::<&str>()? {
12361 nothing = false;
12362 match key {
12363 "devices" => {
12364 if field_devices.is_some() {
12365 return Err(::serde::de::Error::duplicate_field("devices"));
12366 }
12367 field_devices = Some(map.next_value()?);
12368 }
12369 "has_more" => {
12370 if field_has_more.is_some() {
12371 return Err(::serde::de::Error::duplicate_field("has_more"));
12372 }
12373 field_has_more = Some(map.next_value()?);
12374 }
12375 "cursor" => {
12376 if field_cursor.is_some() {
12377 return Err(::serde::de::Error::duplicate_field("cursor"));
12378 }
12379 field_cursor = Some(map.next_value()?);
12380 }
12381 _ => {
12382 map.next_value::<::serde_json::Value>()?;
12384 }
12385 }
12386 }
12387 if optional && nothing {
12388 return Ok(None);
12389 }
12390 let result = ListMembersDevicesResult {
12391 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
12392 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12393 cursor: field_cursor.and_then(Option::flatten),
12394 };
12395 Ok(Some(result))
12396 }
12397
12398 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12399 &self,
12400 s: &mut S::SerializeStruct,
12401 ) -> Result<(), S::Error> {
12402 use serde::ser::SerializeStruct;
12403 s.serialize_field("devices", &self.devices)?;
12404 s.serialize_field("has_more", &self.has_more)?;
12405 if let Some(val) = &self.cursor {
12406 s.serialize_field("cursor", val)?;
12407 }
12408 Ok(())
12409 }
12410}
12411
12412impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesResult {
12413 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12414 use serde::de::{MapAccess, Visitor};
12416 struct StructVisitor;
12417 impl<'de> Visitor<'de> for StructVisitor {
12418 type Value = ListMembersDevicesResult;
12419 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12420 f.write_str("a ListMembersDevicesResult struct")
12421 }
12422 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12423 ListMembersDevicesResult::internal_deserialize(map)
12424 }
12425 }
12426 deserializer.deserialize_struct("ListMembersDevicesResult", LIST_MEMBERS_DEVICES_RESULT_FIELDS, StructVisitor)
12427 }
12428}
12429
12430impl ::serde::ser::Serialize for ListMembersDevicesResult {
12431 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12432 use serde::ser::SerializeStruct;
12434 let mut s = serializer.serialize_struct("ListMembersDevicesResult", 3)?;
12435 self.internal_serialize::<S>(&mut s)?;
12436 s.end()
12437 }
12438}
12439
12440#[derive(Debug, Clone, PartialEq, Eq, Default)]
12443#[non_exhaustive] pub struct ListTeamAppsArg {
12445 pub cursor: Option<String>,
12451}
12452
12453impl ListTeamAppsArg {
12454 pub fn with_cursor(mut self, value: String) -> Self {
12455 self.cursor = Some(value);
12456 self
12457 }
12458}
12459
12460const LIST_TEAM_APPS_ARG_FIELDS: &[&str] = &["cursor"];
12461impl ListTeamAppsArg {
12462 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12464 mut map: V,
12465 ) -> Result<ListTeamAppsArg, V::Error> {
12466 let mut field_cursor = None;
12467 while let Some(key) = map.next_key::<&str>()? {
12468 match key {
12469 "cursor" => {
12470 if field_cursor.is_some() {
12471 return Err(::serde::de::Error::duplicate_field("cursor"));
12472 }
12473 field_cursor = Some(map.next_value()?);
12474 }
12475 _ => {
12476 map.next_value::<::serde_json::Value>()?;
12478 }
12479 }
12480 }
12481 let result = ListTeamAppsArg {
12482 cursor: field_cursor.and_then(Option::flatten),
12483 };
12484 Ok(result)
12485 }
12486
12487 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12488 &self,
12489 s: &mut S::SerializeStruct,
12490 ) -> Result<(), S::Error> {
12491 use serde::ser::SerializeStruct;
12492 if let Some(val) = &self.cursor {
12493 s.serialize_field("cursor", val)?;
12494 }
12495 Ok(())
12496 }
12497}
12498
12499impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsArg {
12500 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12501 use serde::de::{MapAccess, Visitor};
12503 struct StructVisitor;
12504 impl<'de> Visitor<'de> for StructVisitor {
12505 type Value = ListTeamAppsArg;
12506 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12507 f.write_str("a ListTeamAppsArg struct")
12508 }
12509 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12510 ListTeamAppsArg::internal_deserialize(map)
12511 }
12512 }
12513 deserializer.deserialize_struct("ListTeamAppsArg", LIST_TEAM_APPS_ARG_FIELDS, StructVisitor)
12514 }
12515}
12516
12517impl ::serde::ser::Serialize for ListTeamAppsArg {
12518 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12519 use serde::ser::SerializeStruct;
12521 let mut s = serializer.serialize_struct("ListTeamAppsArg", 1)?;
12522 self.internal_serialize::<S>(&mut s)?;
12523 s.end()
12524 }
12525}
12526
12527#[derive(Debug, Clone, PartialEq, Eq)]
12530#[non_exhaustive] pub enum ListTeamAppsError {
12532 Reset,
12536 Other,
12539}
12540
12541impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsError {
12542 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12543 use serde::de::{self, MapAccess, Visitor};
12545 struct EnumVisitor;
12546 impl<'de> Visitor<'de> for EnumVisitor {
12547 type Value = ListTeamAppsError;
12548 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12549 f.write_str("a ListTeamAppsError structure")
12550 }
12551 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12552 let tag: &str = match map.next_key()? {
12553 Some(".tag") => map.next_value()?,
12554 _ => return Err(de::Error::missing_field(".tag"))
12555 };
12556 let value = match tag {
12557 "reset" => ListTeamAppsError::Reset,
12558 _ => ListTeamAppsError::Other,
12559 };
12560 crate::eat_json_fields(&mut map)?;
12561 Ok(value)
12562 }
12563 }
12564 const VARIANTS: &[&str] = &["reset",
12565 "other"];
12566 deserializer.deserialize_struct("ListTeamAppsError", VARIANTS, EnumVisitor)
12567 }
12568}
12569
12570impl ::serde::ser::Serialize for ListTeamAppsError {
12571 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12572 use serde::ser::SerializeStruct;
12574 match self {
12575 ListTeamAppsError::Reset => {
12576 let mut s = serializer.serialize_struct("ListTeamAppsError", 1)?;
12578 s.serialize_field(".tag", "reset")?;
12579 s.end()
12580 }
12581 ListTeamAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12582 }
12583 }
12584}
12585
12586impl ::std::error::Error for ListTeamAppsError {
12587}
12588
12589impl ::std::fmt::Display for ListTeamAppsError {
12590 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12591 write!(f, "{:?}", *self)
12592 }
12593}
12594
12595#[derive(Debug, Clone, PartialEq, Eq)]
12598#[non_exhaustive] pub struct ListTeamAppsResult {
12600 pub apps: Vec<MemberLinkedApps>,
12602 pub has_more: bool,
12606 pub cursor: Option<String>,
12610}
12611
12612impl ListTeamAppsResult {
12613 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
12614 ListTeamAppsResult {
12615 apps,
12616 has_more,
12617 cursor: None,
12618 }
12619 }
12620
12621 pub fn with_cursor(mut self, value: String) -> Self {
12622 self.cursor = Some(value);
12623 self
12624 }
12625}
12626
12627const LIST_TEAM_APPS_RESULT_FIELDS: &[&str] = &["apps",
12628 "has_more",
12629 "cursor"];
12630impl ListTeamAppsResult {
12631 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12632 map: V,
12633 ) -> Result<ListTeamAppsResult, V::Error> {
12634 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12635 }
12636
12637 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12638 mut map: V,
12639 optional: bool,
12640 ) -> Result<Option<ListTeamAppsResult>, V::Error> {
12641 let mut field_apps = None;
12642 let mut field_has_more = None;
12643 let mut field_cursor = None;
12644 let mut nothing = true;
12645 while let Some(key) = map.next_key::<&str>()? {
12646 nothing = false;
12647 match key {
12648 "apps" => {
12649 if field_apps.is_some() {
12650 return Err(::serde::de::Error::duplicate_field("apps"));
12651 }
12652 field_apps = Some(map.next_value()?);
12653 }
12654 "has_more" => {
12655 if field_has_more.is_some() {
12656 return Err(::serde::de::Error::duplicate_field("has_more"));
12657 }
12658 field_has_more = Some(map.next_value()?);
12659 }
12660 "cursor" => {
12661 if field_cursor.is_some() {
12662 return Err(::serde::de::Error::duplicate_field("cursor"));
12663 }
12664 field_cursor = Some(map.next_value()?);
12665 }
12666 _ => {
12667 map.next_value::<::serde_json::Value>()?;
12669 }
12670 }
12671 }
12672 if optional && nothing {
12673 return Ok(None);
12674 }
12675 let result = ListTeamAppsResult {
12676 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
12677 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12678 cursor: field_cursor.and_then(Option::flatten),
12679 };
12680 Ok(Some(result))
12681 }
12682
12683 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12684 &self,
12685 s: &mut S::SerializeStruct,
12686 ) -> Result<(), S::Error> {
12687 use serde::ser::SerializeStruct;
12688 s.serialize_field("apps", &self.apps)?;
12689 s.serialize_field("has_more", &self.has_more)?;
12690 if let Some(val) = &self.cursor {
12691 s.serialize_field("cursor", val)?;
12692 }
12693 Ok(())
12694 }
12695}
12696
12697impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsResult {
12698 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12699 use serde::de::{MapAccess, Visitor};
12701 struct StructVisitor;
12702 impl<'de> Visitor<'de> for StructVisitor {
12703 type Value = ListTeamAppsResult;
12704 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12705 f.write_str("a ListTeamAppsResult struct")
12706 }
12707 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12708 ListTeamAppsResult::internal_deserialize(map)
12709 }
12710 }
12711 deserializer.deserialize_struct("ListTeamAppsResult", LIST_TEAM_APPS_RESULT_FIELDS, StructVisitor)
12712 }
12713}
12714
12715impl ::serde::ser::Serialize for ListTeamAppsResult {
12716 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12717 use serde::ser::SerializeStruct;
12719 let mut s = serializer.serialize_struct("ListTeamAppsResult", 3)?;
12720 self.internal_serialize::<S>(&mut s)?;
12721 s.end()
12722 }
12723}
12724
12725#[derive(Debug, Clone, PartialEq, Eq)]
12726#[non_exhaustive] pub struct ListTeamDevicesArg {
12728 pub cursor: Option<String>,
12733 pub include_web_sessions: bool,
12735 pub include_desktop_clients: bool,
12737 pub include_mobile_clients: bool,
12739}
12740
12741impl Default for ListTeamDevicesArg {
12742 fn default() -> Self {
12743 ListTeamDevicesArg {
12744 cursor: None,
12745 include_web_sessions: true,
12746 include_desktop_clients: true,
12747 include_mobile_clients: true,
12748 }
12749 }
12750}
12751
12752impl ListTeamDevicesArg {
12753 pub fn with_cursor(mut self, value: String) -> Self {
12754 self.cursor = Some(value);
12755 self
12756 }
12757
12758 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12759 self.include_web_sessions = value;
12760 self
12761 }
12762
12763 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12764 self.include_desktop_clients = value;
12765 self
12766 }
12767
12768 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12769 self.include_mobile_clients = value;
12770 self
12771 }
12772}
12773
12774const LIST_TEAM_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
12775 "include_web_sessions",
12776 "include_desktop_clients",
12777 "include_mobile_clients"];
12778impl ListTeamDevicesArg {
12779 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12781 mut map: V,
12782 ) -> Result<ListTeamDevicesArg, V::Error> {
12783 let mut field_cursor = None;
12784 let mut field_include_web_sessions = None;
12785 let mut field_include_desktop_clients = None;
12786 let mut field_include_mobile_clients = None;
12787 while let Some(key) = map.next_key::<&str>()? {
12788 match key {
12789 "cursor" => {
12790 if field_cursor.is_some() {
12791 return Err(::serde::de::Error::duplicate_field("cursor"));
12792 }
12793 field_cursor = Some(map.next_value()?);
12794 }
12795 "include_web_sessions" => {
12796 if field_include_web_sessions.is_some() {
12797 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12798 }
12799 field_include_web_sessions = Some(map.next_value()?);
12800 }
12801 "include_desktop_clients" => {
12802 if field_include_desktop_clients.is_some() {
12803 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12804 }
12805 field_include_desktop_clients = Some(map.next_value()?);
12806 }
12807 "include_mobile_clients" => {
12808 if field_include_mobile_clients.is_some() {
12809 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12810 }
12811 field_include_mobile_clients = Some(map.next_value()?);
12812 }
12813 _ => {
12814 map.next_value::<::serde_json::Value>()?;
12816 }
12817 }
12818 }
12819 let result = ListTeamDevicesArg {
12820 cursor: field_cursor.and_then(Option::flatten),
12821 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12822 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12823 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12824 };
12825 Ok(result)
12826 }
12827
12828 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12829 &self,
12830 s: &mut S::SerializeStruct,
12831 ) -> Result<(), S::Error> {
12832 use serde::ser::SerializeStruct;
12833 if let Some(val) = &self.cursor {
12834 s.serialize_field("cursor", val)?;
12835 }
12836 if !self.include_web_sessions {
12837 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12838 }
12839 if !self.include_desktop_clients {
12840 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12841 }
12842 if !self.include_mobile_clients {
12843 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12844 }
12845 Ok(())
12846 }
12847}
12848
12849impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesArg {
12850 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12851 use serde::de::{MapAccess, Visitor};
12853 struct StructVisitor;
12854 impl<'de> Visitor<'de> for StructVisitor {
12855 type Value = ListTeamDevicesArg;
12856 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12857 f.write_str("a ListTeamDevicesArg struct")
12858 }
12859 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12860 ListTeamDevicesArg::internal_deserialize(map)
12861 }
12862 }
12863 deserializer.deserialize_struct("ListTeamDevicesArg", LIST_TEAM_DEVICES_ARG_FIELDS, StructVisitor)
12864 }
12865}
12866
12867impl ::serde::ser::Serialize for ListTeamDevicesArg {
12868 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12869 use serde::ser::SerializeStruct;
12871 let mut s = serializer.serialize_struct("ListTeamDevicesArg", 4)?;
12872 self.internal_serialize::<S>(&mut s)?;
12873 s.end()
12874 }
12875}
12876
12877#[derive(Debug, Clone, PartialEq, Eq)]
12878#[non_exhaustive] pub enum ListTeamDevicesError {
12880 Reset,
12884 Other,
12887}
12888
12889impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesError {
12890 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12891 use serde::de::{self, MapAccess, Visitor};
12893 struct EnumVisitor;
12894 impl<'de> Visitor<'de> for EnumVisitor {
12895 type Value = ListTeamDevicesError;
12896 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12897 f.write_str("a ListTeamDevicesError structure")
12898 }
12899 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12900 let tag: &str = match map.next_key()? {
12901 Some(".tag") => map.next_value()?,
12902 _ => return Err(de::Error::missing_field(".tag"))
12903 };
12904 let value = match tag {
12905 "reset" => ListTeamDevicesError::Reset,
12906 _ => ListTeamDevicesError::Other,
12907 };
12908 crate::eat_json_fields(&mut map)?;
12909 Ok(value)
12910 }
12911 }
12912 const VARIANTS: &[&str] = &["reset",
12913 "other"];
12914 deserializer.deserialize_struct("ListTeamDevicesError", VARIANTS, EnumVisitor)
12915 }
12916}
12917
12918impl ::serde::ser::Serialize for ListTeamDevicesError {
12919 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12920 use serde::ser::SerializeStruct;
12922 match self {
12923 ListTeamDevicesError::Reset => {
12924 let mut s = serializer.serialize_struct("ListTeamDevicesError", 1)?;
12926 s.serialize_field(".tag", "reset")?;
12927 s.end()
12928 }
12929 ListTeamDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12930 }
12931 }
12932}
12933
12934impl ::std::error::Error for ListTeamDevicesError {
12935}
12936
12937impl ::std::fmt::Display for ListTeamDevicesError {
12938 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12939 write!(f, "{:?}", *self)
12940 }
12941}
12942
12943#[derive(Debug, Clone, PartialEq, Eq)]
12944#[non_exhaustive] pub struct ListTeamDevicesResult {
12946 pub devices: Vec<MemberDevices>,
12948 pub has_more: bool,
12952 pub cursor: Option<String>,
12955}
12956
12957impl ListTeamDevicesResult {
12958 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
12959 ListTeamDevicesResult {
12960 devices,
12961 has_more,
12962 cursor: None,
12963 }
12964 }
12965
12966 pub fn with_cursor(mut self, value: String) -> Self {
12967 self.cursor = Some(value);
12968 self
12969 }
12970}
12971
12972const LIST_TEAM_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
12973 "has_more",
12974 "cursor"];
12975impl ListTeamDevicesResult {
12976 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12977 map: V,
12978 ) -> Result<ListTeamDevicesResult, V::Error> {
12979 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12980 }
12981
12982 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12983 mut map: V,
12984 optional: bool,
12985 ) -> Result<Option<ListTeamDevicesResult>, V::Error> {
12986 let mut field_devices = None;
12987 let mut field_has_more = None;
12988 let mut field_cursor = None;
12989 let mut nothing = true;
12990 while let Some(key) = map.next_key::<&str>()? {
12991 nothing = false;
12992 match key {
12993 "devices" => {
12994 if field_devices.is_some() {
12995 return Err(::serde::de::Error::duplicate_field("devices"));
12996 }
12997 field_devices = Some(map.next_value()?);
12998 }
12999 "has_more" => {
13000 if field_has_more.is_some() {
13001 return Err(::serde::de::Error::duplicate_field("has_more"));
13002 }
13003 field_has_more = Some(map.next_value()?);
13004 }
13005 "cursor" => {
13006 if field_cursor.is_some() {
13007 return Err(::serde::de::Error::duplicate_field("cursor"));
13008 }
13009 field_cursor = Some(map.next_value()?);
13010 }
13011 _ => {
13012 map.next_value::<::serde_json::Value>()?;
13014 }
13015 }
13016 }
13017 if optional && nothing {
13018 return Ok(None);
13019 }
13020 let result = ListTeamDevicesResult {
13021 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
13022 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
13023 cursor: field_cursor.and_then(Option::flatten),
13024 };
13025 Ok(Some(result))
13026 }
13027
13028 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13029 &self,
13030 s: &mut S::SerializeStruct,
13031 ) -> Result<(), S::Error> {
13032 use serde::ser::SerializeStruct;
13033 s.serialize_field("devices", &self.devices)?;
13034 s.serialize_field("has_more", &self.has_more)?;
13035 if let Some(val) = &self.cursor {
13036 s.serialize_field("cursor", val)?;
13037 }
13038 Ok(())
13039 }
13040}
13041
13042impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesResult {
13043 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13044 use serde::de::{MapAccess, Visitor};
13046 struct StructVisitor;
13047 impl<'de> Visitor<'de> for StructVisitor {
13048 type Value = ListTeamDevicesResult;
13049 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13050 f.write_str("a ListTeamDevicesResult struct")
13051 }
13052 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13053 ListTeamDevicesResult::internal_deserialize(map)
13054 }
13055 }
13056 deserializer.deserialize_struct("ListTeamDevicesResult", LIST_TEAM_DEVICES_RESULT_FIELDS, StructVisitor)
13057 }
13058}
13059
13060impl ::serde::ser::Serialize for ListTeamDevicesResult {
13061 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13062 use serde::ser::SerializeStruct;
13064 let mut s = serializer.serialize_struct("ListTeamDevicesResult", 3)?;
13065 self.internal_serialize::<S>(&mut s)?;
13066 s.end()
13067 }
13068}
13069
13070#[derive(Debug, Clone, PartialEq, Eq)]
13072#[non_exhaustive] pub struct MemberAccess {
13074 pub user: UserSelectorArg,
13076 pub access_type: GroupAccessType,
13078}
13079
13080impl MemberAccess {
13081 pub fn new(user: UserSelectorArg, access_type: GroupAccessType) -> Self {
13082 MemberAccess {
13083 user,
13084 access_type,
13085 }
13086 }
13087}
13088
13089const MEMBER_ACCESS_FIELDS: &[&str] = &["user",
13090 "access_type"];
13091impl MemberAccess {
13092 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13093 map: V,
13094 ) -> Result<MemberAccess, V::Error> {
13095 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13096 }
13097
13098 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13099 mut map: V,
13100 optional: bool,
13101 ) -> Result<Option<MemberAccess>, V::Error> {
13102 let mut field_user = None;
13103 let mut field_access_type = None;
13104 let mut nothing = true;
13105 while let Some(key) = map.next_key::<&str>()? {
13106 nothing = false;
13107 match key {
13108 "user" => {
13109 if field_user.is_some() {
13110 return Err(::serde::de::Error::duplicate_field("user"));
13111 }
13112 field_user = Some(map.next_value()?);
13113 }
13114 "access_type" => {
13115 if field_access_type.is_some() {
13116 return Err(::serde::de::Error::duplicate_field("access_type"));
13117 }
13118 field_access_type = Some(map.next_value()?);
13119 }
13120 _ => {
13121 map.next_value::<::serde_json::Value>()?;
13123 }
13124 }
13125 }
13126 if optional && nothing {
13127 return Ok(None);
13128 }
13129 let result = MemberAccess {
13130 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
13131 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
13132 };
13133 Ok(Some(result))
13134 }
13135
13136 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13137 &self,
13138 s: &mut S::SerializeStruct,
13139 ) -> Result<(), S::Error> {
13140 use serde::ser::SerializeStruct;
13141 s.serialize_field("user", &self.user)?;
13142 s.serialize_field("access_type", &self.access_type)?;
13143 Ok(())
13144 }
13145}
13146
13147impl<'de> ::serde::de::Deserialize<'de> for MemberAccess {
13148 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13149 use serde::de::{MapAccess, Visitor};
13151 struct StructVisitor;
13152 impl<'de> Visitor<'de> for StructVisitor {
13153 type Value = MemberAccess;
13154 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13155 f.write_str("a MemberAccess struct")
13156 }
13157 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13158 MemberAccess::internal_deserialize(map)
13159 }
13160 }
13161 deserializer.deserialize_struct("MemberAccess", MEMBER_ACCESS_FIELDS, StructVisitor)
13162 }
13163}
13164
13165impl ::serde::ser::Serialize for MemberAccess {
13166 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13167 use serde::ser::SerializeStruct;
13169 let mut s = serializer.serialize_struct("MemberAccess", 2)?;
13170 self.internal_serialize::<S>(&mut s)?;
13171 s.end()
13172 }
13173}
13174
13175#[derive(Debug, Clone, PartialEq, Eq)]
13176#[non_exhaustive] pub struct MemberAddArg {
13178 pub member_email: crate::types::common::EmailAddress,
13179 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
13181 pub member_surname: Option<crate::types::common::OptionalNamePart>,
13183 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
13185 pub member_persistent_id: Option<String>,
13188 pub send_welcome_email: bool,
13192 pub is_directory_restricted: Option<bool>,
13194 pub role: AdminTier,
13195}
13196
13197impl MemberAddArg {
13198 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
13199 MemberAddArg {
13200 member_email,
13201 member_given_name: None,
13202 member_surname: None,
13203 member_external_id: None,
13204 member_persistent_id: None,
13205 send_welcome_email: true,
13206 is_directory_restricted: None,
13207 role: AdminTier::MemberOnly,
13208 }
13209 }
13210
13211 pub fn with_member_given_name(
13212 mut self,
13213 value: crate::types::common::OptionalNamePart,
13214 ) -> Self {
13215 self.member_given_name = Some(value);
13216 self
13217 }
13218
13219 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
13220 self.member_surname = Some(value);
13221 self
13222 }
13223
13224 pub fn with_member_external_id(
13225 mut self,
13226 value: crate::types::team_common::MemberExternalId,
13227 ) -> Self {
13228 self.member_external_id = Some(value);
13229 self
13230 }
13231
13232 pub fn with_member_persistent_id(mut self, value: String) -> Self {
13233 self.member_persistent_id = Some(value);
13234 self
13235 }
13236
13237 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
13238 self.send_welcome_email = value;
13239 self
13240 }
13241
13242 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
13243 self.is_directory_restricted = Some(value);
13244 self
13245 }
13246
13247 pub fn with_role(mut self, value: AdminTier) -> Self {
13248 self.role = value;
13249 self
13250 }
13251}
13252
13253const MEMBER_ADD_ARG_FIELDS: &[&str] = &["member_email",
13254 "member_given_name",
13255 "member_surname",
13256 "member_external_id",
13257 "member_persistent_id",
13258 "send_welcome_email",
13259 "is_directory_restricted",
13260 "role"];
13261impl MemberAddArg {
13262 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13263 map: V,
13264 ) -> Result<MemberAddArg, V::Error> {
13265 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13266 }
13267
13268 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13269 mut map: V,
13270 optional: bool,
13271 ) -> Result<Option<MemberAddArg>, V::Error> {
13272 let mut field_member_email = None;
13273 let mut field_member_given_name = None;
13274 let mut field_member_surname = None;
13275 let mut field_member_external_id = None;
13276 let mut field_member_persistent_id = None;
13277 let mut field_send_welcome_email = None;
13278 let mut field_is_directory_restricted = None;
13279 let mut field_role = None;
13280 let mut nothing = true;
13281 while let Some(key) = map.next_key::<&str>()? {
13282 nothing = false;
13283 match key {
13284 "member_email" => {
13285 if field_member_email.is_some() {
13286 return Err(::serde::de::Error::duplicate_field("member_email"));
13287 }
13288 field_member_email = Some(map.next_value()?);
13289 }
13290 "member_given_name" => {
13291 if field_member_given_name.is_some() {
13292 return Err(::serde::de::Error::duplicate_field("member_given_name"));
13293 }
13294 field_member_given_name = Some(map.next_value()?);
13295 }
13296 "member_surname" => {
13297 if field_member_surname.is_some() {
13298 return Err(::serde::de::Error::duplicate_field("member_surname"));
13299 }
13300 field_member_surname = Some(map.next_value()?);
13301 }
13302 "member_external_id" => {
13303 if field_member_external_id.is_some() {
13304 return Err(::serde::de::Error::duplicate_field("member_external_id"));
13305 }
13306 field_member_external_id = Some(map.next_value()?);
13307 }
13308 "member_persistent_id" => {
13309 if field_member_persistent_id.is_some() {
13310 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
13311 }
13312 field_member_persistent_id = Some(map.next_value()?);
13313 }
13314 "send_welcome_email" => {
13315 if field_send_welcome_email.is_some() {
13316 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
13317 }
13318 field_send_welcome_email = Some(map.next_value()?);
13319 }
13320 "is_directory_restricted" => {
13321 if field_is_directory_restricted.is_some() {
13322 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
13323 }
13324 field_is_directory_restricted = Some(map.next_value()?);
13325 }
13326 "role" => {
13327 if field_role.is_some() {
13328 return Err(::serde::de::Error::duplicate_field("role"));
13329 }
13330 field_role = Some(map.next_value()?);
13331 }
13332 _ => {
13333 map.next_value::<::serde_json::Value>()?;
13335 }
13336 }
13337 }
13338 if optional && nothing {
13339 return Ok(None);
13340 }
13341 let result = MemberAddArg {
13342 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
13343 member_given_name: field_member_given_name.and_then(Option::flatten),
13344 member_surname: field_member_surname.and_then(Option::flatten),
13345 member_external_id: field_member_external_id.and_then(Option::flatten),
13346 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
13347 send_welcome_email: field_send_welcome_email.unwrap_or(true),
13348 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
13349 role: field_role.unwrap_or(AdminTier::MemberOnly),
13350 };
13351 Ok(Some(result))
13352 }
13353
13354 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13355 &self,
13356 s: &mut S::SerializeStruct,
13357 ) -> Result<(), S::Error> {
13358 use serde::ser::SerializeStruct;
13359 s.serialize_field("member_email", &self.member_email)?;
13360 if let Some(val) = &self.member_given_name {
13361 s.serialize_field("member_given_name", val)?;
13362 }
13363 if let Some(val) = &self.member_surname {
13364 s.serialize_field("member_surname", val)?;
13365 }
13366 if let Some(val) = &self.member_external_id {
13367 s.serialize_field("member_external_id", val)?;
13368 }
13369 if let Some(val) = &self.member_persistent_id {
13370 s.serialize_field("member_persistent_id", val)?;
13371 }
13372 if !self.send_welcome_email {
13373 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
13374 }
13375 if let Some(val) = &self.is_directory_restricted {
13376 s.serialize_field("is_directory_restricted", val)?;
13377 }
13378 if self.role != AdminTier::MemberOnly {
13379 s.serialize_field("role", &self.role)?;
13380 }
13381 Ok(())
13382 }
13383}
13384
13385impl<'de> ::serde::de::Deserialize<'de> for MemberAddArg {
13386 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13387 use serde::de::{MapAccess, Visitor};
13389 struct StructVisitor;
13390 impl<'de> Visitor<'de> for StructVisitor {
13391 type Value = MemberAddArg;
13392 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13393 f.write_str("a MemberAddArg struct")
13394 }
13395 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13396 MemberAddArg::internal_deserialize(map)
13397 }
13398 }
13399 deserializer.deserialize_struct("MemberAddArg", MEMBER_ADD_ARG_FIELDS, StructVisitor)
13400 }
13401}
13402
13403impl ::serde::ser::Serialize for MemberAddArg {
13404 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13405 use serde::ser::SerializeStruct;
13407 let mut s = serializer.serialize_struct("MemberAddArg", 8)?;
13408 self.internal_serialize::<S>(&mut s)?;
13409 s.end()
13410 }
13411}
13412
13413impl From<MemberAddArg> for MemberAddArgBase {
13415 fn from(subtype: MemberAddArg) -> Self {
13416 Self {
13417 member_email: subtype.member_email,
13418 member_given_name: subtype.member_given_name,
13419 member_surname: subtype.member_surname,
13420 member_external_id: subtype.member_external_id,
13421 member_persistent_id: subtype.member_persistent_id,
13422 send_welcome_email: subtype.send_welcome_email,
13423 is_directory_restricted: subtype.is_directory_restricted,
13424 }
13425 }
13426}
13427#[derive(Debug, Clone, PartialEq, Eq)]
13428#[non_exhaustive] pub struct MemberAddArgBase {
13430 pub member_email: crate::types::common::EmailAddress,
13431 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
13433 pub member_surname: Option<crate::types::common::OptionalNamePart>,
13435 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
13437 pub member_persistent_id: Option<String>,
13440 pub send_welcome_email: bool,
13444 pub is_directory_restricted: Option<bool>,
13446}
13447
13448impl MemberAddArgBase {
13449 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
13450 MemberAddArgBase {
13451 member_email,
13452 member_given_name: None,
13453 member_surname: None,
13454 member_external_id: None,
13455 member_persistent_id: None,
13456 send_welcome_email: true,
13457 is_directory_restricted: None,
13458 }
13459 }
13460
13461 pub fn with_member_given_name(
13462 mut self,
13463 value: crate::types::common::OptionalNamePart,
13464 ) -> Self {
13465 self.member_given_name = Some(value);
13466 self
13467 }
13468
13469 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
13470 self.member_surname = Some(value);
13471 self
13472 }
13473
13474 pub fn with_member_external_id(
13475 mut self,
13476 value: crate::types::team_common::MemberExternalId,
13477 ) -> Self {
13478 self.member_external_id = Some(value);
13479 self
13480 }
13481
13482 pub fn with_member_persistent_id(mut self, value: String) -> Self {
13483 self.member_persistent_id = Some(value);
13484 self
13485 }
13486
13487 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
13488 self.send_welcome_email = value;
13489 self
13490 }
13491
13492 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
13493 self.is_directory_restricted = Some(value);
13494 self
13495 }
13496}
13497
13498const MEMBER_ADD_ARG_BASE_FIELDS: &[&str] = &["member_email",
13499 "member_given_name",
13500 "member_surname",
13501 "member_external_id",
13502 "member_persistent_id",
13503 "send_welcome_email",
13504 "is_directory_restricted"];
13505impl MemberAddArgBase {
13506 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13507 map: V,
13508 ) -> Result<MemberAddArgBase, V::Error> {
13509 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13510 }
13511
13512 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13513 mut map: V,
13514 optional: bool,
13515 ) -> Result<Option<MemberAddArgBase>, V::Error> {
13516 let mut field_member_email = None;
13517 let mut field_member_given_name = None;
13518 let mut field_member_surname = None;
13519 let mut field_member_external_id = None;
13520 let mut field_member_persistent_id = None;
13521 let mut field_send_welcome_email = None;
13522 let mut field_is_directory_restricted = None;
13523 let mut nothing = true;
13524 while let Some(key) = map.next_key::<&str>()? {
13525 nothing = false;
13526 match key {
13527 "member_email" => {
13528 if field_member_email.is_some() {
13529 return Err(::serde::de::Error::duplicate_field("member_email"));
13530 }
13531 field_member_email = Some(map.next_value()?);
13532 }
13533 "member_given_name" => {
13534 if field_member_given_name.is_some() {
13535 return Err(::serde::de::Error::duplicate_field("member_given_name"));
13536 }
13537 field_member_given_name = Some(map.next_value()?);
13538 }
13539 "member_surname" => {
13540 if field_member_surname.is_some() {
13541 return Err(::serde::de::Error::duplicate_field("member_surname"));
13542 }
13543 field_member_surname = Some(map.next_value()?);
13544 }
13545 "member_external_id" => {
13546 if field_member_external_id.is_some() {
13547 return Err(::serde::de::Error::duplicate_field("member_external_id"));
13548 }
13549 field_member_external_id = Some(map.next_value()?);
13550 }
13551 "member_persistent_id" => {
13552 if field_member_persistent_id.is_some() {
13553 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
13554 }
13555 field_member_persistent_id = Some(map.next_value()?);
13556 }
13557 "send_welcome_email" => {
13558 if field_send_welcome_email.is_some() {
13559 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
13560 }
13561 field_send_welcome_email = Some(map.next_value()?);
13562 }
13563 "is_directory_restricted" => {
13564 if field_is_directory_restricted.is_some() {
13565 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
13566 }
13567 field_is_directory_restricted = Some(map.next_value()?);
13568 }
13569 _ => {
13570 map.next_value::<::serde_json::Value>()?;
13572 }
13573 }
13574 }
13575 if optional && nothing {
13576 return Ok(None);
13577 }
13578 let result = MemberAddArgBase {
13579 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
13580 member_given_name: field_member_given_name.and_then(Option::flatten),
13581 member_surname: field_member_surname.and_then(Option::flatten),
13582 member_external_id: field_member_external_id.and_then(Option::flatten),
13583 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
13584 send_welcome_email: field_send_welcome_email.unwrap_or(true),
13585 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
13586 };
13587 Ok(Some(result))
13588 }
13589
13590 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13591 &self,
13592 s: &mut S::SerializeStruct,
13593 ) -> Result<(), S::Error> {
13594 use serde::ser::SerializeStruct;
13595 s.serialize_field("member_email", &self.member_email)?;
13596 if let Some(val) = &self.member_given_name {
13597 s.serialize_field("member_given_name", val)?;
13598 }
13599 if let Some(val) = &self.member_surname {
13600 s.serialize_field("member_surname", val)?;
13601 }
13602 if let Some(val) = &self.member_external_id {
13603 s.serialize_field("member_external_id", val)?;
13604 }
13605 if let Some(val) = &self.member_persistent_id {
13606 s.serialize_field("member_persistent_id", val)?;
13607 }
13608 if !self.send_welcome_email {
13609 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
13610 }
13611 if let Some(val) = &self.is_directory_restricted {
13612 s.serialize_field("is_directory_restricted", val)?;
13613 }
13614 Ok(())
13615 }
13616}
13617
13618impl<'de> ::serde::de::Deserialize<'de> for MemberAddArgBase {
13619 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13620 use serde::de::{MapAccess, Visitor};
13622 struct StructVisitor;
13623 impl<'de> Visitor<'de> for StructVisitor {
13624 type Value = MemberAddArgBase;
13625 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13626 f.write_str("a MemberAddArgBase struct")
13627 }
13628 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13629 MemberAddArgBase::internal_deserialize(map)
13630 }
13631 }
13632 deserializer.deserialize_struct("MemberAddArgBase", MEMBER_ADD_ARG_BASE_FIELDS, StructVisitor)
13633 }
13634}
13635
13636impl ::serde::ser::Serialize for MemberAddArgBase {
13637 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13638 use serde::ser::SerializeStruct;
13640 let mut s = serializer.serialize_struct("MemberAddArgBase", 7)?;
13641 self.internal_serialize::<S>(&mut s)?;
13642 s.end()
13643 }
13644}
13645
13646#[derive(Debug, Clone, PartialEq, Eq)]
13650pub enum MemberAddResult {
13651 TeamLicenseLimit(crate::types::common::EmailAddress),
13653 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
13655 UserAlreadyOnTeam(crate::types::common::EmailAddress),
13658 UserOnAnotherTeam(crate::types::common::EmailAddress),
13661 UserAlreadyPaired(crate::types::common::EmailAddress),
13663 UserMigrationFailed(crate::types::common::EmailAddress),
13665 DuplicateExternalMemberId(crate::types::common::EmailAddress),
13668 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
13671 PersistentIdDisabled(crate::types::common::EmailAddress),
13674 UserCreationFailed(crate::types::common::EmailAddress),
13676 Success(TeamMemberInfo),
13678}
13679
13680impl<'de> ::serde::de::Deserialize<'de> for MemberAddResult {
13681 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13682 use serde::de::{self, MapAccess, Visitor};
13684 struct EnumVisitor;
13685 impl<'de> Visitor<'de> for EnumVisitor {
13686 type Value = MemberAddResult;
13687 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13688 f.write_str("a MemberAddResult structure")
13689 }
13690 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13691 let tag: &str = match map.next_key()? {
13692 Some(".tag") => map.next_value()?,
13693 _ => return Err(de::Error::missing_field(".tag"))
13694 };
13695 let value = match tag {
13696 "team_license_limit" => {
13697 match map.next_key()? {
13698 Some("team_license_limit") => MemberAddResult::TeamLicenseLimit(map.next_value()?),
13699 None => return Err(de::Error::missing_field("team_license_limit")),
13700 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13701 }
13702 }
13703 "free_team_member_limit_reached" => {
13704 match map.next_key()? {
13705 Some("free_team_member_limit_reached") => MemberAddResult::FreeTeamMemberLimitReached(map.next_value()?),
13706 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
13707 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13708 }
13709 }
13710 "user_already_on_team" => {
13711 match map.next_key()? {
13712 Some("user_already_on_team") => MemberAddResult::UserAlreadyOnTeam(map.next_value()?),
13713 None => return Err(de::Error::missing_field("user_already_on_team")),
13714 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13715 }
13716 }
13717 "user_on_another_team" => {
13718 match map.next_key()? {
13719 Some("user_on_another_team") => MemberAddResult::UserOnAnotherTeam(map.next_value()?),
13720 None => return Err(de::Error::missing_field("user_on_another_team")),
13721 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13722 }
13723 }
13724 "user_already_paired" => {
13725 match map.next_key()? {
13726 Some("user_already_paired") => MemberAddResult::UserAlreadyPaired(map.next_value()?),
13727 None => return Err(de::Error::missing_field("user_already_paired")),
13728 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13729 }
13730 }
13731 "user_migration_failed" => {
13732 match map.next_key()? {
13733 Some("user_migration_failed") => MemberAddResult::UserMigrationFailed(map.next_value()?),
13734 None => return Err(de::Error::missing_field("user_migration_failed")),
13735 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13736 }
13737 }
13738 "duplicate_external_member_id" => {
13739 match map.next_key()? {
13740 Some("duplicate_external_member_id") => MemberAddResult::DuplicateExternalMemberId(map.next_value()?),
13741 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
13742 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13743 }
13744 }
13745 "duplicate_member_persistent_id" => {
13746 match map.next_key()? {
13747 Some("duplicate_member_persistent_id") => MemberAddResult::DuplicateMemberPersistentId(map.next_value()?),
13748 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
13749 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13750 }
13751 }
13752 "persistent_id_disabled" => {
13753 match map.next_key()? {
13754 Some("persistent_id_disabled") => MemberAddResult::PersistentIdDisabled(map.next_value()?),
13755 None => return Err(de::Error::missing_field("persistent_id_disabled")),
13756 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13757 }
13758 }
13759 "user_creation_failed" => {
13760 match map.next_key()? {
13761 Some("user_creation_failed") => MemberAddResult::UserCreationFailed(map.next_value()?),
13762 None => return Err(de::Error::missing_field("user_creation_failed")),
13763 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13764 }
13765 }
13766 "success" => MemberAddResult::Success(TeamMemberInfo::internal_deserialize(&mut map)?),
13767 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
13768 };
13769 crate::eat_json_fields(&mut map)?;
13770 Ok(value)
13771 }
13772 }
13773 const VARIANTS: &[&str] = &["team_license_limit",
13774 "free_team_member_limit_reached",
13775 "user_already_on_team",
13776 "user_on_another_team",
13777 "user_already_paired",
13778 "user_migration_failed",
13779 "duplicate_external_member_id",
13780 "duplicate_member_persistent_id",
13781 "persistent_id_disabled",
13782 "user_creation_failed",
13783 "success"];
13784 deserializer.deserialize_struct("MemberAddResult", VARIANTS, EnumVisitor)
13785 }
13786}
13787
13788impl ::serde::ser::Serialize for MemberAddResult {
13789 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13790 use serde::ser::SerializeStruct;
13792 match self {
13793 MemberAddResult::TeamLicenseLimit(x) => {
13794 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13796 s.serialize_field(".tag", "team_license_limit")?;
13797 s.serialize_field("team_license_limit", x)?;
13798 s.end()
13799 }
13800 MemberAddResult::FreeTeamMemberLimitReached(x) => {
13801 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13803 s.serialize_field(".tag", "free_team_member_limit_reached")?;
13804 s.serialize_field("free_team_member_limit_reached", x)?;
13805 s.end()
13806 }
13807 MemberAddResult::UserAlreadyOnTeam(x) => {
13808 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13810 s.serialize_field(".tag", "user_already_on_team")?;
13811 s.serialize_field("user_already_on_team", x)?;
13812 s.end()
13813 }
13814 MemberAddResult::UserOnAnotherTeam(x) => {
13815 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13817 s.serialize_field(".tag", "user_on_another_team")?;
13818 s.serialize_field("user_on_another_team", x)?;
13819 s.end()
13820 }
13821 MemberAddResult::UserAlreadyPaired(x) => {
13822 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13824 s.serialize_field(".tag", "user_already_paired")?;
13825 s.serialize_field("user_already_paired", x)?;
13826 s.end()
13827 }
13828 MemberAddResult::UserMigrationFailed(x) => {
13829 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13831 s.serialize_field(".tag", "user_migration_failed")?;
13832 s.serialize_field("user_migration_failed", x)?;
13833 s.end()
13834 }
13835 MemberAddResult::DuplicateExternalMemberId(x) => {
13836 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13838 s.serialize_field(".tag", "duplicate_external_member_id")?;
13839 s.serialize_field("duplicate_external_member_id", x)?;
13840 s.end()
13841 }
13842 MemberAddResult::DuplicateMemberPersistentId(x) => {
13843 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13845 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
13846 s.serialize_field("duplicate_member_persistent_id", x)?;
13847 s.end()
13848 }
13849 MemberAddResult::PersistentIdDisabled(x) => {
13850 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13852 s.serialize_field(".tag", "persistent_id_disabled")?;
13853 s.serialize_field("persistent_id_disabled", x)?;
13854 s.end()
13855 }
13856 MemberAddResult::UserCreationFailed(x) => {
13857 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13859 s.serialize_field(".tag", "user_creation_failed")?;
13860 s.serialize_field("user_creation_failed", x)?;
13861 s.end()
13862 }
13863 MemberAddResult::Success(x) => {
13864 let mut s = serializer.serialize_struct("MemberAddResult", 3)?;
13866 s.serialize_field(".tag", "success")?;
13867 x.internal_serialize::<S>(&mut s)?;
13868 s.end()
13869 }
13870 }
13871 }
13872}
13873
13874impl From<MemberAddResultBase> for MemberAddResult {
13876 fn from(parent: MemberAddResultBase) -> Self {
13877 match parent {
13878 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddResult::TeamLicenseLimit(x),
13879 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddResult::FreeTeamMemberLimitReached(x),
13880 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddResult::UserAlreadyOnTeam(x),
13881 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddResult::UserOnAnotherTeam(x),
13882 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddResult::UserAlreadyPaired(x),
13883 MemberAddResultBase::UserMigrationFailed(x) => MemberAddResult::UserMigrationFailed(x),
13884 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddResult::DuplicateExternalMemberId(x),
13885 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddResult::DuplicateMemberPersistentId(x),
13886 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddResult::PersistentIdDisabled(x),
13887 MemberAddResultBase::UserCreationFailed(x) => MemberAddResult::UserCreationFailed(x),
13888 }
13889 }
13890}
13891#[derive(Debug, Clone, PartialEq, Eq)]
13892pub enum MemberAddResultBase {
13893 TeamLicenseLimit(crate::types::common::EmailAddress),
13895 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
13897 UserAlreadyOnTeam(crate::types::common::EmailAddress),
13900 UserOnAnotherTeam(crate::types::common::EmailAddress),
13903 UserAlreadyPaired(crate::types::common::EmailAddress),
13905 UserMigrationFailed(crate::types::common::EmailAddress),
13907 DuplicateExternalMemberId(crate::types::common::EmailAddress),
13910 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
13913 PersistentIdDisabled(crate::types::common::EmailAddress),
13916 UserCreationFailed(crate::types::common::EmailAddress),
13918}
13919
13920impl<'de> ::serde::de::Deserialize<'de> for MemberAddResultBase {
13921 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13922 use serde::de::{self, MapAccess, Visitor};
13924 struct EnumVisitor;
13925 impl<'de> Visitor<'de> for EnumVisitor {
13926 type Value = MemberAddResultBase;
13927 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13928 f.write_str("a MemberAddResultBase structure")
13929 }
13930 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13931 let tag: &str = match map.next_key()? {
13932 Some(".tag") => map.next_value()?,
13933 _ => return Err(de::Error::missing_field(".tag"))
13934 };
13935 let value = match tag {
13936 "team_license_limit" => {
13937 match map.next_key()? {
13938 Some("team_license_limit") => MemberAddResultBase::TeamLicenseLimit(map.next_value()?),
13939 None => return Err(de::Error::missing_field("team_license_limit")),
13940 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13941 }
13942 }
13943 "free_team_member_limit_reached" => {
13944 match map.next_key()? {
13945 Some("free_team_member_limit_reached") => MemberAddResultBase::FreeTeamMemberLimitReached(map.next_value()?),
13946 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
13947 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13948 }
13949 }
13950 "user_already_on_team" => {
13951 match map.next_key()? {
13952 Some("user_already_on_team") => MemberAddResultBase::UserAlreadyOnTeam(map.next_value()?),
13953 None => return Err(de::Error::missing_field("user_already_on_team")),
13954 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13955 }
13956 }
13957 "user_on_another_team" => {
13958 match map.next_key()? {
13959 Some("user_on_another_team") => MemberAddResultBase::UserOnAnotherTeam(map.next_value()?),
13960 None => return Err(de::Error::missing_field("user_on_another_team")),
13961 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13962 }
13963 }
13964 "user_already_paired" => {
13965 match map.next_key()? {
13966 Some("user_already_paired") => MemberAddResultBase::UserAlreadyPaired(map.next_value()?),
13967 None => return Err(de::Error::missing_field("user_already_paired")),
13968 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13969 }
13970 }
13971 "user_migration_failed" => {
13972 match map.next_key()? {
13973 Some("user_migration_failed") => MemberAddResultBase::UserMigrationFailed(map.next_value()?),
13974 None => return Err(de::Error::missing_field("user_migration_failed")),
13975 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13976 }
13977 }
13978 "duplicate_external_member_id" => {
13979 match map.next_key()? {
13980 Some("duplicate_external_member_id") => MemberAddResultBase::DuplicateExternalMemberId(map.next_value()?),
13981 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
13982 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13983 }
13984 }
13985 "duplicate_member_persistent_id" => {
13986 match map.next_key()? {
13987 Some("duplicate_member_persistent_id") => MemberAddResultBase::DuplicateMemberPersistentId(map.next_value()?),
13988 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
13989 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13990 }
13991 }
13992 "persistent_id_disabled" => {
13993 match map.next_key()? {
13994 Some("persistent_id_disabled") => MemberAddResultBase::PersistentIdDisabled(map.next_value()?),
13995 None => return Err(de::Error::missing_field("persistent_id_disabled")),
13996 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13997 }
13998 }
13999 "user_creation_failed" => {
14000 match map.next_key()? {
14001 Some("user_creation_failed") => MemberAddResultBase::UserCreationFailed(map.next_value()?),
14002 None => return Err(de::Error::missing_field("user_creation_failed")),
14003 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14004 }
14005 }
14006 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
14007 };
14008 crate::eat_json_fields(&mut map)?;
14009 Ok(value)
14010 }
14011 }
14012 const VARIANTS: &[&str] = &["team_license_limit",
14013 "free_team_member_limit_reached",
14014 "user_already_on_team",
14015 "user_on_another_team",
14016 "user_already_paired",
14017 "user_migration_failed",
14018 "duplicate_external_member_id",
14019 "duplicate_member_persistent_id",
14020 "persistent_id_disabled",
14021 "user_creation_failed"];
14022 deserializer.deserialize_struct("MemberAddResultBase", VARIANTS, EnumVisitor)
14023 }
14024}
14025
14026impl ::serde::ser::Serialize for MemberAddResultBase {
14027 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14028 use serde::ser::SerializeStruct;
14030 match self {
14031 MemberAddResultBase::TeamLicenseLimit(x) => {
14032 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14034 s.serialize_field(".tag", "team_license_limit")?;
14035 s.serialize_field("team_license_limit", x)?;
14036 s.end()
14037 }
14038 MemberAddResultBase::FreeTeamMemberLimitReached(x) => {
14039 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14041 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14042 s.serialize_field("free_team_member_limit_reached", x)?;
14043 s.end()
14044 }
14045 MemberAddResultBase::UserAlreadyOnTeam(x) => {
14046 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14048 s.serialize_field(".tag", "user_already_on_team")?;
14049 s.serialize_field("user_already_on_team", x)?;
14050 s.end()
14051 }
14052 MemberAddResultBase::UserOnAnotherTeam(x) => {
14053 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14055 s.serialize_field(".tag", "user_on_another_team")?;
14056 s.serialize_field("user_on_another_team", x)?;
14057 s.end()
14058 }
14059 MemberAddResultBase::UserAlreadyPaired(x) => {
14060 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14062 s.serialize_field(".tag", "user_already_paired")?;
14063 s.serialize_field("user_already_paired", x)?;
14064 s.end()
14065 }
14066 MemberAddResultBase::UserMigrationFailed(x) => {
14067 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14069 s.serialize_field(".tag", "user_migration_failed")?;
14070 s.serialize_field("user_migration_failed", x)?;
14071 s.end()
14072 }
14073 MemberAddResultBase::DuplicateExternalMemberId(x) => {
14074 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14076 s.serialize_field(".tag", "duplicate_external_member_id")?;
14077 s.serialize_field("duplicate_external_member_id", x)?;
14078 s.end()
14079 }
14080 MemberAddResultBase::DuplicateMemberPersistentId(x) => {
14081 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14083 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14084 s.serialize_field("duplicate_member_persistent_id", x)?;
14085 s.end()
14086 }
14087 MemberAddResultBase::PersistentIdDisabled(x) => {
14088 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14090 s.serialize_field(".tag", "persistent_id_disabled")?;
14091 s.serialize_field("persistent_id_disabled", x)?;
14092 s.end()
14093 }
14094 MemberAddResultBase::UserCreationFailed(x) => {
14095 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14097 s.serialize_field(".tag", "user_creation_failed")?;
14098 s.serialize_field("user_creation_failed", x)?;
14099 s.end()
14100 }
14101 }
14102 }
14103}
14104
14105#[derive(Debug, Clone, PartialEq, Eq)]
14106#[non_exhaustive] pub struct MemberAddV2Arg {
14108 pub member_email: crate::types::common::EmailAddress,
14109 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
14111 pub member_surname: Option<crate::types::common::OptionalNamePart>,
14113 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
14115 pub member_persistent_id: Option<String>,
14118 pub send_welcome_email: bool,
14122 pub is_directory_restricted: Option<bool>,
14124 pub role_ids: Option<Vec<TeamMemberRoleId>>,
14125}
14126
14127impl MemberAddV2Arg {
14128 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
14129 MemberAddV2Arg {
14130 member_email,
14131 member_given_name: None,
14132 member_surname: None,
14133 member_external_id: None,
14134 member_persistent_id: None,
14135 send_welcome_email: true,
14136 is_directory_restricted: None,
14137 role_ids: None,
14138 }
14139 }
14140
14141 pub fn with_member_given_name(
14142 mut self,
14143 value: crate::types::common::OptionalNamePart,
14144 ) -> Self {
14145 self.member_given_name = Some(value);
14146 self
14147 }
14148
14149 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
14150 self.member_surname = Some(value);
14151 self
14152 }
14153
14154 pub fn with_member_external_id(
14155 mut self,
14156 value: crate::types::team_common::MemberExternalId,
14157 ) -> Self {
14158 self.member_external_id = Some(value);
14159 self
14160 }
14161
14162 pub fn with_member_persistent_id(mut self, value: String) -> Self {
14163 self.member_persistent_id = Some(value);
14164 self
14165 }
14166
14167 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
14168 self.send_welcome_email = value;
14169 self
14170 }
14171
14172 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14173 self.is_directory_restricted = Some(value);
14174 self
14175 }
14176
14177 pub fn with_role_ids(mut self, value: Vec<TeamMemberRoleId>) -> Self {
14178 self.role_ids = Some(value);
14179 self
14180 }
14181}
14182
14183const MEMBER_ADD_V2_ARG_FIELDS: &[&str] = &["member_email",
14184 "member_given_name",
14185 "member_surname",
14186 "member_external_id",
14187 "member_persistent_id",
14188 "send_welcome_email",
14189 "is_directory_restricted",
14190 "role_ids"];
14191impl MemberAddV2Arg {
14192 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14193 map: V,
14194 ) -> Result<MemberAddV2Arg, V::Error> {
14195 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14196 }
14197
14198 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14199 mut map: V,
14200 optional: bool,
14201 ) -> Result<Option<MemberAddV2Arg>, V::Error> {
14202 let mut field_member_email = None;
14203 let mut field_member_given_name = None;
14204 let mut field_member_surname = None;
14205 let mut field_member_external_id = None;
14206 let mut field_member_persistent_id = None;
14207 let mut field_send_welcome_email = None;
14208 let mut field_is_directory_restricted = None;
14209 let mut field_role_ids = None;
14210 let mut nothing = true;
14211 while let Some(key) = map.next_key::<&str>()? {
14212 nothing = false;
14213 match key {
14214 "member_email" => {
14215 if field_member_email.is_some() {
14216 return Err(::serde::de::Error::duplicate_field("member_email"));
14217 }
14218 field_member_email = Some(map.next_value()?);
14219 }
14220 "member_given_name" => {
14221 if field_member_given_name.is_some() {
14222 return Err(::serde::de::Error::duplicate_field("member_given_name"));
14223 }
14224 field_member_given_name = Some(map.next_value()?);
14225 }
14226 "member_surname" => {
14227 if field_member_surname.is_some() {
14228 return Err(::serde::de::Error::duplicate_field("member_surname"));
14229 }
14230 field_member_surname = Some(map.next_value()?);
14231 }
14232 "member_external_id" => {
14233 if field_member_external_id.is_some() {
14234 return Err(::serde::de::Error::duplicate_field("member_external_id"));
14235 }
14236 field_member_external_id = Some(map.next_value()?);
14237 }
14238 "member_persistent_id" => {
14239 if field_member_persistent_id.is_some() {
14240 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
14241 }
14242 field_member_persistent_id = Some(map.next_value()?);
14243 }
14244 "send_welcome_email" => {
14245 if field_send_welcome_email.is_some() {
14246 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
14247 }
14248 field_send_welcome_email = Some(map.next_value()?);
14249 }
14250 "is_directory_restricted" => {
14251 if field_is_directory_restricted.is_some() {
14252 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
14253 }
14254 field_is_directory_restricted = Some(map.next_value()?);
14255 }
14256 "role_ids" => {
14257 if field_role_ids.is_some() {
14258 return Err(::serde::de::Error::duplicate_field("role_ids"));
14259 }
14260 field_role_ids = Some(map.next_value()?);
14261 }
14262 _ => {
14263 map.next_value::<::serde_json::Value>()?;
14265 }
14266 }
14267 }
14268 if optional && nothing {
14269 return Ok(None);
14270 }
14271 let result = MemberAddV2Arg {
14272 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
14273 member_given_name: field_member_given_name.and_then(Option::flatten),
14274 member_surname: field_member_surname.and_then(Option::flatten),
14275 member_external_id: field_member_external_id.and_then(Option::flatten),
14276 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
14277 send_welcome_email: field_send_welcome_email.unwrap_or(true),
14278 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
14279 role_ids: field_role_ids.and_then(Option::flatten),
14280 };
14281 Ok(Some(result))
14282 }
14283
14284 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14285 &self,
14286 s: &mut S::SerializeStruct,
14287 ) -> Result<(), S::Error> {
14288 use serde::ser::SerializeStruct;
14289 s.serialize_field("member_email", &self.member_email)?;
14290 if let Some(val) = &self.member_given_name {
14291 s.serialize_field("member_given_name", val)?;
14292 }
14293 if let Some(val) = &self.member_surname {
14294 s.serialize_field("member_surname", val)?;
14295 }
14296 if let Some(val) = &self.member_external_id {
14297 s.serialize_field("member_external_id", val)?;
14298 }
14299 if let Some(val) = &self.member_persistent_id {
14300 s.serialize_field("member_persistent_id", val)?;
14301 }
14302 if !self.send_welcome_email {
14303 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
14304 }
14305 if let Some(val) = &self.is_directory_restricted {
14306 s.serialize_field("is_directory_restricted", val)?;
14307 }
14308 if let Some(val) = &self.role_ids {
14309 s.serialize_field("role_ids", val)?;
14310 }
14311 Ok(())
14312 }
14313}
14314
14315impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Arg {
14316 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14317 use serde::de::{MapAccess, Visitor};
14319 struct StructVisitor;
14320 impl<'de> Visitor<'de> for StructVisitor {
14321 type Value = MemberAddV2Arg;
14322 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14323 f.write_str("a MemberAddV2Arg struct")
14324 }
14325 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14326 MemberAddV2Arg::internal_deserialize(map)
14327 }
14328 }
14329 deserializer.deserialize_struct("MemberAddV2Arg", MEMBER_ADD_V2_ARG_FIELDS, StructVisitor)
14330 }
14331}
14332
14333impl ::serde::ser::Serialize for MemberAddV2Arg {
14334 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14335 use serde::ser::SerializeStruct;
14337 let mut s = serializer.serialize_struct("MemberAddV2Arg", 8)?;
14338 self.internal_serialize::<S>(&mut s)?;
14339 s.end()
14340 }
14341}
14342
14343impl From<MemberAddV2Arg> for MemberAddArgBase {
14345 fn from(subtype: MemberAddV2Arg) -> Self {
14346 Self {
14347 member_email: subtype.member_email,
14348 member_given_name: subtype.member_given_name,
14349 member_surname: subtype.member_surname,
14350 member_external_id: subtype.member_external_id,
14351 member_persistent_id: subtype.member_persistent_id,
14352 send_welcome_email: subtype.send_welcome_email,
14353 is_directory_restricted: subtype.is_directory_restricted,
14354 }
14355 }
14356}
14357#[derive(Debug, Clone, PartialEq, Eq)]
14361#[non_exhaustive] pub enum MemberAddV2Result {
14363 TeamLicenseLimit(crate::types::common::EmailAddress),
14365 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
14367 UserAlreadyOnTeam(crate::types::common::EmailAddress),
14370 UserOnAnotherTeam(crate::types::common::EmailAddress),
14373 UserAlreadyPaired(crate::types::common::EmailAddress),
14375 UserMigrationFailed(crate::types::common::EmailAddress),
14377 DuplicateExternalMemberId(crate::types::common::EmailAddress),
14380 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
14383 PersistentIdDisabled(crate::types::common::EmailAddress),
14386 UserCreationFailed(crate::types::common::EmailAddress),
14388 Success(TeamMemberInfoV2),
14390 Other,
14393}
14394
14395impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Result {
14396 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14397 use serde::de::{self, MapAccess, Visitor};
14399 struct EnumVisitor;
14400 impl<'de> Visitor<'de> for EnumVisitor {
14401 type Value = MemberAddV2Result;
14402 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14403 f.write_str("a MemberAddV2Result structure")
14404 }
14405 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
14406 let tag: &str = match map.next_key()? {
14407 Some(".tag") => map.next_value()?,
14408 _ => return Err(de::Error::missing_field(".tag"))
14409 };
14410 let value = match tag {
14411 "team_license_limit" => {
14412 match map.next_key()? {
14413 Some("team_license_limit") => MemberAddV2Result::TeamLicenseLimit(map.next_value()?),
14414 None => return Err(de::Error::missing_field("team_license_limit")),
14415 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14416 }
14417 }
14418 "free_team_member_limit_reached" => {
14419 match map.next_key()? {
14420 Some("free_team_member_limit_reached") => MemberAddV2Result::FreeTeamMemberLimitReached(map.next_value()?),
14421 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
14422 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14423 }
14424 }
14425 "user_already_on_team" => {
14426 match map.next_key()? {
14427 Some("user_already_on_team") => MemberAddV2Result::UserAlreadyOnTeam(map.next_value()?),
14428 None => return Err(de::Error::missing_field("user_already_on_team")),
14429 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14430 }
14431 }
14432 "user_on_another_team" => {
14433 match map.next_key()? {
14434 Some("user_on_another_team") => MemberAddV2Result::UserOnAnotherTeam(map.next_value()?),
14435 None => return Err(de::Error::missing_field("user_on_another_team")),
14436 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14437 }
14438 }
14439 "user_already_paired" => {
14440 match map.next_key()? {
14441 Some("user_already_paired") => MemberAddV2Result::UserAlreadyPaired(map.next_value()?),
14442 None => return Err(de::Error::missing_field("user_already_paired")),
14443 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14444 }
14445 }
14446 "user_migration_failed" => {
14447 match map.next_key()? {
14448 Some("user_migration_failed") => MemberAddV2Result::UserMigrationFailed(map.next_value()?),
14449 None => return Err(de::Error::missing_field("user_migration_failed")),
14450 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14451 }
14452 }
14453 "duplicate_external_member_id" => {
14454 match map.next_key()? {
14455 Some("duplicate_external_member_id") => MemberAddV2Result::DuplicateExternalMemberId(map.next_value()?),
14456 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
14457 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14458 }
14459 }
14460 "duplicate_member_persistent_id" => {
14461 match map.next_key()? {
14462 Some("duplicate_member_persistent_id") => MemberAddV2Result::DuplicateMemberPersistentId(map.next_value()?),
14463 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
14464 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14465 }
14466 }
14467 "persistent_id_disabled" => {
14468 match map.next_key()? {
14469 Some("persistent_id_disabled") => MemberAddV2Result::PersistentIdDisabled(map.next_value()?),
14470 None => return Err(de::Error::missing_field("persistent_id_disabled")),
14471 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14472 }
14473 }
14474 "user_creation_failed" => {
14475 match map.next_key()? {
14476 Some("user_creation_failed") => MemberAddV2Result::UserCreationFailed(map.next_value()?),
14477 None => return Err(de::Error::missing_field("user_creation_failed")),
14478 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14479 }
14480 }
14481 "success" => MemberAddV2Result::Success(TeamMemberInfoV2::internal_deserialize(&mut map)?),
14482 _ => MemberAddV2Result::Other,
14483 };
14484 crate::eat_json_fields(&mut map)?;
14485 Ok(value)
14486 }
14487 }
14488 const VARIANTS: &[&str] = &["team_license_limit",
14489 "free_team_member_limit_reached",
14490 "user_already_on_team",
14491 "user_on_another_team",
14492 "user_already_paired",
14493 "user_migration_failed",
14494 "duplicate_external_member_id",
14495 "duplicate_member_persistent_id",
14496 "persistent_id_disabled",
14497 "user_creation_failed",
14498 "success",
14499 "other"];
14500 deserializer.deserialize_struct("MemberAddV2Result", VARIANTS, EnumVisitor)
14501 }
14502}
14503
14504impl ::serde::ser::Serialize for MemberAddV2Result {
14505 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14506 use serde::ser::SerializeStruct;
14508 match self {
14509 MemberAddV2Result::TeamLicenseLimit(x) => {
14510 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14512 s.serialize_field(".tag", "team_license_limit")?;
14513 s.serialize_field("team_license_limit", x)?;
14514 s.end()
14515 }
14516 MemberAddV2Result::FreeTeamMemberLimitReached(x) => {
14517 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14519 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14520 s.serialize_field("free_team_member_limit_reached", x)?;
14521 s.end()
14522 }
14523 MemberAddV2Result::UserAlreadyOnTeam(x) => {
14524 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14526 s.serialize_field(".tag", "user_already_on_team")?;
14527 s.serialize_field("user_already_on_team", x)?;
14528 s.end()
14529 }
14530 MemberAddV2Result::UserOnAnotherTeam(x) => {
14531 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14533 s.serialize_field(".tag", "user_on_another_team")?;
14534 s.serialize_field("user_on_another_team", x)?;
14535 s.end()
14536 }
14537 MemberAddV2Result::UserAlreadyPaired(x) => {
14538 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14540 s.serialize_field(".tag", "user_already_paired")?;
14541 s.serialize_field("user_already_paired", x)?;
14542 s.end()
14543 }
14544 MemberAddV2Result::UserMigrationFailed(x) => {
14545 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14547 s.serialize_field(".tag", "user_migration_failed")?;
14548 s.serialize_field("user_migration_failed", x)?;
14549 s.end()
14550 }
14551 MemberAddV2Result::DuplicateExternalMemberId(x) => {
14552 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14554 s.serialize_field(".tag", "duplicate_external_member_id")?;
14555 s.serialize_field("duplicate_external_member_id", x)?;
14556 s.end()
14557 }
14558 MemberAddV2Result::DuplicateMemberPersistentId(x) => {
14559 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14561 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14562 s.serialize_field("duplicate_member_persistent_id", x)?;
14563 s.end()
14564 }
14565 MemberAddV2Result::PersistentIdDisabled(x) => {
14566 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14568 s.serialize_field(".tag", "persistent_id_disabled")?;
14569 s.serialize_field("persistent_id_disabled", x)?;
14570 s.end()
14571 }
14572 MemberAddV2Result::UserCreationFailed(x) => {
14573 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14575 s.serialize_field(".tag", "user_creation_failed")?;
14576 s.serialize_field("user_creation_failed", x)?;
14577 s.end()
14578 }
14579 MemberAddV2Result::Success(x) => {
14580 let mut s = serializer.serialize_struct("MemberAddV2Result", 3)?;
14582 s.serialize_field(".tag", "success")?;
14583 x.internal_serialize::<S>(&mut s)?;
14584 s.end()
14585 }
14586 MemberAddV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
14587 }
14588 }
14589}
14590
14591impl From<MemberAddResultBase> for MemberAddV2Result {
14593 fn from(parent: MemberAddResultBase) -> Self {
14594 match parent {
14595 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddV2Result::TeamLicenseLimit(x),
14596 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddV2Result::FreeTeamMemberLimitReached(x),
14597 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddV2Result::UserAlreadyOnTeam(x),
14598 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddV2Result::UserOnAnotherTeam(x),
14599 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddV2Result::UserAlreadyPaired(x),
14600 MemberAddResultBase::UserMigrationFailed(x) => MemberAddV2Result::UserMigrationFailed(x),
14601 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddV2Result::DuplicateExternalMemberId(x),
14602 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddV2Result::DuplicateMemberPersistentId(x),
14603 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddV2Result::PersistentIdDisabled(x),
14604 MemberAddResultBase::UserCreationFailed(x) => MemberAddV2Result::UserCreationFailed(x),
14605 }
14606 }
14607}
14608#[derive(Debug, Clone, PartialEq, Eq)]
14610#[non_exhaustive] pub struct MemberDevices {
14612 pub team_member_id: String,
14614 pub web_sessions: Option<Vec<ActiveWebSession>>,
14616 pub desktop_clients: Option<Vec<DesktopClientSession>>,
14618 pub mobile_clients: Option<Vec<MobileClientSession>>,
14620}
14621
14622impl MemberDevices {
14623 pub fn new(team_member_id: String) -> Self {
14624 MemberDevices {
14625 team_member_id,
14626 web_sessions: None,
14627 desktop_clients: None,
14628 mobile_clients: None,
14629 }
14630 }
14631
14632 pub fn with_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
14633 self.web_sessions = Some(value);
14634 self
14635 }
14636
14637 pub fn with_desktop_clients(mut self, value: Vec<DesktopClientSession>) -> Self {
14638 self.desktop_clients = Some(value);
14639 self
14640 }
14641
14642 pub fn with_mobile_clients(mut self, value: Vec<MobileClientSession>) -> Self {
14643 self.mobile_clients = Some(value);
14644 self
14645 }
14646}
14647
14648const MEMBER_DEVICES_FIELDS: &[&str] = &["team_member_id",
14649 "web_sessions",
14650 "desktop_clients",
14651 "mobile_clients"];
14652impl MemberDevices {
14653 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14654 map: V,
14655 ) -> Result<MemberDevices, V::Error> {
14656 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14657 }
14658
14659 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14660 mut map: V,
14661 optional: bool,
14662 ) -> Result<Option<MemberDevices>, V::Error> {
14663 let mut field_team_member_id = None;
14664 let mut field_web_sessions = None;
14665 let mut field_desktop_clients = None;
14666 let mut field_mobile_clients = None;
14667 let mut nothing = true;
14668 while let Some(key) = map.next_key::<&str>()? {
14669 nothing = false;
14670 match key {
14671 "team_member_id" => {
14672 if field_team_member_id.is_some() {
14673 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14674 }
14675 field_team_member_id = Some(map.next_value()?);
14676 }
14677 "web_sessions" => {
14678 if field_web_sessions.is_some() {
14679 return Err(::serde::de::Error::duplicate_field("web_sessions"));
14680 }
14681 field_web_sessions = Some(map.next_value()?);
14682 }
14683 "desktop_clients" => {
14684 if field_desktop_clients.is_some() {
14685 return Err(::serde::de::Error::duplicate_field("desktop_clients"));
14686 }
14687 field_desktop_clients = Some(map.next_value()?);
14688 }
14689 "mobile_clients" => {
14690 if field_mobile_clients.is_some() {
14691 return Err(::serde::de::Error::duplicate_field("mobile_clients"));
14692 }
14693 field_mobile_clients = Some(map.next_value()?);
14694 }
14695 _ => {
14696 map.next_value::<::serde_json::Value>()?;
14698 }
14699 }
14700 }
14701 if optional && nothing {
14702 return Ok(None);
14703 }
14704 let result = MemberDevices {
14705 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
14706 web_sessions: field_web_sessions.and_then(Option::flatten),
14707 desktop_clients: field_desktop_clients.and_then(Option::flatten),
14708 mobile_clients: field_mobile_clients.and_then(Option::flatten),
14709 };
14710 Ok(Some(result))
14711 }
14712
14713 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14714 &self,
14715 s: &mut S::SerializeStruct,
14716 ) -> Result<(), S::Error> {
14717 use serde::ser::SerializeStruct;
14718 s.serialize_field("team_member_id", &self.team_member_id)?;
14719 if let Some(val) = &self.web_sessions {
14720 s.serialize_field("web_sessions", val)?;
14721 }
14722 if let Some(val) = &self.desktop_clients {
14723 s.serialize_field("desktop_clients", val)?;
14724 }
14725 if let Some(val) = &self.mobile_clients {
14726 s.serialize_field("mobile_clients", val)?;
14727 }
14728 Ok(())
14729 }
14730}
14731
14732impl<'de> ::serde::de::Deserialize<'de> for MemberDevices {
14733 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14734 use serde::de::{MapAccess, Visitor};
14736 struct StructVisitor;
14737 impl<'de> Visitor<'de> for StructVisitor {
14738 type Value = MemberDevices;
14739 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14740 f.write_str("a MemberDevices struct")
14741 }
14742 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14743 MemberDevices::internal_deserialize(map)
14744 }
14745 }
14746 deserializer.deserialize_struct("MemberDevices", MEMBER_DEVICES_FIELDS, StructVisitor)
14747 }
14748}
14749
14750impl ::serde::ser::Serialize for MemberDevices {
14751 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14752 use serde::ser::SerializeStruct;
14754 let mut s = serializer.serialize_struct("MemberDevices", 4)?;
14755 self.internal_serialize::<S>(&mut s)?;
14756 s.end()
14757 }
14758}
14759
14760#[derive(Debug, Clone, PartialEq, Eq)]
14762#[non_exhaustive] pub struct MemberLinkedApps {
14764 pub team_member_id: String,
14766 pub linked_api_apps: Vec<ApiApp>,
14768}
14769
14770impl MemberLinkedApps {
14771 pub fn new(team_member_id: String, linked_api_apps: Vec<ApiApp>) -> Self {
14772 MemberLinkedApps {
14773 team_member_id,
14774 linked_api_apps,
14775 }
14776 }
14777}
14778
14779const MEMBER_LINKED_APPS_FIELDS: &[&str] = &["team_member_id",
14780 "linked_api_apps"];
14781impl MemberLinkedApps {
14782 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14783 map: V,
14784 ) -> Result<MemberLinkedApps, V::Error> {
14785 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14786 }
14787
14788 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14789 mut map: V,
14790 optional: bool,
14791 ) -> Result<Option<MemberLinkedApps>, V::Error> {
14792 let mut field_team_member_id = None;
14793 let mut field_linked_api_apps = None;
14794 let mut nothing = true;
14795 while let Some(key) = map.next_key::<&str>()? {
14796 nothing = false;
14797 match key {
14798 "team_member_id" => {
14799 if field_team_member_id.is_some() {
14800 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14801 }
14802 field_team_member_id = Some(map.next_value()?);
14803 }
14804 "linked_api_apps" => {
14805 if field_linked_api_apps.is_some() {
14806 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
14807 }
14808 field_linked_api_apps = Some(map.next_value()?);
14809 }
14810 _ => {
14811 map.next_value::<::serde_json::Value>()?;
14813 }
14814 }
14815 }
14816 if optional && nothing {
14817 return Ok(None);
14818 }
14819 let result = MemberLinkedApps {
14820 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
14821 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
14822 };
14823 Ok(Some(result))
14824 }
14825
14826 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14827 &self,
14828 s: &mut S::SerializeStruct,
14829 ) -> Result<(), S::Error> {
14830 use serde::ser::SerializeStruct;
14831 s.serialize_field("team_member_id", &self.team_member_id)?;
14832 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
14833 Ok(())
14834 }
14835}
14836
14837impl<'de> ::serde::de::Deserialize<'de> for MemberLinkedApps {
14838 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14839 use serde::de::{MapAccess, Visitor};
14841 struct StructVisitor;
14842 impl<'de> Visitor<'de> for StructVisitor {
14843 type Value = MemberLinkedApps;
14844 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14845 f.write_str("a MemberLinkedApps struct")
14846 }
14847 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14848 MemberLinkedApps::internal_deserialize(map)
14849 }
14850 }
14851 deserializer.deserialize_struct("MemberLinkedApps", MEMBER_LINKED_APPS_FIELDS, StructVisitor)
14852 }
14853}
14854
14855impl ::serde::ser::Serialize for MemberLinkedApps {
14856 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14857 use serde::ser::SerializeStruct;
14859 let mut s = serializer.serialize_struct("MemberLinkedApps", 2)?;
14860 self.internal_serialize::<S>(&mut s)?;
14861 s.end()
14862 }
14863}
14864
14865#[derive(Debug, Clone, PartialEq, Eq)]
14867#[non_exhaustive] pub struct MemberProfile {
14869 pub team_member_id: crate::types::team_common::TeamMemberId,
14871 pub email: String,
14873 pub email_verified: bool,
14875 pub status: TeamMemberStatus,
14877 pub name: crate::types::users::Name,
14879 pub membership_type: TeamMembershipType,
14882 pub external_id: Option<String>,
14885 pub account_id: Option<crate::types::users_common::AccountId>,
14887 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
14889 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
14892 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
14894 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
14897 pub persistent_id: Option<String>,
14900 pub is_directory_restricted: Option<bool>,
14902 pub profile_photo_url: Option<String>,
14904}
14905
14906impl MemberProfile {
14907 pub fn new(
14908 team_member_id: crate::types::team_common::TeamMemberId,
14909 email: String,
14910 email_verified: bool,
14911 status: TeamMemberStatus,
14912 name: crate::types::users::Name,
14913 membership_type: TeamMembershipType,
14914 ) -> Self {
14915 MemberProfile {
14916 team_member_id,
14917 email,
14918 email_verified,
14919 status,
14920 name,
14921 membership_type,
14922 external_id: None,
14923 account_id: None,
14924 secondary_emails: None,
14925 invited_on: None,
14926 joined_on: None,
14927 suspended_on: None,
14928 persistent_id: None,
14929 is_directory_restricted: None,
14930 profile_photo_url: None,
14931 }
14932 }
14933
14934 pub fn with_external_id(mut self, value: String) -> Self {
14935 self.external_id = Some(value);
14936 self
14937 }
14938
14939 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
14940 self.account_id = Some(value);
14941 self
14942 }
14943
14944 pub fn with_secondary_emails(
14945 mut self,
14946 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
14947 ) -> Self {
14948 self.secondary_emails = Some(value);
14949 self
14950 }
14951
14952 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14953 self.invited_on = Some(value);
14954 self
14955 }
14956
14957 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14958 self.joined_on = Some(value);
14959 self
14960 }
14961
14962 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14963 self.suspended_on = Some(value);
14964 self
14965 }
14966
14967 pub fn with_persistent_id(mut self, value: String) -> Self {
14968 self.persistent_id = Some(value);
14969 self
14970 }
14971
14972 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14973 self.is_directory_restricted = Some(value);
14974 self
14975 }
14976
14977 pub fn with_profile_photo_url(mut self, value: String) -> Self {
14978 self.profile_photo_url = Some(value);
14979 self
14980 }
14981}
14982
14983const MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
14984 "email",
14985 "email_verified",
14986 "status",
14987 "name",
14988 "membership_type",
14989 "external_id",
14990 "account_id",
14991 "secondary_emails",
14992 "invited_on",
14993 "joined_on",
14994 "suspended_on",
14995 "persistent_id",
14996 "is_directory_restricted",
14997 "profile_photo_url"];
14998impl MemberProfile {
14999 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15000 map: V,
15001 ) -> Result<MemberProfile, V::Error> {
15002 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15003 }
15004
15005 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15006 mut map: V,
15007 optional: bool,
15008 ) -> Result<Option<MemberProfile>, V::Error> {
15009 let mut field_team_member_id = None;
15010 let mut field_email = None;
15011 let mut field_email_verified = None;
15012 let mut field_status = None;
15013 let mut field_name = None;
15014 let mut field_membership_type = None;
15015 let mut field_external_id = None;
15016 let mut field_account_id = None;
15017 let mut field_secondary_emails = None;
15018 let mut field_invited_on = None;
15019 let mut field_joined_on = None;
15020 let mut field_suspended_on = None;
15021 let mut field_persistent_id = None;
15022 let mut field_is_directory_restricted = None;
15023 let mut field_profile_photo_url = None;
15024 let mut nothing = true;
15025 while let Some(key) = map.next_key::<&str>()? {
15026 nothing = false;
15027 match key {
15028 "team_member_id" => {
15029 if field_team_member_id.is_some() {
15030 return Err(::serde::de::Error::duplicate_field("team_member_id"));
15031 }
15032 field_team_member_id = Some(map.next_value()?);
15033 }
15034 "email" => {
15035 if field_email.is_some() {
15036 return Err(::serde::de::Error::duplicate_field("email"));
15037 }
15038 field_email = Some(map.next_value()?);
15039 }
15040 "email_verified" => {
15041 if field_email_verified.is_some() {
15042 return Err(::serde::de::Error::duplicate_field("email_verified"));
15043 }
15044 field_email_verified = Some(map.next_value()?);
15045 }
15046 "status" => {
15047 if field_status.is_some() {
15048 return Err(::serde::de::Error::duplicate_field("status"));
15049 }
15050 field_status = Some(map.next_value()?);
15051 }
15052 "name" => {
15053 if field_name.is_some() {
15054 return Err(::serde::de::Error::duplicate_field("name"));
15055 }
15056 field_name = Some(map.next_value()?);
15057 }
15058 "membership_type" => {
15059 if field_membership_type.is_some() {
15060 return Err(::serde::de::Error::duplicate_field("membership_type"));
15061 }
15062 field_membership_type = Some(map.next_value()?);
15063 }
15064 "external_id" => {
15065 if field_external_id.is_some() {
15066 return Err(::serde::de::Error::duplicate_field("external_id"));
15067 }
15068 field_external_id = Some(map.next_value()?);
15069 }
15070 "account_id" => {
15071 if field_account_id.is_some() {
15072 return Err(::serde::de::Error::duplicate_field("account_id"));
15073 }
15074 field_account_id = Some(map.next_value()?);
15075 }
15076 "secondary_emails" => {
15077 if field_secondary_emails.is_some() {
15078 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
15079 }
15080 field_secondary_emails = Some(map.next_value()?);
15081 }
15082 "invited_on" => {
15083 if field_invited_on.is_some() {
15084 return Err(::serde::de::Error::duplicate_field("invited_on"));
15085 }
15086 field_invited_on = Some(map.next_value()?);
15087 }
15088 "joined_on" => {
15089 if field_joined_on.is_some() {
15090 return Err(::serde::de::Error::duplicate_field("joined_on"));
15091 }
15092 field_joined_on = Some(map.next_value()?);
15093 }
15094 "suspended_on" => {
15095 if field_suspended_on.is_some() {
15096 return Err(::serde::de::Error::duplicate_field("suspended_on"));
15097 }
15098 field_suspended_on = Some(map.next_value()?);
15099 }
15100 "persistent_id" => {
15101 if field_persistent_id.is_some() {
15102 return Err(::serde::de::Error::duplicate_field("persistent_id"));
15103 }
15104 field_persistent_id = Some(map.next_value()?);
15105 }
15106 "is_directory_restricted" => {
15107 if field_is_directory_restricted.is_some() {
15108 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
15109 }
15110 field_is_directory_restricted = Some(map.next_value()?);
15111 }
15112 "profile_photo_url" => {
15113 if field_profile_photo_url.is_some() {
15114 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
15115 }
15116 field_profile_photo_url = Some(map.next_value()?);
15117 }
15118 _ => {
15119 map.next_value::<::serde_json::Value>()?;
15121 }
15122 }
15123 }
15124 if optional && nothing {
15125 return Ok(None);
15126 }
15127 let result = MemberProfile {
15128 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
15129 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
15130 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
15131 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
15132 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
15133 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
15134 external_id: field_external_id.and_then(Option::flatten),
15135 account_id: field_account_id.and_then(Option::flatten),
15136 secondary_emails: field_secondary_emails.and_then(Option::flatten),
15137 invited_on: field_invited_on.and_then(Option::flatten),
15138 joined_on: field_joined_on.and_then(Option::flatten),
15139 suspended_on: field_suspended_on.and_then(Option::flatten),
15140 persistent_id: field_persistent_id.and_then(Option::flatten),
15141 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
15142 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
15143 };
15144 Ok(Some(result))
15145 }
15146
15147 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15148 &self,
15149 s: &mut S::SerializeStruct,
15150 ) -> Result<(), S::Error> {
15151 use serde::ser::SerializeStruct;
15152 s.serialize_field("team_member_id", &self.team_member_id)?;
15153 s.serialize_field("email", &self.email)?;
15154 s.serialize_field("email_verified", &self.email_verified)?;
15155 s.serialize_field("status", &self.status)?;
15156 s.serialize_field("name", &self.name)?;
15157 s.serialize_field("membership_type", &self.membership_type)?;
15158 if let Some(val) = &self.external_id {
15159 s.serialize_field("external_id", val)?;
15160 }
15161 if let Some(val) = &self.account_id {
15162 s.serialize_field("account_id", val)?;
15163 }
15164 if let Some(val) = &self.secondary_emails {
15165 s.serialize_field("secondary_emails", val)?;
15166 }
15167 if let Some(val) = &self.invited_on {
15168 s.serialize_field("invited_on", val)?;
15169 }
15170 if let Some(val) = &self.joined_on {
15171 s.serialize_field("joined_on", val)?;
15172 }
15173 if let Some(val) = &self.suspended_on {
15174 s.serialize_field("suspended_on", val)?;
15175 }
15176 if let Some(val) = &self.persistent_id {
15177 s.serialize_field("persistent_id", val)?;
15178 }
15179 if let Some(val) = &self.is_directory_restricted {
15180 s.serialize_field("is_directory_restricted", val)?;
15181 }
15182 if let Some(val) = &self.profile_photo_url {
15183 s.serialize_field("profile_photo_url", val)?;
15184 }
15185 Ok(())
15186 }
15187}
15188
15189impl<'de> ::serde::de::Deserialize<'de> for MemberProfile {
15190 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15191 use serde::de::{MapAccess, Visitor};
15193 struct StructVisitor;
15194 impl<'de> Visitor<'de> for StructVisitor {
15195 type Value = MemberProfile;
15196 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15197 f.write_str("a MemberProfile struct")
15198 }
15199 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15200 MemberProfile::internal_deserialize(map)
15201 }
15202 }
15203 deserializer.deserialize_struct("MemberProfile", MEMBER_PROFILE_FIELDS, StructVisitor)
15204 }
15205}
15206
15207impl ::serde::ser::Serialize for MemberProfile {
15208 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15209 use serde::ser::SerializeStruct;
15211 let mut s = serializer.serialize_struct("MemberProfile", 15)?;
15212 self.internal_serialize::<S>(&mut s)?;
15213 s.end()
15214 }
15215}
15216
15217#[derive(Debug, Clone, PartialEq, Eq)]
15218pub enum MemberSelectorError {
15219 UserNotFound,
15222 UserNotInTeam,
15224}
15225
15226impl<'de> ::serde::de::Deserialize<'de> for MemberSelectorError {
15227 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15228 use serde::de::{self, MapAccess, Visitor};
15230 struct EnumVisitor;
15231 impl<'de> Visitor<'de> for EnumVisitor {
15232 type Value = MemberSelectorError;
15233 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15234 f.write_str("a MemberSelectorError structure")
15235 }
15236 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15237 let tag: &str = match map.next_key()? {
15238 Some(".tag") => map.next_value()?,
15239 _ => return Err(de::Error::missing_field(".tag"))
15240 };
15241 let value = match tag {
15242 "user_not_found" => MemberSelectorError::UserNotFound,
15243 "user_not_in_team" => MemberSelectorError::UserNotInTeam,
15244 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15245 };
15246 crate::eat_json_fields(&mut map)?;
15247 Ok(value)
15248 }
15249 }
15250 const VARIANTS: &[&str] = &["user_not_found",
15251 "user_not_in_team"];
15252 deserializer.deserialize_struct("MemberSelectorError", VARIANTS, EnumVisitor)
15253 }
15254}
15255
15256impl ::serde::ser::Serialize for MemberSelectorError {
15257 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15258 use serde::ser::SerializeStruct;
15260 match self {
15261 MemberSelectorError::UserNotFound => {
15262 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
15264 s.serialize_field(".tag", "user_not_found")?;
15265 s.end()
15266 }
15267 MemberSelectorError::UserNotInTeam => {
15268 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
15270 s.serialize_field(".tag", "user_not_in_team")?;
15271 s.end()
15272 }
15273 }
15274 }
15275}
15276
15277impl ::std::error::Error for MemberSelectorError {
15278}
15279
15280impl ::std::fmt::Display for MemberSelectorError {
15281 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15282 match self {
15283 MemberSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
15284 MemberSelectorError::UserNotInTeam => f.write_str("The user is not a member of the team."),
15285 }
15286 }
15287}
15288
15289impl From<UserSelectorError> for MemberSelectorError {
15291 fn from(parent: UserSelectorError) -> Self {
15292 match parent {
15293 UserSelectorError::UserNotFound => MemberSelectorError::UserNotFound,
15294 }
15295 }
15296}
15297#[derive(Debug, Clone, PartialEq, Eq)]
15298#[non_exhaustive] pub struct MembersAddArg {
15300 pub new_members: Vec<MemberAddArg>,
15302 pub force_async: bool,
15304}
15305
15306impl MembersAddArg {
15307 pub fn new(new_members: Vec<MemberAddArg>) -> Self {
15308 MembersAddArg {
15309 new_members,
15310 force_async: false,
15311 }
15312 }
15313
15314 pub fn with_force_async(mut self, value: bool) -> Self {
15315 self.force_async = value;
15316 self
15317 }
15318}
15319
15320const MEMBERS_ADD_ARG_FIELDS: &[&str] = &["new_members",
15321 "force_async"];
15322impl MembersAddArg {
15323 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15324 map: V,
15325 ) -> Result<MembersAddArg, V::Error> {
15326 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15327 }
15328
15329 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15330 mut map: V,
15331 optional: bool,
15332 ) -> Result<Option<MembersAddArg>, V::Error> {
15333 let mut field_new_members = None;
15334 let mut field_force_async = None;
15335 let mut nothing = true;
15336 while let Some(key) = map.next_key::<&str>()? {
15337 nothing = false;
15338 match key {
15339 "new_members" => {
15340 if field_new_members.is_some() {
15341 return Err(::serde::de::Error::duplicate_field("new_members"));
15342 }
15343 field_new_members = Some(map.next_value()?);
15344 }
15345 "force_async" => {
15346 if field_force_async.is_some() {
15347 return Err(::serde::de::Error::duplicate_field("force_async"));
15348 }
15349 field_force_async = Some(map.next_value()?);
15350 }
15351 _ => {
15352 map.next_value::<::serde_json::Value>()?;
15354 }
15355 }
15356 }
15357 if optional && nothing {
15358 return Ok(None);
15359 }
15360 let result = MembersAddArg {
15361 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
15362 force_async: field_force_async.unwrap_or(false),
15363 };
15364 Ok(Some(result))
15365 }
15366
15367 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15368 &self,
15369 s: &mut S::SerializeStruct,
15370 ) -> Result<(), S::Error> {
15371 use serde::ser::SerializeStruct;
15372 s.serialize_field("new_members", &self.new_members)?;
15373 if self.force_async {
15374 s.serialize_field("force_async", &self.force_async)?;
15375 }
15376 Ok(())
15377 }
15378}
15379
15380impl<'de> ::serde::de::Deserialize<'de> for MembersAddArg {
15381 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15382 use serde::de::{MapAccess, Visitor};
15384 struct StructVisitor;
15385 impl<'de> Visitor<'de> for StructVisitor {
15386 type Value = MembersAddArg;
15387 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15388 f.write_str("a MembersAddArg struct")
15389 }
15390 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15391 MembersAddArg::internal_deserialize(map)
15392 }
15393 }
15394 deserializer.deserialize_struct("MembersAddArg", MEMBERS_ADD_ARG_FIELDS, StructVisitor)
15395 }
15396}
15397
15398impl ::serde::ser::Serialize for MembersAddArg {
15399 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15400 use serde::ser::SerializeStruct;
15402 let mut s = serializer.serialize_struct("MembersAddArg", 2)?;
15403 self.internal_serialize::<S>(&mut s)?;
15404 s.end()
15405 }
15406}
15407
15408impl From<MembersAddArg> for MembersAddArgBase {
15410 fn from(subtype: MembersAddArg) -> Self {
15411 Self {
15412 force_async: subtype.force_async,
15413 }
15414 }
15415}
15416#[derive(Debug, Clone, PartialEq, Eq, Default)]
15417#[non_exhaustive] pub struct MembersAddArgBase {
15419 pub force_async: bool,
15421}
15422
15423impl MembersAddArgBase {
15424 pub fn with_force_async(mut self, value: bool) -> Self {
15425 self.force_async = value;
15426 self
15427 }
15428}
15429
15430const MEMBERS_ADD_ARG_BASE_FIELDS: &[&str] = &["force_async"];
15431impl MembersAddArgBase {
15432 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15434 mut map: V,
15435 ) -> Result<MembersAddArgBase, V::Error> {
15436 let mut field_force_async = None;
15437 while let Some(key) = map.next_key::<&str>()? {
15438 match key {
15439 "force_async" => {
15440 if field_force_async.is_some() {
15441 return Err(::serde::de::Error::duplicate_field("force_async"));
15442 }
15443 field_force_async = Some(map.next_value()?);
15444 }
15445 _ => {
15446 map.next_value::<::serde_json::Value>()?;
15448 }
15449 }
15450 }
15451 let result = MembersAddArgBase {
15452 force_async: field_force_async.unwrap_or(false),
15453 };
15454 Ok(result)
15455 }
15456
15457 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15458 &self,
15459 s: &mut S::SerializeStruct,
15460 ) -> Result<(), S::Error> {
15461 use serde::ser::SerializeStruct;
15462 if self.force_async {
15463 s.serialize_field("force_async", &self.force_async)?;
15464 }
15465 Ok(())
15466 }
15467}
15468
15469impl<'de> ::serde::de::Deserialize<'de> for MembersAddArgBase {
15470 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15471 use serde::de::{MapAccess, Visitor};
15473 struct StructVisitor;
15474 impl<'de> Visitor<'de> for StructVisitor {
15475 type Value = MembersAddArgBase;
15476 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15477 f.write_str("a MembersAddArgBase struct")
15478 }
15479 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15480 MembersAddArgBase::internal_deserialize(map)
15481 }
15482 }
15483 deserializer.deserialize_struct("MembersAddArgBase", MEMBERS_ADD_ARG_BASE_FIELDS, StructVisitor)
15484 }
15485}
15486
15487impl ::serde::ser::Serialize for MembersAddArgBase {
15488 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15489 use serde::ser::SerializeStruct;
15491 let mut s = serializer.serialize_struct("MembersAddArgBase", 1)?;
15492 self.internal_serialize::<S>(&mut s)?;
15493 s.end()
15494 }
15495}
15496
15497#[derive(Debug, Clone, PartialEq, Eq)]
15498pub enum MembersAddJobStatus {
15499 InProgress,
15501 Complete(Vec<MemberAddResult>),
15505 Failed(String),
15507}
15508
15509impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatus {
15510 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15511 use serde::de::{self, MapAccess, Visitor};
15513 struct EnumVisitor;
15514 impl<'de> Visitor<'de> for EnumVisitor {
15515 type Value = MembersAddJobStatus;
15516 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15517 f.write_str("a MembersAddJobStatus structure")
15518 }
15519 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15520 let tag: &str = match map.next_key()? {
15521 Some(".tag") => map.next_value()?,
15522 _ => return Err(de::Error::missing_field(".tag"))
15523 };
15524 let value = match tag {
15525 "in_progress" => MembersAddJobStatus::InProgress,
15526 "complete" => {
15527 match map.next_key()? {
15528 Some("complete") => MembersAddJobStatus::Complete(map.next_value()?),
15529 None => return Err(de::Error::missing_field("complete")),
15530 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15531 }
15532 }
15533 "failed" => {
15534 match map.next_key()? {
15535 Some("failed") => MembersAddJobStatus::Failed(map.next_value()?),
15536 None => return Err(de::Error::missing_field("failed")),
15537 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15538 }
15539 }
15540 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15541 };
15542 crate::eat_json_fields(&mut map)?;
15543 Ok(value)
15544 }
15545 }
15546 const VARIANTS: &[&str] = &["in_progress",
15547 "complete",
15548 "failed"];
15549 deserializer.deserialize_struct("MembersAddJobStatus", VARIANTS, EnumVisitor)
15550 }
15551}
15552
15553impl ::serde::ser::Serialize for MembersAddJobStatus {
15554 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15555 use serde::ser::SerializeStruct;
15557 match self {
15558 MembersAddJobStatus::InProgress => {
15559 let mut s = serializer.serialize_struct("MembersAddJobStatus", 1)?;
15561 s.serialize_field(".tag", "in_progress")?;
15562 s.end()
15563 }
15564 MembersAddJobStatus::Complete(x) => {
15565 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
15567 s.serialize_field(".tag", "complete")?;
15568 s.serialize_field("complete", x)?;
15569 s.end()
15570 }
15571 MembersAddJobStatus::Failed(x) => {
15572 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
15574 s.serialize_field(".tag", "failed")?;
15575 s.serialize_field("failed", x)?;
15576 s.end()
15577 }
15578 }
15579 }
15580}
15581
15582impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatus {
15584 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
15585 match parent {
15586 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatus::InProgress,
15587 }
15588 }
15589}
15590#[derive(Debug, Clone, PartialEq, Eq)]
15591#[non_exhaustive] pub enum MembersAddJobStatusV2Result {
15593 InProgress,
15595 Complete(Vec<MemberAddV2Result>),
15599 Failed(String),
15601 Other,
15604}
15605
15606impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatusV2Result {
15607 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15608 use serde::de::{self, MapAccess, Visitor};
15610 struct EnumVisitor;
15611 impl<'de> Visitor<'de> for EnumVisitor {
15612 type Value = MembersAddJobStatusV2Result;
15613 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15614 f.write_str("a MembersAddJobStatusV2Result structure")
15615 }
15616 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15617 let tag: &str = match map.next_key()? {
15618 Some(".tag") => map.next_value()?,
15619 _ => return Err(de::Error::missing_field(".tag"))
15620 };
15621 let value = match tag {
15622 "in_progress" => MembersAddJobStatusV2Result::InProgress,
15623 "complete" => {
15624 match map.next_key()? {
15625 Some("complete") => MembersAddJobStatusV2Result::Complete(map.next_value()?),
15626 None => return Err(de::Error::missing_field("complete")),
15627 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15628 }
15629 }
15630 "failed" => {
15631 match map.next_key()? {
15632 Some("failed") => MembersAddJobStatusV2Result::Failed(map.next_value()?),
15633 None => return Err(de::Error::missing_field("failed")),
15634 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15635 }
15636 }
15637 _ => MembersAddJobStatusV2Result::Other,
15638 };
15639 crate::eat_json_fields(&mut map)?;
15640 Ok(value)
15641 }
15642 }
15643 const VARIANTS: &[&str] = &["in_progress",
15644 "complete",
15645 "failed",
15646 "other"];
15647 deserializer.deserialize_struct("MembersAddJobStatusV2Result", VARIANTS, EnumVisitor)
15648 }
15649}
15650
15651impl ::serde::ser::Serialize for MembersAddJobStatusV2Result {
15652 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15653 use serde::ser::SerializeStruct;
15655 match self {
15656 MembersAddJobStatusV2Result::InProgress => {
15657 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 1)?;
15659 s.serialize_field(".tag", "in_progress")?;
15660 s.end()
15661 }
15662 MembersAddJobStatusV2Result::Complete(x) => {
15663 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
15665 s.serialize_field(".tag", "complete")?;
15666 s.serialize_field("complete", x)?;
15667 s.end()
15668 }
15669 MembersAddJobStatusV2Result::Failed(x) => {
15670 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
15672 s.serialize_field(".tag", "failed")?;
15673 s.serialize_field("failed", x)?;
15674 s.end()
15675 }
15676 MembersAddJobStatusV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15677 }
15678 }
15679}
15680
15681impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatusV2Result {
15683 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
15684 match parent {
15685 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatusV2Result::InProgress,
15686 }
15687 }
15688}
15689#[derive(Debug, Clone, PartialEq, Eq)]
15690pub enum MembersAddLaunch {
15691 AsyncJobId(crate::types::dbx_async::AsyncJobId),
15694 Complete(Vec<MemberAddResult>),
15695}
15696
15697impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunch {
15698 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15699 use serde::de::{self, MapAccess, Visitor};
15701 struct EnumVisitor;
15702 impl<'de> Visitor<'de> for EnumVisitor {
15703 type Value = MembersAddLaunch;
15704 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15705 f.write_str("a MembersAddLaunch structure")
15706 }
15707 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15708 let tag: &str = match map.next_key()? {
15709 Some(".tag") => map.next_value()?,
15710 _ => return Err(de::Error::missing_field(".tag"))
15711 };
15712 let value = match tag {
15713 "async_job_id" => {
15714 match map.next_key()? {
15715 Some("async_job_id") => MembersAddLaunch::AsyncJobId(map.next_value()?),
15716 None => return Err(de::Error::missing_field("async_job_id")),
15717 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15718 }
15719 }
15720 "complete" => {
15721 match map.next_key()? {
15722 Some("complete") => MembersAddLaunch::Complete(map.next_value()?),
15723 None => return Err(de::Error::missing_field("complete")),
15724 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15725 }
15726 }
15727 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15728 };
15729 crate::eat_json_fields(&mut map)?;
15730 Ok(value)
15731 }
15732 }
15733 const VARIANTS: &[&str] = &["async_job_id",
15734 "complete"];
15735 deserializer.deserialize_struct("MembersAddLaunch", VARIANTS, EnumVisitor)
15736 }
15737}
15738
15739impl ::serde::ser::Serialize for MembersAddLaunch {
15740 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15741 use serde::ser::SerializeStruct;
15743 match self {
15744 MembersAddLaunch::AsyncJobId(x) => {
15745 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
15747 s.serialize_field(".tag", "async_job_id")?;
15748 s.serialize_field("async_job_id", x)?;
15749 s.end()
15750 }
15751 MembersAddLaunch::Complete(x) => {
15752 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
15754 s.serialize_field(".tag", "complete")?;
15755 s.serialize_field("complete", x)?;
15756 s.end()
15757 }
15758 }
15759 }
15760}
15761
15762impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunch {
15764 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
15765 match parent {
15766 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunch::AsyncJobId(x),
15767 }
15768 }
15769}
15770#[derive(Debug, Clone, PartialEq, Eq)]
15771#[non_exhaustive] pub enum MembersAddLaunchV2Result {
15773 AsyncJobId(crate::types::dbx_async::AsyncJobId),
15776 Complete(Vec<MemberAddV2Result>),
15777 Other,
15780}
15781
15782impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunchV2Result {
15783 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15784 use serde::de::{self, MapAccess, Visitor};
15786 struct EnumVisitor;
15787 impl<'de> Visitor<'de> for EnumVisitor {
15788 type Value = MembersAddLaunchV2Result;
15789 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15790 f.write_str("a MembersAddLaunchV2Result structure")
15791 }
15792 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15793 let tag: &str = match map.next_key()? {
15794 Some(".tag") => map.next_value()?,
15795 _ => return Err(de::Error::missing_field(".tag"))
15796 };
15797 let value = match tag {
15798 "async_job_id" => {
15799 match map.next_key()? {
15800 Some("async_job_id") => MembersAddLaunchV2Result::AsyncJobId(map.next_value()?),
15801 None => return Err(de::Error::missing_field("async_job_id")),
15802 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15803 }
15804 }
15805 "complete" => {
15806 match map.next_key()? {
15807 Some("complete") => MembersAddLaunchV2Result::Complete(map.next_value()?),
15808 None => return Err(de::Error::missing_field("complete")),
15809 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15810 }
15811 }
15812 _ => MembersAddLaunchV2Result::Other,
15813 };
15814 crate::eat_json_fields(&mut map)?;
15815 Ok(value)
15816 }
15817 }
15818 const VARIANTS: &[&str] = &["async_job_id",
15819 "complete",
15820 "other"];
15821 deserializer.deserialize_struct("MembersAddLaunchV2Result", VARIANTS, EnumVisitor)
15822 }
15823}
15824
15825impl ::serde::ser::Serialize for MembersAddLaunchV2Result {
15826 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15827 use serde::ser::SerializeStruct;
15829 match self {
15830 MembersAddLaunchV2Result::AsyncJobId(x) => {
15831 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
15833 s.serialize_field(".tag", "async_job_id")?;
15834 s.serialize_field("async_job_id", x)?;
15835 s.end()
15836 }
15837 MembersAddLaunchV2Result::Complete(x) => {
15838 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
15840 s.serialize_field(".tag", "complete")?;
15841 s.serialize_field("complete", x)?;
15842 s.end()
15843 }
15844 MembersAddLaunchV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15845 }
15846 }
15847}
15848
15849impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunchV2Result {
15851 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
15852 match parent {
15853 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunchV2Result::AsyncJobId(x),
15854 }
15855 }
15856}
15857#[derive(Debug, Clone, PartialEq, Eq)]
15858#[non_exhaustive] pub struct MembersAddV2Arg {
15860 pub new_members: Vec<MemberAddV2Arg>,
15862 pub force_async: bool,
15864}
15865
15866impl MembersAddV2Arg {
15867 pub fn new(new_members: Vec<MemberAddV2Arg>) -> Self {
15868 MembersAddV2Arg {
15869 new_members,
15870 force_async: false,
15871 }
15872 }
15873
15874 pub fn with_force_async(mut self, value: bool) -> Self {
15875 self.force_async = value;
15876 self
15877 }
15878}
15879
15880const MEMBERS_ADD_V2_ARG_FIELDS: &[&str] = &["new_members",
15881 "force_async"];
15882impl MembersAddV2Arg {
15883 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15884 map: V,
15885 ) -> Result<MembersAddV2Arg, V::Error> {
15886 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15887 }
15888
15889 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15890 mut map: V,
15891 optional: bool,
15892 ) -> Result<Option<MembersAddV2Arg>, V::Error> {
15893 let mut field_new_members = None;
15894 let mut field_force_async = None;
15895 let mut nothing = true;
15896 while let Some(key) = map.next_key::<&str>()? {
15897 nothing = false;
15898 match key {
15899 "new_members" => {
15900 if field_new_members.is_some() {
15901 return Err(::serde::de::Error::duplicate_field("new_members"));
15902 }
15903 field_new_members = Some(map.next_value()?);
15904 }
15905 "force_async" => {
15906 if field_force_async.is_some() {
15907 return Err(::serde::de::Error::duplicate_field("force_async"));
15908 }
15909 field_force_async = Some(map.next_value()?);
15910 }
15911 _ => {
15912 map.next_value::<::serde_json::Value>()?;
15914 }
15915 }
15916 }
15917 if optional && nothing {
15918 return Ok(None);
15919 }
15920 let result = MembersAddV2Arg {
15921 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
15922 force_async: field_force_async.unwrap_or(false),
15923 };
15924 Ok(Some(result))
15925 }
15926
15927 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15928 &self,
15929 s: &mut S::SerializeStruct,
15930 ) -> Result<(), S::Error> {
15931 use serde::ser::SerializeStruct;
15932 s.serialize_field("new_members", &self.new_members)?;
15933 if self.force_async {
15934 s.serialize_field("force_async", &self.force_async)?;
15935 }
15936 Ok(())
15937 }
15938}
15939
15940impl<'de> ::serde::de::Deserialize<'de> for MembersAddV2Arg {
15941 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15942 use serde::de::{MapAccess, Visitor};
15944 struct StructVisitor;
15945 impl<'de> Visitor<'de> for StructVisitor {
15946 type Value = MembersAddV2Arg;
15947 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15948 f.write_str("a MembersAddV2Arg struct")
15949 }
15950 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15951 MembersAddV2Arg::internal_deserialize(map)
15952 }
15953 }
15954 deserializer.deserialize_struct("MembersAddV2Arg", MEMBERS_ADD_V2_ARG_FIELDS, StructVisitor)
15955 }
15956}
15957
15958impl ::serde::ser::Serialize for MembersAddV2Arg {
15959 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15960 use serde::ser::SerializeStruct;
15962 let mut s = serializer.serialize_struct("MembersAddV2Arg", 2)?;
15963 self.internal_serialize::<S>(&mut s)?;
15964 s.end()
15965 }
15966}
15967
15968impl From<MembersAddV2Arg> for MembersAddArgBase {
15970 fn from(subtype: MembersAddV2Arg) -> Self {
15971 Self {
15972 force_async: subtype.force_async,
15973 }
15974 }
15975}
15976#[derive(Debug, Clone, PartialEq, Eq)]
15977#[non_exhaustive] pub struct MembersDataTransferArg {
15979 pub user: UserSelectorArg,
15981 pub transfer_dest_id: UserSelectorArg,
15983 pub transfer_admin_id: UserSelectorArg,
15985}
15986
15987impl MembersDataTransferArg {
15988 pub fn new(
15989 user: UserSelectorArg,
15990 transfer_dest_id: UserSelectorArg,
15991 transfer_admin_id: UserSelectorArg,
15992 ) -> Self {
15993 MembersDataTransferArg {
15994 user,
15995 transfer_dest_id,
15996 transfer_admin_id,
15997 }
15998 }
15999}
16000
16001const MEMBERS_DATA_TRANSFER_ARG_FIELDS: &[&str] = &["user",
16002 "transfer_dest_id",
16003 "transfer_admin_id"];
16004impl MembersDataTransferArg {
16005 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16006 map: V,
16007 ) -> Result<MembersDataTransferArg, V::Error> {
16008 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16009 }
16010
16011 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16012 mut map: V,
16013 optional: bool,
16014 ) -> Result<Option<MembersDataTransferArg>, V::Error> {
16015 let mut field_user = None;
16016 let mut field_transfer_dest_id = None;
16017 let mut field_transfer_admin_id = None;
16018 let mut nothing = true;
16019 while let Some(key) = map.next_key::<&str>()? {
16020 nothing = false;
16021 match key {
16022 "user" => {
16023 if field_user.is_some() {
16024 return Err(::serde::de::Error::duplicate_field("user"));
16025 }
16026 field_user = Some(map.next_value()?);
16027 }
16028 "transfer_dest_id" => {
16029 if field_transfer_dest_id.is_some() {
16030 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
16031 }
16032 field_transfer_dest_id = Some(map.next_value()?);
16033 }
16034 "transfer_admin_id" => {
16035 if field_transfer_admin_id.is_some() {
16036 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
16037 }
16038 field_transfer_admin_id = Some(map.next_value()?);
16039 }
16040 _ => {
16041 map.next_value::<::serde_json::Value>()?;
16043 }
16044 }
16045 }
16046 if optional && nothing {
16047 return Ok(None);
16048 }
16049 let result = MembersDataTransferArg {
16050 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16051 transfer_dest_id: field_transfer_dest_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_dest_id"))?,
16052 transfer_admin_id: field_transfer_admin_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_admin_id"))?,
16053 };
16054 Ok(Some(result))
16055 }
16056
16057 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16058 &self,
16059 s: &mut S::SerializeStruct,
16060 ) -> Result<(), S::Error> {
16061 use serde::ser::SerializeStruct;
16062 s.serialize_field("user", &self.user)?;
16063 s.serialize_field("transfer_dest_id", &self.transfer_dest_id)?;
16064 s.serialize_field("transfer_admin_id", &self.transfer_admin_id)?;
16065 Ok(())
16066 }
16067}
16068
16069impl<'de> ::serde::de::Deserialize<'de> for MembersDataTransferArg {
16070 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16071 use serde::de::{MapAccess, Visitor};
16073 struct StructVisitor;
16074 impl<'de> Visitor<'de> for StructVisitor {
16075 type Value = MembersDataTransferArg;
16076 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16077 f.write_str("a MembersDataTransferArg struct")
16078 }
16079 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16080 MembersDataTransferArg::internal_deserialize(map)
16081 }
16082 }
16083 deserializer.deserialize_struct("MembersDataTransferArg", MEMBERS_DATA_TRANSFER_ARG_FIELDS, StructVisitor)
16084 }
16085}
16086
16087impl ::serde::ser::Serialize for MembersDataTransferArg {
16088 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16089 use serde::ser::SerializeStruct;
16091 let mut s = serializer.serialize_struct("MembersDataTransferArg", 3)?;
16092 self.internal_serialize::<S>(&mut s)?;
16093 s.end()
16094 }
16095}
16096
16097impl From<MembersDataTransferArg> for MembersDeactivateBaseArg {
16099 fn from(subtype: MembersDataTransferArg) -> Self {
16100 Self {
16101 user: subtype.user,
16102 }
16103 }
16104}
16105#[derive(Debug, Clone, PartialEq, Eq)]
16106#[non_exhaustive] pub struct MembersDeactivateArg {
16108 pub user: UserSelectorArg,
16110 pub wipe_data: bool,
16112}
16113
16114impl MembersDeactivateArg {
16115 pub fn new(user: UserSelectorArg) -> Self {
16116 MembersDeactivateArg {
16117 user,
16118 wipe_data: true,
16119 }
16120 }
16121
16122 pub fn with_wipe_data(mut self, value: bool) -> Self {
16123 self.wipe_data = value;
16124 self
16125 }
16126}
16127
16128const MEMBERS_DEACTIVATE_ARG_FIELDS: &[&str] = &["user",
16129 "wipe_data"];
16130impl MembersDeactivateArg {
16131 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16132 map: V,
16133 ) -> Result<MembersDeactivateArg, V::Error> {
16134 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16135 }
16136
16137 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16138 mut map: V,
16139 optional: bool,
16140 ) -> Result<Option<MembersDeactivateArg>, V::Error> {
16141 let mut field_user = None;
16142 let mut field_wipe_data = None;
16143 let mut nothing = true;
16144 while let Some(key) = map.next_key::<&str>()? {
16145 nothing = false;
16146 match key {
16147 "user" => {
16148 if field_user.is_some() {
16149 return Err(::serde::de::Error::duplicate_field("user"));
16150 }
16151 field_user = Some(map.next_value()?);
16152 }
16153 "wipe_data" => {
16154 if field_wipe_data.is_some() {
16155 return Err(::serde::de::Error::duplicate_field("wipe_data"));
16156 }
16157 field_wipe_data = Some(map.next_value()?);
16158 }
16159 _ => {
16160 map.next_value::<::serde_json::Value>()?;
16162 }
16163 }
16164 }
16165 if optional && nothing {
16166 return Ok(None);
16167 }
16168 let result = MembersDeactivateArg {
16169 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16170 wipe_data: field_wipe_data.unwrap_or(true),
16171 };
16172 Ok(Some(result))
16173 }
16174
16175 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16176 &self,
16177 s: &mut S::SerializeStruct,
16178 ) -> Result<(), S::Error> {
16179 use serde::ser::SerializeStruct;
16180 s.serialize_field("user", &self.user)?;
16181 if !self.wipe_data {
16182 s.serialize_field("wipe_data", &self.wipe_data)?;
16183 }
16184 Ok(())
16185 }
16186}
16187
16188impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateArg {
16189 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16190 use serde::de::{MapAccess, Visitor};
16192 struct StructVisitor;
16193 impl<'de> Visitor<'de> for StructVisitor {
16194 type Value = MembersDeactivateArg;
16195 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16196 f.write_str("a MembersDeactivateArg struct")
16197 }
16198 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16199 MembersDeactivateArg::internal_deserialize(map)
16200 }
16201 }
16202 deserializer.deserialize_struct("MembersDeactivateArg", MEMBERS_DEACTIVATE_ARG_FIELDS, StructVisitor)
16203 }
16204}
16205
16206impl ::serde::ser::Serialize for MembersDeactivateArg {
16207 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16208 use serde::ser::SerializeStruct;
16210 let mut s = serializer.serialize_struct("MembersDeactivateArg", 2)?;
16211 self.internal_serialize::<S>(&mut s)?;
16212 s.end()
16213 }
16214}
16215
16216impl From<MembersDeactivateArg> for MembersDeactivateBaseArg {
16218 fn from(subtype: MembersDeactivateArg) -> Self {
16219 Self {
16220 user: subtype.user,
16221 }
16222 }
16223}
16224#[derive(Debug, Clone, PartialEq, Eq)]
16227#[non_exhaustive] pub struct MembersDeactivateBaseArg {
16229 pub user: UserSelectorArg,
16231}
16232
16233impl MembersDeactivateBaseArg {
16234 pub fn new(user: UserSelectorArg) -> Self {
16235 MembersDeactivateBaseArg {
16236 user,
16237 }
16238 }
16239}
16240
16241const MEMBERS_DEACTIVATE_BASE_ARG_FIELDS: &[&str] = &["user"];
16242impl MembersDeactivateBaseArg {
16243 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16244 map: V,
16245 ) -> Result<MembersDeactivateBaseArg, V::Error> {
16246 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16247 }
16248
16249 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16250 mut map: V,
16251 optional: bool,
16252 ) -> Result<Option<MembersDeactivateBaseArg>, V::Error> {
16253 let mut field_user = None;
16254 let mut nothing = true;
16255 while let Some(key) = map.next_key::<&str>()? {
16256 nothing = false;
16257 match key {
16258 "user" => {
16259 if field_user.is_some() {
16260 return Err(::serde::de::Error::duplicate_field("user"));
16261 }
16262 field_user = Some(map.next_value()?);
16263 }
16264 _ => {
16265 map.next_value::<::serde_json::Value>()?;
16267 }
16268 }
16269 }
16270 if optional && nothing {
16271 return Ok(None);
16272 }
16273 let result = MembersDeactivateBaseArg {
16274 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16275 };
16276 Ok(Some(result))
16277 }
16278
16279 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16280 &self,
16281 s: &mut S::SerializeStruct,
16282 ) -> Result<(), S::Error> {
16283 use serde::ser::SerializeStruct;
16284 s.serialize_field("user", &self.user)?;
16285 Ok(())
16286 }
16287}
16288
16289impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateBaseArg {
16290 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16291 use serde::de::{MapAccess, Visitor};
16293 struct StructVisitor;
16294 impl<'de> Visitor<'de> for StructVisitor {
16295 type Value = MembersDeactivateBaseArg;
16296 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16297 f.write_str("a MembersDeactivateBaseArg struct")
16298 }
16299 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16300 MembersDeactivateBaseArg::internal_deserialize(map)
16301 }
16302 }
16303 deserializer.deserialize_struct("MembersDeactivateBaseArg", MEMBERS_DEACTIVATE_BASE_ARG_FIELDS, StructVisitor)
16304 }
16305}
16306
16307impl ::serde::ser::Serialize for MembersDeactivateBaseArg {
16308 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16309 use serde::ser::SerializeStruct;
16311 let mut s = serializer.serialize_struct("MembersDeactivateBaseArg", 1)?;
16312 self.internal_serialize::<S>(&mut s)?;
16313 s.end()
16314 }
16315}
16316
16317#[derive(Debug, Clone, PartialEq, Eq)]
16318#[non_exhaustive] pub enum MembersDeactivateError {
16320 UserNotFound,
16323 UserNotInTeam,
16325 Other,
16328}
16329
16330impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateError {
16331 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16332 use serde::de::{self, MapAccess, Visitor};
16334 struct EnumVisitor;
16335 impl<'de> Visitor<'de> for EnumVisitor {
16336 type Value = MembersDeactivateError;
16337 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16338 f.write_str("a MembersDeactivateError structure")
16339 }
16340 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16341 let tag: &str = match map.next_key()? {
16342 Some(".tag") => map.next_value()?,
16343 _ => return Err(de::Error::missing_field(".tag"))
16344 };
16345 let value = match tag {
16346 "user_not_found" => MembersDeactivateError::UserNotFound,
16347 "user_not_in_team" => MembersDeactivateError::UserNotInTeam,
16348 _ => MembersDeactivateError::Other,
16349 };
16350 crate::eat_json_fields(&mut map)?;
16351 Ok(value)
16352 }
16353 }
16354 const VARIANTS: &[&str] = &["user_not_found",
16355 "user_not_in_team",
16356 "other"];
16357 deserializer.deserialize_struct("MembersDeactivateError", VARIANTS, EnumVisitor)
16358 }
16359}
16360
16361impl ::serde::ser::Serialize for MembersDeactivateError {
16362 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16363 use serde::ser::SerializeStruct;
16365 match self {
16366 MembersDeactivateError::UserNotFound => {
16367 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
16369 s.serialize_field(".tag", "user_not_found")?;
16370 s.end()
16371 }
16372 MembersDeactivateError::UserNotInTeam => {
16373 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
16375 s.serialize_field(".tag", "user_not_in_team")?;
16376 s.end()
16377 }
16378 MembersDeactivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16379 }
16380 }
16381}
16382
16383impl ::std::error::Error for MembersDeactivateError {
16384}
16385
16386impl ::std::fmt::Display for MembersDeactivateError {
16387 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16388 match self {
16389 MembersDeactivateError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16390 MembersDeactivateError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16391 _ => write!(f, "{:?}", *self),
16392 }
16393 }
16394}
16395
16396impl From<UserSelectorError> for MembersDeactivateError {
16398 fn from(parent: UserSelectorError) -> Self {
16399 match parent {
16400 UserSelectorError::UserNotFound => MembersDeactivateError::UserNotFound,
16401 }
16402 }
16403}
16404#[derive(Debug, Clone, PartialEq, Eq)]
16405#[non_exhaustive] pub enum MembersDeleteFormerMemberFilesError {
16407 UserNotFound,
16410 UserNotInTeam,
16412 TransferInProgress,
16414 AlreadyTransferred,
16416 AlreadyTransferredOrDeleted,
16418 UserNotRemoved,
16420 Other,
16423}
16424
16425impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteFormerMemberFilesError {
16426 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16427 use serde::de::{self, MapAccess, Visitor};
16429 struct EnumVisitor;
16430 impl<'de> Visitor<'de> for EnumVisitor {
16431 type Value = MembersDeleteFormerMemberFilesError;
16432 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16433 f.write_str("a MembersDeleteFormerMemberFilesError structure")
16434 }
16435 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16436 let tag: &str = match map.next_key()? {
16437 Some(".tag") => map.next_value()?,
16438 _ => return Err(de::Error::missing_field(".tag"))
16439 };
16440 let value = match tag {
16441 "user_not_found" => MembersDeleteFormerMemberFilesError::UserNotFound,
16442 "user_not_in_team" => MembersDeleteFormerMemberFilesError::UserNotInTeam,
16443 "transfer_in_progress" => MembersDeleteFormerMemberFilesError::TransferInProgress,
16444 "already_transferred" => MembersDeleteFormerMemberFilesError::AlreadyTransferred,
16445 "already_transferred_or_deleted" => MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted,
16446 "user_not_removed" => MembersDeleteFormerMemberFilesError::UserNotRemoved,
16447 _ => MembersDeleteFormerMemberFilesError::Other,
16448 };
16449 crate::eat_json_fields(&mut map)?;
16450 Ok(value)
16451 }
16452 }
16453 const VARIANTS: &[&str] = &["user_not_found",
16454 "user_not_in_team",
16455 "other",
16456 "transfer_in_progress",
16457 "already_transferred",
16458 "already_transferred_or_deleted",
16459 "user_not_removed"];
16460 deserializer.deserialize_struct("MembersDeleteFormerMemberFilesError", VARIANTS, EnumVisitor)
16461 }
16462}
16463
16464impl ::serde::ser::Serialize for MembersDeleteFormerMemberFilesError {
16465 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16466 use serde::ser::SerializeStruct;
16468 match self {
16469 MembersDeleteFormerMemberFilesError::UserNotFound => {
16470 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16472 s.serialize_field(".tag", "user_not_found")?;
16473 s.end()
16474 }
16475 MembersDeleteFormerMemberFilesError::UserNotInTeam => {
16476 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16478 s.serialize_field(".tag", "user_not_in_team")?;
16479 s.end()
16480 }
16481 MembersDeleteFormerMemberFilesError::TransferInProgress => {
16482 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16484 s.serialize_field(".tag", "transfer_in_progress")?;
16485 s.end()
16486 }
16487 MembersDeleteFormerMemberFilesError::AlreadyTransferred => {
16488 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16490 s.serialize_field(".tag", "already_transferred")?;
16491 s.end()
16492 }
16493 MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted => {
16494 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16496 s.serialize_field(".tag", "already_transferred_or_deleted")?;
16497 s.end()
16498 }
16499 MembersDeleteFormerMemberFilesError::UserNotRemoved => {
16500 let mut s = serializer.serialize_struct("MembersDeleteFormerMemberFilesError", 1)?;
16502 s.serialize_field(".tag", "user_not_removed")?;
16503 s.end()
16504 }
16505 MembersDeleteFormerMemberFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16506 }
16507 }
16508}
16509
16510impl ::std::error::Error for MembersDeleteFormerMemberFilesError {
16511}
16512
16513impl ::std::fmt::Display for MembersDeleteFormerMemberFilesError {
16514 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16515 match self {
16516 MembersDeleteFormerMemberFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16517 MembersDeleteFormerMemberFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16518 MembersDeleteFormerMemberFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
16519 MembersDeleteFormerMemberFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
16520 MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
16521 MembersDeleteFormerMemberFilesError::UserNotRemoved => f.write_str("User has not been removed from the team."),
16522 _ => write!(f, "{:?}", *self),
16523 }
16524 }
16525}
16526
16527impl From<MembersPermanentlyDeleteFilesError> for MembersDeleteFormerMemberFilesError {
16529 fn from(parent: MembersPermanentlyDeleteFilesError) -> Self {
16530 match parent {
16531 MembersPermanentlyDeleteFilesError::UserNotFound => MembersDeleteFormerMemberFilesError::UserNotFound,
16532 MembersPermanentlyDeleteFilesError::UserNotInTeam => MembersDeleteFormerMemberFilesError::UserNotInTeam,
16533 MembersPermanentlyDeleteFilesError::Other => MembersDeleteFormerMemberFilesError::Other,
16534 MembersPermanentlyDeleteFilesError::TransferInProgress => MembersDeleteFormerMemberFilesError::TransferInProgress,
16535 MembersPermanentlyDeleteFilesError::AlreadyTransferred => MembersDeleteFormerMemberFilesError::AlreadyTransferred,
16536 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => MembersDeleteFormerMemberFilesError::AlreadyTransferredOrDeleted,
16537 }
16538 }
16539}
16540#[derive(Debug, Clone, PartialEq, Eq)]
16541#[non_exhaustive] pub struct MembersDeleteProfilePhotoArg {
16543 pub user: UserSelectorArg,
16545}
16546
16547impl MembersDeleteProfilePhotoArg {
16548 pub fn new(user: UserSelectorArg) -> Self {
16549 MembersDeleteProfilePhotoArg {
16550 user,
16551 }
16552 }
16553}
16554
16555const MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user"];
16556impl MembersDeleteProfilePhotoArg {
16557 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16558 map: V,
16559 ) -> Result<MembersDeleteProfilePhotoArg, V::Error> {
16560 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16561 }
16562
16563 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16564 mut map: V,
16565 optional: bool,
16566 ) -> Result<Option<MembersDeleteProfilePhotoArg>, V::Error> {
16567 let mut field_user = None;
16568 let mut nothing = true;
16569 while let Some(key) = map.next_key::<&str>()? {
16570 nothing = false;
16571 match key {
16572 "user" => {
16573 if field_user.is_some() {
16574 return Err(::serde::de::Error::duplicate_field("user"));
16575 }
16576 field_user = Some(map.next_value()?);
16577 }
16578 _ => {
16579 map.next_value::<::serde_json::Value>()?;
16581 }
16582 }
16583 }
16584 if optional && nothing {
16585 return Ok(None);
16586 }
16587 let result = MembersDeleteProfilePhotoArg {
16588 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16589 };
16590 Ok(Some(result))
16591 }
16592
16593 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16594 &self,
16595 s: &mut S::SerializeStruct,
16596 ) -> Result<(), S::Error> {
16597 use serde::ser::SerializeStruct;
16598 s.serialize_field("user", &self.user)?;
16599 Ok(())
16600 }
16601}
16602
16603impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoArg {
16604 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16605 use serde::de::{MapAccess, Visitor};
16607 struct StructVisitor;
16608 impl<'de> Visitor<'de> for StructVisitor {
16609 type Value = MembersDeleteProfilePhotoArg;
16610 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16611 f.write_str("a MembersDeleteProfilePhotoArg struct")
16612 }
16613 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16614 MembersDeleteProfilePhotoArg::internal_deserialize(map)
16615 }
16616 }
16617 deserializer.deserialize_struct("MembersDeleteProfilePhotoArg", MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
16618 }
16619}
16620
16621impl ::serde::ser::Serialize for MembersDeleteProfilePhotoArg {
16622 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16623 use serde::ser::SerializeStruct;
16625 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoArg", 1)?;
16626 self.internal_serialize::<S>(&mut s)?;
16627 s.end()
16628 }
16629}
16630
16631#[derive(Debug, Clone, PartialEq, Eq)]
16632#[non_exhaustive] pub enum MembersDeleteProfilePhotoError {
16634 UserNotFound,
16637 UserNotInTeam,
16639 SetProfileDisallowed,
16641 Other,
16644}
16645
16646impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoError {
16647 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16648 use serde::de::{self, MapAccess, Visitor};
16650 struct EnumVisitor;
16651 impl<'de> Visitor<'de> for EnumVisitor {
16652 type Value = MembersDeleteProfilePhotoError;
16653 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16654 f.write_str("a MembersDeleteProfilePhotoError structure")
16655 }
16656 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16657 let tag: &str = match map.next_key()? {
16658 Some(".tag") => map.next_value()?,
16659 _ => return Err(de::Error::missing_field(".tag"))
16660 };
16661 let value = match tag {
16662 "user_not_found" => MembersDeleteProfilePhotoError::UserNotFound,
16663 "user_not_in_team" => MembersDeleteProfilePhotoError::UserNotInTeam,
16664 "set_profile_disallowed" => MembersDeleteProfilePhotoError::SetProfileDisallowed,
16665 _ => MembersDeleteProfilePhotoError::Other,
16666 };
16667 crate::eat_json_fields(&mut map)?;
16668 Ok(value)
16669 }
16670 }
16671 const VARIANTS: &[&str] = &["user_not_found",
16672 "user_not_in_team",
16673 "set_profile_disallowed",
16674 "other"];
16675 deserializer.deserialize_struct("MembersDeleteProfilePhotoError", VARIANTS, EnumVisitor)
16676 }
16677}
16678
16679impl ::serde::ser::Serialize for MembersDeleteProfilePhotoError {
16680 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16681 use serde::ser::SerializeStruct;
16683 match self {
16684 MembersDeleteProfilePhotoError::UserNotFound => {
16685 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16687 s.serialize_field(".tag", "user_not_found")?;
16688 s.end()
16689 }
16690 MembersDeleteProfilePhotoError::UserNotInTeam => {
16691 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16693 s.serialize_field(".tag", "user_not_in_team")?;
16694 s.end()
16695 }
16696 MembersDeleteProfilePhotoError::SetProfileDisallowed => {
16697 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16699 s.serialize_field(".tag", "set_profile_disallowed")?;
16700 s.end()
16701 }
16702 MembersDeleteProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16703 }
16704 }
16705}
16706
16707impl ::std::error::Error for MembersDeleteProfilePhotoError {
16708}
16709
16710impl ::std::fmt::Display for MembersDeleteProfilePhotoError {
16711 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16712 match self {
16713 MembersDeleteProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16714 MembersDeleteProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16715 MembersDeleteProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
16716 _ => write!(f, "{:?}", *self),
16717 }
16718 }
16719}
16720
16721impl From<MemberSelectorError> for MembersDeleteProfilePhotoError {
16723 fn from(parent: MemberSelectorError) -> Self {
16724 match parent {
16725 MemberSelectorError::UserNotFound => MembersDeleteProfilePhotoError::UserNotFound,
16726 MemberSelectorError::UserNotInTeam => MembersDeleteProfilePhotoError::UserNotInTeam,
16727 }
16728 }
16729}
16730#[derive(Debug, Clone, PartialEq, Eq)]
16733#[non_exhaustive] pub struct MembersFormerMemberArg {
16735 pub user: UserSelectorArg,
16737}
16738
16739impl MembersFormerMemberArg {
16740 pub fn new(user: UserSelectorArg) -> Self {
16741 MembersFormerMemberArg {
16742 user,
16743 }
16744 }
16745}
16746
16747const MEMBERS_FORMER_MEMBER_ARG_FIELDS: &[&str] = &["user"];
16748impl MembersFormerMemberArg {
16749 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16750 map: V,
16751 ) -> Result<MembersFormerMemberArg, V::Error> {
16752 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16753 }
16754
16755 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16756 mut map: V,
16757 optional: bool,
16758 ) -> Result<Option<MembersFormerMemberArg>, V::Error> {
16759 let mut field_user = None;
16760 let mut nothing = true;
16761 while let Some(key) = map.next_key::<&str>()? {
16762 nothing = false;
16763 match key {
16764 "user" => {
16765 if field_user.is_some() {
16766 return Err(::serde::de::Error::duplicate_field("user"));
16767 }
16768 field_user = Some(map.next_value()?);
16769 }
16770 _ => {
16771 map.next_value::<::serde_json::Value>()?;
16773 }
16774 }
16775 }
16776 if optional && nothing {
16777 return Ok(None);
16778 }
16779 let result = MembersFormerMemberArg {
16780 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16781 };
16782 Ok(Some(result))
16783 }
16784
16785 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16786 &self,
16787 s: &mut S::SerializeStruct,
16788 ) -> Result<(), S::Error> {
16789 use serde::ser::SerializeStruct;
16790 s.serialize_field("user", &self.user)?;
16791 Ok(())
16792 }
16793}
16794
16795impl<'de> ::serde::de::Deserialize<'de> for MembersFormerMemberArg {
16796 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16797 use serde::de::{MapAccess, Visitor};
16799 struct StructVisitor;
16800 impl<'de> Visitor<'de> for StructVisitor {
16801 type Value = MembersFormerMemberArg;
16802 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16803 f.write_str("a MembersFormerMemberArg struct")
16804 }
16805 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16806 MembersFormerMemberArg::internal_deserialize(map)
16807 }
16808 }
16809 deserializer.deserialize_struct("MembersFormerMemberArg", MEMBERS_FORMER_MEMBER_ARG_FIELDS, StructVisitor)
16810 }
16811}
16812
16813impl ::serde::ser::Serialize for MembersFormerMemberArg {
16814 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16815 use serde::ser::SerializeStruct;
16817 let mut s = serializer.serialize_struct("MembersFormerMemberArg", 1)?;
16818 self.internal_serialize::<S>(&mut s)?;
16819 s.end()
16820 }
16821}
16822
16823#[derive(Debug, Clone, PartialEq, Eq)]
16826#[non_exhaustive] pub struct MembersGetAvailableTeamMemberRolesResult {
16828 pub roles: Vec<TeamMemberRole>,
16830}
16831
16832impl MembersGetAvailableTeamMemberRolesResult {
16833 pub fn new(roles: Vec<TeamMemberRole>) -> Self {
16834 MembersGetAvailableTeamMemberRolesResult {
16835 roles,
16836 }
16837 }
16838}
16839
16840const MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS: &[&str] = &["roles"];
16841impl MembersGetAvailableTeamMemberRolesResult {
16842 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16843 map: V,
16844 ) -> Result<MembersGetAvailableTeamMemberRolesResult, V::Error> {
16845 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16846 }
16847
16848 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16849 mut map: V,
16850 optional: bool,
16851 ) -> Result<Option<MembersGetAvailableTeamMemberRolesResult>, V::Error> {
16852 let mut field_roles = None;
16853 let mut nothing = true;
16854 while let Some(key) = map.next_key::<&str>()? {
16855 nothing = false;
16856 match key {
16857 "roles" => {
16858 if field_roles.is_some() {
16859 return Err(::serde::de::Error::duplicate_field("roles"));
16860 }
16861 field_roles = Some(map.next_value()?);
16862 }
16863 _ => {
16864 map.next_value::<::serde_json::Value>()?;
16866 }
16867 }
16868 }
16869 if optional && nothing {
16870 return Ok(None);
16871 }
16872 let result = MembersGetAvailableTeamMemberRolesResult {
16873 roles: field_roles.ok_or_else(|| ::serde::de::Error::missing_field("roles"))?,
16874 };
16875 Ok(Some(result))
16876 }
16877
16878 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16879 &self,
16880 s: &mut S::SerializeStruct,
16881 ) -> Result<(), S::Error> {
16882 use serde::ser::SerializeStruct;
16883 s.serialize_field("roles", &self.roles)?;
16884 Ok(())
16885 }
16886}
16887
16888impl<'de> ::serde::de::Deserialize<'de> for MembersGetAvailableTeamMemberRolesResult {
16889 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16890 use serde::de::{MapAccess, Visitor};
16892 struct StructVisitor;
16893 impl<'de> Visitor<'de> for StructVisitor {
16894 type Value = MembersGetAvailableTeamMemberRolesResult;
16895 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16896 f.write_str("a MembersGetAvailableTeamMemberRolesResult struct")
16897 }
16898 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16899 MembersGetAvailableTeamMemberRolesResult::internal_deserialize(map)
16900 }
16901 }
16902 deserializer.deserialize_struct("MembersGetAvailableTeamMemberRolesResult", MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS, StructVisitor)
16903 }
16904}
16905
16906impl ::serde::ser::Serialize for MembersGetAvailableTeamMemberRolesResult {
16907 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16908 use serde::ser::SerializeStruct;
16910 let mut s = serializer.serialize_struct("MembersGetAvailableTeamMemberRolesResult", 1)?;
16911 self.internal_serialize::<S>(&mut s)?;
16912 s.end()
16913 }
16914}
16915
16916#[derive(Debug, Clone, PartialEq, Eq)]
16917#[non_exhaustive] pub struct MembersGetInfoArgs {
16919 pub members: Vec<UserSelectorArg>,
16921}
16922
16923impl MembersGetInfoArgs {
16924 pub fn new(members: Vec<UserSelectorArg>) -> Self {
16925 MembersGetInfoArgs {
16926 members,
16927 }
16928 }
16929}
16930
16931const MEMBERS_GET_INFO_ARGS_FIELDS: &[&str] = &["members"];
16932impl MembersGetInfoArgs {
16933 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16934 map: V,
16935 ) -> Result<MembersGetInfoArgs, V::Error> {
16936 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16937 }
16938
16939 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16940 mut map: V,
16941 optional: bool,
16942 ) -> Result<Option<MembersGetInfoArgs>, V::Error> {
16943 let mut field_members = None;
16944 let mut nothing = true;
16945 while let Some(key) = map.next_key::<&str>()? {
16946 nothing = false;
16947 match key {
16948 "members" => {
16949 if field_members.is_some() {
16950 return Err(::serde::de::Error::duplicate_field("members"));
16951 }
16952 field_members = Some(map.next_value()?);
16953 }
16954 _ => {
16955 map.next_value::<::serde_json::Value>()?;
16957 }
16958 }
16959 }
16960 if optional && nothing {
16961 return Ok(None);
16962 }
16963 let result = MembersGetInfoArgs {
16964 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
16965 };
16966 Ok(Some(result))
16967 }
16968
16969 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16970 &self,
16971 s: &mut S::SerializeStruct,
16972 ) -> Result<(), S::Error> {
16973 use serde::ser::SerializeStruct;
16974 s.serialize_field("members", &self.members)?;
16975 Ok(())
16976 }
16977}
16978
16979impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoArgs {
16980 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16981 use serde::de::{MapAccess, Visitor};
16983 struct StructVisitor;
16984 impl<'de> Visitor<'de> for StructVisitor {
16985 type Value = MembersGetInfoArgs;
16986 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16987 f.write_str("a MembersGetInfoArgs struct")
16988 }
16989 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16990 MembersGetInfoArgs::internal_deserialize(map)
16991 }
16992 }
16993 deserializer.deserialize_struct("MembersGetInfoArgs", MEMBERS_GET_INFO_ARGS_FIELDS, StructVisitor)
16994 }
16995}
16996
16997impl ::serde::ser::Serialize for MembersGetInfoArgs {
16998 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16999 use serde::ser::SerializeStruct;
17001 let mut s = serializer.serialize_struct("MembersGetInfoArgs", 1)?;
17002 self.internal_serialize::<S>(&mut s)?;
17003 s.end()
17004 }
17005}
17006
17007
17008#[derive(Debug, Clone, PartialEq, Eq)]
17009#[non_exhaustive] pub enum MembersGetInfoError {
17011 Other,
17014}
17015
17016impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoError {
17017 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17018 use serde::de::{self, MapAccess, Visitor};
17020 struct EnumVisitor;
17021 impl<'de> Visitor<'de> for EnumVisitor {
17022 type Value = MembersGetInfoError;
17023 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17024 f.write_str("a MembersGetInfoError structure")
17025 }
17026 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17027 let tag: &str = match map.next_key()? {
17028 Some(".tag") => map.next_value()?,
17029 _ => return Err(de::Error::missing_field(".tag"))
17030 };
17031 let _ = tag;
17033 crate::eat_json_fields(&mut map)?;
17034 Ok(MembersGetInfoError::Other)
17035 }
17036 }
17037 const VARIANTS: &[&str] = &["other"];
17038 deserializer.deserialize_struct("MembersGetInfoError", VARIANTS, EnumVisitor)
17039 }
17040}
17041
17042impl ::serde::ser::Serialize for MembersGetInfoError {
17043 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17044 #![allow(unused_variables)]
17046 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
17047 }
17048}
17049
17050impl ::std::error::Error for MembersGetInfoError {
17051}
17052
17053impl ::std::fmt::Display for MembersGetInfoError {
17054 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17055 write!(f, "{:?}", *self)
17056 }
17057}
17058
17059#[derive(Debug, Clone, PartialEq, Eq)]
17062pub enum MembersGetInfoItem {
17063 IdNotFound(String),
17069 MemberInfo(TeamMemberInfo),
17071}
17072
17073impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItem {
17074 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17075 use serde::de::{self, MapAccess, Visitor};
17077 struct EnumVisitor;
17078 impl<'de> Visitor<'de> for EnumVisitor {
17079 type Value = MembersGetInfoItem;
17080 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17081 f.write_str("a MembersGetInfoItem structure")
17082 }
17083 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17084 let tag: &str = match map.next_key()? {
17085 Some(".tag") => map.next_value()?,
17086 _ => return Err(de::Error::missing_field(".tag"))
17087 };
17088 let value = match tag {
17089 "id_not_found" => {
17090 match map.next_key()? {
17091 Some("id_not_found") => MembersGetInfoItem::IdNotFound(map.next_value()?),
17092 None => return Err(de::Error::missing_field("id_not_found")),
17093 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17094 }
17095 }
17096 "member_info" => MembersGetInfoItem::MemberInfo(TeamMemberInfo::internal_deserialize(&mut map)?),
17097 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
17098 };
17099 crate::eat_json_fields(&mut map)?;
17100 Ok(value)
17101 }
17102 }
17103 const VARIANTS: &[&str] = &["id_not_found",
17104 "member_info"];
17105 deserializer.deserialize_struct("MembersGetInfoItem", VARIANTS, EnumVisitor)
17106 }
17107}
17108
17109impl ::serde::ser::Serialize for MembersGetInfoItem {
17110 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17111 use serde::ser::SerializeStruct;
17113 match self {
17114 MembersGetInfoItem::IdNotFound(x) => {
17115 let mut s = serializer.serialize_struct("MembersGetInfoItem", 2)?;
17117 s.serialize_field(".tag", "id_not_found")?;
17118 s.serialize_field("id_not_found", x)?;
17119 s.end()
17120 }
17121 MembersGetInfoItem::MemberInfo(x) => {
17122 let mut s = serializer.serialize_struct("MembersGetInfoItem", 3)?;
17124 s.serialize_field(".tag", "member_info")?;
17125 x.internal_serialize::<S>(&mut s)?;
17126 s.end()
17127 }
17128 }
17129 }
17130}
17131
17132impl From<MembersGetInfoItemBase> for MembersGetInfoItem {
17134 fn from(parent: MembersGetInfoItemBase) -> Self {
17135 match parent {
17136 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItem::IdNotFound(x),
17137 }
17138 }
17139}
17140#[derive(Debug, Clone, PartialEq, Eq)]
17141pub enum MembersGetInfoItemBase {
17142 IdNotFound(String),
17148}
17149
17150impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemBase {
17151 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17152 use serde::de::{self, MapAccess, Visitor};
17154 struct EnumVisitor;
17155 impl<'de> Visitor<'de> for EnumVisitor {
17156 type Value = MembersGetInfoItemBase;
17157 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17158 f.write_str("a MembersGetInfoItemBase structure")
17159 }
17160 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17161 let tag: &str = match map.next_key()? {
17162 Some(".tag") => map.next_value()?,
17163 _ => return Err(de::Error::missing_field(".tag"))
17164 };
17165 let value = match tag {
17166 "id_not_found" => {
17167 match map.next_key()? {
17168 Some("id_not_found") => MembersGetInfoItemBase::IdNotFound(map.next_value()?),
17169 None => return Err(de::Error::missing_field("id_not_found")),
17170 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17171 }
17172 }
17173 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
17174 };
17175 crate::eat_json_fields(&mut map)?;
17176 Ok(value)
17177 }
17178 }
17179 const VARIANTS: &[&str] = &["id_not_found"];
17180 deserializer.deserialize_struct("MembersGetInfoItemBase", VARIANTS, EnumVisitor)
17181 }
17182}
17183
17184impl ::serde::ser::Serialize for MembersGetInfoItemBase {
17185 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17186 use serde::ser::SerializeStruct;
17188 match self {
17189 MembersGetInfoItemBase::IdNotFound(x) => {
17190 let mut s = serializer.serialize_struct("MembersGetInfoItemBase", 2)?;
17192 s.serialize_field(".tag", "id_not_found")?;
17193 s.serialize_field("id_not_found", x)?;
17194 s.end()
17195 }
17196 }
17197 }
17198}
17199
17200#[derive(Debug, Clone, PartialEq, Eq)]
17203#[non_exhaustive] pub enum MembersGetInfoItemV2 {
17205 IdNotFound(String),
17211 MemberInfo(TeamMemberInfoV2),
17213 Other,
17216}
17217
17218impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemV2 {
17219 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17220 use serde::de::{self, MapAccess, Visitor};
17222 struct EnumVisitor;
17223 impl<'de> Visitor<'de> for EnumVisitor {
17224 type Value = MembersGetInfoItemV2;
17225 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17226 f.write_str("a MembersGetInfoItemV2 structure")
17227 }
17228 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17229 let tag: &str = match map.next_key()? {
17230 Some(".tag") => map.next_value()?,
17231 _ => return Err(de::Error::missing_field(".tag"))
17232 };
17233 let value = match tag {
17234 "id_not_found" => {
17235 match map.next_key()? {
17236 Some("id_not_found") => MembersGetInfoItemV2::IdNotFound(map.next_value()?),
17237 None => return Err(de::Error::missing_field("id_not_found")),
17238 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
17239 }
17240 }
17241 "member_info" => MembersGetInfoItemV2::MemberInfo(TeamMemberInfoV2::internal_deserialize(&mut map)?),
17242 _ => MembersGetInfoItemV2::Other,
17243 };
17244 crate::eat_json_fields(&mut map)?;
17245 Ok(value)
17246 }
17247 }
17248 const VARIANTS: &[&str] = &["id_not_found",
17249 "member_info",
17250 "other"];
17251 deserializer.deserialize_struct("MembersGetInfoItemV2", VARIANTS, EnumVisitor)
17252 }
17253}
17254
17255impl ::serde::ser::Serialize for MembersGetInfoItemV2 {
17256 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17257 use serde::ser::SerializeStruct;
17259 match self {
17260 MembersGetInfoItemV2::IdNotFound(x) => {
17261 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 2)?;
17263 s.serialize_field(".tag", "id_not_found")?;
17264 s.serialize_field("id_not_found", x)?;
17265 s.end()
17266 }
17267 MembersGetInfoItemV2::MemberInfo(x) => {
17268 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 3)?;
17270 s.serialize_field(".tag", "member_info")?;
17271 x.internal_serialize::<S>(&mut s)?;
17272 s.end()
17273 }
17274 MembersGetInfoItemV2::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17275 }
17276 }
17277}
17278
17279impl From<MembersGetInfoItemBase> for MembersGetInfoItemV2 {
17281 fn from(parent: MembersGetInfoItemBase) -> Self {
17282 match parent {
17283 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItemV2::IdNotFound(x),
17284 }
17285 }
17286}
17287#[derive(Debug, Clone, PartialEq, Eq)]
17288#[non_exhaustive] pub struct MembersGetInfoV2Arg {
17290 pub members: Vec<UserSelectorArg>,
17292}
17293
17294impl MembersGetInfoV2Arg {
17295 pub fn new(members: Vec<UserSelectorArg>) -> Self {
17296 MembersGetInfoV2Arg {
17297 members,
17298 }
17299 }
17300}
17301
17302const MEMBERS_GET_INFO_V2_ARG_FIELDS: &[&str] = &["members"];
17303impl MembersGetInfoV2Arg {
17304 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17305 map: V,
17306 ) -> Result<MembersGetInfoV2Arg, V::Error> {
17307 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17308 }
17309
17310 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17311 mut map: V,
17312 optional: bool,
17313 ) -> Result<Option<MembersGetInfoV2Arg>, V::Error> {
17314 let mut field_members = None;
17315 let mut nothing = true;
17316 while let Some(key) = map.next_key::<&str>()? {
17317 nothing = false;
17318 match key {
17319 "members" => {
17320 if field_members.is_some() {
17321 return Err(::serde::de::Error::duplicate_field("members"));
17322 }
17323 field_members = Some(map.next_value()?);
17324 }
17325 _ => {
17326 map.next_value::<::serde_json::Value>()?;
17328 }
17329 }
17330 }
17331 if optional && nothing {
17332 return Ok(None);
17333 }
17334 let result = MembersGetInfoV2Arg {
17335 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17336 };
17337 Ok(Some(result))
17338 }
17339
17340 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17341 &self,
17342 s: &mut S::SerializeStruct,
17343 ) -> Result<(), S::Error> {
17344 use serde::ser::SerializeStruct;
17345 s.serialize_field("members", &self.members)?;
17346 Ok(())
17347 }
17348}
17349
17350impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Arg {
17351 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17352 use serde::de::{MapAccess, Visitor};
17354 struct StructVisitor;
17355 impl<'de> Visitor<'de> for StructVisitor {
17356 type Value = MembersGetInfoV2Arg;
17357 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17358 f.write_str("a MembersGetInfoV2Arg struct")
17359 }
17360 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17361 MembersGetInfoV2Arg::internal_deserialize(map)
17362 }
17363 }
17364 deserializer.deserialize_struct("MembersGetInfoV2Arg", MEMBERS_GET_INFO_V2_ARG_FIELDS, StructVisitor)
17365 }
17366}
17367
17368impl ::serde::ser::Serialize for MembersGetInfoV2Arg {
17369 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17370 use serde::ser::SerializeStruct;
17372 let mut s = serializer.serialize_struct("MembersGetInfoV2Arg", 1)?;
17373 self.internal_serialize::<S>(&mut s)?;
17374 s.end()
17375 }
17376}
17377
17378#[derive(Debug, Clone, PartialEq, Eq)]
17379#[non_exhaustive] pub struct MembersGetInfoV2Result {
17381 pub members_info: Vec<MembersGetInfoItemV2>,
17383}
17384
17385impl MembersGetInfoV2Result {
17386 pub fn new(members_info: Vec<MembersGetInfoItemV2>) -> Self {
17387 MembersGetInfoV2Result {
17388 members_info,
17389 }
17390 }
17391}
17392
17393const MEMBERS_GET_INFO_V2_RESULT_FIELDS: &[&str] = &["members_info"];
17394impl MembersGetInfoV2Result {
17395 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17396 map: V,
17397 ) -> Result<MembersGetInfoV2Result, V::Error> {
17398 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17399 }
17400
17401 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17402 mut map: V,
17403 optional: bool,
17404 ) -> Result<Option<MembersGetInfoV2Result>, V::Error> {
17405 let mut field_members_info = None;
17406 let mut nothing = true;
17407 while let Some(key) = map.next_key::<&str>()? {
17408 nothing = false;
17409 match key {
17410 "members_info" => {
17411 if field_members_info.is_some() {
17412 return Err(::serde::de::Error::duplicate_field("members_info"));
17413 }
17414 field_members_info = Some(map.next_value()?);
17415 }
17416 _ => {
17417 map.next_value::<::serde_json::Value>()?;
17419 }
17420 }
17421 }
17422 if optional && nothing {
17423 return Ok(None);
17424 }
17425 let result = MembersGetInfoV2Result {
17426 members_info: field_members_info.ok_or_else(|| ::serde::de::Error::missing_field("members_info"))?,
17427 };
17428 Ok(Some(result))
17429 }
17430
17431 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17432 &self,
17433 s: &mut S::SerializeStruct,
17434 ) -> Result<(), S::Error> {
17435 use serde::ser::SerializeStruct;
17436 s.serialize_field("members_info", &self.members_info)?;
17437 Ok(())
17438 }
17439}
17440
17441impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Result {
17442 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17443 use serde::de::{MapAccess, Visitor};
17445 struct StructVisitor;
17446 impl<'de> Visitor<'de> for StructVisitor {
17447 type Value = MembersGetInfoV2Result;
17448 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17449 f.write_str("a MembersGetInfoV2Result struct")
17450 }
17451 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17452 MembersGetInfoV2Result::internal_deserialize(map)
17453 }
17454 }
17455 deserializer.deserialize_struct("MembersGetInfoV2Result", MEMBERS_GET_INFO_V2_RESULT_FIELDS, StructVisitor)
17456 }
17457}
17458
17459impl ::serde::ser::Serialize for MembersGetInfoV2Result {
17460 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17461 use serde::ser::SerializeStruct;
17463 let mut s = serializer.serialize_struct("MembersGetInfoV2Result", 1)?;
17464 self.internal_serialize::<S>(&mut s)?;
17465 s.end()
17466 }
17467}
17468
17469#[derive(Debug, Clone, PartialEq, Eq)]
17470#[non_exhaustive] pub struct MembersInfo {
17472 pub team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
17474 pub permanently_deleted_users: u64,
17476}
17477
17478impl MembersInfo {
17479 pub fn new(
17480 team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
17481 permanently_deleted_users: u64,
17482 ) -> Self {
17483 MembersInfo {
17484 team_member_ids,
17485 permanently_deleted_users,
17486 }
17487 }
17488}
17489
17490const MEMBERS_INFO_FIELDS: &[&str] = &["team_member_ids",
17491 "permanently_deleted_users"];
17492impl MembersInfo {
17493 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17494 map: V,
17495 ) -> Result<MembersInfo, V::Error> {
17496 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17497 }
17498
17499 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17500 mut map: V,
17501 optional: bool,
17502 ) -> Result<Option<MembersInfo>, V::Error> {
17503 let mut field_team_member_ids = None;
17504 let mut field_permanently_deleted_users = None;
17505 let mut nothing = true;
17506 while let Some(key) = map.next_key::<&str>()? {
17507 nothing = false;
17508 match key {
17509 "team_member_ids" => {
17510 if field_team_member_ids.is_some() {
17511 return Err(::serde::de::Error::duplicate_field("team_member_ids"));
17512 }
17513 field_team_member_ids = Some(map.next_value()?);
17514 }
17515 "permanently_deleted_users" => {
17516 if field_permanently_deleted_users.is_some() {
17517 return Err(::serde::de::Error::duplicate_field("permanently_deleted_users"));
17518 }
17519 field_permanently_deleted_users = Some(map.next_value()?);
17520 }
17521 _ => {
17522 map.next_value::<::serde_json::Value>()?;
17524 }
17525 }
17526 }
17527 if optional && nothing {
17528 return Ok(None);
17529 }
17530 let result = MembersInfo {
17531 team_member_ids: field_team_member_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_member_ids"))?,
17532 permanently_deleted_users: field_permanently_deleted_users.ok_or_else(|| ::serde::de::Error::missing_field("permanently_deleted_users"))?,
17533 };
17534 Ok(Some(result))
17535 }
17536
17537 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17538 &self,
17539 s: &mut S::SerializeStruct,
17540 ) -> Result<(), S::Error> {
17541 use serde::ser::SerializeStruct;
17542 s.serialize_field("team_member_ids", &self.team_member_ids)?;
17543 s.serialize_field("permanently_deleted_users", &self.permanently_deleted_users)?;
17544 Ok(())
17545 }
17546}
17547
17548impl<'de> ::serde::de::Deserialize<'de> for MembersInfo {
17549 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17550 use serde::de::{MapAccess, Visitor};
17552 struct StructVisitor;
17553 impl<'de> Visitor<'de> for StructVisitor {
17554 type Value = MembersInfo;
17555 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17556 f.write_str("a MembersInfo struct")
17557 }
17558 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17559 MembersInfo::internal_deserialize(map)
17560 }
17561 }
17562 deserializer.deserialize_struct("MembersInfo", MEMBERS_INFO_FIELDS, StructVisitor)
17563 }
17564}
17565
17566impl ::serde::ser::Serialize for MembersInfo {
17567 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17568 use serde::ser::SerializeStruct;
17570 let mut s = serializer.serialize_struct("MembersInfo", 2)?;
17571 self.internal_serialize::<S>(&mut s)?;
17572 s.end()
17573 }
17574}
17575
17576#[derive(Debug, Clone, PartialEq, Eq)]
17577#[non_exhaustive] pub struct MembersListArg {
17579 pub limit: u32,
17581 pub include_removed: bool,
17583}
17584
17585impl Default for MembersListArg {
17586 fn default() -> Self {
17587 MembersListArg {
17588 limit: 1000,
17589 include_removed: false,
17590 }
17591 }
17592}
17593
17594impl MembersListArg {
17595 pub fn with_limit(mut self, value: u32) -> Self {
17596 self.limit = value;
17597 self
17598 }
17599
17600 pub fn with_include_removed(mut self, value: bool) -> Self {
17601 self.include_removed = value;
17602 self
17603 }
17604}
17605
17606const MEMBERS_LIST_ARG_FIELDS: &[&str] = &["limit",
17607 "include_removed"];
17608impl MembersListArg {
17609 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17611 mut map: V,
17612 ) -> Result<MembersListArg, V::Error> {
17613 let mut field_limit = None;
17614 let mut field_include_removed = None;
17615 while let Some(key) = map.next_key::<&str>()? {
17616 match key {
17617 "limit" => {
17618 if field_limit.is_some() {
17619 return Err(::serde::de::Error::duplicate_field("limit"));
17620 }
17621 field_limit = Some(map.next_value()?);
17622 }
17623 "include_removed" => {
17624 if field_include_removed.is_some() {
17625 return Err(::serde::de::Error::duplicate_field("include_removed"));
17626 }
17627 field_include_removed = Some(map.next_value()?);
17628 }
17629 _ => {
17630 map.next_value::<::serde_json::Value>()?;
17632 }
17633 }
17634 }
17635 let result = MembersListArg {
17636 limit: field_limit.unwrap_or(1000),
17637 include_removed: field_include_removed.unwrap_or(false),
17638 };
17639 Ok(result)
17640 }
17641
17642 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17643 &self,
17644 s: &mut S::SerializeStruct,
17645 ) -> Result<(), S::Error> {
17646 use serde::ser::SerializeStruct;
17647 if self.limit != 1000 {
17648 s.serialize_field("limit", &self.limit)?;
17649 }
17650 if self.include_removed {
17651 s.serialize_field("include_removed", &self.include_removed)?;
17652 }
17653 Ok(())
17654 }
17655}
17656
17657impl<'de> ::serde::de::Deserialize<'de> for MembersListArg {
17658 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17659 use serde::de::{MapAccess, Visitor};
17661 struct StructVisitor;
17662 impl<'de> Visitor<'de> for StructVisitor {
17663 type Value = MembersListArg;
17664 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17665 f.write_str("a MembersListArg struct")
17666 }
17667 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17668 MembersListArg::internal_deserialize(map)
17669 }
17670 }
17671 deserializer.deserialize_struct("MembersListArg", MEMBERS_LIST_ARG_FIELDS, StructVisitor)
17672 }
17673}
17674
17675impl ::serde::ser::Serialize for MembersListArg {
17676 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17677 use serde::ser::SerializeStruct;
17679 let mut s = serializer.serialize_struct("MembersListArg", 2)?;
17680 self.internal_serialize::<S>(&mut s)?;
17681 s.end()
17682 }
17683}
17684
17685#[derive(Debug, Clone, PartialEq, Eq)]
17686#[non_exhaustive] pub struct MembersListContinueArg {
17688 pub cursor: String,
17690}
17691
17692impl MembersListContinueArg {
17693 pub fn new(cursor: String) -> Self {
17694 MembersListContinueArg {
17695 cursor,
17696 }
17697 }
17698}
17699
17700const MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
17701impl MembersListContinueArg {
17702 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17703 map: V,
17704 ) -> Result<MembersListContinueArg, V::Error> {
17705 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17706 }
17707
17708 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17709 mut map: V,
17710 optional: bool,
17711 ) -> Result<Option<MembersListContinueArg>, V::Error> {
17712 let mut field_cursor = None;
17713 let mut nothing = true;
17714 while let Some(key) = map.next_key::<&str>()? {
17715 nothing = false;
17716 match key {
17717 "cursor" => {
17718 if field_cursor.is_some() {
17719 return Err(::serde::de::Error::duplicate_field("cursor"));
17720 }
17721 field_cursor = Some(map.next_value()?);
17722 }
17723 _ => {
17724 map.next_value::<::serde_json::Value>()?;
17726 }
17727 }
17728 }
17729 if optional && nothing {
17730 return Ok(None);
17731 }
17732 let result = MembersListContinueArg {
17733 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17734 };
17735 Ok(Some(result))
17736 }
17737
17738 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17739 &self,
17740 s: &mut S::SerializeStruct,
17741 ) -> Result<(), S::Error> {
17742 use serde::ser::SerializeStruct;
17743 s.serialize_field("cursor", &self.cursor)?;
17744 Ok(())
17745 }
17746}
17747
17748impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueArg {
17749 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17750 use serde::de::{MapAccess, Visitor};
17752 struct StructVisitor;
17753 impl<'de> Visitor<'de> for StructVisitor {
17754 type Value = MembersListContinueArg;
17755 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17756 f.write_str("a MembersListContinueArg struct")
17757 }
17758 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17759 MembersListContinueArg::internal_deserialize(map)
17760 }
17761 }
17762 deserializer.deserialize_struct("MembersListContinueArg", MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
17763 }
17764}
17765
17766impl ::serde::ser::Serialize for MembersListContinueArg {
17767 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17768 use serde::ser::SerializeStruct;
17770 let mut s = serializer.serialize_struct("MembersListContinueArg", 1)?;
17771 self.internal_serialize::<S>(&mut s)?;
17772 s.end()
17773 }
17774}
17775
17776#[derive(Debug, Clone, PartialEq, Eq)]
17777#[non_exhaustive] pub enum MembersListContinueError {
17779 InvalidCursor,
17781 Other,
17784}
17785
17786impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueError {
17787 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17788 use serde::de::{self, MapAccess, Visitor};
17790 struct EnumVisitor;
17791 impl<'de> Visitor<'de> for EnumVisitor {
17792 type Value = MembersListContinueError;
17793 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17794 f.write_str("a MembersListContinueError structure")
17795 }
17796 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17797 let tag: &str = match map.next_key()? {
17798 Some(".tag") => map.next_value()?,
17799 _ => return Err(de::Error::missing_field(".tag"))
17800 };
17801 let value = match tag {
17802 "invalid_cursor" => MembersListContinueError::InvalidCursor,
17803 _ => MembersListContinueError::Other,
17804 };
17805 crate::eat_json_fields(&mut map)?;
17806 Ok(value)
17807 }
17808 }
17809 const VARIANTS: &[&str] = &["invalid_cursor",
17810 "other"];
17811 deserializer.deserialize_struct("MembersListContinueError", VARIANTS, EnumVisitor)
17812 }
17813}
17814
17815impl ::serde::ser::Serialize for MembersListContinueError {
17816 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17817 use serde::ser::SerializeStruct;
17819 match self {
17820 MembersListContinueError::InvalidCursor => {
17821 let mut s = serializer.serialize_struct("MembersListContinueError", 1)?;
17823 s.serialize_field(".tag", "invalid_cursor")?;
17824 s.end()
17825 }
17826 MembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17827 }
17828 }
17829}
17830
17831impl ::std::error::Error for MembersListContinueError {
17832}
17833
17834impl ::std::fmt::Display for MembersListContinueError {
17835 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17836 match self {
17837 MembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
17838 _ => write!(f, "{:?}", *self),
17839 }
17840 }
17841}
17842
17843
17844#[derive(Debug, Clone, PartialEq, Eq)]
17845#[non_exhaustive] pub enum MembersListError {
17847 Other,
17850}
17851
17852impl<'de> ::serde::de::Deserialize<'de> for MembersListError {
17853 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17854 use serde::de::{self, MapAccess, Visitor};
17856 struct EnumVisitor;
17857 impl<'de> Visitor<'de> for EnumVisitor {
17858 type Value = MembersListError;
17859 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17860 f.write_str("a MembersListError structure")
17861 }
17862 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17863 let tag: &str = match map.next_key()? {
17864 Some(".tag") => map.next_value()?,
17865 _ => return Err(de::Error::missing_field(".tag"))
17866 };
17867 let _ = tag;
17869 crate::eat_json_fields(&mut map)?;
17870 Ok(MembersListError::Other)
17871 }
17872 }
17873 const VARIANTS: &[&str] = &["other"];
17874 deserializer.deserialize_struct("MembersListError", VARIANTS, EnumVisitor)
17875 }
17876}
17877
17878impl ::serde::ser::Serialize for MembersListError {
17879 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17880 #![allow(unused_variables)]
17882 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
17883 }
17884}
17885
17886impl ::std::error::Error for MembersListError {
17887}
17888
17889impl ::std::fmt::Display for MembersListError {
17890 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17891 write!(f, "{:?}", *self)
17892 }
17893}
17894
17895#[derive(Debug, Clone, PartialEq, Eq)]
17896#[non_exhaustive] pub struct MembersListResult {
17898 pub members: Vec<TeamMemberInfo>,
17900 pub cursor: String,
17903 pub has_more: bool,
17906}
17907
17908impl MembersListResult {
17909 pub fn new(members: Vec<TeamMemberInfo>, cursor: String, has_more: bool) -> Self {
17910 MembersListResult {
17911 members,
17912 cursor,
17913 has_more,
17914 }
17915 }
17916}
17917
17918const MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
17919 "cursor",
17920 "has_more"];
17921impl MembersListResult {
17922 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17923 map: V,
17924 ) -> Result<MembersListResult, V::Error> {
17925 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17926 }
17927
17928 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17929 mut map: V,
17930 optional: bool,
17931 ) -> Result<Option<MembersListResult>, V::Error> {
17932 let mut field_members = None;
17933 let mut field_cursor = None;
17934 let mut field_has_more = None;
17935 let mut nothing = true;
17936 while let Some(key) = map.next_key::<&str>()? {
17937 nothing = false;
17938 match key {
17939 "members" => {
17940 if field_members.is_some() {
17941 return Err(::serde::de::Error::duplicate_field("members"));
17942 }
17943 field_members = Some(map.next_value()?);
17944 }
17945 "cursor" => {
17946 if field_cursor.is_some() {
17947 return Err(::serde::de::Error::duplicate_field("cursor"));
17948 }
17949 field_cursor = Some(map.next_value()?);
17950 }
17951 "has_more" => {
17952 if field_has_more.is_some() {
17953 return Err(::serde::de::Error::duplicate_field("has_more"));
17954 }
17955 field_has_more = Some(map.next_value()?);
17956 }
17957 _ => {
17958 map.next_value::<::serde_json::Value>()?;
17960 }
17961 }
17962 }
17963 if optional && nothing {
17964 return Ok(None);
17965 }
17966 let result = MembersListResult {
17967 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17968 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17969 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
17970 };
17971 Ok(Some(result))
17972 }
17973
17974 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17975 &self,
17976 s: &mut S::SerializeStruct,
17977 ) -> Result<(), S::Error> {
17978 use serde::ser::SerializeStruct;
17979 s.serialize_field("members", &self.members)?;
17980 s.serialize_field("cursor", &self.cursor)?;
17981 s.serialize_field("has_more", &self.has_more)?;
17982 Ok(())
17983 }
17984}
17985
17986impl<'de> ::serde::de::Deserialize<'de> for MembersListResult {
17987 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17988 use serde::de::{MapAccess, Visitor};
17990 struct StructVisitor;
17991 impl<'de> Visitor<'de> for StructVisitor {
17992 type Value = MembersListResult;
17993 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17994 f.write_str("a MembersListResult struct")
17995 }
17996 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17997 MembersListResult::internal_deserialize(map)
17998 }
17999 }
18000 deserializer.deserialize_struct("MembersListResult", MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
18001 }
18002}
18003
18004impl ::serde::ser::Serialize for MembersListResult {
18005 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18006 use serde::ser::SerializeStruct;
18008 let mut s = serializer.serialize_struct("MembersListResult", 3)?;
18009 self.internal_serialize::<S>(&mut s)?;
18010 s.end()
18011 }
18012}
18013
18014#[derive(Debug, Clone, PartialEq, Eq)]
18015#[non_exhaustive] pub struct MembersListV2Result {
18017 pub members: Vec<TeamMemberInfoV2>,
18019 pub cursor: String,
18022 pub has_more: bool,
18026}
18027
18028impl MembersListV2Result {
18029 pub fn new(members: Vec<TeamMemberInfoV2>, cursor: String, has_more: bool) -> Self {
18030 MembersListV2Result {
18031 members,
18032 cursor,
18033 has_more,
18034 }
18035 }
18036}
18037
18038const MEMBERS_LIST_V2_RESULT_FIELDS: &[&str] = &["members",
18039 "cursor",
18040 "has_more"];
18041impl MembersListV2Result {
18042 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18043 map: V,
18044 ) -> Result<MembersListV2Result, V::Error> {
18045 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18046 }
18047
18048 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18049 mut map: V,
18050 optional: bool,
18051 ) -> Result<Option<MembersListV2Result>, V::Error> {
18052 let mut field_members = None;
18053 let mut field_cursor = None;
18054 let mut field_has_more = None;
18055 let mut nothing = true;
18056 while let Some(key) = map.next_key::<&str>()? {
18057 nothing = false;
18058 match key {
18059 "members" => {
18060 if field_members.is_some() {
18061 return Err(::serde::de::Error::duplicate_field("members"));
18062 }
18063 field_members = Some(map.next_value()?);
18064 }
18065 "cursor" => {
18066 if field_cursor.is_some() {
18067 return Err(::serde::de::Error::duplicate_field("cursor"));
18068 }
18069 field_cursor = Some(map.next_value()?);
18070 }
18071 "has_more" => {
18072 if field_has_more.is_some() {
18073 return Err(::serde::de::Error::duplicate_field("has_more"));
18074 }
18075 field_has_more = Some(map.next_value()?);
18076 }
18077 _ => {
18078 map.next_value::<::serde_json::Value>()?;
18080 }
18081 }
18082 }
18083 if optional && nothing {
18084 return Ok(None);
18085 }
18086 let result = MembersListV2Result {
18087 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
18088 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
18089 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
18090 };
18091 Ok(Some(result))
18092 }
18093
18094 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18095 &self,
18096 s: &mut S::SerializeStruct,
18097 ) -> Result<(), S::Error> {
18098 use serde::ser::SerializeStruct;
18099 s.serialize_field("members", &self.members)?;
18100 s.serialize_field("cursor", &self.cursor)?;
18101 s.serialize_field("has_more", &self.has_more)?;
18102 Ok(())
18103 }
18104}
18105
18106impl<'de> ::serde::de::Deserialize<'de> for MembersListV2Result {
18107 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18108 use serde::de::{MapAccess, Visitor};
18110 struct StructVisitor;
18111 impl<'de> Visitor<'de> for StructVisitor {
18112 type Value = MembersListV2Result;
18113 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18114 f.write_str("a MembersListV2Result struct")
18115 }
18116 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18117 MembersListV2Result::internal_deserialize(map)
18118 }
18119 }
18120 deserializer.deserialize_struct("MembersListV2Result", MEMBERS_LIST_V2_RESULT_FIELDS, StructVisitor)
18121 }
18122}
18123
18124impl ::serde::ser::Serialize for MembersListV2Result {
18125 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18126 use serde::ser::SerializeStruct;
18128 let mut s = serializer.serialize_struct("MembersListV2Result", 3)?;
18129 self.internal_serialize::<S>(&mut s)?;
18130 s.end()
18131 }
18132}
18133
18134#[derive(Debug, Clone, PartialEq, Eq)]
18135#[non_exhaustive] pub enum MembersPermanentlyDeleteFilesError {
18137 UserNotFound,
18140 UserNotInTeam,
18142 TransferInProgress,
18144 AlreadyTransferred,
18146 AlreadyTransferredOrDeleted,
18148 Other,
18151}
18152
18153impl<'de> ::serde::de::Deserialize<'de> for MembersPermanentlyDeleteFilesError {
18154 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18155 use serde::de::{self, MapAccess, Visitor};
18157 struct EnumVisitor;
18158 impl<'de> Visitor<'de> for EnumVisitor {
18159 type Value = MembersPermanentlyDeleteFilesError;
18160 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18161 f.write_str("a MembersPermanentlyDeleteFilesError structure")
18162 }
18163 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18164 let tag: &str = match map.next_key()? {
18165 Some(".tag") => map.next_value()?,
18166 _ => return Err(de::Error::missing_field(".tag"))
18167 };
18168 let value = match tag {
18169 "user_not_found" => MembersPermanentlyDeleteFilesError::UserNotFound,
18170 "user_not_in_team" => MembersPermanentlyDeleteFilesError::UserNotInTeam,
18171 "transfer_in_progress" => MembersPermanentlyDeleteFilesError::TransferInProgress,
18172 "already_transferred" => MembersPermanentlyDeleteFilesError::AlreadyTransferred,
18173 "already_transferred_or_deleted" => MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted,
18174 _ => MembersPermanentlyDeleteFilesError::Other,
18175 };
18176 crate::eat_json_fields(&mut map)?;
18177 Ok(value)
18178 }
18179 }
18180 const VARIANTS: &[&str] = &["user_not_found",
18181 "user_not_in_team",
18182 "other",
18183 "transfer_in_progress",
18184 "already_transferred",
18185 "already_transferred_or_deleted"];
18186 deserializer.deserialize_struct("MembersPermanentlyDeleteFilesError", VARIANTS, EnumVisitor)
18187 }
18188}
18189
18190impl ::serde::ser::Serialize for MembersPermanentlyDeleteFilesError {
18191 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18192 use serde::ser::SerializeStruct;
18194 match self {
18195 MembersPermanentlyDeleteFilesError::UserNotFound => {
18196 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18198 s.serialize_field(".tag", "user_not_found")?;
18199 s.end()
18200 }
18201 MembersPermanentlyDeleteFilesError::UserNotInTeam => {
18202 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18204 s.serialize_field(".tag", "user_not_in_team")?;
18205 s.end()
18206 }
18207 MembersPermanentlyDeleteFilesError::TransferInProgress => {
18208 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18210 s.serialize_field(".tag", "transfer_in_progress")?;
18211 s.end()
18212 }
18213 MembersPermanentlyDeleteFilesError::AlreadyTransferred => {
18214 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18216 s.serialize_field(".tag", "already_transferred")?;
18217 s.end()
18218 }
18219 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => {
18220 let mut s = serializer.serialize_struct("MembersPermanentlyDeleteFilesError", 1)?;
18222 s.serialize_field(".tag", "already_transferred_or_deleted")?;
18223 s.end()
18224 }
18225 MembersPermanentlyDeleteFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18226 }
18227 }
18228}
18229
18230impl ::std::error::Error for MembersPermanentlyDeleteFilesError {
18231}
18232
18233impl ::std::fmt::Display for MembersPermanentlyDeleteFilesError {
18234 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18235 match self {
18236 MembersPermanentlyDeleteFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18237 MembersPermanentlyDeleteFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18238 MembersPermanentlyDeleteFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
18239 MembersPermanentlyDeleteFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
18240 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
18241 _ => write!(f, "{:?}", *self),
18242 }
18243 }
18244}
18245
18246impl From<MembersDeactivateError> for MembersPermanentlyDeleteFilesError {
18248 fn from(parent: MembersDeactivateError) -> Self {
18249 match parent {
18250 MembersDeactivateError::UserNotFound => MembersPermanentlyDeleteFilesError::UserNotFound,
18251 MembersDeactivateError::UserNotInTeam => MembersPermanentlyDeleteFilesError::UserNotInTeam,
18252 MembersDeactivateError::Other => MembersPermanentlyDeleteFilesError::Other,
18253 }
18254 }
18255}
18256#[derive(Debug, Clone, PartialEq, Eq)]
18259#[non_exhaustive] pub struct MembersRecoverArg {
18261 pub user: UserSelectorArg,
18263}
18264
18265impl MembersRecoverArg {
18266 pub fn new(user: UserSelectorArg) -> Self {
18267 MembersRecoverArg {
18268 user,
18269 }
18270 }
18271}
18272
18273const MEMBERS_RECOVER_ARG_FIELDS: &[&str] = &["user"];
18274impl MembersRecoverArg {
18275 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18276 map: V,
18277 ) -> Result<MembersRecoverArg, V::Error> {
18278 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18279 }
18280
18281 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18282 mut map: V,
18283 optional: bool,
18284 ) -> Result<Option<MembersRecoverArg>, V::Error> {
18285 let mut field_user = None;
18286 let mut nothing = true;
18287 while let Some(key) = map.next_key::<&str>()? {
18288 nothing = false;
18289 match key {
18290 "user" => {
18291 if field_user.is_some() {
18292 return Err(::serde::de::Error::duplicate_field("user"));
18293 }
18294 field_user = Some(map.next_value()?);
18295 }
18296 _ => {
18297 map.next_value::<::serde_json::Value>()?;
18299 }
18300 }
18301 }
18302 if optional && nothing {
18303 return Ok(None);
18304 }
18305 let result = MembersRecoverArg {
18306 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
18307 };
18308 Ok(Some(result))
18309 }
18310
18311 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18312 &self,
18313 s: &mut S::SerializeStruct,
18314 ) -> Result<(), S::Error> {
18315 use serde::ser::SerializeStruct;
18316 s.serialize_field("user", &self.user)?;
18317 Ok(())
18318 }
18319}
18320
18321impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverArg {
18322 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18323 use serde::de::{MapAccess, Visitor};
18325 struct StructVisitor;
18326 impl<'de> Visitor<'de> for StructVisitor {
18327 type Value = MembersRecoverArg;
18328 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18329 f.write_str("a MembersRecoverArg struct")
18330 }
18331 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18332 MembersRecoverArg::internal_deserialize(map)
18333 }
18334 }
18335 deserializer.deserialize_struct("MembersRecoverArg", MEMBERS_RECOVER_ARG_FIELDS, StructVisitor)
18336 }
18337}
18338
18339impl ::serde::ser::Serialize for MembersRecoverArg {
18340 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18341 use serde::ser::SerializeStruct;
18343 let mut s = serializer.serialize_struct("MembersRecoverArg", 1)?;
18344 self.internal_serialize::<S>(&mut s)?;
18345 s.end()
18346 }
18347}
18348
18349#[derive(Debug, Clone, PartialEq, Eq)]
18350#[non_exhaustive] pub enum MembersRecoverError {
18352 UserNotFound,
18355 UserUnrecoverable,
18357 UserNotInTeam,
18359 TeamLicenseLimit,
18361 Other,
18364}
18365
18366impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverError {
18367 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18368 use serde::de::{self, MapAccess, Visitor};
18370 struct EnumVisitor;
18371 impl<'de> Visitor<'de> for EnumVisitor {
18372 type Value = MembersRecoverError;
18373 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18374 f.write_str("a MembersRecoverError structure")
18375 }
18376 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18377 let tag: &str = match map.next_key()? {
18378 Some(".tag") => map.next_value()?,
18379 _ => return Err(de::Error::missing_field(".tag"))
18380 };
18381 let value = match tag {
18382 "user_not_found" => MembersRecoverError::UserNotFound,
18383 "user_unrecoverable" => MembersRecoverError::UserUnrecoverable,
18384 "user_not_in_team" => MembersRecoverError::UserNotInTeam,
18385 "team_license_limit" => MembersRecoverError::TeamLicenseLimit,
18386 _ => MembersRecoverError::Other,
18387 };
18388 crate::eat_json_fields(&mut map)?;
18389 Ok(value)
18390 }
18391 }
18392 const VARIANTS: &[&str] = &["user_not_found",
18393 "user_unrecoverable",
18394 "user_not_in_team",
18395 "team_license_limit",
18396 "other"];
18397 deserializer.deserialize_struct("MembersRecoverError", VARIANTS, EnumVisitor)
18398 }
18399}
18400
18401impl ::serde::ser::Serialize for MembersRecoverError {
18402 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18403 use serde::ser::SerializeStruct;
18405 match self {
18406 MembersRecoverError::UserNotFound => {
18407 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18409 s.serialize_field(".tag", "user_not_found")?;
18410 s.end()
18411 }
18412 MembersRecoverError::UserUnrecoverable => {
18413 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18415 s.serialize_field(".tag", "user_unrecoverable")?;
18416 s.end()
18417 }
18418 MembersRecoverError::UserNotInTeam => {
18419 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18421 s.serialize_field(".tag", "user_not_in_team")?;
18422 s.end()
18423 }
18424 MembersRecoverError::TeamLicenseLimit => {
18425 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
18427 s.serialize_field(".tag", "team_license_limit")?;
18428 s.end()
18429 }
18430 MembersRecoverError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18431 }
18432 }
18433}
18434
18435impl ::std::error::Error for MembersRecoverError {
18436}
18437
18438impl ::std::fmt::Display for MembersRecoverError {
18439 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18440 match self {
18441 MembersRecoverError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18442 MembersRecoverError::UserUnrecoverable => f.write_str("The user is not recoverable."),
18443 MembersRecoverError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18444 MembersRecoverError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
18445 _ => write!(f, "{:?}", *self),
18446 }
18447 }
18448}
18449
18450impl From<UserSelectorError> for MembersRecoverError {
18452 fn from(parent: UserSelectorError) -> Self {
18453 match parent {
18454 UserSelectorError::UserNotFound => MembersRecoverError::UserNotFound,
18455 }
18456 }
18457}
18458#[derive(Debug, Clone, PartialEq, Eq)]
18459#[non_exhaustive] pub struct MembersRemoveArg {
18461 pub user: UserSelectorArg,
18463 pub wipe_data: bool,
18465 pub transfer_dest_id: Option<UserSelectorArg>,
18467 pub transfer_admin_id: Option<UserSelectorArg>,
18470 pub keep_account: bool,
18474 pub retain_team_shares: bool,
18480 pub permanently_delete_files: bool,
18483}
18484
18485impl MembersRemoveArg {
18486 pub fn new(user: UserSelectorArg) -> Self {
18487 MembersRemoveArg {
18488 user,
18489 wipe_data: true,
18490 transfer_dest_id: None,
18491 transfer_admin_id: None,
18492 keep_account: false,
18493 retain_team_shares: false,
18494 permanently_delete_files: false,
18495 }
18496 }
18497
18498 pub fn with_wipe_data(mut self, value: bool) -> Self {
18499 self.wipe_data = value;
18500 self
18501 }
18502
18503 pub fn with_transfer_dest_id(mut self, value: UserSelectorArg) -> Self {
18504 self.transfer_dest_id = Some(value);
18505 self
18506 }
18507
18508 pub fn with_transfer_admin_id(mut self, value: UserSelectorArg) -> Self {
18509 self.transfer_admin_id = Some(value);
18510 self
18511 }
18512
18513 pub fn with_keep_account(mut self, value: bool) -> Self {
18514 self.keep_account = value;
18515 self
18516 }
18517
18518 pub fn with_retain_team_shares(mut self, value: bool) -> Self {
18519 self.retain_team_shares = value;
18520 self
18521 }
18522
18523 pub fn with_permanently_delete_files(mut self, value: bool) -> Self {
18524 self.permanently_delete_files = value;
18525 self
18526 }
18527}
18528
18529const MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["user",
18530 "wipe_data",
18531 "transfer_dest_id",
18532 "transfer_admin_id",
18533 "keep_account",
18534 "retain_team_shares",
18535 "permanently_delete_files"];
18536impl MembersRemoveArg {
18537 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18538 map: V,
18539 ) -> Result<MembersRemoveArg, V::Error> {
18540 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18541 }
18542
18543 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18544 mut map: V,
18545 optional: bool,
18546 ) -> Result<Option<MembersRemoveArg>, V::Error> {
18547 let mut field_user = None;
18548 let mut field_wipe_data = None;
18549 let mut field_transfer_dest_id = None;
18550 let mut field_transfer_admin_id = None;
18551 let mut field_keep_account = None;
18552 let mut field_retain_team_shares = None;
18553 let mut field_permanently_delete_files = None;
18554 let mut nothing = true;
18555 while let Some(key) = map.next_key::<&str>()? {
18556 nothing = false;
18557 match key {
18558 "user" => {
18559 if field_user.is_some() {
18560 return Err(::serde::de::Error::duplicate_field("user"));
18561 }
18562 field_user = Some(map.next_value()?);
18563 }
18564 "wipe_data" => {
18565 if field_wipe_data.is_some() {
18566 return Err(::serde::de::Error::duplicate_field("wipe_data"));
18567 }
18568 field_wipe_data = Some(map.next_value()?);
18569 }
18570 "transfer_dest_id" => {
18571 if field_transfer_dest_id.is_some() {
18572 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
18573 }
18574 field_transfer_dest_id = Some(map.next_value()?);
18575 }
18576 "transfer_admin_id" => {
18577 if field_transfer_admin_id.is_some() {
18578 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
18579 }
18580 field_transfer_admin_id = Some(map.next_value()?);
18581 }
18582 "keep_account" => {
18583 if field_keep_account.is_some() {
18584 return Err(::serde::de::Error::duplicate_field("keep_account"));
18585 }
18586 field_keep_account = Some(map.next_value()?);
18587 }
18588 "retain_team_shares" => {
18589 if field_retain_team_shares.is_some() {
18590 return Err(::serde::de::Error::duplicate_field("retain_team_shares"));
18591 }
18592 field_retain_team_shares = Some(map.next_value()?);
18593 }
18594 "permanently_delete_files" => {
18595 if field_permanently_delete_files.is_some() {
18596 return Err(::serde::de::Error::duplicate_field("permanently_delete_files"));
18597 }
18598 field_permanently_delete_files = Some(map.next_value()?);
18599 }
18600 _ => {
18601 map.next_value::<::serde_json::Value>()?;
18603 }
18604 }
18605 }
18606 if optional && nothing {
18607 return Ok(None);
18608 }
18609 let result = MembersRemoveArg {
18610 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
18611 wipe_data: field_wipe_data.unwrap_or(true),
18612 transfer_dest_id: field_transfer_dest_id.and_then(Option::flatten),
18613 transfer_admin_id: field_transfer_admin_id.and_then(Option::flatten),
18614 keep_account: field_keep_account.unwrap_or(false),
18615 retain_team_shares: field_retain_team_shares.unwrap_or(false),
18616 permanently_delete_files: field_permanently_delete_files.unwrap_or(false),
18617 };
18618 Ok(Some(result))
18619 }
18620
18621 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18622 &self,
18623 s: &mut S::SerializeStruct,
18624 ) -> Result<(), S::Error> {
18625 use serde::ser::SerializeStruct;
18626 s.serialize_field("user", &self.user)?;
18627 if !self.wipe_data {
18628 s.serialize_field("wipe_data", &self.wipe_data)?;
18629 }
18630 if let Some(val) = &self.transfer_dest_id {
18631 s.serialize_field("transfer_dest_id", val)?;
18632 }
18633 if let Some(val) = &self.transfer_admin_id {
18634 s.serialize_field("transfer_admin_id", val)?;
18635 }
18636 if self.keep_account {
18637 s.serialize_field("keep_account", &self.keep_account)?;
18638 }
18639 if self.retain_team_shares {
18640 s.serialize_field("retain_team_shares", &self.retain_team_shares)?;
18641 }
18642 if self.permanently_delete_files {
18643 s.serialize_field("permanently_delete_files", &self.permanently_delete_files)?;
18644 }
18645 Ok(())
18646 }
18647}
18648
18649impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveArg {
18650 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18651 use serde::de::{MapAccess, Visitor};
18653 struct StructVisitor;
18654 impl<'de> Visitor<'de> for StructVisitor {
18655 type Value = MembersRemoveArg;
18656 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18657 f.write_str("a MembersRemoveArg struct")
18658 }
18659 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18660 MembersRemoveArg::internal_deserialize(map)
18661 }
18662 }
18663 deserializer.deserialize_struct("MembersRemoveArg", MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
18664 }
18665}
18666
18667impl ::serde::ser::Serialize for MembersRemoveArg {
18668 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18669 use serde::ser::SerializeStruct;
18671 let mut s = serializer.serialize_struct("MembersRemoveArg", 7)?;
18672 self.internal_serialize::<S>(&mut s)?;
18673 s.end()
18674 }
18675}
18676
18677impl From<MembersRemoveArg> for MembersDeactivateArg {
18679 fn from(subtype: MembersRemoveArg) -> Self {
18680 Self {
18681 user: subtype.user,
18682 wipe_data: subtype.wipe_data,
18683 }
18684 }
18685}
18686#[derive(Debug, Clone, PartialEq, Eq)]
18687#[non_exhaustive] pub enum MembersRemoveError {
18689 UserNotFound,
18692 UserNotInTeam,
18694 TransferInProgress,
18696 AlreadyTransferred,
18698 AlreadyTransferredOrDeleted,
18700 RemovedAndTransferDestShouldDiffer,
18702 RemovedAndTransferAdminShouldDiffer,
18704 TransferDestUserNotFound,
18706 TransferDestUserNotInTeam,
18708 TransferAdminUserNotInTeam,
18710 TransferAdminUserNotFound,
18712 UnspecifiedTransferAdminId,
18714 TransferAdminIsNotAdmin,
18716 RecipientNotVerified,
18718 RemoveLastAdmin,
18720 CannotKeepAccountAndTransfer,
18722 CannotKeepAccountAndDeleteData,
18725 CannotKeepAccountAndPermanentlyDelete,
18728 EmailAddressTooLongToBeDisabled,
18730 CannotKeepInvitedUserAccount,
18732 CannotRetainSharesWhenDataWiped,
18735 CannotRetainSharesWhenNoAccountKept,
18738 CannotRetainSharesWhenTeamExternalSharingOff,
18741 CannotKeepAccount,
18743 CannotKeepAccountUnderLegalHold,
18746 CannotKeepAccountRequiredToSignTos,
18749 CannotPermanentlyDeleteAndTransfer,
18751 MemberIsTransferDestination,
18754 Other,
18757}
18758
18759impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveError {
18760 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18761 use serde::de::{self, MapAccess, Visitor};
18763 struct EnumVisitor;
18764 impl<'de> Visitor<'de> for EnumVisitor {
18765 type Value = MembersRemoveError;
18766 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18767 f.write_str("a MembersRemoveError structure")
18768 }
18769 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18770 let tag: &str = match map.next_key()? {
18771 Some(".tag") => map.next_value()?,
18772 _ => return Err(de::Error::missing_field(".tag"))
18773 };
18774 let value = match tag {
18775 "user_not_found" => MembersRemoveError::UserNotFound,
18776 "user_not_in_team" => MembersRemoveError::UserNotInTeam,
18777 "transfer_in_progress" => MembersRemoveError::TransferInProgress,
18778 "already_transferred" => MembersRemoveError::AlreadyTransferred,
18779 "already_transferred_or_deleted" => MembersRemoveError::AlreadyTransferredOrDeleted,
18780 "removed_and_transfer_dest_should_differ" => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
18781 "removed_and_transfer_admin_should_differ" => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
18782 "transfer_dest_user_not_found" => MembersRemoveError::TransferDestUserNotFound,
18783 "transfer_dest_user_not_in_team" => MembersRemoveError::TransferDestUserNotInTeam,
18784 "transfer_admin_user_not_in_team" => MembersRemoveError::TransferAdminUserNotInTeam,
18785 "transfer_admin_user_not_found" => MembersRemoveError::TransferAdminUserNotFound,
18786 "unspecified_transfer_admin_id" => MembersRemoveError::UnspecifiedTransferAdminId,
18787 "transfer_admin_is_not_admin" => MembersRemoveError::TransferAdminIsNotAdmin,
18788 "recipient_not_verified" => MembersRemoveError::RecipientNotVerified,
18789 "remove_last_admin" => MembersRemoveError::RemoveLastAdmin,
18790 "cannot_keep_account_and_transfer" => MembersRemoveError::CannotKeepAccountAndTransfer,
18791 "cannot_keep_account_and_delete_data" => MembersRemoveError::CannotKeepAccountAndDeleteData,
18792 "cannot_keep_account_and_permanently_delete" => MembersRemoveError::CannotKeepAccountAndPermanentlyDelete,
18793 "email_address_too_long_to_be_disabled" => MembersRemoveError::EmailAddressTooLongToBeDisabled,
18794 "cannot_keep_invited_user_account" => MembersRemoveError::CannotKeepInvitedUserAccount,
18795 "cannot_retain_shares_when_data_wiped" => MembersRemoveError::CannotRetainSharesWhenDataWiped,
18796 "cannot_retain_shares_when_no_account_kept" => MembersRemoveError::CannotRetainSharesWhenNoAccountKept,
18797 "cannot_retain_shares_when_team_external_sharing_off" => MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff,
18798 "cannot_keep_account" => MembersRemoveError::CannotKeepAccount,
18799 "cannot_keep_account_under_legal_hold" => MembersRemoveError::CannotKeepAccountUnderLegalHold,
18800 "cannot_keep_account_required_to_sign_tos" => MembersRemoveError::CannotKeepAccountRequiredToSignTos,
18801 "cannot_permanently_delete_and_transfer" => MembersRemoveError::CannotPermanentlyDeleteAndTransfer,
18802 "member_is_transfer_destination" => MembersRemoveError::MemberIsTransferDestination,
18803 _ => MembersRemoveError::Other,
18804 };
18805 crate::eat_json_fields(&mut map)?;
18806 Ok(value)
18807 }
18808 }
18809 const VARIANTS: &[&str] = &["user_not_found",
18810 "user_not_in_team",
18811 "other",
18812 "transfer_in_progress",
18813 "already_transferred",
18814 "already_transferred_or_deleted",
18815 "removed_and_transfer_dest_should_differ",
18816 "removed_and_transfer_admin_should_differ",
18817 "transfer_dest_user_not_found",
18818 "transfer_dest_user_not_in_team",
18819 "transfer_admin_user_not_in_team",
18820 "transfer_admin_user_not_found",
18821 "unspecified_transfer_admin_id",
18822 "transfer_admin_is_not_admin",
18823 "recipient_not_verified",
18824 "remove_last_admin",
18825 "cannot_keep_account_and_transfer",
18826 "cannot_keep_account_and_delete_data",
18827 "cannot_keep_account_and_permanently_delete",
18828 "email_address_too_long_to_be_disabled",
18829 "cannot_keep_invited_user_account",
18830 "cannot_retain_shares_when_data_wiped",
18831 "cannot_retain_shares_when_no_account_kept",
18832 "cannot_retain_shares_when_team_external_sharing_off",
18833 "cannot_keep_account",
18834 "cannot_keep_account_under_legal_hold",
18835 "cannot_keep_account_required_to_sign_tos",
18836 "cannot_permanently_delete_and_transfer",
18837 "member_is_transfer_destination"];
18838 deserializer.deserialize_struct("MembersRemoveError", VARIANTS, EnumVisitor)
18839 }
18840}
18841
18842impl ::serde::ser::Serialize for MembersRemoveError {
18843 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18844 use serde::ser::SerializeStruct;
18846 match self {
18847 MembersRemoveError::UserNotFound => {
18848 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18850 s.serialize_field(".tag", "user_not_found")?;
18851 s.end()
18852 }
18853 MembersRemoveError::UserNotInTeam => {
18854 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18856 s.serialize_field(".tag", "user_not_in_team")?;
18857 s.end()
18858 }
18859 MembersRemoveError::TransferInProgress => {
18860 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18862 s.serialize_field(".tag", "transfer_in_progress")?;
18863 s.end()
18864 }
18865 MembersRemoveError::AlreadyTransferred => {
18866 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18868 s.serialize_field(".tag", "already_transferred")?;
18869 s.end()
18870 }
18871 MembersRemoveError::AlreadyTransferredOrDeleted => {
18872 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18874 s.serialize_field(".tag", "already_transferred_or_deleted")?;
18875 s.end()
18876 }
18877 MembersRemoveError::RemovedAndTransferDestShouldDiffer => {
18878 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18880 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
18881 s.end()
18882 }
18883 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => {
18884 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18886 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
18887 s.end()
18888 }
18889 MembersRemoveError::TransferDestUserNotFound => {
18890 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18892 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
18893 s.end()
18894 }
18895 MembersRemoveError::TransferDestUserNotInTeam => {
18896 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18898 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
18899 s.end()
18900 }
18901 MembersRemoveError::TransferAdminUserNotInTeam => {
18902 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18904 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
18905 s.end()
18906 }
18907 MembersRemoveError::TransferAdminUserNotFound => {
18908 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18910 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
18911 s.end()
18912 }
18913 MembersRemoveError::UnspecifiedTransferAdminId => {
18914 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18916 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
18917 s.end()
18918 }
18919 MembersRemoveError::TransferAdminIsNotAdmin => {
18920 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18922 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
18923 s.end()
18924 }
18925 MembersRemoveError::RecipientNotVerified => {
18926 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18928 s.serialize_field(".tag", "recipient_not_verified")?;
18929 s.end()
18930 }
18931 MembersRemoveError::RemoveLastAdmin => {
18932 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18934 s.serialize_field(".tag", "remove_last_admin")?;
18935 s.end()
18936 }
18937 MembersRemoveError::CannotKeepAccountAndTransfer => {
18938 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18940 s.serialize_field(".tag", "cannot_keep_account_and_transfer")?;
18941 s.end()
18942 }
18943 MembersRemoveError::CannotKeepAccountAndDeleteData => {
18944 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18946 s.serialize_field(".tag", "cannot_keep_account_and_delete_data")?;
18947 s.end()
18948 }
18949 MembersRemoveError::CannotKeepAccountAndPermanentlyDelete => {
18950 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18952 s.serialize_field(".tag", "cannot_keep_account_and_permanently_delete")?;
18953 s.end()
18954 }
18955 MembersRemoveError::EmailAddressTooLongToBeDisabled => {
18956 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18958 s.serialize_field(".tag", "email_address_too_long_to_be_disabled")?;
18959 s.end()
18960 }
18961 MembersRemoveError::CannotKeepInvitedUserAccount => {
18962 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18964 s.serialize_field(".tag", "cannot_keep_invited_user_account")?;
18965 s.end()
18966 }
18967 MembersRemoveError::CannotRetainSharesWhenDataWiped => {
18968 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18970 s.serialize_field(".tag", "cannot_retain_shares_when_data_wiped")?;
18971 s.end()
18972 }
18973 MembersRemoveError::CannotRetainSharesWhenNoAccountKept => {
18974 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18976 s.serialize_field(".tag", "cannot_retain_shares_when_no_account_kept")?;
18977 s.end()
18978 }
18979 MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff => {
18980 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18982 s.serialize_field(".tag", "cannot_retain_shares_when_team_external_sharing_off")?;
18983 s.end()
18984 }
18985 MembersRemoveError::CannotKeepAccount => {
18986 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18988 s.serialize_field(".tag", "cannot_keep_account")?;
18989 s.end()
18990 }
18991 MembersRemoveError::CannotKeepAccountUnderLegalHold => {
18992 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18994 s.serialize_field(".tag", "cannot_keep_account_under_legal_hold")?;
18995 s.end()
18996 }
18997 MembersRemoveError::CannotKeepAccountRequiredToSignTos => {
18998 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19000 s.serialize_field(".tag", "cannot_keep_account_required_to_sign_tos")?;
19001 s.end()
19002 }
19003 MembersRemoveError::CannotPermanentlyDeleteAndTransfer => {
19004 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19006 s.serialize_field(".tag", "cannot_permanently_delete_and_transfer")?;
19007 s.end()
19008 }
19009 MembersRemoveError::MemberIsTransferDestination => {
19010 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
19012 s.serialize_field(".tag", "member_is_transfer_destination")?;
19013 s.end()
19014 }
19015 MembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19016 }
19017 }
19018}
19019
19020impl ::std::error::Error for MembersRemoveError {
19021}
19022
19023impl ::std::fmt::Display for MembersRemoveError {
19024 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19025 match self {
19026 MembersRemoveError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19027 MembersRemoveError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19028 MembersRemoveError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
19029 MembersRemoveError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
19030 MembersRemoveError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
19031 MembersRemoveError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
19032 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
19033 MembersRemoveError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
19034 MembersRemoveError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
19035 MembersRemoveError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
19036 MembersRemoveError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
19037 MembersRemoveError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
19038 MembersRemoveError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
19039 MembersRemoveError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
19040 MembersRemoveError::RemoveLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be removed from it."),
19041 MembersRemoveError::CannotKeepAccountAndTransfer => f.write_str("Cannot keep account and transfer the data to another user at the same time."),
19042 MembersRemoveError::EmailAddressTooLongToBeDisabled => f.write_str("The email address of the user is too long to be disabled."),
19043 MembersRemoveError::CannotKeepInvitedUserAccount => f.write_str("Cannot keep account of an invited user."),
19044 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."),
19045 MembersRemoveError::CannotKeepAccount => f.write_str("Only a team admin, can convert this account to a Basic account."),
19046 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."),
19047 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."),
19048 MembersRemoveError::CannotPermanentlyDeleteAndTransfer => f.write_str("Cannot permanently delete files and transfer the data to another user at the same time."),
19049 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."),
19050 _ => write!(f, "{:?}", *self),
19051 }
19052 }
19053}
19054
19055impl From<MembersTransferFilesError> for MembersRemoveError {
19057 fn from(parent: MembersTransferFilesError) -> Self {
19058 match parent {
19059 MembersTransferFilesError::UserNotFound => MembersRemoveError::UserNotFound,
19060 MembersTransferFilesError::UserNotInTeam => MembersRemoveError::UserNotInTeam,
19061 MembersTransferFilesError::Other => MembersRemoveError::Other,
19062 MembersTransferFilesError::TransferInProgress => MembersRemoveError::TransferInProgress,
19063 MembersTransferFilesError::AlreadyTransferred => MembersRemoveError::AlreadyTransferred,
19064 MembersTransferFilesError::AlreadyTransferredOrDeleted => MembersRemoveError::AlreadyTransferredOrDeleted,
19065 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
19066 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
19067 MembersTransferFilesError::TransferDestUserNotFound => MembersRemoveError::TransferDestUserNotFound,
19068 MembersTransferFilesError::TransferDestUserNotInTeam => MembersRemoveError::TransferDestUserNotInTeam,
19069 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersRemoveError::TransferAdminUserNotInTeam,
19070 MembersTransferFilesError::TransferAdminUserNotFound => MembersRemoveError::TransferAdminUserNotFound,
19071 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersRemoveError::UnspecifiedTransferAdminId,
19072 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersRemoveError::TransferAdminIsNotAdmin,
19073 MembersTransferFilesError::RecipientNotVerified => MembersRemoveError::RecipientNotVerified,
19074 }
19075 }
19076}
19077
19078#[derive(Debug, Clone, PartialEq, Eq)]
19079#[non_exhaustive] pub enum MembersSendWelcomeError {
19081 UserNotFound,
19084 UserNotInTeam,
19086 Other,
19089}
19090
19091impl<'de> ::serde::de::Deserialize<'de> for MembersSendWelcomeError {
19092 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19093 use serde::de::{self, MapAccess, Visitor};
19095 struct EnumVisitor;
19096 impl<'de> Visitor<'de> for EnumVisitor {
19097 type Value = MembersSendWelcomeError;
19098 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19099 f.write_str("a MembersSendWelcomeError structure")
19100 }
19101 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19102 let tag: &str = match map.next_key()? {
19103 Some(".tag") => map.next_value()?,
19104 _ => return Err(de::Error::missing_field(".tag"))
19105 };
19106 let value = match tag {
19107 "user_not_found" => MembersSendWelcomeError::UserNotFound,
19108 "user_not_in_team" => MembersSendWelcomeError::UserNotInTeam,
19109 _ => MembersSendWelcomeError::Other,
19110 };
19111 crate::eat_json_fields(&mut map)?;
19112 Ok(value)
19113 }
19114 }
19115 const VARIANTS: &[&str] = &["user_not_found",
19116 "user_not_in_team",
19117 "other"];
19118 deserializer.deserialize_struct("MembersSendWelcomeError", VARIANTS, EnumVisitor)
19119 }
19120}
19121
19122impl ::serde::ser::Serialize for MembersSendWelcomeError {
19123 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19124 use serde::ser::SerializeStruct;
19126 match self {
19127 MembersSendWelcomeError::UserNotFound => {
19128 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
19130 s.serialize_field(".tag", "user_not_found")?;
19131 s.end()
19132 }
19133 MembersSendWelcomeError::UserNotInTeam => {
19134 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
19136 s.serialize_field(".tag", "user_not_in_team")?;
19137 s.end()
19138 }
19139 MembersSendWelcomeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19140 }
19141 }
19142}
19143
19144impl ::std::error::Error for MembersSendWelcomeError {
19145}
19146
19147impl ::std::fmt::Display for MembersSendWelcomeError {
19148 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19149 match self {
19150 MembersSendWelcomeError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19151 MembersSendWelcomeError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19152 _ => write!(f, "{:?}", *self),
19153 }
19154 }
19155}
19156
19157impl From<MemberSelectorError> for MembersSendWelcomeError {
19159 fn from(parent: MemberSelectorError) -> Self {
19160 match parent {
19161 MemberSelectorError::UserNotFound => MembersSendWelcomeError::UserNotFound,
19162 MemberSelectorError::UserNotInTeam => MembersSendWelcomeError::UserNotInTeam,
19163 }
19164 }
19165}
19166#[derive(Debug, Clone, PartialEq, Eq)]
19169#[non_exhaustive] pub struct MembersSetPermissions2Arg {
19171 pub user: UserSelectorArg,
19173 pub new_roles: Option<Vec<TeamMemberRoleId>>,
19176}
19177
19178impl MembersSetPermissions2Arg {
19179 pub fn new(user: UserSelectorArg) -> Self {
19180 MembersSetPermissions2Arg {
19181 user,
19182 new_roles: None,
19183 }
19184 }
19185
19186 pub fn with_new_roles(mut self, value: Vec<TeamMemberRoleId>) -> Self {
19187 self.new_roles = Some(value);
19188 self
19189 }
19190}
19191
19192const MEMBERS_SET_PERMISSIONS2_ARG_FIELDS: &[&str] = &["user",
19193 "new_roles"];
19194impl MembersSetPermissions2Arg {
19195 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19196 map: V,
19197 ) -> Result<MembersSetPermissions2Arg, V::Error> {
19198 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19199 }
19200
19201 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19202 mut map: V,
19203 optional: bool,
19204 ) -> Result<Option<MembersSetPermissions2Arg>, V::Error> {
19205 let mut field_user = None;
19206 let mut field_new_roles = None;
19207 let mut nothing = true;
19208 while let Some(key) = map.next_key::<&str>()? {
19209 nothing = false;
19210 match key {
19211 "user" => {
19212 if field_user.is_some() {
19213 return Err(::serde::de::Error::duplicate_field("user"));
19214 }
19215 field_user = Some(map.next_value()?);
19216 }
19217 "new_roles" => {
19218 if field_new_roles.is_some() {
19219 return Err(::serde::de::Error::duplicate_field("new_roles"));
19220 }
19221 field_new_roles = Some(map.next_value()?);
19222 }
19223 _ => {
19224 map.next_value::<::serde_json::Value>()?;
19226 }
19227 }
19228 }
19229 if optional && nothing {
19230 return Ok(None);
19231 }
19232 let result = MembersSetPermissions2Arg {
19233 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19234 new_roles: field_new_roles.and_then(Option::flatten),
19235 };
19236 Ok(Some(result))
19237 }
19238
19239 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19240 &self,
19241 s: &mut S::SerializeStruct,
19242 ) -> Result<(), S::Error> {
19243 use serde::ser::SerializeStruct;
19244 s.serialize_field("user", &self.user)?;
19245 if let Some(val) = &self.new_roles {
19246 s.serialize_field("new_roles", val)?;
19247 }
19248 Ok(())
19249 }
19250}
19251
19252impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Arg {
19253 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19254 use serde::de::{MapAccess, Visitor};
19256 struct StructVisitor;
19257 impl<'de> Visitor<'de> for StructVisitor {
19258 type Value = MembersSetPermissions2Arg;
19259 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19260 f.write_str("a MembersSetPermissions2Arg struct")
19261 }
19262 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19263 MembersSetPermissions2Arg::internal_deserialize(map)
19264 }
19265 }
19266 deserializer.deserialize_struct("MembersSetPermissions2Arg", MEMBERS_SET_PERMISSIONS2_ARG_FIELDS, StructVisitor)
19267 }
19268}
19269
19270impl ::serde::ser::Serialize for MembersSetPermissions2Arg {
19271 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19272 use serde::ser::SerializeStruct;
19274 let mut s = serializer.serialize_struct("MembersSetPermissions2Arg", 2)?;
19275 self.internal_serialize::<S>(&mut s)?;
19276 s.end()
19277 }
19278}
19279
19280#[derive(Debug, Clone, PartialEq, Eq)]
19281#[non_exhaustive] pub enum MembersSetPermissions2Error {
19283 UserNotFound,
19286 LastAdmin,
19288 UserNotInTeam,
19290 CannotSetPermissions,
19292 RoleNotFound,
19294 Other,
19297}
19298
19299impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Error {
19300 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19301 use serde::de::{self, MapAccess, Visitor};
19303 struct EnumVisitor;
19304 impl<'de> Visitor<'de> for EnumVisitor {
19305 type Value = MembersSetPermissions2Error;
19306 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19307 f.write_str("a MembersSetPermissions2Error structure")
19308 }
19309 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19310 let tag: &str = match map.next_key()? {
19311 Some(".tag") => map.next_value()?,
19312 _ => return Err(de::Error::missing_field(".tag"))
19313 };
19314 let value = match tag {
19315 "user_not_found" => MembersSetPermissions2Error::UserNotFound,
19316 "last_admin" => MembersSetPermissions2Error::LastAdmin,
19317 "user_not_in_team" => MembersSetPermissions2Error::UserNotInTeam,
19318 "cannot_set_permissions" => MembersSetPermissions2Error::CannotSetPermissions,
19319 "role_not_found" => MembersSetPermissions2Error::RoleNotFound,
19320 _ => MembersSetPermissions2Error::Other,
19321 };
19322 crate::eat_json_fields(&mut map)?;
19323 Ok(value)
19324 }
19325 }
19326 const VARIANTS: &[&str] = &["user_not_found",
19327 "last_admin",
19328 "user_not_in_team",
19329 "cannot_set_permissions",
19330 "role_not_found",
19331 "other"];
19332 deserializer.deserialize_struct("MembersSetPermissions2Error", VARIANTS, EnumVisitor)
19333 }
19334}
19335
19336impl ::serde::ser::Serialize for MembersSetPermissions2Error {
19337 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19338 use serde::ser::SerializeStruct;
19340 match self {
19341 MembersSetPermissions2Error::UserNotFound => {
19342 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19344 s.serialize_field(".tag", "user_not_found")?;
19345 s.end()
19346 }
19347 MembersSetPermissions2Error::LastAdmin => {
19348 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19350 s.serialize_field(".tag", "last_admin")?;
19351 s.end()
19352 }
19353 MembersSetPermissions2Error::UserNotInTeam => {
19354 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19356 s.serialize_field(".tag", "user_not_in_team")?;
19357 s.end()
19358 }
19359 MembersSetPermissions2Error::CannotSetPermissions => {
19360 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19362 s.serialize_field(".tag", "cannot_set_permissions")?;
19363 s.end()
19364 }
19365 MembersSetPermissions2Error::RoleNotFound => {
19366 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
19368 s.serialize_field(".tag", "role_not_found")?;
19369 s.end()
19370 }
19371 MembersSetPermissions2Error::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19372 }
19373 }
19374}
19375
19376impl ::std::error::Error for MembersSetPermissions2Error {
19377}
19378
19379impl ::std::fmt::Display for MembersSetPermissions2Error {
19380 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19381 match self {
19382 MembersSetPermissions2Error::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19383 MembersSetPermissions2Error::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
19384 MembersSetPermissions2Error::UserNotInTeam => f.write_str("The user is not a member of the team."),
19385 MembersSetPermissions2Error::CannotSetPermissions => f.write_str("Cannot remove/grant permissions. This can happen if the team member is suspended."),
19386 MembersSetPermissions2Error::RoleNotFound => f.write_str("No matching role found. At least one of the provided new_roles does not exist on this team."),
19387 _ => write!(f, "{:?}", *self),
19388 }
19389 }
19390}
19391
19392impl From<UserSelectorError> for MembersSetPermissions2Error {
19394 fn from(parent: UserSelectorError) -> Self {
19395 match parent {
19396 UserSelectorError::UserNotFound => MembersSetPermissions2Error::UserNotFound,
19397 }
19398 }
19399}
19400#[derive(Debug, Clone, PartialEq, Eq)]
19401#[non_exhaustive] pub struct MembersSetPermissions2Result {
19403 pub team_member_id: crate::types::team_common::TeamMemberId,
19405 pub roles: Option<Vec<TeamMemberRole>>,
19407}
19408
19409impl MembersSetPermissions2Result {
19410 pub fn new(team_member_id: crate::types::team_common::TeamMemberId) -> Self {
19411 MembersSetPermissions2Result {
19412 team_member_id,
19413 roles: None,
19414 }
19415 }
19416
19417 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
19418 self.roles = Some(value);
19419 self
19420 }
19421}
19422
19423const MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS: &[&str] = &["team_member_id",
19424 "roles"];
19425impl MembersSetPermissions2Result {
19426 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19427 map: V,
19428 ) -> Result<MembersSetPermissions2Result, V::Error> {
19429 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19430 }
19431
19432 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19433 mut map: V,
19434 optional: bool,
19435 ) -> Result<Option<MembersSetPermissions2Result>, V::Error> {
19436 let mut field_team_member_id = None;
19437 let mut field_roles = None;
19438 let mut nothing = true;
19439 while let Some(key) = map.next_key::<&str>()? {
19440 nothing = false;
19441 match key {
19442 "team_member_id" => {
19443 if field_team_member_id.is_some() {
19444 return Err(::serde::de::Error::duplicate_field("team_member_id"));
19445 }
19446 field_team_member_id = Some(map.next_value()?);
19447 }
19448 "roles" => {
19449 if field_roles.is_some() {
19450 return Err(::serde::de::Error::duplicate_field("roles"));
19451 }
19452 field_roles = Some(map.next_value()?);
19453 }
19454 _ => {
19455 map.next_value::<::serde_json::Value>()?;
19457 }
19458 }
19459 }
19460 if optional && nothing {
19461 return Ok(None);
19462 }
19463 let result = MembersSetPermissions2Result {
19464 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
19465 roles: field_roles.and_then(Option::flatten),
19466 };
19467 Ok(Some(result))
19468 }
19469
19470 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19471 &self,
19472 s: &mut S::SerializeStruct,
19473 ) -> Result<(), S::Error> {
19474 use serde::ser::SerializeStruct;
19475 s.serialize_field("team_member_id", &self.team_member_id)?;
19476 if let Some(val) = &self.roles {
19477 s.serialize_field("roles", val)?;
19478 }
19479 Ok(())
19480 }
19481}
19482
19483impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Result {
19484 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19485 use serde::de::{MapAccess, Visitor};
19487 struct StructVisitor;
19488 impl<'de> Visitor<'de> for StructVisitor {
19489 type Value = MembersSetPermissions2Result;
19490 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19491 f.write_str("a MembersSetPermissions2Result struct")
19492 }
19493 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19494 MembersSetPermissions2Result::internal_deserialize(map)
19495 }
19496 }
19497 deserializer.deserialize_struct("MembersSetPermissions2Result", MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS, StructVisitor)
19498 }
19499}
19500
19501impl ::serde::ser::Serialize for MembersSetPermissions2Result {
19502 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19503 use serde::ser::SerializeStruct;
19505 let mut s = serializer.serialize_struct("MembersSetPermissions2Result", 2)?;
19506 self.internal_serialize::<S>(&mut s)?;
19507 s.end()
19508 }
19509}
19510
19511#[derive(Debug, Clone, PartialEq, Eq)]
19514#[non_exhaustive] pub struct MembersSetPermissionsArg {
19516 pub user: UserSelectorArg,
19518 pub new_role: AdminTier,
19520}
19521
19522impl MembersSetPermissionsArg {
19523 pub fn new(user: UserSelectorArg, new_role: AdminTier) -> Self {
19524 MembersSetPermissionsArg {
19525 user,
19526 new_role,
19527 }
19528 }
19529}
19530
19531const MEMBERS_SET_PERMISSIONS_ARG_FIELDS: &[&str] = &["user",
19532 "new_role"];
19533impl MembersSetPermissionsArg {
19534 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19535 map: V,
19536 ) -> Result<MembersSetPermissionsArg, V::Error> {
19537 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19538 }
19539
19540 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19541 mut map: V,
19542 optional: bool,
19543 ) -> Result<Option<MembersSetPermissionsArg>, V::Error> {
19544 let mut field_user = None;
19545 let mut field_new_role = None;
19546 let mut nothing = true;
19547 while let Some(key) = map.next_key::<&str>()? {
19548 nothing = false;
19549 match key {
19550 "user" => {
19551 if field_user.is_some() {
19552 return Err(::serde::de::Error::duplicate_field("user"));
19553 }
19554 field_user = Some(map.next_value()?);
19555 }
19556 "new_role" => {
19557 if field_new_role.is_some() {
19558 return Err(::serde::de::Error::duplicate_field("new_role"));
19559 }
19560 field_new_role = Some(map.next_value()?);
19561 }
19562 _ => {
19563 map.next_value::<::serde_json::Value>()?;
19565 }
19566 }
19567 }
19568 if optional && nothing {
19569 return Ok(None);
19570 }
19571 let result = MembersSetPermissionsArg {
19572 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19573 new_role: field_new_role.ok_or_else(|| ::serde::de::Error::missing_field("new_role"))?,
19574 };
19575 Ok(Some(result))
19576 }
19577
19578 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19579 &self,
19580 s: &mut S::SerializeStruct,
19581 ) -> Result<(), S::Error> {
19582 use serde::ser::SerializeStruct;
19583 s.serialize_field("user", &self.user)?;
19584 s.serialize_field("new_role", &self.new_role)?;
19585 Ok(())
19586 }
19587}
19588
19589impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsArg {
19590 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19591 use serde::de::{MapAccess, Visitor};
19593 struct StructVisitor;
19594 impl<'de> Visitor<'de> for StructVisitor {
19595 type Value = MembersSetPermissionsArg;
19596 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19597 f.write_str("a MembersSetPermissionsArg struct")
19598 }
19599 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19600 MembersSetPermissionsArg::internal_deserialize(map)
19601 }
19602 }
19603 deserializer.deserialize_struct("MembersSetPermissionsArg", MEMBERS_SET_PERMISSIONS_ARG_FIELDS, StructVisitor)
19604 }
19605}
19606
19607impl ::serde::ser::Serialize for MembersSetPermissionsArg {
19608 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19609 use serde::ser::SerializeStruct;
19611 let mut s = serializer.serialize_struct("MembersSetPermissionsArg", 2)?;
19612 self.internal_serialize::<S>(&mut s)?;
19613 s.end()
19614 }
19615}
19616
19617#[derive(Debug, Clone, PartialEq, Eq)]
19618#[non_exhaustive] pub enum MembersSetPermissionsError {
19620 UserNotFound,
19623 LastAdmin,
19625 UserNotInTeam,
19627 CannotSetPermissions,
19629 TeamLicenseLimit,
19631 Other,
19634}
19635
19636impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsError {
19637 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19638 use serde::de::{self, MapAccess, Visitor};
19640 struct EnumVisitor;
19641 impl<'de> Visitor<'de> for EnumVisitor {
19642 type Value = MembersSetPermissionsError;
19643 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19644 f.write_str("a MembersSetPermissionsError structure")
19645 }
19646 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19647 let tag: &str = match map.next_key()? {
19648 Some(".tag") => map.next_value()?,
19649 _ => return Err(de::Error::missing_field(".tag"))
19650 };
19651 let value = match tag {
19652 "user_not_found" => MembersSetPermissionsError::UserNotFound,
19653 "last_admin" => MembersSetPermissionsError::LastAdmin,
19654 "user_not_in_team" => MembersSetPermissionsError::UserNotInTeam,
19655 "cannot_set_permissions" => MembersSetPermissionsError::CannotSetPermissions,
19656 "team_license_limit" => MembersSetPermissionsError::TeamLicenseLimit,
19657 _ => MembersSetPermissionsError::Other,
19658 };
19659 crate::eat_json_fields(&mut map)?;
19660 Ok(value)
19661 }
19662 }
19663 const VARIANTS: &[&str] = &["user_not_found",
19664 "last_admin",
19665 "user_not_in_team",
19666 "cannot_set_permissions",
19667 "team_license_limit",
19668 "other"];
19669 deserializer.deserialize_struct("MembersSetPermissionsError", VARIANTS, EnumVisitor)
19670 }
19671}
19672
19673impl ::serde::ser::Serialize for MembersSetPermissionsError {
19674 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19675 use serde::ser::SerializeStruct;
19677 match self {
19678 MembersSetPermissionsError::UserNotFound => {
19679 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19681 s.serialize_field(".tag", "user_not_found")?;
19682 s.end()
19683 }
19684 MembersSetPermissionsError::LastAdmin => {
19685 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19687 s.serialize_field(".tag", "last_admin")?;
19688 s.end()
19689 }
19690 MembersSetPermissionsError::UserNotInTeam => {
19691 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19693 s.serialize_field(".tag", "user_not_in_team")?;
19694 s.end()
19695 }
19696 MembersSetPermissionsError::CannotSetPermissions => {
19697 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19699 s.serialize_field(".tag", "cannot_set_permissions")?;
19700 s.end()
19701 }
19702 MembersSetPermissionsError::TeamLicenseLimit => {
19703 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19705 s.serialize_field(".tag", "team_license_limit")?;
19706 s.end()
19707 }
19708 MembersSetPermissionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19709 }
19710 }
19711}
19712
19713impl ::std::error::Error for MembersSetPermissionsError {
19714}
19715
19716impl ::std::fmt::Display for MembersSetPermissionsError {
19717 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19718 match self {
19719 MembersSetPermissionsError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19720 MembersSetPermissionsError::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
19721 MembersSetPermissionsError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19722 MembersSetPermissionsError::CannotSetPermissions => f.write_str("Cannot remove/grant permissions."),
19723 MembersSetPermissionsError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
19724 _ => write!(f, "{:?}", *self),
19725 }
19726 }
19727}
19728
19729impl From<UserSelectorError> for MembersSetPermissionsError {
19731 fn from(parent: UserSelectorError) -> Self {
19732 match parent {
19733 UserSelectorError::UserNotFound => MembersSetPermissionsError::UserNotFound,
19734 }
19735 }
19736}
19737#[derive(Debug, Clone, PartialEq, Eq)]
19738#[non_exhaustive] pub struct MembersSetPermissionsResult {
19740 pub team_member_id: crate::types::team_common::TeamMemberId,
19742 pub role: AdminTier,
19744}
19745
19746impl MembersSetPermissionsResult {
19747 pub fn new(team_member_id: crate::types::team_common::TeamMemberId, role: AdminTier) -> Self {
19748 MembersSetPermissionsResult {
19749 team_member_id,
19750 role,
19751 }
19752 }
19753}
19754
19755const MEMBERS_SET_PERMISSIONS_RESULT_FIELDS: &[&str] = &["team_member_id",
19756 "role"];
19757impl MembersSetPermissionsResult {
19758 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19759 map: V,
19760 ) -> Result<MembersSetPermissionsResult, V::Error> {
19761 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19762 }
19763
19764 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19765 mut map: V,
19766 optional: bool,
19767 ) -> Result<Option<MembersSetPermissionsResult>, V::Error> {
19768 let mut field_team_member_id = None;
19769 let mut field_role = None;
19770 let mut nothing = true;
19771 while let Some(key) = map.next_key::<&str>()? {
19772 nothing = false;
19773 match key {
19774 "team_member_id" => {
19775 if field_team_member_id.is_some() {
19776 return Err(::serde::de::Error::duplicate_field("team_member_id"));
19777 }
19778 field_team_member_id = Some(map.next_value()?);
19779 }
19780 "role" => {
19781 if field_role.is_some() {
19782 return Err(::serde::de::Error::duplicate_field("role"));
19783 }
19784 field_role = Some(map.next_value()?);
19785 }
19786 _ => {
19787 map.next_value::<::serde_json::Value>()?;
19789 }
19790 }
19791 }
19792 if optional && nothing {
19793 return Ok(None);
19794 }
19795 let result = MembersSetPermissionsResult {
19796 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
19797 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
19798 };
19799 Ok(Some(result))
19800 }
19801
19802 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19803 &self,
19804 s: &mut S::SerializeStruct,
19805 ) -> Result<(), S::Error> {
19806 use serde::ser::SerializeStruct;
19807 s.serialize_field("team_member_id", &self.team_member_id)?;
19808 s.serialize_field("role", &self.role)?;
19809 Ok(())
19810 }
19811}
19812
19813impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsResult {
19814 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19815 use serde::de::{MapAccess, Visitor};
19817 struct StructVisitor;
19818 impl<'de> Visitor<'de> for StructVisitor {
19819 type Value = MembersSetPermissionsResult;
19820 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19821 f.write_str("a MembersSetPermissionsResult struct")
19822 }
19823 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19824 MembersSetPermissionsResult::internal_deserialize(map)
19825 }
19826 }
19827 deserializer.deserialize_struct("MembersSetPermissionsResult", MEMBERS_SET_PERMISSIONS_RESULT_FIELDS, StructVisitor)
19828 }
19829}
19830
19831impl ::serde::ser::Serialize for MembersSetPermissionsResult {
19832 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19833 use serde::ser::SerializeStruct;
19835 let mut s = serializer.serialize_struct("MembersSetPermissionsResult", 2)?;
19836 self.internal_serialize::<S>(&mut s)?;
19837 s.end()
19838 }
19839}
19840
19841#[derive(Debug, Clone, PartialEq, Eq)]
19845#[non_exhaustive] pub struct MembersSetProfileArg {
19847 pub user: UserSelectorArg,
19849 pub new_email: Option<crate::types::common::EmailAddress>,
19851 pub new_external_id: Option<crate::types::team_common::MemberExternalId>,
19853 pub new_given_name: Option<crate::types::common::OptionalNamePart>,
19855 pub new_surname: Option<crate::types::common::OptionalNamePart>,
19857 pub new_persistent_id: Option<String>,
19860 pub new_is_directory_restricted: Option<bool>,
19862}
19863
19864impl MembersSetProfileArg {
19865 pub fn new(user: UserSelectorArg) -> Self {
19866 MembersSetProfileArg {
19867 user,
19868 new_email: None,
19869 new_external_id: None,
19870 new_given_name: None,
19871 new_surname: None,
19872 new_persistent_id: None,
19873 new_is_directory_restricted: None,
19874 }
19875 }
19876
19877 pub fn with_new_email(mut self, value: crate::types::common::EmailAddress) -> Self {
19878 self.new_email = Some(value);
19879 self
19880 }
19881
19882 pub fn with_new_external_id(
19883 mut self,
19884 value: crate::types::team_common::MemberExternalId,
19885 ) -> Self {
19886 self.new_external_id = Some(value);
19887 self
19888 }
19889
19890 pub fn with_new_given_name(mut self, value: crate::types::common::OptionalNamePart) -> Self {
19891 self.new_given_name = Some(value);
19892 self
19893 }
19894
19895 pub fn with_new_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
19896 self.new_surname = Some(value);
19897 self
19898 }
19899
19900 pub fn with_new_persistent_id(mut self, value: String) -> Self {
19901 self.new_persistent_id = Some(value);
19902 self
19903 }
19904
19905 pub fn with_new_is_directory_restricted(mut self, value: bool) -> Self {
19906 self.new_is_directory_restricted = Some(value);
19907 self
19908 }
19909}
19910
19911const MEMBERS_SET_PROFILE_ARG_FIELDS: &[&str] = &["user",
19912 "new_email",
19913 "new_external_id",
19914 "new_given_name",
19915 "new_surname",
19916 "new_persistent_id",
19917 "new_is_directory_restricted"];
19918impl MembersSetProfileArg {
19919 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19920 map: V,
19921 ) -> Result<MembersSetProfileArg, V::Error> {
19922 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19923 }
19924
19925 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19926 mut map: V,
19927 optional: bool,
19928 ) -> Result<Option<MembersSetProfileArg>, V::Error> {
19929 let mut field_user = None;
19930 let mut field_new_email = None;
19931 let mut field_new_external_id = None;
19932 let mut field_new_given_name = None;
19933 let mut field_new_surname = None;
19934 let mut field_new_persistent_id = None;
19935 let mut field_new_is_directory_restricted = None;
19936 let mut nothing = true;
19937 while let Some(key) = map.next_key::<&str>()? {
19938 nothing = false;
19939 match key {
19940 "user" => {
19941 if field_user.is_some() {
19942 return Err(::serde::de::Error::duplicate_field("user"));
19943 }
19944 field_user = Some(map.next_value()?);
19945 }
19946 "new_email" => {
19947 if field_new_email.is_some() {
19948 return Err(::serde::de::Error::duplicate_field("new_email"));
19949 }
19950 field_new_email = Some(map.next_value()?);
19951 }
19952 "new_external_id" => {
19953 if field_new_external_id.is_some() {
19954 return Err(::serde::de::Error::duplicate_field("new_external_id"));
19955 }
19956 field_new_external_id = Some(map.next_value()?);
19957 }
19958 "new_given_name" => {
19959 if field_new_given_name.is_some() {
19960 return Err(::serde::de::Error::duplicate_field("new_given_name"));
19961 }
19962 field_new_given_name = Some(map.next_value()?);
19963 }
19964 "new_surname" => {
19965 if field_new_surname.is_some() {
19966 return Err(::serde::de::Error::duplicate_field("new_surname"));
19967 }
19968 field_new_surname = Some(map.next_value()?);
19969 }
19970 "new_persistent_id" => {
19971 if field_new_persistent_id.is_some() {
19972 return Err(::serde::de::Error::duplicate_field("new_persistent_id"));
19973 }
19974 field_new_persistent_id = Some(map.next_value()?);
19975 }
19976 "new_is_directory_restricted" => {
19977 if field_new_is_directory_restricted.is_some() {
19978 return Err(::serde::de::Error::duplicate_field("new_is_directory_restricted"));
19979 }
19980 field_new_is_directory_restricted = Some(map.next_value()?);
19981 }
19982 _ => {
19983 map.next_value::<::serde_json::Value>()?;
19985 }
19986 }
19987 }
19988 if optional && nothing {
19989 return Ok(None);
19990 }
19991 let result = MembersSetProfileArg {
19992 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19993 new_email: field_new_email.and_then(Option::flatten),
19994 new_external_id: field_new_external_id.and_then(Option::flatten),
19995 new_given_name: field_new_given_name.and_then(Option::flatten),
19996 new_surname: field_new_surname.and_then(Option::flatten),
19997 new_persistent_id: field_new_persistent_id.and_then(Option::flatten),
19998 new_is_directory_restricted: field_new_is_directory_restricted.and_then(Option::flatten),
19999 };
20000 Ok(Some(result))
20001 }
20002
20003 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20004 &self,
20005 s: &mut S::SerializeStruct,
20006 ) -> Result<(), S::Error> {
20007 use serde::ser::SerializeStruct;
20008 s.serialize_field("user", &self.user)?;
20009 if let Some(val) = &self.new_email {
20010 s.serialize_field("new_email", val)?;
20011 }
20012 if let Some(val) = &self.new_external_id {
20013 s.serialize_field("new_external_id", val)?;
20014 }
20015 if let Some(val) = &self.new_given_name {
20016 s.serialize_field("new_given_name", val)?;
20017 }
20018 if let Some(val) = &self.new_surname {
20019 s.serialize_field("new_surname", val)?;
20020 }
20021 if let Some(val) = &self.new_persistent_id {
20022 s.serialize_field("new_persistent_id", val)?;
20023 }
20024 if let Some(val) = &self.new_is_directory_restricted {
20025 s.serialize_field("new_is_directory_restricted", val)?;
20026 }
20027 Ok(())
20028 }
20029}
20030
20031impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileArg {
20032 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20033 use serde::de::{MapAccess, Visitor};
20035 struct StructVisitor;
20036 impl<'de> Visitor<'de> for StructVisitor {
20037 type Value = MembersSetProfileArg;
20038 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20039 f.write_str("a MembersSetProfileArg struct")
20040 }
20041 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20042 MembersSetProfileArg::internal_deserialize(map)
20043 }
20044 }
20045 deserializer.deserialize_struct("MembersSetProfileArg", MEMBERS_SET_PROFILE_ARG_FIELDS, StructVisitor)
20046 }
20047}
20048
20049impl ::serde::ser::Serialize for MembersSetProfileArg {
20050 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20051 use serde::ser::SerializeStruct;
20053 let mut s = serializer.serialize_struct("MembersSetProfileArg", 7)?;
20054 self.internal_serialize::<S>(&mut s)?;
20055 s.end()
20056 }
20057}
20058
20059#[derive(Debug, Clone, PartialEq, Eq)]
20060#[non_exhaustive] pub enum MembersSetProfileError {
20062 UserNotFound,
20065 UserNotInTeam,
20067 ExternalIdAndNewExternalIdUnsafe,
20069 NoNewDataSpecified,
20071 EmailReservedForOtherUser,
20073 ExternalIdUsedByOtherUser,
20075 SetProfileDisallowed,
20077 ParamCannotBeEmpty,
20079 PersistentIdDisabled,
20082 PersistentIdUsedByOtherUser,
20084 DirectoryRestrictedOff,
20086 Other,
20089}
20090
20091impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileError {
20092 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20093 use serde::de::{self, MapAccess, Visitor};
20095 struct EnumVisitor;
20096 impl<'de> Visitor<'de> for EnumVisitor {
20097 type Value = MembersSetProfileError;
20098 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20099 f.write_str("a MembersSetProfileError structure")
20100 }
20101 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20102 let tag: &str = match map.next_key()? {
20103 Some(".tag") => map.next_value()?,
20104 _ => return Err(de::Error::missing_field(".tag"))
20105 };
20106 let value = match tag {
20107 "user_not_found" => MembersSetProfileError::UserNotFound,
20108 "user_not_in_team" => MembersSetProfileError::UserNotInTeam,
20109 "external_id_and_new_external_id_unsafe" => MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe,
20110 "no_new_data_specified" => MembersSetProfileError::NoNewDataSpecified,
20111 "email_reserved_for_other_user" => MembersSetProfileError::EmailReservedForOtherUser,
20112 "external_id_used_by_other_user" => MembersSetProfileError::ExternalIdUsedByOtherUser,
20113 "set_profile_disallowed" => MembersSetProfileError::SetProfileDisallowed,
20114 "param_cannot_be_empty" => MembersSetProfileError::ParamCannotBeEmpty,
20115 "persistent_id_disabled" => MembersSetProfileError::PersistentIdDisabled,
20116 "persistent_id_used_by_other_user" => MembersSetProfileError::PersistentIdUsedByOtherUser,
20117 "directory_restricted_off" => MembersSetProfileError::DirectoryRestrictedOff,
20118 _ => MembersSetProfileError::Other,
20119 };
20120 crate::eat_json_fields(&mut map)?;
20121 Ok(value)
20122 }
20123 }
20124 const VARIANTS: &[&str] = &["user_not_found",
20125 "user_not_in_team",
20126 "external_id_and_new_external_id_unsafe",
20127 "no_new_data_specified",
20128 "email_reserved_for_other_user",
20129 "external_id_used_by_other_user",
20130 "set_profile_disallowed",
20131 "param_cannot_be_empty",
20132 "persistent_id_disabled",
20133 "persistent_id_used_by_other_user",
20134 "directory_restricted_off",
20135 "other"];
20136 deserializer.deserialize_struct("MembersSetProfileError", VARIANTS, EnumVisitor)
20137 }
20138}
20139
20140impl ::serde::ser::Serialize for MembersSetProfileError {
20141 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20142 use serde::ser::SerializeStruct;
20144 match self {
20145 MembersSetProfileError::UserNotFound => {
20146 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20148 s.serialize_field(".tag", "user_not_found")?;
20149 s.end()
20150 }
20151 MembersSetProfileError::UserNotInTeam => {
20152 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20154 s.serialize_field(".tag", "user_not_in_team")?;
20155 s.end()
20156 }
20157 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => {
20158 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20160 s.serialize_field(".tag", "external_id_and_new_external_id_unsafe")?;
20161 s.end()
20162 }
20163 MembersSetProfileError::NoNewDataSpecified => {
20164 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20166 s.serialize_field(".tag", "no_new_data_specified")?;
20167 s.end()
20168 }
20169 MembersSetProfileError::EmailReservedForOtherUser => {
20170 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20172 s.serialize_field(".tag", "email_reserved_for_other_user")?;
20173 s.end()
20174 }
20175 MembersSetProfileError::ExternalIdUsedByOtherUser => {
20176 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20178 s.serialize_field(".tag", "external_id_used_by_other_user")?;
20179 s.end()
20180 }
20181 MembersSetProfileError::SetProfileDisallowed => {
20182 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20184 s.serialize_field(".tag", "set_profile_disallowed")?;
20185 s.end()
20186 }
20187 MembersSetProfileError::ParamCannotBeEmpty => {
20188 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20190 s.serialize_field(".tag", "param_cannot_be_empty")?;
20191 s.end()
20192 }
20193 MembersSetProfileError::PersistentIdDisabled => {
20194 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20196 s.serialize_field(".tag", "persistent_id_disabled")?;
20197 s.end()
20198 }
20199 MembersSetProfileError::PersistentIdUsedByOtherUser => {
20200 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20202 s.serialize_field(".tag", "persistent_id_used_by_other_user")?;
20203 s.end()
20204 }
20205 MembersSetProfileError::DirectoryRestrictedOff => {
20206 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
20208 s.serialize_field(".tag", "directory_restricted_off")?;
20209 s.end()
20210 }
20211 MembersSetProfileError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20212 }
20213 }
20214}
20215
20216impl ::std::error::Error for MembersSetProfileError {
20217}
20218
20219impl ::std::fmt::Display for MembersSetProfileError {
20220 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20221 match self {
20222 MembersSetProfileError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20223 MembersSetProfileError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20224 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => f.write_str("It is unsafe to use both external_id and new_external_id."),
20225 MembersSetProfileError::NoNewDataSpecified => f.write_str("None of new_email, new_given_name, new_surname, or new_external_id are specified."),
20226 MembersSetProfileError::EmailReservedForOtherUser => f.write_str("Email is already reserved for another user."),
20227 MembersSetProfileError::ExternalIdUsedByOtherUser => f.write_str("The external ID is already in use by another team member."),
20228 MembersSetProfileError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
20229 MembersSetProfileError::ParamCannotBeEmpty => f.write_str("Parameter new_email cannot be empty."),
20230 MembersSetProfileError::PersistentIdDisabled => f.write_str("Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information."),
20231 MembersSetProfileError::PersistentIdUsedByOtherUser => f.write_str("The persistent ID is already in use by another team member."),
20232 MembersSetProfileError::DirectoryRestrictedOff => f.write_str("Directory Restrictions option is not available."),
20233 _ => write!(f, "{:?}", *self),
20234 }
20235 }
20236}
20237
20238impl From<MemberSelectorError> for MembersSetProfileError {
20240 fn from(parent: MemberSelectorError) -> Self {
20241 match parent {
20242 MemberSelectorError::UserNotFound => MembersSetProfileError::UserNotFound,
20243 MemberSelectorError::UserNotInTeam => MembersSetProfileError::UserNotInTeam,
20244 }
20245 }
20246}
20247#[derive(Debug, Clone, PartialEq, Eq)]
20248#[non_exhaustive] pub struct MembersSetProfilePhotoArg {
20250 pub user: UserSelectorArg,
20252 pub photo: crate::types::account::PhotoSourceArg,
20254}
20255
20256impl MembersSetProfilePhotoArg {
20257 pub fn new(user: UserSelectorArg, photo: crate::types::account::PhotoSourceArg) -> Self {
20258 MembersSetProfilePhotoArg {
20259 user,
20260 photo,
20261 }
20262 }
20263}
20264
20265const MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user",
20266 "photo"];
20267impl MembersSetProfilePhotoArg {
20268 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20269 map: V,
20270 ) -> Result<MembersSetProfilePhotoArg, V::Error> {
20271 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20272 }
20273
20274 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20275 mut map: V,
20276 optional: bool,
20277 ) -> Result<Option<MembersSetProfilePhotoArg>, V::Error> {
20278 let mut field_user = None;
20279 let mut field_photo = None;
20280 let mut nothing = true;
20281 while let Some(key) = map.next_key::<&str>()? {
20282 nothing = false;
20283 match key {
20284 "user" => {
20285 if field_user.is_some() {
20286 return Err(::serde::de::Error::duplicate_field("user"));
20287 }
20288 field_user = Some(map.next_value()?);
20289 }
20290 "photo" => {
20291 if field_photo.is_some() {
20292 return Err(::serde::de::Error::duplicate_field("photo"));
20293 }
20294 field_photo = Some(map.next_value()?);
20295 }
20296 _ => {
20297 map.next_value::<::serde_json::Value>()?;
20299 }
20300 }
20301 }
20302 if optional && nothing {
20303 return Ok(None);
20304 }
20305 let result = MembersSetProfilePhotoArg {
20306 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
20307 photo: field_photo.ok_or_else(|| ::serde::de::Error::missing_field("photo"))?,
20308 };
20309 Ok(Some(result))
20310 }
20311
20312 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20313 &self,
20314 s: &mut S::SerializeStruct,
20315 ) -> Result<(), S::Error> {
20316 use serde::ser::SerializeStruct;
20317 s.serialize_field("user", &self.user)?;
20318 s.serialize_field("photo", &self.photo)?;
20319 Ok(())
20320 }
20321}
20322
20323impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoArg {
20324 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20325 use serde::de::{MapAccess, Visitor};
20327 struct StructVisitor;
20328 impl<'de> Visitor<'de> for StructVisitor {
20329 type Value = MembersSetProfilePhotoArg;
20330 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20331 f.write_str("a MembersSetProfilePhotoArg struct")
20332 }
20333 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20334 MembersSetProfilePhotoArg::internal_deserialize(map)
20335 }
20336 }
20337 deserializer.deserialize_struct("MembersSetProfilePhotoArg", MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
20338 }
20339}
20340
20341impl ::serde::ser::Serialize for MembersSetProfilePhotoArg {
20342 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20343 use serde::ser::SerializeStruct;
20345 let mut s = serializer.serialize_struct("MembersSetProfilePhotoArg", 2)?;
20346 self.internal_serialize::<S>(&mut s)?;
20347 s.end()
20348 }
20349}
20350
20351#[derive(Debug, Clone, PartialEq, Eq)]
20352#[non_exhaustive] pub enum MembersSetProfilePhotoError {
20354 UserNotFound,
20357 UserNotInTeam,
20359 SetProfileDisallowed,
20361 PhotoError(crate::types::account::SetProfilePhotoError),
20362 Other,
20365}
20366
20367impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoError {
20368 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20369 use serde::de::{self, MapAccess, Visitor};
20371 struct EnumVisitor;
20372 impl<'de> Visitor<'de> for EnumVisitor {
20373 type Value = MembersSetProfilePhotoError;
20374 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20375 f.write_str("a MembersSetProfilePhotoError structure")
20376 }
20377 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20378 let tag: &str = match map.next_key()? {
20379 Some(".tag") => map.next_value()?,
20380 _ => return Err(de::Error::missing_field(".tag"))
20381 };
20382 let value = match tag {
20383 "user_not_found" => MembersSetProfilePhotoError::UserNotFound,
20384 "user_not_in_team" => MembersSetProfilePhotoError::UserNotInTeam,
20385 "set_profile_disallowed" => MembersSetProfilePhotoError::SetProfileDisallowed,
20386 "photo_error" => {
20387 match map.next_key()? {
20388 Some("photo_error") => MembersSetProfilePhotoError::PhotoError(map.next_value()?),
20389 None => return Err(de::Error::missing_field("photo_error")),
20390 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
20391 }
20392 }
20393 _ => MembersSetProfilePhotoError::Other,
20394 };
20395 crate::eat_json_fields(&mut map)?;
20396 Ok(value)
20397 }
20398 }
20399 const VARIANTS: &[&str] = &["user_not_found",
20400 "user_not_in_team",
20401 "set_profile_disallowed",
20402 "photo_error",
20403 "other"];
20404 deserializer.deserialize_struct("MembersSetProfilePhotoError", VARIANTS, EnumVisitor)
20405 }
20406}
20407
20408impl ::serde::ser::Serialize for MembersSetProfilePhotoError {
20409 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20410 use serde::ser::SerializeStruct;
20412 match self {
20413 MembersSetProfilePhotoError::UserNotFound => {
20414 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
20416 s.serialize_field(".tag", "user_not_found")?;
20417 s.end()
20418 }
20419 MembersSetProfilePhotoError::UserNotInTeam => {
20420 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
20422 s.serialize_field(".tag", "user_not_in_team")?;
20423 s.end()
20424 }
20425 MembersSetProfilePhotoError::SetProfileDisallowed => {
20426 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
20428 s.serialize_field(".tag", "set_profile_disallowed")?;
20429 s.end()
20430 }
20431 MembersSetProfilePhotoError::PhotoError(x) => {
20432 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 2)?;
20434 s.serialize_field(".tag", "photo_error")?;
20435 s.serialize_field("photo_error", x)?;
20436 s.end()
20437 }
20438 MembersSetProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20439 }
20440 }
20441}
20442
20443impl ::std::error::Error for MembersSetProfilePhotoError {
20444 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
20445 match self {
20446 MembersSetProfilePhotoError::PhotoError(inner) => Some(inner),
20447 _ => None,
20448 }
20449 }
20450}
20451
20452impl ::std::fmt::Display for MembersSetProfilePhotoError {
20453 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20454 match self {
20455 MembersSetProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20456 MembersSetProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20457 MembersSetProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
20458 MembersSetProfilePhotoError::PhotoError(inner) => write!(f, "MembersSetProfilePhotoError: {}", inner),
20459 _ => write!(f, "{:?}", *self),
20460 }
20461 }
20462}
20463
20464impl From<MemberSelectorError> for MembersSetProfilePhotoError {
20466 fn from(parent: MemberSelectorError) -> Self {
20467 match parent {
20468 MemberSelectorError::UserNotFound => MembersSetProfilePhotoError::UserNotFound,
20469 MemberSelectorError::UserNotInTeam => MembersSetProfilePhotoError::UserNotInTeam,
20470 }
20471 }
20472}
20473#[derive(Debug, Clone, PartialEq, Eq)]
20474#[non_exhaustive] pub enum MembersSuspendError {
20476 UserNotFound,
20479 UserNotInTeam,
20481 SuspendInactiveUser,
20483 SuspendLastAdmin,
20485 TeamLicenseLimit,
20487 Other,
20490}
20491
20492impl<'de> ::serde::de::Deserialize<'de> for MembersSuspendError {
20493 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20494 use serde::de::{self, MapAccess, Visitor};
20496 struct EnumVisitor;
20497 impl<'de> Visitor<'de> for EnumVisitor {
20498 type Value = MembersSuspendError;
20499 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20500 f.write_str("a MembersSuspendError structure")
20501 }
20502 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20503 let tag: &str = match map.next_key()? {
20504 Some(".tag") => map.next_value()?,
20505 _ => return Err(de::Error::missing_field(".tag"))
20506 };
20507 let value = match tag {
20508 "user_not_found" => MembersSuspendError::UserNotFound,
20509 "user_not_in_team" => MembersSuspendError::UserNotInTeam,
20510 "suspend_inactive_user" => MembersSuspendError::SuspendInactiveUser,
20511 "suspend_last_admin" => MembersSuspendError::SuspendLastAdmin,
20512 "team_license_limit" => MembersSuspendError::TeamLicenseLimit,
20513 _ => MembersSuspendError::Other,
20514 };
20515 crate::eat_json_fields(&mut map)?;
20516 Ok(value)
20517 }
20518 }
20519 const VARIANTS: &[&str] = &["user_not_found",
20520 "user_not_in_team",
20521 "other",
20522 "suspend_inactive_user",
20523 "suspend_last_admin",
20524 "team_license_limit"];
20525 deserializer.deserialize_struct("MembersSuspendError", VARIANTS, EnumVisitor)
20526 }
20527}
20528
20529impl ::serde::ser::Serialize for MembersSuspendError {
20530 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20531 use serde::ser::SerializeStruct;
20533 match self {
20534 MembersSuspendError::UserNotFound => {
20535 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20537 s.serialize_field(".tag", "user_not_found")?;
20538 s.end()
20539 }
20540 MembersSuspendError::UserNotInTeam => {
20541 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20543 s.serialize_field(".tag", "user_not_in_team")?;
20544 s.end()
20545 }
20546 MembersSuspendError::SuspendInactiveUser => {
20547 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20549 s.serialize_field(".tag", "suspend_inactive_user")?;
20550 s.end()
20551 }
20552 MembersSuspendError::SuspendLastAdmin => {
20553 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20555 s.serialize_field(".tag", "suspend_last_admin")?;
20556 s.end()
20557 }
20558 MembersSuspendError::TeamLicenseLimit => {
20559 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20561 s.serialize_field(".tag", "team_license_limit")?;
20562 s.end()
20563 }
20564 MembersSuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20565 }
20566 }
20567}
20568
20569impl ::std::error::Error for MembersSuspendError {
20570}
20571
20572impl ::std::fmt::Display for MembersSuspendError {
20573 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20574 match self {
20575 MembersSuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20576 MembersSuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20577 MembersSuspendError::SuspendInactiveUser => f.write_str("The user is not active, so it cannot be suspended."),
20578 MembersSuspendError::SuspendLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be suspended."),
20579 MembersSuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
20580 _ => write!(f, "{:?}", *self),
20581 }
20582 }
20583}
20584
20585impl From<MembersDeactivateError> for MembersSuspendError {
20587 fn from(parent: MembersDeactivateError) -> Self {
20588 match parent {
20589 MembersDeactivateError::UserNotFound => MembersSuspendError::UserNotFound,
20590 MembersDeactivateError::UserNotInTeam => MembersSuspendError::UserNotInTeam,
20591 MembersDeactivateError::Other => MembersSuspendError::Other,
20592 }
20593 }
20594}
20595#[derive(Debug, Clone, PartialEq, Eq)]
20596#[non_exhaustive] pub enum MembersTransferFilesError {
20598 UserNotFound,
20601 UserNotInTeam,
20603 TransferInProgress,
20605 AlreadyTransferred,
20607 AlreadyTransferredOrDeleted,
20609 RemovedAndTransferDestShouldDiffer,
20611 RemovedAndTransferAdminShouldDiffer,
20613 TransferDestUserNotFound,
20615 TransferDestUserNotInTeam,
20617 TransferAdminUserNotInTeam,
20619 TransferAdminUserNotFound,
20621 UnspecifiedTransferAdminId,
20623 TransferAdminIsNotAdmin,
20625 RecipientNotVerified,
20627 Other,
20630}
20631
20632impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFilesError {
20633 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20634 use serde::de::{self, MapAccess, Visitor};
20636 struct EnumVisitor;
20637 impl<'de> Visitor<'de> for EnumVisitor {
20638 type Value = MembersTransferFilesError;
20639 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20640 f.write_str("a MembersTransferFilesError structure")
20641 }
20642 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20643 let tag: &str = match map.next_key()? {
20644 Some(".tag") => map.next_value()?,
20645 _ => return Err(de::Error::missing_field(".tag"))
20646 };
20647 let value = match tag {
20648 "user_not_found" => MembersTransferFilesError::UserNotFound,
20649 "user_not_in_team" => MembersTransferFilesError::UserNotInTeam,
20650 "transfer_in_progress" => MembersTransferFilesError::TransferInProgress,
20651 "already_transferred" => MembersTransferFilesError::AlreadyTransferred,
20652 "already_transferred_or_deleted" => MembersTransferFilesError::AlreadyTransferredOrDeleted,
20653 "removed_and_transfer_dest_should_differ" => MembersTransferFilesError::RemovedAndTransferDestShouldDiffer,
20654 "removed_and_transfer_admin_should_differ" => MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer,
20655 "transfer_dest_user_not_found" => MembersTransferFilesError::TransferDestUserNotFound,
20656 "transfer_dest_user_not_in_team" => MembersTransferFilesError::TransferDestUserNotInTeam,
20657 "transfer_admin_user_not_in_team" => MembersTransferFilesError::TransferAdminUserNotInTeam,
20658 "transfer_admin_user_not_found" => MembersTransferFilesError::TransferAdminUserNotFound,
20659 "unspecified_transfer_admin_id" => MembersTransferFilesError::UnspecifiedTransferAdminId,
20660 "transfer_admin_is_not_admin" => MembersTransferFilesError::TransferAdminIsNotAdmin,
20661 "recipient_not_verified" => MembersTransferFilesError::RecipientNotVerified,
20662 _ => MembersTransferFilesError::Other,
20663 };
20664 crate::eat_json_fields(&mut map)?;
20665 Ok(value)
20666 }
20667 }
20668 const VARIANTS: &[&str] = &["user_not_found",
20669 "user_not_in_team",
20670 "other",
20671 "transfer_in_progress",
20672 "already_transferred",
20673 "already_transferred_or_deleted",
20674 "removed_and_transfer_dest_should_differ",
20675 "removed_and_transfer_admin_should_differ",
20676 "transfer_dest_user_not_found",
20677 "transfer_dest_user_not_in_team",
20678 "transfer_admin_user_not_in_team",
20679 "transfer_admin_user_not_found",
20680 "unspecified_transfer_admin_id",
20681 "transfer_admin_is_not_admin",
20682 "recipient_not_verified"];
20683 deserializer.deserialize_struct("MembersTransferFilesError", VARIANTS, EnumVisitor)
20684 }
20685}
20686
20687impl ::serde::ser::Serialize for MembersTransferFilesError {
20688 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20689 use serde::ser::SerializeStruct;
20691 match self {
20692 MembersTransferFilesError::UserNotFound => {
20693 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20695 s.serialize_field(".tag", "user_not_found")?;
20696 s.end()
20697 }
20698 MembersTransferFilesError::UserNotInTeam => {
20699 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20701 s.serialize_field(".tag", "user_not_in_team")?;
20702 s.end()
20703 }
20704 MembersTransferFilesError::TransferInProgress => {
20705 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20707 s.serialize_field(".tag", "transfer_in_progress")?;
20708 s.end()
20709 }
20710 MembersTransferFilesError::AlreadyTransferred => {
20711 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20713 s.serialize_field(".tag", "already_transferred")?;
20714 s.end()
20715 }
20716 MembersTransferFilesError::AlreadyTransferredOrDeleted => {
20717 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20719 s.serialize_field(".tag", "already_transferred_or_deleted")?;
20720 s.end()
20721 }
20722 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => {
20723 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20725 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
20726 s.end()
20727 }
20728 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => {
20729 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20731 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
20732 s.end()
20733 }
20734 MembersTransferFilesError::TransferDestUserNotFound => {
20735 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20737 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
20738 s.end()
20739 }
20740 MembersTransferFilesError::TransferDestUserNotInTeam => {
20741 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20743 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
20744 s.end()
20745 }
20746 MembersTransferFilesError::TransferAdminUserNotInTeam => {
20747 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20749 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
20750 s.end()
20751 }
20752 MembersTransferFilesError::TransferAdminUserNotFound => {
20753 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20755 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
20756 s.end()
20757 }
20758 MembersTransferFilesError::UnspecifiedTransferAdminId => {
20759 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20761 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
20762 s.end()
20763 }
20764 MembersTransferFilesError::TransferAdminIsNotAdmin => {
20765 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20767 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
20768 s.end()
20769 }
20770 MembersTransferFilesError::RecipientNotVerified => {
20771 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20773 s.serialize_field(".tag", "recipient_not_verified")?;
20774 s.end()
20775 }
20776 MembersTransferFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20777 }
20778 }
20779}
20780
20781impl ::std::error::Error for MembersTransferFilesError {
20782}
20783
20784impl ::std::fmt::Display for MembersTransferFilesError {
20785 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20786 match self {
20787 MembersTransferFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20788 MembersTransferFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20789 MembersTransferFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
20790 MembersTransferFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
20791 MembersTransferFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
20792 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
20793 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
20794 MembersTransferFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
20795 MembersTransferFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
20796 MembersTransferFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
20797 MembersTransferFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
20798 MembersTransferFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
20799 MembersTransferFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
20800 MembersTransferFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
20801 _ => write!(f, "{:?}", *self),
20802 }
20803 }
20804}
20805
20806impl From<MembersPermanentlyDeleteFilesError> for MembersTransferFilesError {
20808 fn from(parent: MembersPermanentlyDeleteFilesError) -> Self {
20809 match parent {
20810 MembersPermanentlyDeleteFilesError::UserNotFound => MembersTransferFilesError::UserNotFound,
20811 MembersPermanentlyDeleteFilesError::UserNotInTeam => MembersTransferFilesError::UserNotInTeam,
20812 MembersPermanentlyDeleteFilesError::Other => MembersTransferFilesError::Other,
20813 MembersPermanentlyDeleteFilesError::TransferInProgress => MembersTransferFilesError::TransferInProgress,
20814 MembersPermanentlyDeleteFilesError::AlreadyTransferred => MembersTransferFilesError::AlreadyTransferred,
20815 MembersPermanentlyDeleteFilesError::AlreadyTransferredOrDeleted => MembersTransferFilesError::AlreadyTransferredOrDeleted,
20816 }
20817 }
20818}
20819#[derive(Debug, Clone, PartialEq, Eq)]
20820#[non_exhaustive] pub enum MembersTransferFormerMembersFilesError {
20822 UserNotFound,
20825 UserNotInTeam,
20827 TransferInProgress,
20829 AlreadyTransferred,
20831 AlreadyTransferredOrDeleted,
20833 RemovedAndTransferDestShouldDiffer,
20835 RemovedAndTransferAdminShouldDiffer,
20837 TransferDestUserNotFound,
20839 TransferDestUserNotInTeam,
20841 TransferAdminUserNotInTeam,
20843 TransferAdminUserNotFound,
20845 UnspecifiedTransferAdminId,
20847 TransferAdminIsNotAdmin,
20849 RecipientNotVerified,
20851 UserDataIsBeingTransferred,
20853 UserNotRemoved,
20855 UserDataCannotBeTransferred,
20857 UserDataAlreadyTransferred,
20859 Other,
20862}
20863
20864impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFormerMembersFilesError {
20865 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20866 use serde::de::{self, MapAccess, Visitor};
20868 struct EnumVisitor;
20869 impl<'de> Visitor<'de> for EnumVisitor {
20870 type Value = MembersTransferFormerMembersFilesError;
20871 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20872 f.write_str("a MembersTransferFormerMembersFilesError structure")
20873 }
20874 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20875 let tag: &str = match map.next_key()? {
20876 Some(".tag") => map.next_value()?,
20877 _ => return Err(de::Error::missing_field(".tag"))
20878 };
20879 let value = match tag {
20880 "user_not_found" => MembersTransferFormerMembersFilesError::UserNotFound,
20881 "user_not_in_team" => MembersTransferFormerMembersFilesError::UserNotInTeam,
20882 "transfer_in_progress" => MembersTransferFormerMembersFilesError::TransferInProgress,
20883 "already_transferred" => MembersTransferFormerMembersFilesError::AlreadyTransferred,
20884 "already_transferred_or_deleted" => MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted,
20885 "removed_and_transfer_dest_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
20886 "removed_and_transfer_admin_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
20887 "transfer_dest_user_not_found" => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
20888 "transfer_dest_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
20889 "transfer_admin_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
20890 "transfer_admin_user_not_found" => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
20891 "unspecified_transfer_admin_id" => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
20892 "transfer_admin_is_not_admin" => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
20893 "recipient_not_verified" => MembersTransferFormerMembersFilesError::RecipientNotVerified,
20894 "user_data_is_being_transferred" => MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred,
20895 "user_not_removed" => MembersTransferFormerMembersFilesError::UserNotRemoved,
20896 "user_data_cannot_be_transferred" => MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred,
20897 "user_data_already_transferred" => MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred,
20898 _ => MembersTransferFormerMembersFilesError::Other,
20899 };
20900 crate::eat_json_fields(&mut map)?;
20901 Ok(value)
20902 }
20903 }
20904 const VARIANTS: &[&str] = &["user_not_found",
20905 "user_not_in_team",
20906 "other",
20907 "transfer_in_progress",
20908 "already_transferred",
20909 "already_transferred_or_deleted",
20910 "removed_and_transfer_dest_should_differ",
20911 "removed_and_transfer_admin_should_differ",
20912 "transfer_dest_user_not_found",
20913 "transfer_dest_user_not_in_team",
20914 "transfer_admin_user_not_in_team",
20915 "transfer_admin_user_not_found",
20916 "unspecified_transfer_admin_id",
20917 "transfer_admin_is_not_admin",
20918 "recipient_not_verified",
20919 "user_data_is_being_transferred",
20920 "user_not_removed",
20921 "user_data_cannot_be_transferred",
20922 "user_data_already_transferred"];
20923 deserializer.deserialize_struct("MembersTransferFormerMembersFilesError", VARIANTS, EnumVisitor)
20924 }
20925}
20926
20927impl ::serde::ser::Serialize for MembersTransferFormerMembersFilesError {
20928 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20929 use serde::ser::SerializeStruct;
20931 match self {
20932 MembersTransferFormerMembersFilesError::UserNotFound => {
20933 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20935 s.serialize_field(".tag", "user_not_found")?;
20936 s.end()
20937 }
20938 MembersTransferFormerMembersFilesError::UserNotInTeam => {
20939 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20941 s.serialize_field(".tag", "user_not_in_team")?;
20942 s.end()
20943 }
20944 MembersTransferFormerMembersFilesError::TransferInProgress => {
20945 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20947 s.serialize_field(".tag", "transfer_in_progress")?;
20948 s.end()
20949 }
20950 MembersTransferFormerMembersFilesError::AlreadyTransferred => {
20951 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20953 s.serialize_field(".tag", "already_transferred")?;
20954 s.end()
20955 }
20956 MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted => {
20957 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20959 s.serialize_field(".tag", "already_transferred_or_deleted")?;
20960 s.end()
20961 }
20962 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => {
20963 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20965 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
20966 s.end()
20967 }
20968 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => {
20969 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20971 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
20972 s.end()
20973 }
20974 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => {
20975 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20977 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
20978 s.end()
20979 }
20980 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => {
20981 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20983 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
20984 s.end()
20985 }
20986 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => {
20987 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20989 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
20990 s.end()
20991 }
20992 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => {
20993 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20995 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
20996 s.end()
20997 }
20998 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => {
20999 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21001 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
21002 s.end()
21003 }
21004 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => {
21005 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21007 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
21008 s.end()
21009 }
21010 MembersTransferFormerMembersFilesError::RecipientNotVerified => {
21011 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21013 s.serialize_field(".tag", "recipient_not_verified")?;
21014 s.end()
21015 }
21016 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => {
21017 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21019 s.serialize_field(".tag", "user_data_is_being_transferred")?;
21020 s.end()
21021 }
21022 MembersTransferFormerMembersFilesError::UserNotRemoved => {
21023 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21025 s.serialize_field(".tag", "user_not_removed")?;
21026 s.end()
21027 }
21028 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => {
21029 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21031 s.serialize_field(".tag", "user_data_cannot_be_transferred")?;
21032 s.end()
21033 }
21034 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => {
21035 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
21037 s.serialize_field(".tag", "user_data_already_transferred")?;
21038 s.end()
21039 }
21040 MembersTransferFormerMembersFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21041 }
21042 }
21043}
21044
21045impl ::std::error::Error for MembersTransferFormerMembersFilesError {
21046}
21047
21048impl ::std::fmt::Display for MembersTransferFormerMembersFilesError {
21049 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21050 match self {
21051 MembersTransferFormerMembersFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21052 MembersTransferFormerMembersFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21053 MembersTransferFormerMembersFilesError::TransferInProgress => f.write_str("Cannot permanently delete files while it's being transferred."),
21054 MembersTransferFormerMembersFilesError::AlreadyTransferred => f.write_str("Cannot permanently delete files that have already been transferred."),
21055 MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted => f.write_str("Cannot permanently delete files that have already been transferred or deleted."),
21056 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
21057 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
21058 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
21059 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
21060 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
21061 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
21062 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
21063 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
21064 MembersTransferFormerMembersFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
21065 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => f.write_str("The user's data is being transferred. Please wait some time before retrying."),
21066 MembersTransferFormerMembersFilesError::UserNotRemoved => f.write_str("No matching removed user found for the argument user."),
21067 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => f.write_str("User files aren't transferable anymore."),
21068 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => f.write_str("User's data has already been transferred to another user."),
21069 _ => write!(f, "{:?}", *self),
21070 }
21071 }
21072}
21073
21074impl From<MembersTransferFilesError> for MembersTransferFormerMembersFilesError {
21076 fn from(parent: MembersTransferFilesError) -> Self {
21077 match parent {
21078 MembersTransferFilesError::UserNotFound => MembersTransferFormerMembersFilesError::UserNotFound,
21079 MembersTransferFilesError::UserNotInTeam => MembersTransferFormerMembersFilesError::UserNotInTeam,
21080 MembersTransferFilesError::Other => MembersTransferFormerMembersFilesError::Other,
21081 MembersTransferFilesError::TransferInProgress => MembersTransferFormerMembersFilesError::TransferInProgress,
21082 MembersTransferFilesError::AlreadyTransferred => MembersTransferFormerMembersFilesError::AlreadyTransferred,
21083 MembersTransferFilesError::AlreadyTransferredOrDeleted => MembersTransferFormerMembersFilesError::AlreadyTransferredOrDeleted,
21084 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
21085 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
21086 MembersTransferFilesError::TransferDestUserNotFound => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
21087 MembersTransferFilesError::TransferDestUserNotInTeam => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
21088 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
21089 MembersTransferFilesError::TransferAdminUserNotFound => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
21090 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
21091 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
21092 MembersTransferFilesError::RecipientNotVerified => MembersTransferFormerMembersFilesError::RecipientNotVerified,
21093 }
21094 }
21095}
21096#[derive(Debug, Clone, PartialEq, Eq)]
21099#[non_exhaustive] pub struct MembersUnsuspendArg {
21101 pub user: UserSelectorArg,
21103}
21104
21105impl MembersUnsuspendArg {
21106 pub fn new(user: UserSelectorArg) -> Self {
21107 MembersUnsuspendArg {
21108 user,
21109 }
21110 }
21111}
21112
21113const MEMBERS_UNSUSPEND_ARG_FIELDS: &[&str] = &["user"];
21114impl MembersUnsuspendArg {
21115 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21116 map: V,
21117 ) -> Result<MembersUnsuspendArg, V::Error> {
21118 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21119 }
21120
21121 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21122 mut map: V,
21123 optional: bool,
21124 ) -> Result<Option<MembersUnsuspendArg>, V::Error> {
21125 let mut field_user = None;
21126 let mut nothing = true;
21127 while let Some(key) = map.next_key::<&str>()? {
21128 nothing = false;
21129 match key {
21130 "user" => {
21131 if field_user.is_some() {
21132 return Err(::serde::de::Error::duplicate_field("user"));
21133 }
21134 field_user = Some(map.next_value()?);
21135 }
21136 _ => {
21137 map.next_value::<::serde_json::Value>()?;
21139 }
21140 }
21141 }
21142 if optional && nothing {
21143 return Ok(None);
21144 }
21145 let result = MembersUnsuspendArg {
21146 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
21147 };
21148 Ok(Some(result))
21149 }
21150
21151 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21152 &self,
21153 s: &mut S::SerializeStruct,
21154 ) -> Result<(), S::Error> {
21155 use serde::ser::SerializeStruct;
21156 s.serialize_field("user", &self.user)?;
21157 Ok(())
21158 }
21159}
21160
21161impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendArg {
21162 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21163 use serde::de::{MapAccess, Visitor};
21165 struct StructVisitor;
21166 impl<'de> Visitor<'de> for StructVisitor {
21167 type Value = MembersUnsuspendArg;
21168 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21169 f.write_str("a MembersUnsuspendArg struct")
21170 }
21171 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21172 MembersUnsuspendArg::internal_deserialize(map)
21173 }
21174 }
21175 deserializer.deserialize_struct("MembersUnsuspendArg", MEMBERS_UNSUSPEND_ARG_FIELDS, StructVisitor)
21176 }
21177}
21178
21179impl ::serde::ser::Serialize for MembersUnsuspendArg {
21180 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21181 use serde::ser::SerializeStruct;
21183 let mut s = serializer.serialize_struct("MembersUnsuspendArg", 1)?;
21184 self.internal_serialize::<S>(&mut s)?;
21185 s.end()
21186 }
21187}
21188
21189#[derive(Debug, Clone, PartialEq, Eq)]
21190#[non_exhaustive] pub enum MembersUnsuspendError {
21192 UserNotFound,
21195 UserNotInTeam,
21197 UnsuspendNonSuspendedMember,
21199 TeamLicenseLimit,
21201 Other,
21204}
21205
21206impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendError {
21207 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21208 use serde::de::{self, MapAccess, Visitor};
21210 struct EnumVisitor;
21211 impl<'de> Visitor<'de> for EnumVisitor {
21212 type Value = MembersUnsuspendError;
21213 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21214 f.write_str("a MembersUnsuspendError structure")
21215 }
21216 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21217 let tag: &str = match map.next_key()? {
21218 Some(".tag") => map.next_value()?,
21219 _ => return Err(de::Error::missing_field(".tag"))
21220 };
21221 let value = match tag {
21222 "user_not_found" => MembersUnsuspendError::UserNotFound,
21223 "user_not_in_team" => MembersUnsuspendError::UserNotInTeam,
21224 "unsuspend_non_suspended_member" => MembersUnsuspendError::UnsuspendNonSuspendedMember,
21225 "team_license_limit" => MembersUnsuspendError::TeamLicenseLimit,
21226 _ => MembersUnsuspendError::Other,
21227 };
21228 crate::eat_json_fields(&mut map)?;
21229 Ok(value)
21230 }
21231 }
21232 const VARIANTS: &[&str] = &["user_not_found",
21233 "user_not_in_team",
21234 "other",
21235 "unsuspend_non_suspended_member",
21236 "team_license_limit"];
21237 deserializer.deserialize_struct("MembersUnsuspendError", VARIANTS, EnumVisitor)
21238 }
21239}
21240
21241impl ::serde::ser::Serialize for MembersUnsuspendError {
21242 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21243 use serde::ser::SerializeStruct;
21245 match self {
21246 MembersUnsuspendError::UserNotFound => {
21247 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21249 s.serialize_field(".tag", "user_not_found")?;
21250 s.end()
21251 }
21252 MembersUnsuspendError::UserNotInTeam => {
21253 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21255 s.serialize_field(".tag", "user_not_in_team")?;
21256 s.end()
21257 }
21258 MembersUnsuspendError::UnsuspendNonSuspendedMember => {
21259 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21261 s.serialize_field(".tag", "unsuspend_non_suspended_member")?;
21262 s.end()
21263 }
21264 MembersUnsuspendError::TeamLicenseLimit => {
21265 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
21267 s.serialize_field(".tag", "team_license_limit")?;
21268 s.end()
21269 }
21270 MembersUnsuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21271 }
21272 }
21273}
21274
21275impl ::std::error::Error for MembersUnsuspendError {
21276}
21277
21278impl ::std::fmt::Display for MembersUnsuspendError {
21279 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21280 match self {
21281 MembersUnsuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
21282 MembersUnsuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
21283 MembersUnsuspendError::UnsuspendNonSuspendedMember => f.write_str("The user is unsuspended, so it cannot be unsuspended again."),
21284 MembersUnsuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
21285 _ => write!(f, "{:?}", *self),
21286 }
21287 }
21288}
21289
21290impl From<MembersDeactivateError> for MembersUnsuspendError {
21292 fn from(parent: MembersDeactivateError) -> Self {
21293 match parent {
21294 MembersDeactivateError::UserNotFound => MembersUnsuspendError::UserNotFound,
21295 MembersDeactivateError::UserNotInTeam => MembersUnsuspendError::UserNotInTeam,
21296 MembersDeactivateError::Other => MembersUnsuspendError::Other,
21297 }
21298 }
21299}
21300#[derive(Debug, Clone, PartialEq, Eq)]
21301#[non_exhaustive] pub enum MobileClientPlatform {
21303 Iphone,
21305 Ipad,
21307 Android,
21309 WindowsPhone,
21311 Blackberry,
21313 Other,
21316}
21317
21318impl<'de> ::serde::de::Deserialize<'de> for MobileClientPlatform {
21319 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21320 use serde::de::{self, MapAccess, Visitor};
21322 struct EnumVisitor;
21323 impl<'de> Visitor<'de> for EnumVisitor {
21324 type Value = MobileClientPlatform;
21325 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21326 f.write_str("a MobileClientPlatform structure")
21327 }
21328 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21329 let tag: &str = match map.next_key()? {
21330 Some(".tag") => map.next_value()?,
21331 _ => return Err(de::Error::missing_field(".tag"))
21332 };
21333 let value = match tag {
21334 "iphone" => MobileClientPlatform::Iphone,
21335 "ipad" => MobileClientPlatform::Ipad,
21336 "android" => MobileClientPlatform::Android,
21337 "windows_phone" => MobileClientPlatform::WindowsPhone,
21338 "blackberry" => MobileClientPlatform::Blackberry,
21339 _ => MobileClientPlatform::Other,
21340 };
21341 crate::eat_json_fields(&mut map)?;
21342 Ok(value)
21343 }
21344 }
21345 const VARIANTS: &[&str] = &["iphone",
21346 "ipad",
21347 "android",
21348 "windows_phone",
21349 "blackberry",
21350 "other"];
21351 deserializer.deserialize_struct("MobileClientPlatform", VARIANTS, EnumVisitor)
21352 }
21353}
21354
21355impl ::serde::ser::Serialize for MobileClientPlatform {
21356 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21357 use serde::ser::SerializeStruct;
21359 match self {
21360 MobileClientPlatform::Iphone => {
21361 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21363 s.serialize_field(".tag", "iphone")?;
21364 s.end()
21365 }
21366 MobileClientPlatform::Ipad => {
21367 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21369 s.serialize_field(".tag", "ipad")?;
21370 s.end()
21371 }
21372 MobileClientPlatform::Android => {
21373 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21375 s.serialize_field(".tag", "android")?;
21376 s.end()
21377 }
21378 MobileClientPlatform::WindowsPhone => {
21379 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21381 s.serialize_field(".tag", "windows_phone")?;
21382 s.end()
21383 }
21384 MobileClientPlatform::Blackberry => {
21385 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
21387 s.serialize_field(".tag", "blackberry")?;
21388 s.end()
21389 }
21390 MobileClientPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21391 }
21392 }
21393}
21394
21395#[derive(Debug, Clone, PartialEq, Eq)]
21397#[non_exhaustive] pub struct MobileClientSession {
21399 pub session_id: String,
21401 pub device_name: String,
21403 pub client_type: MobileClientPlatform,
21405 pub ip_address: Option<String>,
21407 pub country: Option<String>,
21409 pub created: Option<crate::types::common::DropboxTimestamp>,
21411 pub updated: Option<crate::types::common::DropboxTimestamp>,
21413 pub client_version: Option<String>,
21415 pub os_version: Option<String>,
21417 pub last_carrier: Option<String>,
21419}
21420
21421impl MobileClientSession {
21422 pub fn new(
21423 session_id: String,
21424 device_name: String,
21425 client_type: MobileClientPlatform,
21426 ) -> Self {
21427 MobileClientSession {
21428 session_id,
21429 device_name,
21430 client_type,
21431 ip_address: None,
21432 country: None,
21433 created: None,
21434 updated: None,
21435 client_version: None,
21436 os_version: None,
21437 last_carrier: None,
21438 }
21439 }
21440
21441 pub fn with_ip_address(mut self, value: String) -> Self {
21442 self.ip_address = Some(value);
21443 self
21444 }
21445
21446 pub fn with_country(mut self, value: String) -> Self {
21447 self.country = Some(value);
21448 self
21449 }
21450
21451 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
21452 self.created = Some(value);
21453 self
21454 }
21455
21456 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
21457 self.updated = Some(value);
21458 self
21459 }
21460
21461 pub fn with_client_version(mut self, value: String) -> Self {
21462 self.client_version = Some(value);
21463 self
21464 }
21465
21466 pub fn with_os_version(mut self, value: String) -> Self {
21467 self.os_version = Some(value);
21468 self
21469 }
21470
21471 pub fn with_last_carrier(mut self, value: String) -> Self {
21472 self.last_carrier = Some(value);
21473 self
21474 }
21475}
21476
21477const MOBILE_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
21478 "device_name",
21479 "client_type",
21480 "ip_address",
21481 "country",
21482 "created",
21483 "updated",
21484 "client_version",
21485 "os_version",
21486 "last_carrier"];
21487impl MobileClientSession {
21488 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21489 map: V,
21490 ) -> Result<MobileClientSession, V::Error> {
21491 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21492 }
21493
21494 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21495 mut map: V,
21496 optional: bool,
21497 ) -> Result<Option<MobileClientSession>, V::Error> {
21498 let mut field_session_id = None;
21499 let mut field_device_name = None;
21500 let mut field_client_type = None;
21501 let mut field_ip_address = None;
21502 let mut field_country = None;
21503 let mut field_created = None;
21504 let mut field_updated = None;
21505 let mut field_client_version = None;
21506 let mut field_os_version = None;
21507 let mut field_last_carrier = None;
21508 let mut nothing = true;
21509 while let Some(key) = map.next_key::<&str>()? {
21510 nothing = false;
21511 match key {
21512 "session_id" => {
21513 if field_session_id.is_some() {
21514 return Err(::serde::de::Error::duplicate_field("session_id"));
21515 }
21516 field_session_id = Some(map.next_value()?);
21517 }
21518 "device_name" => {
21519 if field_device_name.is_some() {
21520 return Err(::serde::de::Error::duplicate_field("device_name"));
21521 }
21522 field_device_name = Some(map.next_value()?);
21523 }
21524 "client_type" => {
21525 if field_client_type.is_some() {
21526 return Err(::serde::de::Error::duplicate_field("client_type"));
21527 }
21528 field_client_type = Some(map.next_value()?);
21529 }
21530 "ip_address" => {
21531 if field_ip_address.is_some() {
21532 return Err(::serde::de::Error::duplicate_field("ip_address"));
21533 }
21534 field_ip_address = Some(map.next_value()?);
21535 }
21536 "country" => {
21537 if field_country.is_some() {
21538 return Err(::serde::de::Error::duplicate_field("country"));
21539 }
21540 field_country = Some(map.next_value()?);
21541 }
21542 "created" => {
21543 if field_created.is_some() {
21544 return Err(::serde::de::Error::duplicate_field("created"));
21545 }
21546 field_created = Some(map.next_value()?);
21547 }
21548 "updated" => {
21549 if field_updated.is_some() {
21550 return Err(::serde::de::Error::duplicate_field("updated"));
21551 }
21552 field_updated = Some(map.next_value()?);
21553 }
21554 "client_version" => {
21555 if field_client_version.is_some() {
21556 return Err(::serde::de::Error::duplicate_field("client_version"));
21557 }
21558 field_client_version = Some(map.next_value()?);
21559 }
21560 "os_version" => {
21561 if field_os_version.is_some() {
21562 return Err(::serde::de::Error::duplicate_field("os_version"));
21563 }
21564 field_os_version = Some(map.next_value()?);
21565 }
21566 "last_carrier" => {
21567 if field_last_carrier.is_some() {
21568 return Err(::serde::de::Error::duplicate_field("last_carrier"));
21569 }
21570 field_last_carrier = Some(map.next_value()?);
21571 }
21572 _ => {
21573 map.next_value::<::serde_json::Value>()?;
21575 }
21576 }
21577 }
21578 if optional && nothing {
21579 return Ok(None);
21580 }
21581 let result = MobileClientSession {
21582 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
21583 device_name: field_device_name.ok_or_else(|| ::serde::de::Error::missing_field("device_name"))?,
21584 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
21585 ip_address: field_ip_address.and_then(Option::flatten),
21586 country: field_country.and_then(Option::flatten),
21587 created: field_created.and_then(Option::flatten),
21588 updated: field_updated.and_then(Option::flatten),
21589 client_version: field_client_version.and_then(Option::flatten),
21590 os_version: field_os_version.and_then(Option::flatten),
21591 last_carrier: field_last_carrier.and_then(Option::flatten),
21592 };
21593 Ok(Some(result))
21594 }
21595
21596 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21597 &self,
21598 s: &mut S::SerializeStruct,
21599 ) -> Result<(), S::Error> {
21600 use serde::ser::SerializeStruct;
21601 s.serialize_field("session_id", &self.session_id)?;
21602 s.serialize_field("device_name", &self.device_name)?;
21603 s.serialize_field("client_type", &self.client_type)?;
21604 if let Some(val) = &self.ip_address {
21605 s.serialize_field("ip_address", val)?;
21606 }
21607 if let Some(val) = &self.country {
21608 s.serialize_field("country", val)?;
21609 }
21610 if let Some(val) = &self.created {
21611 s.serialize_field("created", val)?;
21612 }
21613 if let Some(val) = &self.updated {
21614 s.serialize_field("updated", val)?;
21615 }
21616 if let Some(val) = &self.client_version {
21617 s.serialize_field("client_version", val)?;
21618 }
21619 if let Some(val) = &self.os_version {
21620 s.serialize_field("os_version", val)?;
21621 }
21622 if let Some(val) = &self.last_carrier {
21623 s.serialize_field("last_carrier", val)?;
21624 }
21625 Ok(())
21626 }
21627}
21628
21629impl<'de> ::serde::de::Deserialize<'de> for MobileClientSession {
21630 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21631 use serde::de::{MapAccess, Visitor};
21633 struct StructVisitor;
21634 impl<'de> Visitor<'de> for StructVisitor {
21635 type Value = MobileClientSession;
21636 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21637 f.write_str("a MobileClientSession struct")
21638 }
21639 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21640 MobileClientSession::internal_deserialize(map)
21641 }
21642 }
21643 deserializer.deserialize_struct("MobileClientSession", MOBILE_CLIENT_SESSION_FIELDS, StructVisitor)
21644 }
21645}
21646
21647impl ::serde::ser::Serialize for MobileClientSession {
21648 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21649 use serde::ser::SerializeStruct;
21651 let mut s = serializer.serialize_struct("MobileClientSession", 10)?;
21652 self.internal_serialize::<S>(&mut s)?;
21653 s.end()
21654 }
21655}
21656
21657impl From<MobileClientSession> for DeviceSession {
21659 fn from(subtype: MobileClientSession) -> Self {
21660 Self {
21661 session_id: subtype.session_id,
21662 ip_address: subtype.ip_address,
21663 country: subtype.country,
21664 created: subtype.created,
21665 updated: subtype.updated,
21666 }
21667 }
21668}
21669#[derive(Debug, Clone, PartialEq, Eq)]
21671#[non_exhaustive] pub struct NamespaceMetadata {
21673 pub name: String,
21675 pub namespace_id: crate::types::common::SharedFolderId,
21677 pub namespace_type: NamespaceType,
21679 pub team_member_id: Option<crate::types::team_common::TeamMemberId>,
21682}
21683
21684impl NamespaceMetadata {
21685 pub fn new(
21686 name: String,
21687 namespace_id: crate::types::common::SharedFolderId,
21688 namespace_type: NamespaceType,
21689 ) -> Self {
21690 NamespaceMetadata {
21691 name,
21692 namespace_id,
21693 namespace_type,
21694 team_member_id: None,
21695 }
21696 }
21697
21698 pub fn with_team_member_id(mut self, value: crate::types::team_common::TeamMemberId) -> Self {
21699 self.team_member_id = Some(value);
21700 self
21701 }
21702}
21703
21704const NAMESPACE_METADATA_FIELDS: &[&str] = &["name",
21705 "namespace_id",
21706 "namespace_type",
21707 "team_member_id"];
21708impl NamespaceMetadata {
21709 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21710 map: V,
21711 ) -> Result<NamespaceMetadata, V::Error> {
21712 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21713 }
21714
21715 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21716 mut map: V,
21717 optional: bool,
21718 ) -> Result<Option<NamespaceMetadata>, V::Error> {
21719 let mut field_name = None;
21720 let mut field_namespace_id = None;
21721 let mut field_namespace_type = None;
21722 let mut field_team_member_id = None;
21723 let mut nothing = true;
21724 while let Some(key) = map.next_key::<&str>()? {
21725 nothing = false;
21726 match key {
21727 "name" => {
21728 if field_name.is_some() {
21729 return Err(::serde::de::Error::duplicate_field("name"));
21730 }
21731 field_name = Some(map.next_value()?);
21732 }
21733 "namespace_id" => {
21734 if field_namespace_id.is_some() {
21735 return Err(::serde::de::Error::duplicate_field("namespace_id"));
21736 }
21737 field_namespace_id = Some(map.next_value()?);
21738 }
21739 "namespace_type" => {
21740 if field_namespace_type.is_some() {
21741 return Err(::serde::de::Error::duplicate_field("namespace_type"));
21742 }
21743 field_namespace_type = Some(map.next_value()?);
21744 }
21745 "team_member_id" => {
21746 if field_team_member_id.is_some() {
21747 return Err(::serde::de::Error::duplicate_field("team_member_id"));
21748 }
21749 field_team_member_id = Some(map.next_value()?);
21750 }
21751 _ => {
21752 map.next_value::<::serde_json::Value>()?;
21754 }
21755 }
21756 }
21757 if optional && nothing {
21758 return Ok(None);
21759 }
21760 let result = NamespaceMetadata {
21761 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
21762 namespace_id: field_namespace_id.ok_or_else(|| ::serde::de::Error::missing_field("namespace_id"))?,
21763 namespace_type: field_namespace_type.ok_or_else(|| ::serde::de::Error::missing_field("namespace_type"))?,
21764 team_member_id: field_team_member_id.and_then(Option::flatten),
21765 };
21766 Ok(Some(result))
21767 }
21768
21769 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21770 &self,
21771 s: &mut S::SerializeStruct,
21772 ) -> Result<(), S::Error> {
21773 use serde::ser::SerializeStruct;
21774 s.serialize_field("name", &self.name)?;
21775 s.serialize_field("namespace_id", &self.namespace_id)?;
21776 s.serialize_field("namespace_type", &self.namespace_type)?;
21777 if let Some(val) = &self.team_member_id {
21778 s.serialize_field("team_member_id", val)?;
21779 }
21780 Ok(())
21781 }
21782}
21783
21784impl<'de> ::serde::de::Deserialize<'de> for NamespaceMetadata {
21785 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21786 use serde::de::{MapAccess, Visitor};
21788 struct StructVisitor;
21789 impl<'de> Visitor<'de> for StructVisitor {
21790 type Value = NamespaceMetadata;
21791 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21792 f.write_str("a NamespaceMetadata struct")
21793 }
21794 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21795 NamespaceMetadata::internal_deserialize(map)
21796 }
21797 }
21798 deserializer.deserialize_struct("NamespaceMetadata", NAMESPACE_METADATA_FIELDS, StructVisitor)
21799 }
21800}
21801
21802impl ::serde::ser::Serialize for NamespaceMetadata {
21803 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21804 use serde::ser::SerializeStruct;
21806 let mut s = serializer.serialize_struct("NamespaceMetadata", 4)?;
21807 self.internal_serialize::<S>(&mut s)?;
21808 s.end()
21809 }
21810}
21811
21812#[derive(Debug, Clone, PartialEq, Eq)]
21813#[non_exhaustive] pub enum NamespaceType {
21815 AppFolder,
21817 SharedFolder,
21819 TeamFolder,
21821 TeamMemberFolder,
21823 TeamMemberRoot,
21825 Other,
21828}
21829
21830impl<'de> ::serde::de::Deserialize<'de> for NamespaceType {
21831 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21832 use serde::de::{self, MapAccess, Visitor};
21834 struct EnumVisitor;
21835 impl<'de> Visitor<'de> for EnumVisitor {
21836 type Value = NamespaceType;
21837 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21838 f.write_str("a NamespaceType structure")
21839 }
21840 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21841 let tag: &str = match map.next_key()? {
21842 Some(".tag") => map.next_value()?,
21843 _ => return Err(de::Error::missing_field(".tag"))
21844 };
21845 let value = match tag {
21846 "app_folder" => NamespaceType::AppFolder,
21847 "shared_folder" => NamespaceType::SharedFolder,
21848 "team_folder" => NamespaceType::TeamFolder,
21849 "team_member_folder" => NamespaceType::TeamMemberFolder,
21850 "team_member_root" => NamespaceType::TeamMemberRoot,
21851 _ => NamespaceType::Other,
21852 };
21853 crate::eat_json_fields(&mut map)?;
21854 Ok(value)
21855 }
21856 }
21857 const VARIANTS: &[&str] = &["app_folder",
21858 "shared_folder",
21859 "team_folder",
21860 "team_member_folder",
21861 "team_member_root",
21862 "other"];
21863 deserializer.deserialize_struct("NamespaceType", VARIANTS, EnumVisitor)
21864 }
21865}
21866
21867impl ::serde::ser::Serialize for NamespaceType {
21868 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21869 use serde::ser::SerializeStruct;
21871 match self {
21872 NamespaceType::AppFolder => {
21873 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21875 s.serialize_field(".tag", "app_folder")?;
21876 s.end()
21877 }
21878 NamespaceType::SharedFolder => {
21879 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21881 s.serialize_field(".tag", "shared_folder")?;
21882 s.end()
21883 }
21884 NamespaceType::TeamFolder => {
21885 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21887 s.serialize_field(".tag", "team_folder")?;
21888 s.end()
21889 }
21890 NamespaceType::TeamMemberFolder => {
21891 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21893 s.serialize_field(".tag", "team_member_folder")?;
21894 s.end()
21895 }
21896 NamespaceType::TeamMemberRoot => {
21897 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21899 s.serialize_field(".tag", "team_member_root")?;
21900 s.end()
21901 }
21902 NamespaceType::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21903 }
21904 }
21905}
21906
21907#[derive(Debug, Clone, PartialEq, Eq)]
21909#[non_exhaustive] pub enum RemoveCustomQuotaResult {
21911 Success(UserSelectorArg),
21913 InvalidUser(UserSelectorArg),
21915 Other,
21918}
21919
21920impl<'de> ::serde::de::Deserialize<'de> for RemoveCustomQuotaResult {
21921 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21922 use serde::de::{self, MapAccess, Visitor};
21924 struct EnumVisitor;
21925 impl<'de> Visitor<'de> for EnumVisitor {
21926 type Value = RemoveCustomQuotaResult;
21927 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21928 f.write_str("a RemoveCustomQuotaResult structure")
21929 }
21930 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21931 let tag: &str = match map.next_key()? {
21932 Some(".tag") => map.next_value()?,
21933 _ => return Err(de::Error::missing_field(".tag"))
21934 };
21935 let value = match tag {
21936 "success" => {
21937 match map.next_key()? {
21938 Some("success") => RemoveCustomQuotaResult::Success(map.next_value()?),
21939 None => return Err(de::Error::missing_field("success")),
21940 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21941 }
21942 }
21943 "invalid_user" => {
21944 match map.next_key()? {
21945 Some("invalid_user") => RemoveCustomQuotaResult::InvalidUser(map.next_value()?),
21946 None => return Err(de::Error::missing_field("invalid_user")),
21947 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21948 }
21949 }
21950 _ => RemoveCustomQuotaResult::Other,
21951 };
21952 crate::eat_json_fields(&mut map)?;
21953 Ok(value)
21954 }
21955 }
21956 const VARIANTS: &[&str] = &["success",
21957 "invalid_user",
21958 "other"];
21959 deserializer.deserialize_struct("RemoveCustomQuotaResult", VARIANTS, EnumVisitor)
21960 }
21961}
21962
21963impl ::serde::ser::Serialize for RemoveCustomQuotaResult {
21964 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21965 use serde::ser::SerializeStruct;
21967 match self {
21968 RemoveCustomQuotaResult::Success(x) => {
21969 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
21971 s.serialize_field(".tag", "success")?;
21972 s.serialize_field("success", x)?;
21973 s.end()
21974 }
21975 RemoveCustomQuotaResult::InvalidUser(x) => {
21976 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
21978 s.serialize_field(".tag", "invalid_user")?;
21979 s.serialize_field("invalid_user", x)?;
21980 s.end()
21981 }
21982 RemoveCustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21983 }
21984 }
21985}
21986
21987#[derive(Debug, Clone, PartialEq, Eq)]
21988#[non_exhaustive] pub struct RemovedStatus {
21990 pub is_recoverable: bool,
21992 pub is_disconnected: bool,
21994}
21995
21996impl RemovedStatus {
21997 pub fn new(is_recoverable: bool, is_disconnected: bool) -> Self {
21998 RemovedStatus {
21999 is_recoverable,
22000 is_disconnected,
22001 }
22002 }
22003}
22004
22005const REMOVED_STATUS_FIELDS: &[&str] = &["is_recoverable",
22006 "is_disconnected"];
22007impl RemovedStatus {
22008 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22009 map: V,
22010 ) -> Result<RemovedStatus, V::Error> {
22011 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22012 }
22013
22014 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22015 mut map: V,
22016 optional: bool,
22017 ) -> Result<Option<RemovedStatus>, V::Error> {
22018 let mut field_is_recoverable = None;
22019 let mut field_is_disconnected = None;
22020 let mut nothing = true;
22021 while let Some(key) = map.next_key::<&str>()? {
22022 nothing = false;
22023 match key {
22024 "is_recoverable" => {
22025 if field_is_recoverable.is_some() {
22026 return Err(::serde::de::Error::duplicate_field("is_recoverable"));
22027 }
22028 field_is_recoverable = Some(map.next_value()?);
22029 }
22030 "is_disconnected" => {
22031 if field_is_disconnected.is_some() {
22032 return Err(::serde::de::Error::duplicate_field("is_disconnected"));
22033 }
22034 field_is_disconnected = Some(map.next_value()?);
22035 }
22036 _ => {
22037 map.next_value::<::serde_json::Value>()?;
22039 }
22040 }
22041 }
22042 if optional && nothing {
22043 return Ok(None);
22044 }
22045 let result = RemovedStatus {
22046 is_recoverable: field_is_recoverable.ok_or_else(|| ::serde::de::Error::missing_field("is_recoverable"))?,
22047 is_disconnected: field_is_disconnected.ok_or_else(|| ::serde::de::Error::missing_field("is_disconnected"))?,
22048 };
22049 Ok(Some(result))
22050 }
22051
22052 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22053 &self,
22054 s: &mut S::SerializeStruct,
22055 ) -> Result<(), S::Error> {
22056 use serde::ser::SerializeStruct;
22057 s.serialize_field("is_recoverable", &self.is_recoverable)?;
22058 s.serialize_field("is_disconnected", &self.is_disconnected)?;
22059 Ok(())
22060 }
22061}
22062
22063impl<'de> ::serde::de::Deserialize<'de> for RemovedStatus {
22064 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22065 use serde::de::{MapAccess, Visitor};
22067 struct StructVisitor;
22068 impl<'de> Visitor<'de> for StructVisitor {
22069 type Value = RemovedStatus;
22070 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22071 f.write_str("a RemovedStatus struct")
22072 }
22073 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22074 RemovedStatus::internal_deserialize(map)
22075 }
22076 }
22077 deserializer.deserialize_struct("RemovedStatus", REMOVED_STATUS_FIELDS, StructVisitor)
22078 }
22079}
22080
22081impl ::serde::ser::Serialize for RemovedStatus {
22082 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22083 use serde::ser::SerializeStruct;
22085 let mut s = serializer.serialize_struct("RemovedStatus", 2)?;
22086 self.internal_serialize::<S>(&mut s)?;
22087 s.end()
22088 }
22089}
22090
22091#[derive(Debug, Clone, PartialEq, Eq)]
22095#[non_exhaustive] pub enum ResendSecondaryEmailResult {
22097 Success(crate::types::common::EmailAddress),
22099 NotPending(crate::types::common::EmailAddress),
22101 RateLimited(crate::types::common::EmailAddress),
22103 Other,
22106}
22107
22108impl<'de> ::serde::de::Deserialize<'de> for ResendSecondaryEmailResult {
22109 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22110 use serde::de::{self, MapAccess, Visitor};
22112 struct EnumVisitor;
22113 impl<'de> Visitor<'de> for EnumVisitor {
22114 type Value = ResendSecondaryEmailResult;
22115 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22116 f.write_str("a ResendSecondaryEmailResult structure")
22117 }
22118 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22119 let tag: &str = match map.next_key()? {
22120 Some(".tag") => map.next_value()?,
22121 _ => return Err(de::Error::missing_field(".tag"))
22122 };
22123 let value = match tag {
22124 "success" => {
22125 match map.next_key()? {
22126 Some("success") => ResendSecondaryEmailResult::Success(map.next_value()?),
22127 None => return Err(de::Error::missing_field("success")),
22128 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22129 }
22130 }
22131 "not_pending" => {
22132 match map.next_key()? {
22133 Some("not_pending") => ResendSecondaryEmailResult::NotPending(map.next_value()?),
22134 None => return Err(de::Error::missing_field("not_pending")),
22135 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22136 }
22137 }
22138 "rate_limited" => {
22139 match map.next_key()? {
22140 Some("rate_limited") => ResendSecondaryEmailResult::RateLimited(map.next_value()?),
22141 None => return Err(de::Error::missing_field("rate_limited")),
22142 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
22143 }
22144 }
22145 _ => ResendSecondaryEmailResult::Other,
22146 };
22147 crate::eat_json_fields(&mut map)?;
22148 Ok(value)
22149 }
22150 }
22151 const VARIANTS: &[&str] = &["success",
22152 "not_pending",
22153 "rate_limited",
22154 "other"];
22155 deserializer.deserialize_struct("ResendSecondaryEmailResult", VARIANTS, EnumVisitor)
22156 }
22157}
22158
22159impl ::serde::ser::Serialize for ResendSecondaryEmailResult {
22160 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22161 use serde::ser::SerializeStruct;
22163 match self {
22164 ResendSecondaryEmailResult::Success(x) => {
22165 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
22167 s.serialize_field(".tag", "success")?;
22168 s.serialize_field("success", x)?;
22169 s.end()
22170 }
22171 ResendSecondaryEmailResult::NotPending(x) => {
22172 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
22174 s.serialize_field(".tag", "not_pending")?;
22175 s.serialize_field("not_pending", x)?;
22176 s.end()
22177 }
22178 ResendSecondaryEmailResult::RateLimited(x) => {
22179 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
22181 s.serialize_field(".tag", "rate_limited")?;
22182 s.serialize_field("rate_limited", x)?;
22183 s.end()
22184 }
22185 ResendSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22186 }
22187 }
22188}
22189
22190#[derive(Debug, Clone, PartialEq, Eq)]
22191#[non_exhaustive] pub struct ResendVerificationEmailArg {
22193 pub emails_to_resend: Vec<UserSecondaryEmailsArg>,
22195}
22196
22197impl ResendVerificationEmailArg {
22198 pub fn new(emails_to_resend: Vec<UserSecondaryEmailsArg>) -> Self {
22199 ResendVerificationEmailArg {
22200 emails_to_resend,
22201 }
22202 }
22203}
22204
22205const RESEND_VERIFICATION_EMAIL_ARG_FIELDS: &[&str] = &["emails_to_resend"];
22206impl ResendVerificationEmailArg {
22207 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22208 map: V,
22209 ) -> Result<ResendVerificationEmailArg, V::Error> {
22210 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22211 }
22212
22213 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22214 mut map: V,
22215 optional: bool,
22216 ) -> Result<Option<ResendVerificationEmailArg>, V::Error> {
22217 let mut field_emails_to_resend = None;
22218 let mut nothing = true;
22219 while let Some(key) = map.next_key::<&str>()? {
22220 nothing = false;
22221 match key {
22222 "emails_to_resend" => {
22223 if field_emails_to_resend.is_some() {
22224 return Err(::serde::de::Error::duplicate_field("emails_to_resend"));
22225 }
22226 field_emails_to_resend = Some(map.next_value()?);
22227 }
22228 _ => {
22229 map.next_value::<::serde_json::Value>()?;
22231 }
22232 }
22233 }
22234 if optional && nothing {
22235 return Ok(None);
22236 }
22237 let result = ResendVerificationEmailArg {
22238 emails_to_resend: field_emails_to_resend.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_resend"))?,
22239 };
22240 Ok(Some(result))
22241 }
22242
22243 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22244 &self,
22245 s: &mut S::SerializeStruct,
22246 ) -> Result<(), S::Error> {
22247 use serde::ser::SerializeStruct;
22248 s.serialize_field("emails_to_resend", &self.emails_to_resend)?;
22249 Ok(())
22250 }
22251}
22252
22253impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailArg {
22254 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22255 use serde::de::{MapAccess, Visitor};
22257 struct StructVisitor;
22258 impl<'de> Visitor<'de> for StructVisitor {
22259 type Value = ResendVerificationEmailArg;
22260 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22261 f.write_str("a ResendVerificationEmailArg struct")
22262 }
22263 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22264 ResendVerificationEmailArg::internal_deserialize(map)
22265 }
22266 }
22267 deserializer.deserialize_struct("ResendVerificationEmailArg", RESEND_VERIFICATION_EMAIL_ARG_FIELDS, StructVisitor)
22268 }
22269}
22270
22271impl ::serde::ser::Serialize for ResendVerificationEmailArg {
22272 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22273 use serde::ser::SerializeStruct;
22275 let mut s = serializer.serialize_struct("ResendVerificationEmailArg", 1)?;
22276 self.internal_serialize::<S>(&mut s)?;
22277 s.end()
22278 }
22279}
22280
22281#[derive(Debug, Clone, PartialEq, Eq)]
22283#[non_exhaustive] pub struct ResendVerificationEmailResult {
22285 pub results: Vec<UserResendResult>,
22286}
22287
22288impl ResendVerificationEmailResult {
22289 pub fn new(results: Vec<UserResendResult>) -> Self {
22290 ResendVerificationEmailResult {
22291 results,
22292 }
22293 }
22294}
22295
22296const RESEND_VERIFICATION_EMAIL_RESULT_FIELDS: &[&str] = &["results"];
22297impl ResendVerificationEmailResult {
22298 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22299 map: V,
22300 ) -> Result<ResendVerificationEmailResult, V::Error> {
22301 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22302 }
22303
22304 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22305 mut map: V,
22306 optional: bool,
22307 ) -> Result<Option<ResendVerificationEmailResult>, V::Error> {
22308 let mut field_results = None;
22309 let mut nothing = true;
22310 while let Some(key) = map.next_key::<&str>()? {
22311 nothing = false;
22312 match key {
22313 "results" => {
22314 if field_results.is_some() {
22315 return Err(::serde::de::Error::duplicate_field("results"));
22316 }
22317 field_results = Some(map.next_value()?);
22318 }
22319 _ => {
22320 map.next_value::<::serde_json::Value>()?;
22322 }
22323 }
22324 }
22325 if optional && nothing {
22326 return Ok(None);
22327 }
22328 let result = ResendVerificationEmailResult {
22329 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
22330 };
22331 Ok(Some(result))
22332 }
22333
22334 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22335 &self,
22336 s: &mut S::SerializeStruct,
22337 ) -> Result<(), S::Error> {
22338 use serde::ser::SerializeStruct;
22339 s.serialize_field("results", &self.results)?;
22340 Ok(())
22341 }
22342}
22343
22344impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailResult {
22345 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22346 use serde::de::{MapAccess, Visitor};
22348 struct StructVisitor;
22349 impl<'de> Visitor<'de> for StructVisitor {
22350 type Value = ResendVerificationEmailResult;
22351 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22352 f.write_str("a ResendVerificationEmailResult struct")
22353 }
22354 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22355 ResendVerificationEmailResult::internal_deserialize(map)
22356 }
22357 }
22358 deserializer.deserialize_struct("ResendVerificationEmailResult", RESEND_VERIFICATION_EMAIL_RESULT_FIELDS, StructVisitor)
22359 }
22360}
22361
22362impl ::serde::ser::Serialize for ResendVerificationEmailResult {
22363 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22364 use serde::ser::SerializeStruct;
22366 let mut s = serializer.serialize_struct("ResendVerificationEmailResult", 1)?;
22367 self.internal_serialize::<S>(&mut s)?;
22368 s.end()
22369 }
22370}
22371
22372#[derive(Debug, Clone, PartialEq, Eq)]
22373#[non_exhaustive] pub struct RevokeDesktopClientArg {
22375 pub session_id: String,
22377 pub team_member_id: String,
22379 pub delete_on_unlink: bool,
22382}
22383
22384impl RevokeDesktopClientArg {
22385 pub fn new(session_id: String, team_member_id: String) -> Self {
22386 RevokeDesktopClientArg {
22387 session_id,
22388 team_member_id,
22389 delete_on_unlink: false,
22390 }
22391 }
22392
22393 pub fn with_delete_on_unlink(mut self, value: bool) -> Self {
22394 self.delete_on_unlink = value;
22395 self
22396 }
22397}
22398
22399const REVOKE_DESKTOP_CLIENT_ARG_FIELDS: &[&str] = &["session_id",
22400 "team_member_id",
22401 "delete_on_unlink"];
22402impl RevokeDesktopClientArg {
22403 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22404 map: V,
22405 ) -> Result<RevokeDesktopClientArg, V::Error> {
22406 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22407 }
22408
22409 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22410 mut map: V,
22411 optional: bool,
22412 ) -> Result<Option<RevokeDesktopClientArg>, V::Error> {
22413 let mut field_session_id = None;
22414 let mut field_team_member_id = None;
22415 let mut field_delete_on_unlink = None;
22416 let mut nothing = true;
22417 while let Some(key) = map.next_key::<&str>()? {
22418 nothing = false;
22419 match key {
22420 "session_id" => {
22421 if field_session_id.is_some() {
22422 return Err(::serde::de::Error::duplicate_field("session_id"));
22423 }
22424 field_session_id = Some(map.next_value()?);
22425 }
22426 "team_member_id" => {
22427 if field_team_member_id.is_some() {
22428 return Err(::serde::de::Error::duplicate_field("team_member_id"));
22429 }
22430 field_team_member_id = Some(map.next_value()?);
22431 }
22432 "delete_on_unlink" => {
22433 if field_delete_on_unlink.is_some() {
22434 return Err(::serde::de::Error::duplicate_field("delete_on_unlink"));
22435 }
22436 field_delete_on_unlink = Some(map.next_value()?);
22437 }
22438 _ => {
22439 map.next_value::<::serde_json::Value>()?;
22441 }
22442 }
22443 }
22444 if optional && nothing {
22445 return Ok(None);
22446 }
22447 let result = RevokeDesktopClientArg {
22448 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
22449 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
22450 delete_on_unlink: field_delete_on_unlink.unwrap_or(false),
22451 };
22452 Ok(Some(result))
22453 }
22454
22455 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22456 &self,
22457 s: &mut S::SerializeStruct,
22458 ) -> Result<(), S::Error> {
22459 use serde::ser::SerializeStruct;
22460 s.serialize_field("session_id", &self.session_id)?;
22461 s.serialize_field("team_member_id", &self.team_member_id)?;
22462 if self.delete_on_unlink {
22463 s.serialize_field("delete_on_unlink", &self.delete_on_unlink)?;
22464 }
22465 Ok(())
22466 }
22467}
22468
22469impl<'de> ::serde::de::Deserialize<'de> for RevokeDesktopClientArg {
22470 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22471 use serde::de::{MapAccess, Visitor};
22473 struct StructVisitor;
22474 impl<'de> Visitor<'de> for StructVisitor {
22475 type Value = RevokeDesktopClientArg;
22476 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22477 f.write_str("a RevokeDesktopClientArg struct")
22478 }
22479 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22480 RevokeDesktopClientArg::internal_deserialize(map)
22481 }
22482 }
22483 deserializer.deserialize_struct("RevokeDesktopClientArg", REVOKE_DESKTOP_CLIENT_ARG_FIELDS, StructVisitor)
22484 }
22485}
22486
22487impl ::serde::ser::Serialize for RevokeDesktopClientArg {
22488 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22489 use serde::ser::SerializeStruct;
22491 let mut s = serializer.serialize_struct("RevokeDesktopClientArg", 3)?;
22492 self.internal_serialize::<S>(&mut s)?;
22493 s.end()
22494 }
22495}
22496
22497impl From<RevokeDesktopClientArg> for DeviceSessionArg {
22499 fn from(subtype: RevokeDesktopClientArg) -> Self {
22500 Self {
22501 session_id: subtype.session_id,
22502 team_member_id: subtype.team_member_id,
22503 }
22504 }
22505}
22506#[derive(Debug, Clone, PartialEq, Eq)]
22507pub enum RevokeDeviceSessionArg {
22508 WebSession(DeviceSessionArg),
22510 DesktopClient(RevokeDesktopClientArg),
22512 MobileClient(DeviceSessionArg),
22514}
22515
22516impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionArg {
22517 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22518 use serde::de::{self, MapAccess, Visitor};
22520 struct EnumVisitor;
22521 impl<'de> Visitor<'de> for EnumVisitor {
22522 type Value = RevokeDeviceSessionArg;
22523 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22524 f.write_str("a RevokeDeviceSessionArg structure")
22525 }
22526 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22527 let tag: &str = match map.next_key()? {
22528 Some(".tag") => map.next_value()?,
22529 _ => return Err(de::Error::missing_field(".tag"))
22530 };
22531 let value = match tag {
22532 "web_session" => RevokeDeviceSessionArg::WebSession(DeviceSessionArg::internal_deserialize(&mut map)?),
22533 "desktop_client" => RevokeDeviceSessionArg::DesktopClient(RevokeDesktopClientArg::internal_deserialize(&mut map)?),
22534 "mobile_client" => RevokeDeviceSessionArg::MobileClient(DeviceSessionArg::internal_deserialize(&mut map)?),
22535 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
22536 };
22537 crate::eat_json_fields(&mut map)?;
22538 Ok(value)
22539 }
22540 }
22541 const VARIANTS: &[&str] = &["web_session",
22542 "desktop_client",
22543 "mobile_client"];
22544 deserializer.deserialize_struct("RevokeDeviceSessionArg", VARIANTS, EnumVisitor)
22545 }
22546}
22547
22548impl ::serde::ser::Serialize for RevokeDeviceSessionArg {
22549 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22550 use serde::ser::SerializeStruct;
22552 match self {
22553 RevokeDeviceSessionArg::WebSession(x) => {
22554 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
22556 s.serialize_field(".tag", "web_session")?;
22557 x.internal_serialize::<S>(&mut s)?;
22558 s.end()
22559 }
22560 RevokeDeviceSessionArg::DesktopClient(x) => {
22561 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 4)?;
22563 s.serialize_field(".tag", "desktop_client")?;
22564 x.internal_serialize::<S>(&mut s)?;
22565 s.end()
22566 }
22567 RevokeDeviceSessionArg::MobileClient(x) => {
22568 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
22570 s.serialize_field(".tag", "mobile_client")?;
22571 x.internal_serialize::<S>(&mut s)?;
22572 s.end()
22573 }
22574 }
22575 }
22576}
22577
22578#[derive(Debug, Clone, PartialEq, Eq)]
22579#[non_exhaustive] pub struct RevokeDeviceSessionBatchArg {
22581 pub revoke_devices: Vec<RevokeDeviceSessionArg>,
22582}
22583
22584impl RevokeDeviceSessionBatchArg {
22585 pub fn new(revoke_devices: Vec<RevokeDeviceSessionArg>) -> Self {
22586 RevokeDeviceSessionBatchArg {
22587 revoke_devices,
22588 }
22589 }
22590}
22591
22592const REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS: &[&str] = &["revoke_devices"];
22593impl RevokeDeviceSessionBatchArg {
22594 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22595 map: V,
22596 ) -> Result<RevokeDeviceSessionBatchArg, V::Error> {
22597 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22598 }
22599
22600 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22601 mut map: V,
22602 optional: bool,
22603 ) -> Result<Option<RevokeDeviceSessionBatchArg>, V::Error> {
22604 let mut field_revoke_devices = None;
22605 let mut nothing = true;
22606 while let Some(key) = map.next_key::<&str>()? {
22607 nothing = false;
22608 match key {
22609 "revoke_devices" => {
22610 if field_revoke_devices.is_some() {
22611 return Err(::serde::de::Error::duplicate_field("revoke_devices"));
22612 }
22613 field_revoke_devices = Some(map.next_value()?);
22614 }
22615 _ => {
22616 map.next_value::<::serde_json::Value>()?;
22618 }
22619 }
22620 }
22621 if optional && nothing {
22622 return Ok(None);
22623 }
22624 let result = RevokeDeviceSessionBatchArg {
22625 revoke_devices: field_revoke_devices.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices"))?,
22626 };
22627 Ok(Some(result))
22628 }
22629
22630 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22631 &self,
22632 s: &mut S::SerializeStruct,
22633 ) -> Result<(), S::Error> {
22634 use serde::ser::SerializeStruct;
22635 s.serialize_field("revoke_devices", &self.revoke_devices)?;
22636 Ok(())
22637 }
22638}
22639
22640impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchArg {
22641 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22642 use serde::de::{MapAccess, Visitor};
22644 struct StructVisitor;
22645 impl<'de> Visitor<'de> for StructVisitor {
22646 type Value = RevokeDeviceSessionBatchArg;
22647 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22648 f.write_str("a RevokeDeviceSessionBatchArg struct")
22649 }
22650 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22651 RevokeDeviceSessionBatchArg::internal_deserialize(map)
22652 }
22653 }
22654 deserializer.deserialize_struct("RevokeDeviceSessionBatchArg", REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS, StructVisitor)
22655 }
22656}
22657
22658impl ::serde::ser::Serialize for RevokeDeviceSessionBatchArg {
22659 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22660 use serde::ser::SerializeStruct;
22662 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchArg", 1)?;
22663 self.internal_serialize::<S>(&mut s)?;
22664 s.end()
22665 }
22666}
22667
22668
22669#[derive(Debug, Clone, PartialEq, Eq)]
22670#[non_exhaustive] pub enum RevokeDeviceSessionBatchError {
22672 Other,
22675}
22676
22677impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchError {
22678 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22679 use serde::de::{self, MapAccess, Visitor};
22681 struct EnumVisitor;
22682 impl<'de> Visitor<'de> for EnumVisitor {
22683 type Value = RevokeDeviceSessionBatchError;
22684 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22685 f.write_str("a RevokeDeviceSessionBatchError structure")
22686 }
22687 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22688 let tag: &str = match map.next_key()? {
22689 Some(".tag") => map.next_value()?,
22690 _ => return Err(de::Error::missing_field(".tag"))
22691 };
22692 let _ = tag;
22694 crate::eat_json_fields(&mut map)?;
22695 Ok(RevokeDeviceSessionBatchError::Other)
22696 }
22697 }
22698 const VARIANTS: &[&str] = &["other"];
22699 deserializer.deserialize_struct("RevokeDeviceSessionBatchError", VARIANTS, EnumVisitor)
22700 }
22701}
22702
22703impl ::serde::ser::Serialize for RevokeDeviceSessionBatchError {
22704 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22705 #![allow(unused_variables)]
22707 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
22708 }
22709}
22710
22711impl ::std::error::Error for RevokeDeviceSessionBatchError {
22712}
22713
22714impl ::std::fmt::Display for RevokeDeviceSessionBatchError {
22715 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22716 write!(f, "{:?}", *self)
22717 }
22718}
22719
22720#[derive(Debug, Clone, PartialEq, Eq)]
22721#[non_exhaustive] pub struct RevokeDeviceSessionBatchResult {
22723 pub revoke_devices_status: Vec<RevokeDeviceSessionStatus>,
22724}
22725
22726impl RevokeDeviceSessionBatchResult {
22727 pub fn new(revoke_devices_status: Vec<RevokeDeviceSessionStatus>) -> Self {
22728 RevokeDeviceSessionBatchResult {
22729 revoke_devices_status,
22730 }
22731 }
22732}
22733
22734const REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS: &[&str] = &["revoke_devices_status"];
22735impl RevokeDeviceSessionBatchResult {
22736 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22737 map: V,
22738 ) -> Result<RevokeDeviceSessionBatchResult, V::Error> {
22739 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22740 }
22741
22742 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22743 mut map: V,
22744 optional: bool,
22745 ) -> Result<Option<RevokeDeviceSessionBatchResult>, V::Error> {
22746 let mut field_revoke_devices_status = None;
22747 let mut nothing = true;
22748 while let Some(key) = map.next_key::<&str>()? {
22749 nothing = false;
22750 match key {
22751 "revoke_devices_status" => {
22752 if field_revoke_devices_status.is_some() {
22753 return Err(::serde::de::Error::duplicate_field("revoke_devices_status"));
22754 }
22755 field_revoke_devices_status = Some(map.next_value()?);
22756 }
22757 _ => {
22758 map.next_value::<::serde_json::Value>()?;
22760 }
22761 }
22762 }
22763 if optional && nothing {
22764 return Ok(None);
22765 }
22766 let result = RevokeDeviceSessionBatchResult {
22767 revoke_devices_status: field_revoke_devices_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices_status"))?,
22768 };
22769 Ok(Some(result))
22770 }
22771
22772 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22773 &self,
22774 s: &mut S::SerializeStruct,
22775 ) -> Result<(), S::Error> {
22776 use serde::ser::SerializeStruct;
22777 s.serialize_field("revoke_devices_status", &self.revoke_devices_status)?;
22778 Ok(())
22779 }
22780}
22781
22782impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchResult {
22783 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22784 use serde::de::{MapAccess, Visitor};
22786 struct StructVisitor;
22787 impl<'de> Visitor<'de> for StructVisitor {
22788 type Value = RevokeDeviceSessionBatchResult;
22789 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22790 f.write_str("a RevokeDeviceSessionBatchResult struct")
22791 }
22792 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22793 RevokeDeviceSessionBatchResult::internal_deserialize(map)
22794 }
22795 }
22796 deserializer.deserialize_struct("RevokeDeviceSessionBatchResult", REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS, StructVisitor)
22797 }
22798}
22799
22800impl ::serde::ser::Serialize for RevokeDeviceSessionBatchResult {
22801 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22802 use serde::ser::SerializeStruct;
22804 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchResult", 1)?;
22805 self.internal_serialize::<S>(&mut s)?;
22806 s.end()
22807 }
22808}
22809
22810#[derive(Debug, Clone, PartialEq, Eq)]
22811#[non_exhaustive] pub enum RevokeDeviceSessionError {
22813 DeviceSessionNotFound,
22815 MemberNotFound,
22817 Other,
22820}
22821
22822impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionError {
22823 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22824 use serde::de::{self, MapAccess, Visitor};
22826 struct EnumVisitor;
22827 impl<'de> Visitor<'de> for EnumVisitor {
22828 type Value = RevokeDeviceSessionError;
22829 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22830 f.write_str("a RevokeDeviceSessionError structure")
22831 }
22832 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22833 let tag: &str = match map.next_key()? {
22834 Some(".tag") => map.next_value()?,
22835 _ => return Err(de::Error::missing_field(".tag"))
22836 };
22837 let value = match tag {
22838 "device_session_not_found" => RevokeDeviceSessionError::DeviceSessionNotFound,
22839 "member_not_found" => RevokeDeviceSessionError::MemberNotFound,
22840 _ => RevokeDeviceSessionError::Other,
22841 };
22842 crate::eat_json_fields(&mut map)?;
22843 Ok(value)
22844 }
22845 }
22846 const VARIANTS: &[&str] = &["device_session_not_found",
22847 "member_not_found",
22848 "other"];
22849 deserializer.deserialize_struct("RevokeDeviceSessionError", VARIANTS, EnumVisitor)
22850 }
22851}
22852
22853impl ::serde::ser::Serialize for RevokeDeviceSessionError {
22854 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22855 use serde::ser::SerializeStruct;
22857 match self {
22858 RevokeDeviceSessionError::DeviceSessionNotFound => {
22859 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
22861 s.serialize_field(".tag", "device_session_not_found")?;
22862 s.end()
22863 }
22864 RevokeDeviceSessionError::MemberNotFound => {
22865 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
22867 s.serialize_field(".tag", "member_not_found")?;
22868 s.end()
22869 }
22870 RevokeDeviceSessionError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22871 }
22872 }
22873}
22874
22875impl ::std::error::Error for RevokeDeviceSessionError {
22876}
22877
22878impl ::std::fmt::Display for RevokeDeviceSessionError {
22879 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22880 match self {
22881 RevokeDeviceSessionError::DeviceSessionNotFound => f.write_str("Device session not found."),
22882 RevokeDeviceSessionError::MemberNotFound => f.write_str("Member not found."),
22883 _ => write!(f, "{:?}", *self),
22884 }
22885 }
22886}
22887
22888#[derive(Debug, Clone, PartialEq, Eq)]
22889#[non_exhaustive] pub struct RevokeDeviceSessionStatus {
22891 pub success: bool,
22893 pub error_type: Option<RevokeDeviceSessionError>,
22895}
22896
22897impl RevokeDeviceSessionStatus {
22898 pub fn new(success: bool) -> Self {
22899 RevokeDeviceSessionStatus {
22900 success,
22901 error_type: None,
22902 }
22903 }
22904
22905 pub fn with_error_type(mut self, value: RevokeDeviceSessionError) -> Self {
22906 self.error_type = Some(value);
22907 self
22908 }
22909}
22910
22911const REVOKE_DEVICE_SESSION_STATUS_FIELDS: &[&str] = &["success",
22912 "error_type"];
22913impl RevokeDeviceSessionStatus {
22914 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22915 map: V,
22916 ) -> Result<RevokeDeviceSessionStatus, V::Error> {
22917 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22918 }
22919
22920 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22921 mut map: V,
22922 optional: bool,
22923 ) -> Result<Option<RevokeDeviceSessionStatus>, V::Error> {
22924 let mut field_success = None;
22925 let mut field_error_type = None;
22926 let mut nothing = true;
22927 while let Some(key) = map.next_key::<&str>()? {
22928 nothing = false;
22929 match key {
22930 "success" => {
22931 if field_success.is_some() {
22932 return Err(::serde::de::Error::duplicate_field("success"));
22933 }
22934 field_success = Some(map.next_value()?);
22935 }
22936 "error_type" => {
22937 if field_error_type.is_some() {
22938 return Err(::serde::de::Error::duplicate_field("error_type"));
22939 }
22940 field_error_type = Some(map.next_value()?);
22941 }
22942 _ => {
22943 map.next_value::<::serde_json::Value>()?;
22945 }
22946 }
22947 }
22948 if optional && nothing {
22949 return Ok(None);
22950 }
22951 let result = RevokeDeviceSessionStatus {
22952 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
22953 error_type: field_error_type.and_then(Option::flatten),
22954 };
22955 Ok(Some(result))
22956 }
22957
22958 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22959 &self,
22960 s: &mut S::SerializeStruct,
22961 ) -> Result<(), S::Error> {
22962 use serde::ser::SerializeStruct;
22963 s.serialize_field("success", &self.success)?;
22964 if let Some(val) = &self.error_type {
22965 s.serialize_field("error_type", val)?;
22966 }
22967 Ok(())
22968 }
22969}
22970
22971impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionStatus {
22972 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22973 use serde::de::{MapAccess, Visitor};
22975 struct StructVisitor;
22976 impl<'de> Visitor<'de> for StructVisitor {
22977 type Value = RevokeDeviceSessionStatus;
22978 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22979 f.write_str("a RevokeDeviceSessionStatus struct")
22980 }
22981 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22982 RevokeDeviceSessionStatus::internal_deserialize(map)
22983 }
22984 }
22985 deserializer.deserialize_struct("RevokeDeviceSessionStatus", REVOKE_DEVICE_SESSION_STATUS_FIELDS, StructVisitor)
22986 }
22987}
22988
22989impl ::serde::ser::Serialize for RevokeDeviceSessionStatus {
22990 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22991 use serde::ser::SerializeStruct;
22993 let mut s = serializer.serialize_struct("RevokeDeviceSessionStatus", 2)?;
22994 self.internal_serialize::<S>(&mut s)?;
22995 s.end()
22996 }
22997}
22998
22999#[derive(Debug, Clone, PartialEq, Eq)]
23000#[non_exhaustive] pub struct RevokeLinkedApiAppArg {
23002 pub app_id: String,
23004 pub team_member_id: String,
23006 pub keep_app_folder: bool,
23009}
23010
23011impl RevokeLinkedApiAppArg {
23012 pub fn new(app_id: String, team_member_id: String) -> Self {
23013 RevokeLinkedApiAppArg {
23014 app_id,
23015 team_member_id,
23016 keep_app_folder: true,
23017 }
23018 }
23019
23020 pub fn with_keep_app_folder(mut self, value: bool) -> Self {
23021 self.keep_app_folder = value;
23022 self
23023 }
23024}
23025
23026const REVOKE_LINKED_API_APP_ARG_FIELDS: &[&str] = &["app_id",
23027 "team_member_id",
23028 "keep_app_folder"];
23029impl RevokeLinkedApiAppArg {
23030 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23031 map: V,
23032 ) -> Result<RevokeLinkedApiAppArg, V::Error> {
23033 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23034 }
23035
23036 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23037 mut map: V,
23038 optional: bool,
23039 ) -> Result<Option<RevokeLinkedApiAppArg>, V::Error> {
23040 let mut field_app_id = None;
23041 let mut field_team_member_id = None;
23042 let mut field_keep_app_folder = None;
23043 let mut nothing = true;
23044 while let Some(key) = map.next_key::<&str>()? {
23045 nothing = false;
23046 match key {
23047 "app_id" => {
23048 if field_app_id.is_some() {
23049 return Err(::serde::de::Error::duplicate_field("app_id"));
23050 }
23051 field_app_id = Some(map.next_value()?);
23052 }
23053 "team_member_id" => {
23054 if field_team_member_id.is_some() {
23055 return Err(::serde::de::Error::duplicate_field("team_member_id"));
23056 }
23057 field_team_member_id = Some(map.next_value()?);
23058 }
23059 "keep_app_folder" => {
23060 if field_keep_app_folder.is_some() {
23061 return Err(::serde::de::Error::duplicate_field("keep_app_folder"));
23062 }
23063 field_keep_app_folder = Some(map.next_value()?);
23064 }
23065 _ => {
23066 map.next_value::<::serde_json::Value>()?;
23068 }
23069 }
23070 }
23071 if optional && nothing {
23072 return Ok(None);
23073 }
23074 let result = RevokeLinkedApiAppArg {
23075 app_id: field_app_id.ok_or_else(|| ::serde::de::Error::missing_field("app_id"))?,
23076 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
23077 keep_app_folder: field_keep_app_folder.unwrap_or(true),
23078 };
23079 Ok(Some(result))
23080 }
23081
23082 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23083 &self,
23084 s: &mut S::SerializeStruct,
23085 ) -> Result<(), S::Error> {
23086 use serde::ser::SerializeStruct;
23087 s.serialize_field("app_id", &self.app_id)?;
23088 s.serialize_field("team_member_id", &self.team_member_id)?;
23089 if !self.keep_app_folder {
23090 s.serialize_field("keep_app_folder", &self.keep_app_folder)?;
23091 }
23092 Ok(())
23093 }
23094}
23095
23096impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppArg {
23097 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23098 use serde::de::{MapAccess, Visitor};
23100 struct StructVisitor;
23101 impl<'de> Visitor<'de> for StructVisitor {
23102 type Value = RevokeLinkedApiAppArg;
23103 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23104 f.write_str("a RevokeLinkedApiAppArg struct")
23105 }
23106 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23107 RevokeLinkedApiAppArg::internal_deserialize(map)
23108 }
23109 }
23110 deserializer.deserialize_struct("RevokeLinkedApiAppArg", REVOKE_LINKED_API_APP_ARG_FIELDS, StructVisitor)
23111 }
23112}
23113
23114impl ::serde::ser::Serialize for RevokeLinkedApiAppArg {
23115 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23116 use serde::ser::SerializeStruct;
23118 let mut s = serializer.serialize_struct("RevokeLinkedApiAppArg", 3)?;
23119 self.internal_serialize::<S>(&mut s)?;
23120 s.end()
23121 }
23122}
23123
23124#[derive(Debug, Clone, PartialEq, Eq)]
23125#[non_exhaustive] pub struct RevokeLinkedApiAppBatchArg {
23127 pub revoke_linked_app: Vec<RevokeLinkedApiAppArg>,
23128}
23129
23130impl RevokeLinkedApiAppBatchArg {
23131 pub fn new(revoke_linked_app: Vec<RevokeLinkedApiAppArg>) -> Self {
23132 RevokeLinkedApiAppBatchArg {
23133 revoke_linked_app,
23134 }
23135 }
23136}
23137
23138const REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS: &[&str] = &["revoke_linked_app"];
23139impl RevokeLinkedApiAppBatchArg {
23140 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23141 map: V,
23142 ) -> Result<RevokeLinkedApiAppBatchArg, V::Error> {
23143 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23144 }
23145
23146 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23147 mut map: V,
23148 optional: bool,
23149 ) -> Result<Option<RevokeLinkedApiAppBatchArg>, V::Error> {
23150 let mut field_revoke_linked_app = None;
23151 let mut nothing = true;
23152 while let Some(key) = map.next_key::<&str>()? {
23153 nothing = false;
23154 match key {
23155 "revoke_linked_app" => {
23156 if field_revoke_linked_app.is_some() {
23157 return Err(::serde::de::Error::duplicate_field("revoke_linked_app"));
23158 }
23159 field_revoke_linked_app = Some(map.next_value()?);
23160 }
23161 _ => {
23162 map.next_value::<::serde_json::Value>()?;
23164 }
23165 }
23166 }
23167 if optional && nothing {
23168 return Ok(None);
23169 }
23170 let result = RevokeLinkedApiAppBatchArg {
23171 revoke_linked_app: field_revoke_linked_app.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app"))?,
23172 };
23173 Ok(Some(result))
23174 }
23175
23176 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23177 &self,
23178 s: &mut S::SerializeStruct,
23179 ) -> Result<(), S::Error> {
23180 use serde::ser::SerializeStruct;
23181 s.serialize_field("revoke_linked_app", &self.revoke_linked_app)?;
23182 Ok(())
23183 }
23184}
23185
23186impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppBatchArg {
23187 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23188 use serde::de::{MapAccess, Visitor};
23190 struct StructVisitor;
23191 impl<'de> Visitor<'de> for StructVisitor {
23192 type Value = RevokeLinkedApiAppBatchArg;
23193 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23194 f.write_str("a RevokeLinkedApiAppBatchArg struct")
23195 }
23196 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23197 RevokeLinkedApiAppBatchArg::internal_deserialize(map)
23198 }
23199 }
23200 deserializer.deserialize_struct("RevokeLinkedApiAppBatchArg", REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS, StructVisitor)
23201 }
23202}
23203
23204impl ::serde::ser::Serialize for RevokeLinkedApiAppBatchArg {
23205 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23206 use serde::ser::SerializeStruct;
23208 let mut s = serializer.serialize_struct("RevokeLinkedApiAppBatchArg", 1)?;
23209 self.internal_serialize::<S>(&mut s)?;
23210 s.end()
23211 }
23212}
23213
23214#[derive(Debug, Clone, PartialEq, Eq)]
23217#[non_exhaustive] pub enum RevokeLinkedAppBatchError {
23219 Other,
23222}
23223
23224impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchError {
23225 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23226 use serde::de::{self, MapAccess, Visitor};
23228 struct EnumVisitor;
23229 impl<'de> Visitor<'de> for EnumVisitor {
23230 type Value = RevokeLinkedAppBatchError;
23231 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23232 f.write_str("a RevokeLinkedAppBatchError structure")
23233 }
23234 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23235 let tag: &str = match map.next_key()? {
23236 Some(".tag") => map.next_value()?,
23237 _ => return Err(de::Error::missing_field(".tag"))
23238 };
23239 let _ = tag;
23241 crate::eat_json_fields(&mut map)?;
23242 Ok(RevokeLinkedAppBatchError::Other)
23243 }
23244 }
23245 const VARIANTS: &[&str] = &["other"];
23246 deserializer.deserialize_struct("RevokeLinkedAppBatchError", VARIANTS, EnumVisitor)
23247 }
23248}
23249
23250impl ::serde::ser::Serialize for RevokeLinkedAppBatchError {
23251 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23252 #![allow(unused_variables)]
23254 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
23255 }
23256}
23257
23258impl ::std::error::Error for RevokeLinkedAppBatchError {
23259}
23260
23261impl ::std::fmt::Display for RevokeLinkedAppBatchError {
23262 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23263 write!(f, "{:?}", *self)
23264 }
23265}
23266
23267#[derive(Debug, Clone, PartialEq, Eq)]
23268#[non_exhaustive] pub struct RevokeLinkedAppBatchResult {
23270 pub revoke_linked_app_status: Vec<RevokeLinkedAppStatus>,
23271}
23272
23273impl RevokeLinkedAppBatchResult {
23274 pub fn new(revoke_linked_app_status: Vec<RevokeLinkedAppStatus>) -> Self {
23275 RevokeLinkedAppBatchResult {
23276 revoke_linked_app_status,
23277 }
23278 }
23279}
23280
23281const REVOKE_LINKED_APP_BATCH_RESULT_FIELDS: &[&str] = &["revoke_linked_app_status"];
23282impl RevokeLinkedAppBatchResult {
23283 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23284 map: V,
23285 ) -> Result<RevokeLinkedAppBatchResult, V::Error> {
23286 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23287 }
23288
23289 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23290 mut map: V,
23291 optional: bool,
23292 ) -> Result<Option<RevokeLinkedAppBatchResult>, V::Error> {
23293 let mut field_revoke_linked_app_status = None;
23294 let mut nothing = true;
23295 while let Some(key) = map.next_key::<&str>()? {
23296 nothing = false;
23297 match key {
23298 "revoke_linked_app_status" => {
23299 if field_revoke_linked_app_status.is_some() {
23300 return Err(::serde::de::Error::duplicate_field("revoke_linked_app_status"));
23301 }
23302 field_revoke_linked_app_status = Some(map.next_value()?);
23303 }
23304 _ => {
23305 map.next_value::<::serde_json::Value>()?;
23307 }
23308 }
23309 }
23310 if optional && nothing {
23311 return Ok(None);
23312 }
23313 let result = RevokeLinkedAppBatchResult {
23314 revoke_linked_app_status: field_revoke_linked_app_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app_status"))?,
23315 };
23316 Ok(Some(result))
23317 }
23318
23319 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23320 &self,
23321 s: &mut S::SerializeStruct,
23322 ) -> Result<(), S::Error> {
23323 use serde::ser::SerializeStruct;
23324 s.serialize_field("revoke_linked_app_status", &self.revoke_linked_app_status)?;
23325 Ok(())
23326 }
23327}
23328
23329impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchResult {
23330 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23331 use serde::de::{MapAccess, Visitor};
23333 struct StructVisitor;
23334 impl<'de> Visitor<'de> for StructVisitor {
23335 type Value = RevokeLinkedAppBatchResult;
23336 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23337 f.write_str("a RevokeLinkedAppBatchResult struct")
23338 }
23339 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23340 RevokeLinkedAppBatchResult::internal_deserialize(map)
23341 }
23342 }
23343 deserializer.deserialize_struct("RevokeLinkedAppBatchResult", REVOKE_LINKED_APP_BATCH_RESULT_FIELDS, StructVisitor)
23344 }
23345}
23346
23347impl ::serde::ser::Serialize for RevokeLinkedAppBatchResult {
23348 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23349 use serde::ser::SerializeStruct;
23351 let mut s = serializer.serialize_struct("RevokeLinkedAppBatchResult", 1)?;
23352 self.internal_serialize::<S>(&mut s)?;
23353 s.end()
23354 }
23355}
23356
23357#[derive(Debug, Clone, PartialEq, Eq)]
23360#[non_exhaustive] pub enum RevokeLinkedAppError {
23362 AppNotFound,
23364 MemberNotFound,
23366 AppFolderRemovalNotSupported,
23368 Other,
23371}
23372
23373impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppError {
23374 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23375 use serde::de::{self, MapAccess, Visitor};
23377 struct EnumVisitor;
23378 impl<'de> Visitor<'de> for EnumVisitor {
23379 type Value = RevokeLinkedAppError;
23380 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23381 f.write_str("a RevokeLinkedAppError structure")
23382 }
23383 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23384 let tag: &str = match map.next_key()? {
23385 Some(".tag") => map.next_value()?,
23386 _ => return Err(de::Error::missing_field(".tag"))
23387 };
23388 let value = match tag {
23389 "app_not_found" => RevokeLinkedAppError::AppNotFound,
23390 "member_not_found" => RevokeLinkedAppError::MemberNotFound,
23391 "app_folder_removal_not_supported" => RevokeLinkedAppError::AppFolderRemovalNotSupported,
23392 _ => RevokeLinkedAppError::Other,
23393 };
23394 crate::eat_json_fields(&mut map)?;
23395 Ok(value)
23396 }
23397 }
23398 const VARIANTS: &[&str] = &["app_not_found",
23399 "member_not_found",
23400 "app_folder_removal_not_supported",
23401 "other"];
23402 deserializer.deserialize_struct("RevokeLinkedAppError", VARIANTS, EnumVisitor)
23403 }
23404}
23405
23406impl ::serde::ser::Serialize for RevokeLinkedAppError {
23407 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23408 use serde::ser::SerializeStruct;
23410 match self {
23411 RevokeLinkedAppError::AppNotFound => {
23412 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
23414 s.serialize_field(".tag", "app_not_found")?;
23415 s.end()
23416 }
23417 RevokeLinkedAppError::MemberNotFound => {
23418 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
23420 s.serialize_field(".tag", "member_not_found")?;
23421 s.end()
23422 }
23423 RevokeLinkedAppError::AppFolderRemovalNotSupported => {
23424 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
23426 s.serialize_field(".tag", "app_folder_removal_not_supported")?;
23427 s.end()
23428 }
23429 RevokeLinkedAppError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23430 }
23431 }
23432}
23433
23434impl ::std::error::Error for RevokeLinkedAppError {
23435}
23436
23437impl ::std::fmt::Display for RevokeLinkedAppError {
23438 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23439 match self {
23440 RevokeLinkedAppError::AppNotFound => f.write_str("Application not found."),
23441 RevokeLinkedAppError::MemberNotFound => f.write_str("Member not found."),
23442 RevokeLinkedAppError::AppFolderRemovalNotSupported => f.write_str("App folder removal is not supported."),
23443 _ => write!(f, "{:?}", *self),
23444 }
23445 }
23446}
23447
23448#[derive(Debug, Clone, PartialEq, Eq)]
23449#[non_exhaustive] pub struct RevokeLinkedAppStatus {
23451 pub success: bool,
23453 pub error_type: Option<RevokeLinkedAppError>,
23455}
23456
23457impl RevokeLinkedAppStatus {
23458 pub fn new(success: bool) -> Self {
23459 RevokeLinkedAppStatus {
23460 success,
23461 error_type: None,
23462 }
23463 }
23464
23465 pub fn with_error_type(mut self, value: RevokeLinkedAppError) -> Self {
23466 self.error_type = Some(value);
23467 self
23468 }
23469}
23470
23471const REVOKE_LINKED_APP_STATUS_FIELDS: &[&str] = &["success",
23472 "error_type"];
23473impl RevokeLinkedAppStatus {
23474 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23475 map: V,
23476 ) -> Result<RevokeLinkedAppStatus, V::Error> {
23477 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23478 }
23479
23480 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23481 mut map: V,
23482 optional: bool,
23483 ) -> Result<Option<RevokeLinkedAppStatus>, V::Error> {
23484 let mut field_success = None;
23485 let mut field_error_type = None;
23486 let mut nothing = true;
23487 while let Some(key) = map.next_key::<&str>()? {
23488 nothing = false;
23489 match key {
23490 "success" => {
23491 if field_success.is_some() {
23492 return Err(::serde::de::Error::duplicate_field("success"));
23493 }
23494 field_success = Some(map.next_value()?);
23495 }
23496 "error_type" => {
23497 if field_error_type.is_some() {
23498 return Err(::serde::de::Error::duplicate_field("error_type"));
23499 }
23500 field_error_type = Some(map.next_value()?);
23501 }
23502 _ => {
23503 map.next_value::<::serde_json::Value>()?;
23505 }
23506 }
23507 }
23508 if optional && nothing {
23509 return Ok(None);
23510 }
23511 let result = RevokeLinkedAppStatus {
23512 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
23513 error_type: field_error_type.and_then(Option::flatten),
23514 };
23515 Ok(Some(result))
23516 }
23517
23518 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23519 &self,
23520 s: &mut S::SerializeStruct,
23521 ) -> Result<(), S::Error> {
23522 use serde::ser::SerializeStruct;
23523 s.serialize_field("success", &self.success)?;
23524 if let Some(val) = &self.error_type {
23525 s.serialize_field("error_type", val)?;
23526 }
23527 Ok(())
23528 }
23529}
23530
23531impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppStatus {
23532 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23533 use serde::de::{MapAccess, Visitor};
23535 struct StructVisitor;
23536 impl<'de> Visitor<'de> for StructVisitor {
23537 type Value = RevokeLinkedAppStatus;
23538 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23539 f.write_str("a RevokeLinkedAppStatus struct")
23540 }
23541 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23542 RevokeLinkedAppStatus::internal_deserialize(map)
23543 }
23544 }
23545 deserializer.deserialize_struct("RevokeLinkedAppStatus", REVOKE_LINKED_APP_STATUS_FIELDS, StructVisitor)
23546 }
23547}
23548
23549impl ::serde::ser::Serialize for RevokeLinkedAppStatus {
23550 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23551 use serde::ser::SerializeStruct;
23553 let mut s = serializer.serialize_struct("RevokeLinkedAppStatus", 2)?;
23554 self.internal_serialize::<S>(&mut s)?;
23555 s.end()
23556 }
23557}
23558
23559#[derive(Debug, Clone, PartialEq, Eq)]
23560#[non_exhaustive] pub struct SetCustomQuotaArg {
23562 pub users_and_quotas: Vec<UserCustomQuotaArg>,
23564}
23565
23566impl SetCustomQuotaArg {
23567 pub fn new(users_and_quotas: Vec<UserCustomQuotaArg>) -> Self {
23568 SetCustomQuotaArg {
23569 users_and_quotas,
23570 }
23571 }
23572}
23573
23574const SET_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["users_and_quotas"];
23575impl SetCustomQuotaArg {
23576 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23577 map: V,
23578 ) -> Result<SetCustomQuotaArg, V::Error> {
23579 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23580 }
23581
23582 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23583 mut map: V,
23584 optional: bool,
23585 ) -> Result<Option<SetCustomQuotaArg>, V::Error> {
23586 let mut field_users_and_quotas = None;
23587 let mut nothing = true;
23588 while let Some(key) = map.next_key::<&str>()? {
23589 nothing = false;
23590 match key {
23591 "users_and_quotas" => {
23592 if field_users_and_quotas.is_some() {
23593 return Err(::serde::de::Error::duplicate_field("users_and_quotas"));
23594 }
23595 field_users_and_quotas = Some(map.next_value()?);
23596 }
23597 _ => {
23598 map.next_value::<::serde_json::Value>()?;
23600 }
23601 }
23602 }
23603 if optional && nothing {
23604 return Ok(None);
23605 }
23606 let result = SetCustomQuotaArg {
23607 users_and_quotas: field_users_and_quotas.ok_or_else(|| ::serde::de::Error::missing_field("users_and_quotas"))?,
23608 };
23609 Ok(Some(result))
23610 }
23611
23612 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23613 &self,
23614 s: &mut S::SerializeStruct,
23615 ) -> Result<(), S::Error> {
23616 use serde::ser::SerializeStruct;
23617 s.serialize_field("users_and_quotas", &self.users_and_quotas)?;
23618 Ok(())
23619 }
23620}
23621
23622impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaArg {
23623 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23624 use serde::de::{MapAccess, Visitor};
23626 struct StructVisitor;
23627 impl<'de> Visitor<'de> for StructVisitor {
23628 type Value = SetCustomQuotaArg;
23629 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23630 f.write_str("a SetCustomQuotaArg struct")
23631 }
23632 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23633 SetCustomQuotaArg::internal_deserialize(map)
23634 }
23635 }
23636 deserializer.deserialize_struct("SetCustomQuotaArg", SET_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
23637 }
23638}
23639
23640impl ::serde::ser::Serialize for SetCustomQuotaArg {
23641 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23642 use serde::ser::SerializeStruct;
23644 let mut s = serializer.serialize_struct("SetCustomQuotaArg", 1)?;
23645 self.internal_serialize::<S>(&mut s)?;
23646 s.end()
23647 }
23648}
23649
23650#[derive(Debug, Clone, PartialEq, Eq)]
23652#[non_exhaustive] pub enum SetCustomQuotaError {
23654 TooManyUsers,
23656 SomeUsersAreExcluded,
23658 Other,
23661}
23662
23663impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaError {
23664 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23665 use serde::de::{self, MapAccess, Visitor};
23667 struct EnumVisitor;
23668 impl<'de> Visitor<'de> for EnumVisitor {
23669 type Value = SetCustomQuotaError;
23670 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23671 f.write_str("a SetCustomQuotaError structure")
23672 }
23673 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23674 let tag: &str = match map.next_key()? {
23675 Some(".tag") => map.next_value()?,
23676 _ => return Err(de::Error::missing_field(".tag"))
23677 };
23678 let value = match tag {
23679 "too_many_users" => SetCustomQuotaError::TooManyUsers,
23680 "some_users_are_excluded" => SetCustomQuotaError::SomeUsersAreExcluded,
23681 _ => SetCustomQuotaError::Other,
23682 };
23683 crate::eat_json_fields(&mut map)?;
23684 Ok(value)
23685 }
23686 }
23687 const VARIANTS: &[&str] = &["too_many_users",
23688 "other",
23689 "some_users_are_excluded"];
23690 deserializer.deserialize_struct("SetCustomQuotaError", VARIANTS, EnumVisitor)
23691 }
23692}
23693
23694impl ::serde::ser::Serialize for SetCustomQuotaError {
23695 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23696 use serde::ser::SerializeStruct;
23698 match self {
23699 SetCustomQuotaError::TooManyUsers => {
23700 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
23702 s.serialize_field(".tag", "too_many_users")?;
23703 s.end()
23704 }
23705 SetCustomQuotaError::SomeUsersAreExcluded => {
23706 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
23708 s.serialize_field(".tag", "some_users_are_excluded")?;
23709 s.end()
23710 }
23711 SetCustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23712 }
23713 }
23714}
23715
23716impl ::std::error::Error for SetCustomQuotaError {
23717}
23718
23719impl ::std::fmt::Display for SetCustomQuotaError {
23720 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23721 match self {
23722 SetCustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
23723 SetCustomQuotaError::SomeUsersAreExcluded => f.write_str("Some of the users are on the excluded users list and can't have custom quota set."),
23724 _ => write!(f, "{:?}", *self),
23725 }
23726 }
23727}
23728
23729impl From<CustomQuotaError> for SetCustomQuotaError {
23731 fn from(parent: CustomQuotaError) -> Self {
23732 match parent {
23733 CustomQuotaError::TooManyUsers => SetCustomQuotaError::TooManyUsers,
23734 CustomQuotaError::Other => SetCustomQuotaError::Other,
23735 }
23736 }
23737}
23738#[derive(Debug, Clone, PartialEq, Eq, Default)]
23741#[non_exhaustive] pub struct SharingAllowlistAddArgs {
23743 pub domains: Option<Vec<String>>,
23745 pub emails: Option<Vec<String>>,
23747}
23748
23749impl SharingAllowlistAddArgs {
23750 pub fn with_domains(mut self, value: Vec<String>) -> Self {
23751 self.domains = Some(value);
23752 self
23753 }
23754
23755 pub fn with_emails(mut self, value: Vec<String>) -> Self {
23756 self.emails = Some(value);
23757 self
23758 }
23759}
23760
23761const SHARING_ALLOWLIST_ADD_ARGS_FIELDS: &[&str] = &["domains",
23762 "emails"];
23763impl SharingAllowlistAddArgs {
23764 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23766 mut map: V,
23767 ) -> Result<SharingAllowlistAddArgs, V::Error> {
23768 let mut field_domains = None;
23769 let mut field_emails = None;
23770 while let Some(key) = map.next_key::<&str>()? {
23771 match key {
23772 "domains" => {
23773 if field_domains.is_some() {
23774 return Err(::serde::de::Error::duplicate_field("domains"));
23775 }
23776 field_domains = Some(map.next_value()?);
23777 }
23778 "emails" => {
23779 if field_emails.is_some() {
23780 return Err(::serde::de::Error::duplicate_field("emails"));
23781 }
23782 field_emails = Some(map.next_value()?);
23783 }
23784 _ => {
23785 map.next_value::<::serde_json::Value>()?;
23787 }
23788 }
23789 }
23790 let result = SharingAllowlistAddArgs {
23791 domains: field_domains.and_then(Option::flatten),
23792 emails: field_emails.and_then(Option::flatten),
23793 };
23794 Ok(result)
23795 }
23796
23797 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23798 &self,
23799 s: &mut S::SerializeStruct,
23800 ) -> Result<(), S::Error> {
23801 use serde::ser::SerializeStruct;
23802 if let Some(val) = &self.domains {
23803 s.serialize_field("domains", val)?;
23804 }
23805 if let Some(val) = &self.emails {
23806 s.serialize_field("emails", val)?;
23807 }
23808 Ok(())
23809 }
23810}
23811
23812impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddArgs {
23813 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23814 use serde::de::{MapAccess, Visitor};
23816 struct StructVisitor;
23817 impl<'de> Visitor<'de> for StructVisitor {
23818 type Value = SharingAllowlistAddArgs;
23819 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23820 f.write_str("a SharingAllowlistAddArgs struct")
23821 }
23822 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23823 SharingAllowlistAddArgs::internal_deserialize(map)
23824 }
23825 }
23826 deserializer.deserialize_struct("SharingAllowlistAddArgs", SHARING_ALLOWLIST_ADD_ARGS_FIELDS, StructVisitor)
23827 }
23828}
23829
23830impl ::serde::ser::Serialize for SharingAllowlistAddArgs {
23831 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23832 use serde::ser::SerializeStruct;
23834 let mut s = serializer.serialize_struct("SharingAllowlistAddArgs", 2)?;
23835 self.internal_serialize::<S>(&mut s)?;
23836 s.end()
23837 }
23838}
23839
23840#[derive(Debug, Clone, PartialEq, Eq)]
23841#[non_exhaustive] pub enum SharingAllowlistAddError {
23843 MalformedEntry(String),
23845 NoEntriesProvided,
23847 TooManyEntriesProvided,
23849 TeamLimitReached,
23851 UnknownError,
23853 EntriesAlreadyExist(String),
23855 Other,
23858}
23859
23860impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddError {
23861 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23862 use serde::de::{self, MapAccess, Visitor};
23864 struct EnumVisitor;
23865 impl<'de> Visitor<'de> for EnumVisitor {
23866 type Value = SharingAllowlistAddError;
23867 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23868 f.write_str("a SharingAllowlistAddError structure")
23869 }
23870 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23871 let tag: &str = match map.next_key()? {
23872 Some(".tag") => map.next_value()?,
23873 _ => return Err(de::Error::missing_field(".tag"))
23874 };
23875 let value = match tag {
23876 "malformed_entry" => {
23877 match map.next_key()? {
23878 Some("malformed_entry") => SharingAllowlistAddError::MalformedEntry(map.next_value()?),
23879 None => return Err(de::Error::missing_field("malformed_entry")),
23880 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23881 }
23882 }
23883 "no_entries_provided" => SharingAllowlistAddError::NoEntriesProvided,
23884 "too_many_entries_provided" => SharingAllowlistAddError::TooManyEntriesProvided,
23885 "team_limit_reached" => SharingAllowlistAddError::TeamLimitReached,
23886 "unknown_error" => SharingAllowlistAddError::UnknownError,
23887 "entries_already_exist" => {
23888 match map.next_key()? {
23889 Some("entries_already_exist") => SharingAllowlistAddError::EntriesAlreadyExist(map.next_value()?),
23890 None => return Err(de::Error::missing_field("entries_already_exist")),
23891 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23892 }
23893 }
23894 _ => SharingAllowlistAddError::Other,
23895 };
23896 crate::eat_json_fields(&mut map)?;
23897 Ok(value)
23898 }
23899 }
23900 const VARIANTS: &[&str] = &["malformed_entry",
23901 "no_entries_provided",
23902 "too_many_entries_provided",
23903 "team_limit_reached",
23904 "unknown_error",
23905 "entries_already_exist",
23906 "other"];
23907 deserializer.deserialize_struct("SharingAllowlistAddError", VARIANTS, EnumVisitor)
23908 }
23909}
23910
23911impl ::serde::ser::Serialize for SharingAllowlistAddError {
23912 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23913 use serde::ser::SerializeStruct;
23915 match self {
23916 SharingAllowlistAddError::MalformedEntry(x) => {
23917 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
23919 s.serialize_field(".tag", "malformed_entry")?;
23920 s.serialize_field("malformed_entry", x)?;
23921 s.end()
23922 }
23923 SharingAllowlistAddError::NoEntriesProvided => {
23924 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23926 s.serialize_field(".tag", "no_entries_provided")?;
23927 s.end()
23928 }
23929 SharingAllowlistAddError::TooManyEntriesProvided => {
23930 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23932 s.serialize_field(".tag", "too_many_entries_provided")?;
23933 s.end()
23934 }
23935 SharingAllowlistAddError::TeamLimitReached => {
23936 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23938 s.serialize_field(".tag", "team_limit_reached")?;
23939 s.end()
23940 }
23941 SharingAllowlistAddError::UnknownError => {
23942 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23944 s.serialize_field(".tag", "unknown_error")?;
23945 s.end()
23946 }
23947 SharingAllowlistAddError::EntriesAlreadyExist(x) => {
23948 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
23950 s.serialize_field(".tag", "entries_already_exist")?;
23951 s.serialize_field("entries_already_exist", x)?;
23952 s.end()
23953 }
23954 SharingAllowlistAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23955 }
23956 }
23957}
23958
23959impl ::std::error::Error for SharingAllowlistAddError {
23960}
23961
23962impl ::std::fmt::Display for SharingAllowlistAddError {
23963 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23964 match self {
23965 SharingAllowlistAddError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
23966 SharingAllowlistAddError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
23967 SharingAllowlistAddError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
23968 SharingAllowlistAddError::TeamLimitReached => f.write_str("Team entries limit reached."),
23969 SharingAllowlistAddError::UnknownError => f.write_str("Unknown error."),
23970 SharingAllowlistAddError::EntriesAlreadyExist(inner) => write!(f, "Entries already exists: {:?}", inner),
23971 _ => write!(f, "{:?}", *self),
23972 }
23973 }
23974}
23975
23976#[derive(Debug, Clone, PartialEq, Eq, Default)]
23979#[non_exhaustive] pub struct SharingAllowlistAddResponse {
23981}
23982
23983const SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS: &[&str] = &[];
23984impl SharingAllowlistAddResponse {
23985 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23987 mut map: V,
23988 ) -> Result<SharingAllowlistAddResponse, V::Error> {
23989 crate::eat_json_fields(&mut map)?;
23991 Ok(SharingAllowlistAddResponse {})
23992 }
23993}
23994
23995impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddResponse {
23996 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23997 use serde::de::{MapAccess, Visitor};
23999 struct StructVisitor;
24000 impl<'de> Visitor<'de> for StructVisitor {
24001 type Value = SharingAllowlistAddResponse;
24002 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24003 f.write_str("a SharingAllowlistAddResponse struct")
24004 }
24005 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24006 SharingAllowlistAddResponse::internal_deserialize(map)
24007 }
24008 }
24009 deserializer.deserialize_struct("SharingAllowlistAddResponse", SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS, StructVisitor)
24010 }
24011}
24012
24013impl ::serde::ser::Serialize for SharingAllowlistAddResponse {
24014 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24015 use serde::ser::SerializeStruct;
24017 serializer.serialize_struct("SharingAllowlistAddResponse", 0)?.end()
24018 }
24019}
24020
24021#[derive(Debug, Clone, PartialEq, Eq)]
24022#[non_exhaustive] pub struct SharingAllowlistListArg {
24024 pub limit: u32,
24026}
24027
24028impl Default for SharingAllowlistListArg {
24029 fn default() -> Self {
24030 SharingAllowlistListArg {
24031 limit: 1000,
24032 }
24033 }
24034}
24035
24036impl SharingAllowlistListArg {
24037 pub fn with_limit(mut self, value: u32) -> Self {
24038 self.limit = value;
24039 self
24040 }
24041}
24042
24043const SHARING_ALLOWLIST_LIST_ARG_FIELDS: &[&str] = &["limit"];
24044impl SharingAllowlistListArg {
24045 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24047 mut map: V,
24048 ) -> Result<SharingAllowlistListArg, V::Error> {
24049 let mut field_limit = None;
24050 while let Some(key) = map.next_key::<&str>()? {
24051 match key {
24052 "limit" => {
24053 if field_limit.is_some() {
24054 return Err(::serde::de::Error::duplicate_field("limit"));
24055 }
24056 field_limit = Some(map.next_value()?);
24057 }
24058 _ => {
24059 map.next_value::<::serde_json::Value>()?;
24061 }
24062 }
24063 }
24064 let result = SharingAllowlistListArg {
24065 limit: field_limit.unwrap_or(1000),
24066 };
24067 Ok(result)
24068 }
24069
24070 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24071 &self,
24072 s: &mut S::SerializeStruct,
24073 ) -> Result<(), S::Error> {
24074 use serde::ser::SerializeStruct;
24075 if self.limit != 1000 {
24076 s.serialize_field("limit", &self.limit)?;
24077 }
24078 Ok(())
24079 }
24080}
24081
24082impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListArg {
24083 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24084 use serde::de::{MapAccess, Visitor};
24086 struct StructVisitor;
24087 impl<'de> Visitor<'de> for StructVisitor {
24088 type Value = SharingAllowlistListArg;
24089 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24090 f.write_str("a SharingAllowlistListArg struct")
24091 }
24092 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24093 SharingAllowlistListArg::internal_deserialize(map)
24094 }
24095 }
24096 deserializer.deserialize_struct("SharingAllowlistListArg", SHARING_ALLOWLIST_LIST_ARG_FIELDS, StructVisitor)
24097 }
24098}
24099
24100impl ::serde::ser::Serialize for SharingAllowlistListArg {
24101 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24102 use serde::ser::SerializeStruct;
24104 let mut s = serializer.serialize_struct("SharingAllowlistListArg", 1)?;
24105 self.internal_serialize::<S>(&mut s)?;
24106 s.end()
24107 }
24108}
24109
24110#[derive(Debug, Clone, PartialEq, Eq)]
24111#[non_exhaustive] pub struct SharingAllowlistListContinueArg {
24113 pub cursor: String,
24117}
24118
24119impl SharingAllowlistListContinueArg {
24120 pub fn new(cursor: String) -> Self {
24121 SharingAllowlistListContinueArg {
24122 cursor,
24123 }
24124 }
24125}
24126
24127const SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
24128impl SharingAllowlistListContinueArg {
24129 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24130 map: V,
24131 ) -> Result<SharingAllowlistListContinueArg, V::Error> {
24132 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24133 }
24134
24135 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24136 mut map: V,
24137 optional: bool,
24138 ) -> Result<Option<SharingAllowlistListContinueArg>, V::Error> {
24139 let mut field_cursor = None;
24140 let mut nothing = true;
24141 while let Some(key) = map.next_key::<&str>()? {
24142 nothing = false;
24143 match key {
24144 "cursor" => {
24145 if field_cursor.is_some() {
24146 return Err(::serde::de::Error::duplicate_field("cursor"));
24147 }
24148 field_cursor = Some(map.next_value()?);
24149 }
24150 _ => {
24151 map.next_value::<::serde_json::Value>()?;
24153 }
24154 }
24155 }
24156 if optional && nothing {
24157 return Ok(None);
24158 }
24159 let result = SharingAllowlistListContinueArg {
24160 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
24161 };
24162 Ok(Some(result))
24163 }
24164
24165 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24166 &self,
24167 s: &mut S::SerializeStruct,
24168 ) -> Result<(), S::Error> {
24169 use serde::ser::SerializeStruct;
24170 s.serialize_field("cursor", &self.cursor)?;
24171 Ok(())
24172 }
24173}
24174
24175impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueArg {
24176 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24177 use serde::de::{MapAccess, Visitor};
24179 struct StructVisitor;
24180 impl<'de> Visitor<'de> for StructVisitor {
24181 type Value = SharingAllowlistListContinueArg;
24182 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24183 f.write_str("a SharingAllowlistListContinueArg struct")
24184 }
24185 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24186 SharingAllowlistListContinueArg::internal_deserialize(map)
24187 }
24188 }
24189 deserializer.deserialize_struct("SharingAllowlistListContinueArg", SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
24190 }
24191}
24192
24193impl ::serde::ser::Serialize for SharingAllowlistListContinueArg {
24194 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24195 use serde::ser::SerializeStruct;
24197 let mut s = serializer.serialize_struct("SharingAllowlistListContinueArg", 1)?;
24198 self.internal_serialize::<S>(&mut s)?;
24199 s.end()
24200 }
24201}
24202
24203#[derive(Debug, Clone, PartialEq, Eq)]
24204#[non_exhaustive] pub enum SharingAllowlistListContinueError {
24206 InvalidCursor,
24208 Other,
24211}
24212
24213impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueError {
24214 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24215 use serde::de::{self, MapAccess, Visitor};
24217 struct EnumVisitor;
24218 impl<'de> Visitor<'de> for EnumVisitor {
24219 type Value = SharingAllowlistListContinueError;
24220 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24221 f.write_str("a SharingAllowlistListContinueError structure")
24222 }
24223 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24224 let tag: &str = match map.next_key()? {
24225 Some(".tag") => map.next_value()?,
24226 _ => return Err(de::Error::missing_field(".tag"))
24227 };
24228 let value = match tag {
24229 "invalid_cursor" => SharingAllowlistListContinueError::InvalidCursor,
24230 _ => SharingAllowlistListContinueError::Other,
24231 };
24232 crate::eat_json_fields(&mut map)?;
24233 Ok(value)
24234 }
24235 }
24236 const VARIANTS: &[&str] = &["invalid_cursor",
24237 "other"];
24238 deserializer.deserialize_struct("SharingAllowlistListContinueError", VARIANTS, EnumVisitor)
24239 }
24240}
24241
24242impl ::serde::ser::Serialize for SharingAllowlistListContinueError {
24243 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24244 use serde::ser::SerializeStruct;
24246 match self {
24247 SharingAllowlistListContinueError::InvalidCursor => {
24248 let mut s = serializer.serialize_struct("SharingAllowlistListContinueError", 1)?;
24250 s.serialize_field(".tag", "invalid_cursor")?;
24251 s.end()
24252 }
24253 SharingAllowlistListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24254 }
24255 }
24256}
24257
24258impl ::std::error::Error for SharingAllowlistListContinueError {
24259}
24260
24261impl ::std::fmt::Display for SharingAllowlistListContinueError {
24262 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24263 match self {
24264 SharingAllowlistListContinueError::InvalidCursor => f.write_str("Provided cursor is not valid."),
24265 _ => write!(f, "{:?}", *self),
24266 }
24267 }
24268}
24269
24270#[derive(Debug, Clone, PartialEq, Eq, Default)]
24273#[non_exhaustive] pub struct SharingAllowlistListError {
24275}
24276
24277const SHARING_ALLOWLIST_LIST_ERROR_FIELDS: &[&str] = &[];
24278impl SharingAllowlistListError {
24279 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24281 mut map: V,
24282 ) -> Result<SharingAllowlistListError, V::Error> {
24283 crate::eat_json_fields(&mut map)?;
24285 Ok(SharingAllowlistListError {})
24286 }
24287}
24288
24289impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListError {
24290 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24291 use serde::de::{MapAccess, Visitor};
24293 struct StructVisitor;
24294 impl<'de> Visitor<'de> for StructVisitor {
24295 type Value = SharingAllowlistListError;
24296 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24297 f.write_str("a SharingAllowlistListError struct")
24298 }
24299 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24300 SharingAllowlistListError::internal_deserialize(map)
24301 }
24302 }
24303 deserializer.deserialize_struct("SharingAllowlistListError", SHARING_ALLOWLIST_LIST_ERROR_FIELDS, StructVisitor)
24304 }
24305}
24306
24307impl ::serde::ser::Serialize for SharingAllowlistListError {
24308 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24309 use serde::ser::SerializeStruct;
24311 serializer.serialize_struct("SharingAllowlistListError", 0)?.end()
24312 }
24313}
24314
24315impl ::std::error::Error for SharingAllowlistListError {
24316}
24317
24318impl ::std::fmt::Display for SharingAllowlistListError {
24319 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24320 write!(f, "{:?}", *self)
24321 }
24322}
24323
24324#[derive(Debug, Clone, PartialEq, Eq)]
24325#[non_exhaustive] pub struct SharingAllowlistListResponse {
24327 pub domains: Vec<String>,
24329 pub emails: Vec<String>,
24331 pub cursor: String,
24334 pub has_more: bool,
24337}
24338
24339impl SharingAllowlistListResponse {
24340 pub fn new(domains: Vec<String>, emails: Vec<String>) -> Self {
24341 SharingAllowlistListResponse {
24342 domains,
24343 emails,
24344 cursor: String::new(),
24345 has_more: false,
24346 }
24347 }
24348
24349 pub fn with_cursor(mut self, value: String) -> Self {
24350 self.cursor = value;
24351 self
24352 }
24353
24354 pub fn with_has_more(mut self, value: bool) -> Self {
24355 self.has_more = value;
24356 self
24357 }
24358}
24359
24360const SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS: &[&str] = &["domains",
24361 "emails",
24362 "cursor",
24363 "has_more"];
24364impl SharingAllowlistListResponse {
24365 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24366 map: V,
24367 ) -> Result<SharingAllowlistListResponse, V::Error> {
24368 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24369 }
24370
24371 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24372 mut map: V,
24373 optional: bool,
24374 ) -> Result<Option<SharingAllowlistListResponse>, V::Error> {
24375 let mut field_domains = None;
24376 let mut field_emails = None;
24377 let mut field_cursor = None;
24378 let mut field_has_more = None;
24379 let mut nothing = true;
24380 while let Some(key) = map.next_key::<&str>()? {
24381 nothing = false;
24382 match key {
24383 "domains" => {
24384 if field_domains.is_some() {
24385 return Err(::serde::de::Error::duplicate_field("domains"));
24386 }
24387 field_domains = Some(map.next_value()?);
24388 }
24389 "emails" => {
24390 if field_emails.is_some() {
24391 return Err(::serde::de::Error::duplicate_field("emails"));
24392 }
24393 field_emails = Some(map.next_value()?);
24394 }
24395 "cursor" => {
24396 if field_cursor.is_some() {
24397 return Err(::serde::de::Error::duplicate_field("cursor"));
24398 }
24399 field_cursor = Some(map.next_value()?);
24400 }
24401 "has_more" => {
24402 if field_has_more.is_some() {
24403 return Err(::serde::de::Error::duplicate_field("has_more"));
24404 }
24405 field_has_more = Some(map.next_value()?);
24406 }
24407 _ => {
24408 map.next_value::<::serde_json::Value>()?;
24410 }
24411 }
24412 }
24413 if optional && nothing {
24414 return Ok(None);
24415 }
24416 let result = SharingAllowlistListResponse {
24417 domains: field_domains.ok_or_else(|| ::serde::de::Error::missing_field("domains"))?,
24418 emails: field_emails.ok_or_else(|| ::serde::de::Error::missing_field("emails"))?,
24419 cursor: field_cursor.unwrap_or_default(),
24420 has_more: field_has_more.unwrap_or(false),
24421 };
24422 Ok(Some(result))
24423 }
24424
24425 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24426 &self,
24427 s: &mut S::SerializeStruct,
24428 ) -> Result<(), S::Error> {
24429 use serde::ser::SerializeStruct;
24430 s.serialize_field("domains", &self.domains)?;
24431 s.serialize_field("emails", &self.emails)?;
24432 if !self.cursor.is_empty() {
24433 s.serialize_field("cursor", &self.cursor)?;
24434 }
24435 if self.has_more {
24436 s.serialize_field("has_more", &self.has_more)?;
24437 }
24438 Ok(())
24439 }
24440}
24441
24442impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListResponse {
24443 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24444 use serde::de::{MapAccess, Visitor};
24446 struct StructVisitor;
24447 impl<'de> Visitor<'de> for StructVisitor {
24448 type Value = SharingAllowlistListResponse;
24449 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24450 f.write_str("a SharingAllowlistListResponse struct")
24451 }
24452 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24453 SharingAllowlistListResponse::internal_deserialize(map)
24454 }
24455 }
24456 deserializer.deserialize_struct("SharingAllowlistListResponse", SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS, StructVisitor)
24457 }
24458}
24459
24460impl ::serde::ser::Serialize for SharingAllowlistListResponse {
24461 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24462 use serde::ser::SerializeStruct;
24464 let mut s = serializer.serialize_struct("SharingAllowlistListResponse", 4)?;
24465 self.internal_serialize::<S>(&mut s)?;
24466 s.end()
24467 }
24468}
24469
24470#[derive(Debug, Clone, PartialEq, Eq, Default)]
24471#[non_exhaustive] pub struct SharingAllowlistRemoveArgs {
24473 pub domains: Option<Vec<String>>,
24475 pub emails: Option<Vec<String>>,
24477}
24478
24479impl SharingAllowlistRemoveArgs {
24480 pub fn with_domains(mut self, value: Vec<String>) -> Self {
24481 self.domains = Some(value);
24482 self
24483 }
24484
24485 pub fn with_emails(mut self, value: Vec<String>) -> Self {
24486 self.emails = Some(value);
24487 self
24488 }
24489}
24490
24491const SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS: &[&str] = &["domains",
24492 "emails"];
24493impl SharingAllowlistRemoveArgs {
24494 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24496 mut map: V,
24497 ) -> Result<SharingAllowlistRemoveArgs, V::Error> {
24498 let mut field_domains = None;
24499 let mut field_emails = None;
24500 while let Some(key) = map.next_key::<&str>()? {
24501 match key {
24502 "domains" => {
24503 if field_domains.is_some() {
24504 return Err(::serde::de::Error::duplicate_field("domains"));
24505 }
24506 field_domains = Some(map.next_value()?);
24507 }
24508 "emails" => {
24509 if field_emails.is_some() {
24510 return Err(::serde::de::Error::duplicate_field("emails"));
24511 }
24512 field_emails = Some(map.next_value()?);
24513 }
24514 _ => {
24515 map.next_value::<::serde_json::Value>()?;
24517 }
24518 }
24519 }
24520 let result = SharingAllowlistRemoveArgs {
24521 domains: field_domains.and_then(Option::flatten),
24522 emails: field_emails.and_then(Option::flatten),
24523 };
24524 Ok(result)
24525 }
24526
24527 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24528 &self,
24529 s: &mut S::SerializeStruct,
24530 ) -> Result<(), S::Error> {
24531 use serde::ser::SerializeStruct;
24532 if let Some(val) = &self.domains {
24533 s.serialize_field("domains", val)?;
24534 }
24535 if let Some(val) = &self.emails {
24536 s.serialize_field("emails", val)?;
24537 }
24538 Ok(())
24539 }
24540}
24541
24542impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveArgs {
24543 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24544 use serde::de::{MapAccess, Visitor};
24546 struct StructVisitor;
24547 impl<'de> Visitor<'de> for StructVisitor {
24548 type Value = SharingAllowlistRemoveArgs;
24549 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24550 f.write_str("a SharingAllowlistRemoveArgs struct")
24551 }
24552 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24553 SharingAllowlistRemoveArgs::internal_deserialize(map)
24554 }
24555 }
24556 deserializer.deserialize_struct("SharingAllowlistRemoveArgs", SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS, StructVisitor)
24557 }
24558}
24559
24560impl ::serde::ser::Serialize for SharingAllowlistRemoveArgs {
24561 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24562 use serde::ser::SerializeStruct;
24564 let mut s = serializer.serialize_struct("SharingAllowlistRemoveArgs", 2)?;
24565 self.internal_serialize::<S>(&mut s)?;
24566 s.end()
24567 }
24568}
24569
24570#[derive(Debug, Clone, PartialEq, Eq)]
24571#[non_exhaustive] pub enum SharingAllowlistRemoveError {
24573 MalformedEntry(String),
24575 EntriesDoNotExist(String),
24577 NoEntriesProvided,
24579 TooManyEntriesProvided,
24581 UnknownError,
24583 Other,
24586}
24587
24588impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveError {
24589 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24590 use serde::de::{self, MapAccess, Visitor};
24592 struct EnumVisitor;
24593 impl<'de> Visitor<'de> for EnumVisitor {
24594 type Value = SharingAllowlistRemoveError;
24595 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24596 f.write_str("a SharingAllowlistRemoveError structure")
24597 }
24598 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24599 let tag: &str = match map.next_key()? {
24600 Some(".tag") => map.next_value()?,
24601 _ => return Err(de::Error::missing_field(".tag"))
24602 };
24603 let value = match tag {
24604 "malformed_entry" => {
24605 match map.next_key()? {
24606 Some("malformed_entry") => SharingAllowlistRemoveError::MalformedEntry(map.next_value()?),
24607 None => return Err(de::Error::missing_field("malformed_entry")),
24608 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24609 }
24610 }
24611 "entries_do_not_exist" => {
24612 match map.next_key()? {
24613 Some("entries_do_not_exist") => SharingAllowlistRemoveError::EntriesDoNotExist(map.next_value()?),
24614 None => return Err(de::Error::missing_field("entries_do_not_exist")),
24615 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24616 }
24617 }
24618 "no_entries_provided" => SharingAllowlistRemoveError::NoEntriesProvided,
24619 "too_many_entries_provided" => SharingAllowlistRemoveError::TooManyEntriesProvided,
24620 "unknown_error" => SharingAllowlistRemoveError::UnknownError,
24621 _ => SharingAllowlistRemoveError::Other,
24622 };
24623 crate::eat_json_fields(&mut map)?;
24624 Ok(value)
24625 }
24626 }
24627 const VARIANTS: &[&str] = &["malformed_entry",
24628 "entries_do_not_exist",
24629 "no_entries_provided",
24630 "too_many_entries_provided",
24631 "unknown_error",
24632 "other"];
24633 deserializer.deserialize_struct("SharingAllowlistRemoveError", VARIANTS, EnumVisitor)
24634 }
24635}
24636
24637impl ::serde::ser::Serialize for SharingAllowlistRemoveError {
24638 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24639 use serde::ser::SerializeStruct;
24641 match self {
24642 SharingAllowlistRemoveError::MalformedEntry(x) => {
24643 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
24645 s.serialize_field(".tag", "malformed_entry")?;
24646 s.serialize_field("malformed_entry", x)?;
24647 s.end()
24648 }
24649 SharingAllowlistRemoveError::EntriesDoNotExist(x) => {
24650 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
24652 s.serialize_field(".tag", "entries_do_not_exist")?;
24653 s.serialize_field("entries_do_not_exist", x)?;
24654 s.end()
24655 }
24656 SharingAllowlistRemoveError::NoEntriesProvided => {
24657 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24659 s.serialize_field(".tag", "no_entries_provided")?;
24660 s.end()
24661 }
24662 SharingAllowlistRemoveError::TooManyEntriesProvided => {
24663 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24665 s.serialize_field(".tag", "too_many_entries_provided")?;
24666 s.end()
24667 }
24668 SharingAllowlistRemoveError::UnknownError => {
24669 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24671 s.serialize_field(".tag", "unknown_error")?;
24672 s.end()
24673 }
24674 SharingAllowlistRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24675 }
24676 }
24677}
24678
24679impl ::std::error::Error for SharingAllowlistRemoveError {
24680}
24681
24682impl ::std::fmt::Display for SharingAllowlistRemoveError {
24683 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24684 match self {
24685 SharingAllowlistRemoveError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
24686 SharingAllowlistRemoveError::EntriesDoNotExist(inner) => write!(f, "One or more provided values do not exist: {:?}", inner),
24687 SharingAllowlistRemoveError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
24688 SharingAllowlistRemoveError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
24689 SharingAllowlistRemoveError::UnknownError => f.write_str("Unknown error."),
24690 _ => write!(f, "{:?}", *self),
24691 }
24692 }
24693}
24694
24695#[derive(Debug, Clone, PartialEq, Eq, Default)]
24698#[non_exhaustive] pub struct SharingAllowlistRemoveResponse {
24700}
24701
24702const SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS: &[&str] = &[];
24703impl SharingAllowlistRemoveResponse {
24704 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24706 mut map: V,
24707 ) -> Result<SharingAllowlistRemoveResponse, V::Error> {
24708 crate::eat_json_fields(&mut map)?;
24710 Ok(SharingAllowlistRemoveResponse {})
24711 }
24712}
24713
24714impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveResponse {
24715 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24716 use serde::de::{MapAccess, Visitor};
24718 struct StructVisitor;
24719 impl<'de> Visitor<'de> for StructVisitor {
24720 type Value = SharingAllowlistRemoveResponse;
24721 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24722 f.write_str("a SharingAllowlistRemoveResponse struct")
24723 }
24724 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24725 SharingAllowlistRemoveResponse::internal_deserialize(map)
24726 }
24727 }
24728 deserializer.deserialize_struct("SharingAllowlistRemoveResponse", SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS, StructVisitor)
24729 }
24730}
24731
24732impl ::serde::ser::Serialize for SharingAllowlistRemoveResponse {
24733 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24734 use serde::ser::SerializeStruct;
24736 serializer.serialize_struct("SharingAllowlistRemoveResponse", 0)?.end()
24737 }
24738}
24739
24740#[derive(Debug, Clone, PartialEq, Eq)]
24742#[non_exhaustive] pub struct StorageBucket {
24744 pub bucket: String,
24747 pub users: u64,
24749}
24750
24751impl StorageBucket {
24752 pub fn new(bucket: String, users: u64) -> Self {
24753 StorageBucket {
24754 bucket,
24755 users,
24756 }
24757 }
24758}
24759
24760const STORAGE_BUCKET_FIELDS: &[&str] = &["bucket",
24761 "users"];
24762impl StorageBucket {
24763 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24764 map: V,
24765 ) -> Result<StorageBucket, V::Error> {
24766 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24767 }
24768
24769 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24770 mut map: V,
24771 optional: bool,
24772 ) -> Result<Option<StorageBucket>, V::Error> {
24773 let mut field_bucket = None;
24774 let mut field_users = None;
24775 let mut nothing = true;
24776 while let Some(key) = map.next_key::<&str>()? {
24777 nothing = false;
24778 match key {
24779 "bucket" => {
24780 if field_bucket.is_some() {
24781 return Err(::serde::de::Error::duplicate_field("bucket"));
24782 }
24783 field_bucket = Some(map.next_value()?);
24784 }
24785 "users" => {
24786 if field_users.is_some() {
24787 return Err(::serde::de::Error::duplicate_field("users"));
24788 }
24789 field_users = Some(map.next_value()?);
24790 }
24791 _ => {
24792 map.next_value::<::serde_json::Value>()?;
24794 }
24795 }
24796 }
24797 if optional && nothing {
24798 return Ok(None);
24799 }
24800 let result = StorageBucket {
24801 bucket: field_bucket.ok_or_else(|| ::serde::de::Error::missing_field("bucket"))?,
24802 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
24803 };
24804 Ok(Some(result))
24805 }
24806
24807 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24808 &self,
24809 s: &mut S::SerializeStruct,
24810 ) -> Result<(), S::Error> {
24811 use serde::ser::SerializeStruct;
24812 s.serialize_field("bucket", &self.bucket)?;
24813 s.serialize_field("users", &self.users)?;
24814 Ok(())
24815 }
24816}
24817
24818impl<'de> ::serde::de::Deserialize<'de> for StorageBucket {
24819 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24820 use serde::de::{MapAccess, Visitor};
24822 struct StructVisitor;
24823 impl<'de> Visitor<'de> for StructVisitor {
24824 type Value = StorageBucket;
24825 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24826 f.write_str("a StorageBucket struct")
24827 }
24828 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24829 StorageBucket::internal_deserialize(map)
24830 }
24831 }
24832 deserializer.deserialize_struct("StorageBucket", STORAGE_BUCKET_FIELDS, StructVisitor)
24833 }
24834}
24835
24836impl ::serde::ser::Serialize for StorageBucket {
24837 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24838 use serde::ser::SerializeStruct;
24840 let mut s = serializer.serialize_struct("StorageBucket", 2)?;
24841 self.internal_serialize::<S>(&mut s)?;
24842 s.end()
24843 }
24844}
24845
24846#[derive(Debug, Clone, PartialEq, Eq)]
24847#[non_exhaustive] pub enum TeamFolderAccessError {
24849 InvalidTeamFolderId,
24851 NoAccess,
24853 Other,
24856}
24857
24858impl<'de> ::serde::de::Deserialize<'de> for TeamFolderAccessError {
24859 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24860 use serde::de::{self, MapAccess, Visitor};
24862 struct EnumVisitor;
24863 impl<'de> Visitor<'de> for EnumVisitor {
24864 type Value = TeamFolderAccessError;
24865 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24866 f.write_str("a TeamFolderAccessError structure")
24867 }
24868 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24869 let tag: &str = match map.next_key()? {
24870 Some(".tag") => map.next_value()?,
24871 _ => return Err(de::Error::missing_field(".tag"))
24872 };
24873 let value = match tag {
24874 "invalid_team_folder_id" => TeamFolderAccessError::InvalidTeamFolderId,
24875 "no_access" => TeamFolderAccessError::NoAccess,
24876 _ => TeamFolderAccessError::Other,
24877 };
24878 crate::eat_json_fields(&mut map)?;
24879 Ok(value)
24880 }
24881 }
24882 const VARIANTS: &[&str] = &["invalid_team_folder_id",
24883 "no_access",
24884 "other"];
24885 deserializer.deserialize_struct("TeamFolderAccessError", VARIANTS, EnumVisitor)
24886 }
24887}
24888
24889impl ::serde::ser::Serialize for TeamFolderAccessError {
24890 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24891 use serde::ser::SerializeStruct;
24893 match self {
24894 TeamFolderAccessError::InvalidTeamFolderId => {
24895 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
24897 s.serialize_field(".tag", "invalid_team_folder_id")?;
24898 s.end()
24899 }
24900 TeamFolderAccessError::NoAccess => {
24901 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
24903 s.serialize_field(".tag", "no_access")?;
24904 s.end()
24905 }
24906 TeamFolderAccessError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24907 }
24908 }
24909}
24910
24911impl ::std::error::Error for TeamFolderAccessError {
24912}
24913
24914impl ::std::fmt::Display for TeamFolderAccessError {
24915 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24916 match self {
24917 TeamFolderAccessError::InvalidTeamFolderId => f.write_str("The team folder ID is invalid."),
24918 TeamFolderAccessError::NoAccess => f.write_str("The authenticated app does not have permission to manage that team folder."),
24919 _ => write!(f, "{:?}", *self),
24920 }
24921 }
24922}
24923
24924
24925#[derive(Debug, Clone, PartialEq, Eq)]
24926#[non_exhaustive] pub enum TeamFolderActivateError {
24928 AccessError(TeamFolderAccessError),
24929 StatusError(TeamFolderInvalidStatusError),
24930 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
24931 Other,
24934}
24935
24936impl<'de> ::serde::de::Deserialize<'de> for TeamFolderActivateError {
24937 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24938 use serde::de::{self, MapAccess, Visitor};
24940 struct EnumVisitor;
24941 impl<'de> Visitor<'de> for EnumVisitor {
24942 type Value = TeamFolderActivateError;
24943 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24944 f.write_str("a TeamFolderActivateError structure")
24945 }
24946 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24947 let tag: &str = match map.next_key()? {
24948 Some(".tag") => map.next_value()?,
24949 _ => return Err(de::Error::missing_field(".tag"))
24950 };
24951 let value = match tag {
24952 "access_error" => {
24953 match map.next_key()? {
24954 Some("access_error") => TeamFolderActivateError::AccessError(map.next_value()?),
24955 None => return Err(de::Error::missing_field("access_error")),
24956 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24957 }
24958 }
24959 "status_error" => {
24960 match map.next_key()? {
24961 Some("status_error") => TeamFolderActivateError::StatusError(map.next_value()?),
24962 None => return Err(de::Error::missing_field("status_error")),
24963 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24964 }
24965 }
24966 "team_shared_dropbox_error" => {
24967 match map.next_key()? {
24968 Some("team_shared_dropbox_error") => TeamFolderActivateError::TeamSharedDropboxError(map.next_value()?),
24969 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
24970 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24971 }
24972 }
24973 _ => TeamFolderActivateError::Other,
24974 };
24975 crate::eat_json_fields(&mut map)?;
24976 Ok(value)
24977 }
24978 }
24979 const VARIANTS: &[&str] = &["access_error",
24980 "status_error",
24981 "team_shared_dropbox_error",
24982 "other"];
24983 deserializer.deserialize_struct("TeamFolderActivateError", VARIANTS, EnumVisitor)
24984 }
24985}
24986
24987impl ::serde::ser::Serialize for TeamFolderActivateError {
24988 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24989 use serde::ser::SerializeStruct;
24991 match self {
24992 TeamFolderActivateError::AccessError(x) => {
24993 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
24995 s.serialize_field(".tag", "access_error")?;
24996 s.serialize_field("access_error", x)?;
24997 s.end()
24998 }
24999 TeamFolderActivateError::StatusError(x) => {
25000 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25002 s.serialize_field(".tag", "status_error")?;
25003 s.serialize_field("status_error", x)?;
25004 s.end()
25005 }
25006 TeamFolderActivateError::TeamSharedDropboxError(x) => {
25007 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
25009 s.serialize_field(".tag", "team_shared_dropbox_error")?;
25010 s.serialize_field("team_shared_dropbox_error", x)?;
25011 s.end()
25012 }
25013 TeamFolderActivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25014 }
25015 }
25016}
25017
25018impl ::std::error::Error for TeamFolderActivateError {
25019 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25020 match self {
25021 TeamFolderActivateError::AccessError(inner) => Some(inner),
25022 TeamFolderActivateError::StatusError(inner) => Some(inner),
25023 TeamFolderActivateError::TeamSharedDropboxError(inner) => Some(inner),
25024 _ => None,
25025 }
25026 }
25027}
25028
25029impl ::std::fmt::Display for TeamFolderActivateError {
25030 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25031 match self {
25032 TeamFolderActivateError::AccessError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25033 TeamFolderActivateError::StatusError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25034 TeamFolderActivateError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
25035 _ => write!(f, "{:?}", *self),
25036 }
25037 }
25038}
25039
25040impl From<BaseTeamFolderError> for TeamFolderActivateError {
25042 fn from(parent: BaseTeamFolderError) -> Self {
25043 match parent {
25044 BaseTeamFolderError::AccessError(x) => TeamFolderActivateError::AccessError(x),
25045 BaseTeamFolderError::StatusError(x) => TeamFolderActivateError::StatusError(x),
25046 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderActivateError::TeamSharedDropboxError(x),
25047 BaseTeamFolderError::Other => TeamFolderActivateError::Other,
25048 }
25049 }
25050}
25051#[derive(Debug, Clone, PartialEq, Eq)]
25052#[non_exhaustive] pub struct TeamFolderArchiveArg {
25054 pub team_folder_id: crate::types::common::SharedFolderId,
25056 pub force_async_off: bool,
25058}
25059
25060impl TeamFolderArchiveArg {
25061 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
25062 TeamFolderArchiveArg {
25063 team_folder_id,
25064 force_async_off: false,
25065 }
25066 }
25067
25068 pub fn with_force_async_off(mut self, value: bool) -> Self {
25069 self.force_async_off = value;
25070 self
25071 }
25072}
25073
25074const TEAM_FOLDER_ARCHIVE_ARG_FIELDS: &[&str] = &["team_folder_id",
25075 "force_async_off"];
25076impl TeamFolderArchiveArg {
25077 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25078 map: V,
25079 ) -> Result<TeamFolderArchiveArg, V::Error> {
25080 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25081 }
25082
25083 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25084 mut map: V,
25085 optional: bool,
25086 ) -> Result<Option<TeamFolderArchiveArg>, V::Error> {
25087 let mut field_team_folder_id = None;
25088 let mut field_force_async_off = None;
25089 let mut nothing = true;
25090 while let Some(key) = map.next_key::<&str>()? {
25091 nothing = false;
25092 match key {
25093 "team_folder_id" => {
25094 if field_team_folder_id.is_some() {
25095 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
25096 }
25097 field_team_folder_id = Some(map.next_value()?);
25098 }
25099 "force_async_off" => {
25100 if field_force_async_off.is_some() {
25101 return Err(::serde::de::Error::duplicate_field("force_async_off"));
25102 }
25103 field_force_async_off = Some(map.next_value()?);
25104 }
25105 _ => {
25106 map.next_value::<::serde_json::Value>()?;
25108 }
25109 }
25110 }
25111 if optional && nothing {
25112 return Ok(None);
25113 }
25114 let result = TeamFolderArchiveArg {
25115 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
25116 force_async_off: field_force_async_off.unwrap_or(false),
25117 };
25118 Ok(Some(result))
25119 }
25120
25121 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25122 &self,
25123 s: &mut S::SerializeStruct,
25124 ) -> Result<(), S::Error> {
25125 use serde::ser::SerializeStruct;
25126 s.serialize_field("team_folder_id", &self.team_folder_id)?;
25127 if self.force_async_off {
25128 s.serialize_field("force_async_off", &self.force_async_off)?;
25129 }
25130 Ok(())
25131 }
25132}
25133
25134impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveArg {
25135 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25136 use serde::de::{MapAccess, Visitor};
25138 struct StructVisitor;
25139 impl<'de> Visitor<'de> for StructVisitor {
25140 type Value = TeamFolderArchiveArg;
25141 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25142 f.write_str("a TeamFolderArchiveArg struct")
25143 }
25144 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25145 TeamFolderArchiveArg::internal_deserialize(map)
25146 }
25147 }
25148 deserializer.deserialize_struct("TeamFolderArchiveArg", TEAM_FOLDER_ARCHIVE_ARG_FIELDS, StructVisitor)
25149 }
25150}
25151
25152impl ::serde::ser::Serialize for TeamFolderArchiveArg {
25153 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25154 use serde::ser::SerializeStruct;
25156 let mut s = serializer.serialize_struct("TeamFolderArchiveArg", 2)?;
25157 self.internal_serialize::<S>(&mut s)?;
25158 s.end()
25159 }
25160}
25161
25162impl From<TeamFolderArchiveArg> for TeamFolderIdArg {
25164 fn from(subtype: TeamFolderArchiveArg) -> Self {
25165 Self {
25166 team_folder_id: subtype.team_folder_id,
25167 }
25168 }
25169}
25170
25171#[derive(Debug, Clone, PartialEq, Eq)]
25172#[non_exhaustive] pub enum TeamFolderArchiveError {
25174 AccessError(TeamFolderAccessError),
25175 StatusError(TeamFolderInvalidStatusError),
25176 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
25177 Other,
25180}
25181
25182impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveError {
25183 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25184 use serde::de::{self, MapAccess, Visitor};
25186 struct EnumVisitor;
25187 impl<'de> Visitor<'de> for EnumVisitor {
25188 type Value = TeamFolderArchiveError;
25189 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25190 f.write_str("a TeamFolderArchiveError structure")
25191 }
25192 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25193 let tag: &str = match map.next_key()? {
25194 Some(".tag") => map.next_value()?,
25195 _ => return Err(de::Error::missing_field(".tag"))
25196 };
25197 let value = match tag {
25198 "access_error" => {
25199 match map.next_key()? {
25200 Some("access_error") => TeamFolderArchiveError::AccessError(map.next_value()?),
25201 None => return Err(de::Error::missing_field("access_error")),
25202 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25203 }
25204 }
25205 "status_error" => {
25206 match map.next_key()? {
25207 Some("status_error") => TeamFolderArchiveError::StatusError(map.next_value()?),
25208 None => return Err(de::Error::missing_field("status_error")),
25209 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25210 }
25211 }
25212 "team_shared_dropbox_error" => {
25213 match map.next_key()? {
25214 Some("team_shared_dropbox_error") => TeamFolderArchiveError::TeamSharedDropboxError(map.next_value()?),
25215 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
25216 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25217 }
25218 }
25219 _ => TeamFolderArchiveError::Other,
25220 };
25221 crate::eat_json_fields(&mut map)?;
25222 Ok(value)
25223 }
25224 }
25225 const VARIANTS: &[&str] = &["access_error",
25226 "status_error",
25227 "team_shared_dropbox_error",
25228 "other"];
25229 deserializer.deserialize_struct("TeamFolderArchiveError", VARIANTS, EnumVisitor)
25230 }
25231}
25232
25233impl ::serde::ser::Serialize for TeamFolderArchiveError {
25234 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25235 use serde::ser::SerializeStruct;
25237 match self {
25238 TeamFolderArchiveError::AccessError(x) => {
25239 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
25241 s.serialize_field(".tag", "access_error")?;
25242 s.serialize_field("access_error", x)?;
25243 s.end()
25244 }
25245 TeamFolderArchiveError::StatusError(x) => {
25246 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
25248 s.serialize_field(".tag", "status_error")?;
25249 s.serialize_field("status_error", x)?;
25250 s.end()
25251 }
25252 TeamFolderArchiveError::TeamSharedDropboxError(x) => {
25253 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
25255 s.serialize_field(".tag", "team_shared_dropbox_error")?;
25256 s.serialize_field("team_shared_dropbox_error", x)?;
25257 s.end()
25258 }
25259 TeamFolderArchiveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25260 }
25261 }
25262}
25263
25264impl ::std::error::Error for TeamFolderArchiveError {
25265 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25266 match self {
25267 TeamFolderArchiveError::AccessError(inner) => Some(inner),
25268 TeamFolderArchiveError::StatusError(inner) => Some(inner),
25269 TeamFolderArchiveError::TeamSharedDropboxError(inner) => Some(inner),
25270 _ => None,
25271 }
25272 }
25273}
25274
25275impl ::std::fmt::Display for TeamFolderArchiveError {
25276 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25277 match self {
25278 TeamFolderArchiveError::AccessError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
25279 TeamFolderArchiveError::StatusError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
25280 TeamFolderArchiveError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
25281 _ => write!(f, "{:?}", *self),
25282 }
25283 }
25284}
25285
25286impl From<BaseTeamFolderError> for TeamFolderArchiveError {
25288 fn from(parent: BaseTeamFolderError) -> Self {
25289 match parent {
25290 BaseTeamFolderError::AccessError(x) => TeamFolderArchiveError::AccessError(x),
25291 BaseTeamFolderError::StatusError(x) => TeamFolderArchiveError::StatusError(x),
25292 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderArchiveError::TeamSharedDropboxError(x),
25293 BaseTeamFolderError::Other => TeamFolderArchiveError::Other,
25294 }
25295 }
25296}
25297#[derive(Debug, Clone, PartialEq, Eq)]
25298pub enum TeamFolderArchiveJobStatus {
25299 InProgress,
25301 Complete(TeamFolderMetadata),
25303 Failed(TeamFolderArchiveError),
25306}
25307
25308impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveJobStatus {
25309 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25310 use serde::de::{self, MapAccess, Visitor};
25312 struct EnumVisitor;
25313 impl<'de> Visitor<'de> for EnumVisitor {
25314 type Value = TeamFolderArchiveJobStatus;
25315 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25316 f.write_str("a TeamFolderArchiveJobStatus structure")
25317 }
25318 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25319 let tag: &str = match map.next_key()? {
25320 Some(".tag") => map.next_value()?,
25321 _ => return Err(de::Error::missing_field(".tag"))
25322 };
25323 let value = match tag {
25324 "in_progress" => TeamFolderArchiveJobStatus::InProgress,
25325 "complete" => TeamFolderArchiveJobStatus::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
25326 "failed" => {
25327 match map.next_key()? {
25328 Some("failed") => TeamFolderArchiveJobStatus::Failed(map.next_value()?),
25329 None => return Err(de::Error::missing_field("failed")),
25330 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25331 }
25332 }
25333 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25334 };
25335 crate::eat_json_fields(&mut map)?;
25336 Ok(value)
25337 }
25338 }
25339 const VARIANTS: &[&str] = &["in_progress",
25340 "complete",
25341 "failed"];
25342 deserializer.deserialize_struct("TeamFolderArchiveJobStatus", VARIANTS, EnumVisitor)
25343 }
25344}
25345
25346impl ::serde::ser::Serialize for TeamFolderArchiveJobStatus {
25347 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25348 use serde::ser::SerializeStruct;
25350 match self {
25351 TeamFolderArchiveJobStatus::InProgress => {
25352 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 1)?;
25354 s.serialize_field(".tag", "in_progress")?;
25355 s.end()
25356 }
25357 TeamFolderArchiveJobStatus::Complete(x) => {
25358 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 8)?;
25360 s.serialize_field(".tag", "complete")?;
25361 x.internal_serialize::<S>(&mut s)?;
25362 s.end()
25363 }
25364 TeamFolderArchiveJobStatus::Failed(x) => {
25365 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 2)?;
25367 s.serialize_field(".tag", "failed")?;
25368 s.serialize_field("failed", x)?;
25369 s.end()
25370 }
25371 }
25372 }
25373}
25374
25375impl From<crate::types::dbx_async::PollResultBase> for TeamFolderArchiveJobStatus {
25377 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
25378 match parent {
25379 crate::types::dbx_async::PollResultBase::InProgress => TeamFolderArchiveJobStatus::InProgress,
25380 }
25381 }
25382}
25383#[derive(Debug, Clone, PartialEq, Eq)]
25384pub enum TeamFolderArchiveLaunch {
25385 AsyncJobId(crate::types::dbx_async::AsyncJobId),
25388 Complete(TeamFolderMetadata),
25389}
25390
25391impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveLaunch {
25392 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25393 use serde::de::{self, MapAccess, Visitor};
25395 struct EnumVisitor;
25396 impl<'de> Visitor<'de> for EnumVisitor {
25397 type Value = TeamFolderArchiveLaunch;
25398 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25399 f.write_str("a TeamFolderArchiveLaunch structure")
25400 }
25401 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25402 let tag: &str = match map.next_key()? {
25403 Some(".tag") => map.next_value()?,
25404 _ => return Err(de::Error::missing_field(".tag"))
25405 };
25406 let value = match tag {
25407 "async_job_id" => {
25408 match map.next_key()? {
25409 Some("async_job_id") => TeamFolderArchiveLaunch::AsyncJobId(map.next_value()?),
25410 None => return Err(de::Error::missing_field("async_job_id")),
25411 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25412 }
25413 }
25414 "complete" => TeamFolderArchiveLaunch::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
25415 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25416 };
25417 crate::eat_json_fields(&mut map)?;
25418 Ok(value)
25419 }
25420 }
25421 const VARIANTS: &[&str] = &["async_job_id",
25422 "complete"];
25423 deserializer.deserialize_struct("TeamFolderArchiveLaunch", VARIANTS, EnumVisitor)
25424 }
25425}
25426
25427impl ::serde::ser::Serialize for TeamFolderArchiveLaunch {
25428 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25429 use serde::ser::SerializeStruct;
25431 match self {
25432 TeamFolderArchiveLaunch::AsyncJobId(x) => {
25433 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 2)?;
25435 s.serialize_field(".tag", "async_job_id")?;
25436 s.serialize_field("async_job_id", x)?;
25437 s.end()
25438 }
25439 TeamFolderArchiveLaunch::Complete(x) => {
25440 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 8)?;
25442 s.serialize_field(".tag", "complete")?;
25443 x.internal_serialize::<S>(&mut s)?;
25444 s.end()
25445 }
25446 }
25447 }
25448}
25449
25450impl From<crate::types::dbx_async::LaunchResultBase> for TeamFolderArchiveLaunch {
25452 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
25453 match parent {
25454 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => TeamFolderArchiveLaunch::AsyncJobId(x),
25455 }
25456 }
25457}
25458#[derive(Debug, Clone, PartialEq, Eq)]
25459#[non_exhaustive] pub struct TeamFolderCreateArg {
25461 pub name: String,
25463 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
25466}
25467
25468impl TeamFolderCreateArg {
25469 pub fn new(name: String) -> Self {
25470 TeamFolderCreateArg {
25471 name,
25472 sync_setting: None,
25473 }
25474 }
25475
25476 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
25477 self.sync_setting = Some(value);
25478 self
25479 }
25480}
25481
25482const TEAM_FOLDER_CREATE_ARG_FIELDS: &[&str] = &["name",
25483 "sync_setting"];
25484impl TeamFolderCreateArg {
25485 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25486 map: V,
25487 ) -> Result<TeamFolderCreateArg, V::Error> {
25488 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25489 }
25490
25491 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25492 mut map: V,
25493 optional: bool,
25494 ) -> Result<Option<TeamFolderCreateArg>, V::Error> {
25495 let mut field_name = None;
25496 let mut field_sync_setting = None;
25497 let mut nothing = true;
25498 while let Some(key) = map.next_key::<&str>()? {
25499 nothing = false;
25500 match key {
25501 "name" => {
25502 if field_name.is_some() {
25503 return Err(::serde::de::Error::duplicate_field("name"));
25504 }
25505 field_name = Some(map.next_value()?);
25506 }
25507 "sync_setting" => {
25508 if field_sync_setting.is_some() {
25509 return Err(::serde::de::Error::duplicate_field("sync_setting"));
25510 }
25511 field_sync_setting = Some(map.next_value()?);
25512 }
25513 _ => {
25514 map.next_value::<::serde_json::Value>()?;
25516 }
25517 }
25518 }
25519 if optional && nothing {
25520 return Ok(None);
25521 }
25522 let result = TeamFolderCreateArg {
25523 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
25524 sync_setting: field_sync_setting.and_then(Option::flatten),
25525 };
25526 Ok(Some(result))
25527 }
25528
25529 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25530 &self,
25531 s: &mut S::SerializeStruct,
25532 ) -> Result<(), S::Error> {
25533 use serde::ser::SerializeStruct;
25534 s.serialize_field("name", &self.name)?;
25535 if let Some(val) = &self.sync_setting {
25536 s.serialize_field("sync_setting", val)?;
25537 }
25538 Ok(())
25539 }
25540}
25541
25542impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateArg {
25543 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25544 use serde::de::{MapAccess, Visitor};
25546 struct StructVisitor;
25547 impl<'de> Visitor<'de> for StructVisitor {
25548 type Value = TeamFolderCreateArg;
25549 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25550 f.write_str("a TeamFolderCreateArg struct")
25551 }
25552 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25553 TeamFolderCreateArg::internal_deserialize(map)
25554 }
25555 }
25556 deserializer.deserialize_struct("TeamFolderCreateArg", TEAM_FOLDER_CREATE_ARG_FIELDS, StructVisitor)
25557 }
25558}
25559
25560impl ::serde::ser::Serialize for TeamFolderCreateArg {
25561 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25562 use serde::ser::SerializeStruct;
25564 let mut s = serializer.serialize_struct("TeamFolderCreateArg", 2)?;
25565 self.internal_serialize::<S>(&mut s)?;
25566 s.end()
25567 }
25568}
25569
25570#[derive(Debug, Clone, PartialEq, Eq)]
25571#[non_exhaustive] pub enum TeamFolderCreateError {
25573 InvalidFolderName,
25575 FolderNameAlreadyUsed,
25577 FolderNameReserved,
25579 SyncSettingsError(crate::types::files::SyncSettingsError),
25581 Other,
25584}
25585
25586impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateError {
25587 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25588 use serde::de::{self, MapAccess, Visitor};
25590 struct EnumVisitor;
25591 impl<'de> Visitor<'de> for EnumVisitor {
25592 type Value = TeamFolderCreateError;
25593 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25594 f.write_str("a TeamFolderCreateError structure")
25595 }
25596 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25597 let tag: &str = match map.next_key()? {
25598 Some(".tag") => map.next_value()?,
25599 _ => return Err(de::Error::missing_field(".tag"))
25600 };
25601 let value = match tag {
25602 "invalid_folder_name" => TeamFolderCreateError::InvalidFolderName,
25603 "folder_name_already_used" => TeamFolderCreateError::FolderNameAlreadyUsed,
25604 "folder_name_reserved" => TeamFolderCreateError::FolderNameReserved,
25605 "sync_settings_error" => {
25606 match map.next_key()? {
25607 Some("sync_settings_error") => TeamFolderCreateError::SyncSettingsError(map.next_value()?),
25608 None => return Err(de::Error::missing_field("sync_settings_error")),
25609 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25610 }
25611 }
25612 _ => TeamFolderCreateError::Other,
25613 };
25614 crate::eat_json_fields(&mut map)?;
25615 Ok(value)
25616 }
25617 }
25618 const VARIANTS: &[&str] = &["invalid_folder_name",
25619 "folder_name_already_used",
25620 "folder_name_reserved",
25621 "sync_settings_error",
25622 "other"];
25623 deserializer.deserialize_struct("TeamFolderCreateError", VARIANTS, EnumVisitor)
25624 }
25625}
25626
25627impl ::serde::ser::Serialize for TeamFolderCreateError {
25628 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25629 use serde::ser::SerializeStruct;
25631 match self {
25632 TeamFolderCreateError::InvalidFolderName => {
25633 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25635 s.serialize_field(".tag", "invalid_folder_name")?;
25636 s.end()
25637 }
25638 TeamFolderCreateError::FolderNameAlreadyUsed => {
25639 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25641 s.serialize_field(".tag", "folder_name_already_used")?;
25642 s.end()
25643 }
25644 TeamFolderCreateError::FolderNameReserved => {
25645 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25647 s.serialize_field(".tag", "folder_name_reserved")?;
25648 s.end()
25649 }
25650 TeamFolderCreateError::SyncSettingsError(x) => {
25651 let mut s = serializer.serialize_struct("TeamFolderCreateError", 2)?;
25653 s.serialize_field(".tag", "sync_settings_error")?;
25654 s.serialize_field("sync_settings_error", x)?;
25655 s.end()
25656 }
25657 TeamFolderCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25658 }
25659 }
25660}
25661
25662impl ::std::error::Error for TeamFolderCreateError {
25663 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25664 match self {
25665 TeamFolderCreateError::SyncSettingsError(inner) => Some(inner),
25666 _ => None,
25667 }
25668 }
25669}
25670
25671impl ::std::fmt::Display for TeamFolderCreateError {
25672 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25673 match self {
25674 TeamFolderCreateError::InvalidFolderName => f.write_str("The provided name cannot be used."),
25675 TeamFolderCreateError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the provided name."),
25676 TeamFolderCreateError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
25677 TeamFolderCreateError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
25678 _ => write!(f, "{:?}", *self),
25679 }
25680 }
25681}
25682
25683#[derive(Debug, Clone, PartialEq, Eq)]
25684pub enum TeamFolderGetInfoItem {
25685 IdNotFound(String),
25689 TeamFolderMetadata(TeamFolderMetadata),
25691}
25692
25693impl<'de> ::serde::de::Deserialize<'de> for TeamFolderGetInfoItem {
25694 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25695 use serde::de::{self, MapAccess, Visitor};
25697 struct EnumVisitor;
25698 impl<'de> Visitor<'de> for EnumVisitor {
25699 type Value = TeamFolderGetInfoItem;
25700 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25701 f.write_str("a TeamFolderGetInfoItem structure")
25702 }
25703 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25704 let tag: &str = match map.next_key()? {
25705 Some(".tag") => map.next_value()?,
25706 _ => return Err(de::Error::missing_field(".tag"))
25707 };
25708 let value = match tag {
25709 "id_not_found" => {
25710 match map.next_key()? {
25711 Some("id_not_found") => TeamFolderGetInfoItem::IdNotFound(map.next_value()?),
25712 None => return Err(de::Error::missing_field("id_not_found")),
25713 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25714 }
25715 }
25716 "team_folder_metadata" => TeamFolderGetInfoItem::TeamFolderMetadata(TeamFolderMetadata::internal_deserialize(&mut map)?),
25717 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25718 };
25719 crate::eat_json_fields(&mut map)?;
25720 Ok(value)
25721 }
25722 }
25723 const VARIANTS: &[&str] = &["id_not_found",
25724 "team_folder_metadata"];
25725 deserializer.deserialize_struct("TeamFolderGetInfoItem", VARIANTS, EnumVisitor)
25726 }
25727}
25728
25729impl ::serde::ser::Serialize for TeamFolderGetInfoItem {
25730 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25731 use serde::ser::SerializeStruct;
25733 match self {
25734 TeamFolderGetInfoItem::IdNotFound(x) => {
25735 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 2)?;
25737 s.serialize_field(".tag", "id_not_found")?;
25738 s.serialize_field("id_not_found", x)?;
25739 s.end()
25740 }
25741 TeamFolderGetInfoItem::TeamFolderMetadata(x) => {
25742 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 8)?;
25744 s.serialize_field(".tag", "team_folder_metadata")?;
25745 x.internal_serialize::<S>(&mut s)?;
25746 s.end()
25747 }
25748 }
25749 }
25750}
25751
25752#[derive(Debug, Clone, PartialEq, Eq)]
25753#[non_exhaustive] pub struct TeamFolderIdArg {
25755 pub team_folder_id: crate::types::common::SharedFolderId,
25757}
25758
25759impl TeamFolderIdArg {
25760 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
25761 TeamFolderIdArg {
25762 team_folder_id,
25763 }
25764 }
25765}
25766
25767const TEAM_FOLDER_ID_ARG_FIELDS: &[&str] = &["team_folder_id"];
25768impl TeamFolderIdArg {
25769 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25770 map: V,
25771 ) -> Result<TeamFolderIdArg, V::Error> {
25772 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25773 }
25774
25775 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25776 mut map: V,
25777 optional: bool,
25778 ) -> Result<Option<TeamFolderIdArg>, V::Error> {
25779 let mut field_team_folder_id = None;
25780 let mut nothing = true;
25781 while let Some(key) = map.next_key::<&str>()? {
25782 nothing = false;
25783 match key {
25784 "team_folder_id" => {
25785 if field_team_folder_id.is_some() {
25786 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
25787 }
25788 field_team_folder_id = Some(map.next_value()?);
25789 }
25790 _ => {
25791 map.next_value::<::serde_json::Value>()?;
25793 }
25794 }
25795 }
25796 if optional && nothing {
25797 return Ok(None);
25798 }
25799 let result = TeamFolderIdArg {
25800 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
25801 };
25802 Ok(Some(result))
25803 }
25804
25805 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25806 &self,
25807 s: &mut S::SerializeStruct,
25808 ) -> Result<(), S::Error> {
25809 use serde::ser::SerializeStruct;
25810 s.serialize_field("team_folder_id", &self.team_folder_id)?;
25811 Ok(())
25812 }
25813}
25814
25815impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdArg {
25816 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25817 use serde::de::{MapAccess, Visitor};
25819 struct StructVisitor;
25820 impl<'de> Visitor<'de> for StructVisitor {
25821 type Value = TeamFolderIdArg;
25822 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25823 f.write_str("a TeamFolderIdArg struct")
25824 }
25825 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25826 TeamFolderIdArg::internal_deserialize(map)
25827 }
25828 }
25829 deserializer.deserialize_struct("TeamFolderIdArg", TEAM_FOLDER_ID_ARG_FIELDS, StructVisitor)
25830 }
25831}
25832
25833impl ::serde::ser::Serialize for TeamFolderIdArg {
25834 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25835 use serde::ser::SerializeStruct;
25837 let mut s = serializer.serialize_struct("TeamFolderIdArg", 1)?;
25838 self.internal_serialize::<S>(&mut s)?;
25839 s.end()
25840 }
25841}
25842
25843#[derive(Debug, Clone, PartialEq, Eq)]
25844#[non_exhaustive] pub struct TeamFolderIdListArg {
25846 pub team_folder_ids: Vec<crate::types::common::SharedFolderId>,
25848}
25849
25850impl TeamFolderIdListArg {
25851 pub fn new(team_folder_ids: Vec<crate::types::common::SharedFolderId>) -> Self {
25852 TeamFolderIdListArg {
25853 team_folder_ids,
25854 }
25855 }
25856}
25857
25858const TEAM_FOLDER_ID_LIST_ARG_FIELDS: &[&str] = &["team_folder_ids"];
25859impl TeamFolderIdListArg {
25860 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25861 map: V,
25862 ) -> Result<TeamFolderIdListArg, V::Error> {
25863 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25864 }
25865
25866 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25867 mut map: V,
25868 optional: bool,
25869 ) -> Result<Option<TeamFolderIdListArg>, V::Error> {
25870 let mut field_team_folder_ids = None;
25871 let mut nothing = true;
25872 while let Some(key) = map.next_key::<&str>()? {
25873 nothing = false;
25874 match key {
25875 "team_folder_ids" => {
25876 if field_team_folder_ids.is_some() {
25877 return Err(::serde::de::Error::duplicate_field("team_folder_ids"));
25878 }
25879 field_team_folder_ids = Some(map.next_value()?);
25880 }
25881 _ => {
25882 map.next_value::<::serde_json::Value>()?;
25884 }
25885 }
25886 }
25887 if optional && nothing {
25888 return Ok(None);
25889 }
25890 let result = TeamFolderIdListArg {
25891 team_folder_ids: field_team_folder_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_ids"))?,
25892 };
25893 Ok(Some(result))
25894 }
25895
25896 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25897 &self,
25898 s: &mut S::SerializeStruct,
25899 ) -> Result<(), S::Error> {
25900 use serde::ser::SerializeStruct;
25901 s.serialize_field("team_folder_ids", &self.team_folder_ids)?;
25902 Ok(())
25903 }
25904}
25905
25906impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdListArg {
25907 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25908 use serde::de::{MapAccess, Visitor};
25910 struct StructVisitor;
25911 impl<'de> Visitor<'de> for StructVisitor {
25912 type Value = TeamFolderIdListArg;
25913 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25914 f.write_str("a TeamFolderIdListArg struct")
25915 }
25916 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25917 TeamFolderIdListArg::internal_deserialize(map)
25918 }
25919 }
25920 deserializer.deserialize_struct("TeamFolderIdListArg", TEAM_FOLDER_ID_LIST_ARG_FIELDS, StructVisitor)
25921 }
25922}
25923
25924impl ::serde::ser::Serialize for TeamFolderIdListArg {
25925 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25926 use serde::ser::SerializeStruct;
25928 let mut s = serializer.serialize_struct("TeamFolderIdListArg", 1)?;
25929 self.internal_serialize::<S>(&mut s)?;
25930 s.end()
25931 }
25932}
25933
25934#[derive(Debug, Clone, PartialEq, Eq)]
25935#[non_exhaustive] pub enum TeamFolderInvalidStatusError {
25937 Active,
25939 Archived,
25941 ArchiveInProgress,
25943 Other,
25946}
25947
25948impl<'de> ::serde::de::Deserialize<'de> for TeamFolderInvalidStatusError {
25949 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25950 use serde::de::{self, MapAccess, Visitor};
25952 struct EnumVisitor;
25953 impl<'de> Visitor<'de> for EnumVisitor {
25954 type Value = TeamFolderInvalidStatusError;
25955 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25956 f.write_str("a TeamFolderInvalidStatusError structure")
25957 }
25958 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25959 let tag: &str = match map.next_key()? {
25960 Some(".tag") => map.next_value()?,
25961 _ => return Err(de::Error::missing_field(".tag"))
25962 };
25963 let value = match tag {
25964 "active" => TeamFolderInvalidStatusError::Active,
25965 "archived" => TeamFolderInvalidStatusError::Archived,
25966 "archive_in_progress" => TeamFolderInvalidStatusError::ArchiveInProgress,
25967 _ => TeamFolderInvalidStatusError::Other,
25968 };
25969 crate::eat_json_fields(&mut map)?;
25970 Ok(value)
25971 }
25972 }
25973 const VARIANTS: &[&str] = &["active",
25974 "archived",
25975 "archive_in_progress",
25976 "other"];
25977 deserializer.deserialize_struct("TeamFolderInvalidStatusError", VARIANTS, EnumVisitor)
25978 }
25979}
25980
25981impl ::serde::ser::Serialize for TeamFolderInvalidStatusError {
25982 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25983 use serde::ser::SerializeStruct;
25985 match self {
25986 TeamFolderInvalidStatusError::Active => {
25987 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
25989 s.serialize_field(".tag", "active")?;
25990 s.end()
25991 }
25992 TeamFolderInvalidStatusError::Archived => {
25993 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
25995 s.serialize_field(".tag", "archived")?;
25996 s.end()
25997 }
25998 TeamFolderInvalidStatusError::ArchiveInProgress => {
25999 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
26001 s.serialize_field(".tag", "archive_in_progress")?;
26002 s.end()
26003 }
26004 TeamFolderInvalidStatusError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26005 }
26006 }
26007}
26008
26009impl ::std::error::Error for TeamFolderInvalidStatusError {
26010}
26011
26012impl ::std::fmt::Display for TeamFolderInvalidStatusError {
26013 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26014 match self {
26015 TeamFolderInvalidStatusError::Active => f.write_str("The folder is active and the operation did not succeed."),
26016 TeamFolderInvalidStatusError::Archived => f.write_str("The folder is archived and the operation did not succeed."),
26017 TeamFolderInvalidStatusError::ArchiveInProgress => f.write_str("The folder is being archived and the operation did not succeed."),
26018 _ => write!(f, "{:?}", *self),
26019 }
26020 }
26021}
26022
26023#[derive(Debug, Clone, PartialEq, Eq)]
26024#[non_exhaustive] pub struct TeamFolderListArg {
26026 pub limit: u32,
26028}
26029
26030impl Default for TeamFolderListArg {
26031 fn default() -> Self {
26032 TeamFolderListArg {
26033 limit: 1000,
26034 }
26035 }
26036}
26037
26038impl TeamFolderListArg {
26039 pub fn with_limit(mut self, value: u32) -> Self {
26040 self.limit = value;
26041 self
26042 }
26043}
26044
26045const TEAM_FOLDER_LIST_ARG_FIELDS: &[&str] = &["limit"];
26046impl TeamFolderListArg {
26047 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26049 mut map: V,
26050 ) -> Result<TeamFolderListArg, V::Error> {
26051 let mut field_limit = None;
26052 while let Some(key) = map.next_key::<&str>()? {
26053 match key {
26054 "limit" => {
26055 if field_limit.is_some() {
26056 return Err(::serde::de::Error::duplicate_field("limit"));
26057 }
26058 field_limit = Some(map.next_value()?);
26059 }
26060 _ => {
26061 map.next_value::<::serde_json::Value>()?;
26063 }
26064 }
26065 }
26066 let result = TeamFolderListArg {
26067 limit: field_limit.unwrap_or(1000),
26068 };
26069 Ok(result)
26070 }
26071
26072 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26073 &self,
26074 s: &mut S::SerializeStruct,
26075 ) -> Result<(), S::Error> {
26076 use serde::ser::SerializeStruct;
26077 if self.limit != 1000 {
26078 s.serialize_field("limit", &self.limit)?;
26079 }
26080 Ok(())
26081 }
26082}
26083
26084impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListArg {
26085 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26086 use serde::de::{MapAccess, Visitor};
26088 struct StructVisitor;
26089 impl<'de> Visitor<'de> for StructVisitor {
26090 type Value = TeamFolderListArg;
26091 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26092 f.write_str("a TeamFolderListArg struct")
26093 }
26094 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26095 TeamFolderListArg::internal_deserialize(map)
26096 }
26097 }
26098 deserializer.deserialize_struct("TeamFolderListArg", TEAM_FOLDER_LIST_ARG_FIELDS, StructVisitor)
26099 }
26100}
26101
26102impl ::serde::ser::Serialize for TeamFolderListArg {
26103 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26104 use serde::ser::SerializeStruct;
26106 let mut s = serializer.serialize_struct("TeamFolderListArg", 1)?;
26107 self.internal_serialize::<S>(&mut s)?;
26108 s.end()
26109 }
26110}
26111
26112#[derive(Debug, Clone, PartialEq, Eq)]
26113#[non_exhaustive] pub struct TeamFolderListContinueArg {
26115 pub cursor: String,
26117}
26118
26119impl TeamFolderListContinueArg {
26120 pub fn new(cursor: String) -> Self {
26121 TeamFolderListContinueArg {
26122 cursor,
26123 }
26124 }
26125}
26126
26127const TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
26128impl TeamFolderListContinueArg {
26129 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26130 map: V,
26131 ) -> Result<TeamFolderListContinueArg, V::Error> {
26132 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26133 }
26134
26135 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26136 mut map: V,
26137 optional: bool,
26138 ) -> Result<Option<TeamFolderListContinueArg>, V::Error> {
26139 let mut field_cursor = None;
26140 let mut nothing = true;
26141 while let Some(key) = map.next_key::<&str>()? {
26142 nothing = false;
26143 match key {
26144 "cursor" => {
26145 if field_cursor.is_some() {
26146 return Err(::serde::de::Error::duplicate_field("cursor"));
26147 }
26148 field_cursor = Some(map.next_value()?);
26149 }
26150 _ => {
26151 map.next_value::<::serde_json::Value>()?;
26153 }
26154 }
26155 }
26156 if optional && nothing {
26157 return Ok(None);
26158 }
26159 let result = TeamFolderListContinueArg {
26160 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
26161 };
26162 Ok(Some(result))
26163 }
26164
26165 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26166 &self,
26167 s: &mut S::SerializeStruct,
26168 ) -> Result<(), S::Error> {
26169 use serde::ser::SerializeStruct;
26170 s.serialize_field("cursor", &self.cursor)?;
26171 Ok(())
26172 }
26173}
26174
26175impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueArg {
26176 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26177 use serde::de::{MapAccess, Visitor};
26179 struct StructVisitor;
26180 impl<'de> Visitor<'de> for StructVisitor {
26181 type Value = TeamFolderListContinueArg;
26182 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26183 f.write_str("a TeamFolderListContinueArg struct")
26184 }
26185 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26186 TeamFolderListContinueArg::internal_deserialize(map)
26187 }
26188 }
26189 deserializer.deserialize_struct("TeamFolderListContinueArg", TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
26190 }
26191}
26192
26193impl ::serde::ser::Serialize for TeamFolderListContinueArg {
26194 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26195 use serde::ser::SerializeStruct;
26197 let mut s = serializer.serialize_struct("TeamFolderListContinueArg", 1)?;
26198 self.internal_serialize::<S>(&mut s)?;
26199 s.end()
26200 }
26201}
26202
26203#[derive(Debug, Clone, PartialEq, Eq)]
26204#[non_exhaustive] pub enum TeamFolderListContinueError {
26206 InvalidCursor,
26208 Other,
26211}
26212
26213impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueError {
26214 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26215 use serde::de::{self, MapAccess, Visitor};
26217 struct EnumVisitor;
26218 impl<'de> Visitor<'de> for EnumVisitor {
26219 type Value = TeamFolderListContinueError;
26220 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26221 f.write_str("a TeamFolderListContinueError structure")
26222 }
26223 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26224 let tag: &str = match map.next_key()? {
26225 Some(".tag") => map.next_value()?,
26226 _ => return Err(de::Error::missing_field(".tag"))
26227 };
26228 let value = match tag {
26229 "invalid_cursor" => TeamFolderListContinueError::InvalidCursor,
26230 _ => TeamFolderListContinueError::Other,
26231 };
26232 crate::eat_json_fields(&mut map)?;
26233 Ok(value)
26234 }
26235 }
26236 const VARIANTS: &[&str] = &["invalid_cursor",
26237 "other"];
26238 deserializer.deserialize_struct("TeamFolderListContinueError", VARIANTS, EnumVisitor)
26239 }
26240}
26241
26242impl ::serde::ser::Serialize for TeamFolderListContinueError {
26243 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26244 use serde::ser::SerializeStruct;
26246 match self {
26247 TeamFolderListContinueError::InvalidCursor => {
26248 let mut s = serializer.serialize_struct("TeamFolderListContinueError", 1)?;
26250 s.serialize_field(".tag", "invalid_cursor")?;
26251 s.end()
26252 }
26253 TeamFolderListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26254 }
26255 }
26256}
26257
26258impl ::std::error::Error for TeamFolderListContinueError {
26259}
26260
26261impl ::std::fmt::Display for TeamFolderListContinueError {
26262 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26263 match self {
26264 TeamFolderListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
26265 _ => write!(f, "{:?}", *self),
26266 }
26267 }
26268}
26269
26270#[derive(Debug, Clone, PartialEq, Eq)]
26271#[non_exhaustive] pub struct TeamFolderListError {
26273 pub access_error: TeamFolderAccessError,
26274}
26275
26276impl TeamFolderListError {
26277 pub fn new(access_error: TeamFolderAccessError) -> Self {
26278 TeamFolderListError {
26279 access_error,
26280 }
26281 }
26282}
26283
26284const TEAM_FOLDER_LIST_ERROR_FIELDS: &[&str] = &["access_error"];
26285impl TeamFolderListError {
26286 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26287 map: V,
26288 ) -> Result<TeamFolderListError, V::Error> {
26289 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26290 }
26291
26292 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26293 mut map: V,
26294 optional: bool,
26295 ) -> Result<Option<TeamFolderListError>, V::Error> {
26296 let mut field_access_error = None;
26297 let mut nothing = true;
26298 while let Some(key) = map.next_key::<&str>()? {
26299 nothing = false;
26300 match key {
26301 "access_error" => {
26302 if field_access_error.is_some() {
26303 return Err(::serde::de::Error::duplicate_field("access_error"));
26304 }
26305 field_access_error = Some(map.next_value()?);
26306 }
26307 _ => {
26308 map.next_value::<::serde_json::Value>()?;
26310 }
26311 }
26312 }
26313 if optional && nothing {
26314 return Ok(None);
26315 }
26316 let result = TeamFolderListError {
26317 access_error: field_access_error.ok_or_else(|| ::serde::de::Error::missing_field("access_error"))?,
26318 };
26319 Ok(Some(result))
26320 }
26321
26322 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26323 &self,
26324 s: &mut S::SerializeStruct,
26325 ) -> Result<(), S::Error> {
26326 use serde::ser::SerializeStruct;
26327 s.serialize_field("access_error", &self.access_error)?;
26328 Ok(())
26329 }
26330}
26331
26332impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListError {
26333 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26334 use serde::de::{MapAccess, Visitor};
26336 struct StructVisitor;
26337 impl<'de> Visitor<'de> for StructVisitor {
26338 type Value = TeamFolderListError;
26339 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26340 f.write_str("a TeamFolderListError struct")
26341 }
26342 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26343 TeamFolderListError::internal_deserialize(map)
26344 }
26345 }
26346 deserializer.deserialize_struct("TeamFolderListError", TEAM_FOLDER_LIST_ERROR_FIELDS, StructVisitor)
26347 }
26348}
26349
26350impl ::serde::ser::Serialize for TeamFolderListError {
26351 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26352 use serde::ser::SerializeStruct;
26354 let mut s = serializer.serialize_struct("TeamFolderListError", 1)?;
26355 self.internal_serialize::<S>(&mut s)?;
26356 s.end()
26357 }
26358}
26359
26360impl ::std::error::Error for TeamFolderListError {
26361}
26362
26363impl ::std::fmt::Display for TeamFolderListError {
26364 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26365 write!(f, "{:?}", *self)
26366 }
26367}
26368
26369#[derive(Debug, Clone, PartialEq, Eq)]
26372#[non_exhaustive] pub struct TeamFolderListResult {
26374 pub team_folders: Vec<TeamFolderMetadata>,
26376 pub cursor: String,
26379 pub has_more: bool,
26383}
26384
26385impl TeamFolderListResult {
26386 pub fn new(team_folders: Vec<TeamFolderMetadata>, cursor: String, has_more: bool) -> Self {
26387 TeamFolderListResult {
26388 team_folders,
26389 cursor,
26390 has_more,
26391 }
26392 }
26393}
26394
26395const TEAM_FOLDER_LIST_RESULT_FIELDS: &[&str] = &["team_folders",
26396 "cursor",
26397 "has_more"];
26398impl TeamFolderListResult {
26399 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26400 map: V,
26401 ) -> Result<TeamFolderListResult, V::Error> {
26402 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26403 }
26404
26405 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26406 mut map: V,
26407 optional: bool,
26408 ) -> Result<Option<TeamFolderListResult>, V::Error> {
26409 let mut field_team_folders = None;
26410 let mut field_cursor = None;
26411 let mut field_has_more = None;
26412 let mut nothing = true;
26413 while let Some(key) = map.next_key::<&str>()? {
26414 nothing = false;
26415 match key {
26416 "team_folders" => {
26417 if field_team_folders.is_some() {
26418 return Err(::serde::de::Error::duplicate_field("team_folders"));
26419 }
26420 field_team_folders = Some(map.next_value()?);
26421 }
26422 "cursor" => {
26423 if field_cursor.is_some() {
26424 return Err(::serde::de::Error::duplicate_field("cursor"));
26425 }
26426 field_cursor = Some(map.next_value()?);
26427 }
26428 "has_more" => {
26429 if field_has_more.is_some() {
26430 return Err(::serde::de::Error::duplicate_field("has_more"));
26431 }
26432 field_has_more = Some(map.next_value()?);
26433 }
26434 _ => {
26435 map.next_value::<::serde_json::Value>()?;
26437 }
26438 }
26439 }
26440 if optional && nothing {
26441 return Ok(None);
26442 }
26443 let result = TeamFolderListResult {
26444 team_folders: field_team_folders.ok_or_else(|| ::serde::de::Error::missing_field("team_folders"))?,
26445 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
26446 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
26447 };
26448 Ok(Some(result))
26449 }
26450
26451 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26452 &self,
26453 s: &mut S::SerializeStruct,
26454 ) -> Result<(), S::Error> {
26455 use serde::ser::SerializeStruct;
26456 s.serialize_field("team_folders", &self.team_folders)?;
26457 s.serialize_field("cursor", &self.cursor)?;
26458 s.serialize_field("has_more", &self.has_more)?;
26459 Ok(())
26460 }
26461}
26462
26463impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListResult {
26464 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26465 use serde::de::{MapAccess, Visitor};
26467 struct StructVisitor;
26468 impl<'de> Visitor<'de> for StructVisitor {
26469 type Value = TeamFolderListResult;
26470 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26471 f.write_str("a TeamFolderListResult struct")
26472 }
26473 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26474 TeamFolderListResult::internal_deserialize(map)
26475 }
26476 }
26477 deserializer.deserialize_struct("TeamFolderListResult", TEAM_FOLDER_LIST_RESULT_FIELDS, StructVisitor)
26478 }
26479}
26480
26481impl ::serde::ser::Serialize for TeamFolderListResult {
26482 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26483 use serde::ser::SerializeStruct;
26485 let mut s = serializer.serialize_struct("TeamFolderListResult", 3)?;
26486 self.internal_serialize::<S>(&mut s)?;
26487 s.end()
26488 }
26489}
26490
26491#[derive(Debug, Clone, PartialEq, Eq)]
26493#[non_exhaustive] pub struct TeamFolderMetadata {
26495 pub team_folder_id: crate::types::common::SharedFolderId,
26497 pub name: String,
26499 pub status: TeamFolderStatus,
26501 pub is_team_shared_dropbox: bool,
26503 pub sync_setting: crate::types::files::SyncSetting,
26505 pub content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
26507 pub quota_limit: i64,
26509}
26510
26511impl TeamFolderMetadata {
26512 pub fn new(
26513 team_folder_id: crate::types::common::SharedFolderId,
26514 name: String,
26515 status: TeamFolderStatus,
26516 is_team_shared_dropbox: bool,
26517 sync_setting: crate::types::files::SyncSetting,
26518 content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
26519 ) -> Self {
26520 TeamFolderMetadata {
26521 team_folder_id,
26522 name,
26523 status,
26524 is_team_shared_dropbox,
26525 sync_setting,
26526 content_sync_settings,
26527 quota_limit: 0,
26528 }
26529 }
26530
26531 pub fn with_quota_limit(mut self, value: i64) -> Self {
26532 self.quota_limit = value;
26533 self
26534 }
26535}
26536
26537const TEAM_FOLDER_METADATA_FIELDS: &[&str] = &["team_folder_id",
26538 "name",
26539 "status",
26540 "is_team_shared_dropbox",
26541 "sync_setting",
26542 "content_sync_settings",
26543 "quota_limit"];
26544impl TeamFolderMetadata {
26545 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26546 map: V,
26547 ) -> Result<TeamFolderMetadata, V::Error> {
26548 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26549 }
26550
26551 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26552 mut map: V,
26553 optional: bool,
26554 ) -> Result<Option<TeamFolderMetadata>, V::Error> {
26555 let mut field_team_folder_id = None;
26556 let mut field_name = None;
26557 let mut field_status = None;
26558 let mut field_is_team_shared_dropbox = None;
26559 let mut field_sync_setting = None;
26560 let mut field_content_sync_settings = None;
26561 let mut field_quota_limit = None;
26562 let mut nothing = true;
26563 while let Some(key) = map.next_key::<&str>()? {
26564 nothing = false;
26565 match key {
26566 "team_folder_id" => {
26567 if field_team_folder_id.is_some() {
26568 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26569 }
26570 field_team_folder_id = Some(map.next_value()?);
26571 }
26572 "name" => {
26573 if field_name.is_some() {
26574 return Err(::serde::de::Error::duplicate_field("name"));
26575 }
26576 field_name = Some(map.next_value()?);
26577 }
26578 "status" => {
26579 if field_status.is_some() {
26580 return Err(::serde::de::Error::duplicate_field("status"));
26581 }
26582 field_status = Some(map.next_value()?);
26583 }
26584 "is_team_shared_dropbox" => {
26585 if field_is_team_shared_dropbox.is_some() {
26586 return Err(::serde::de::Error::duplicate_field("is_team_shared_dropbox"));
26587 }
26588 field_is_team_shared_dropbox = Some(map.next_value()?);
26589 }
26590 "sync_setting" => {
26591 if field_sync_setting.is_some() {
26592 return Err(::serde::de::Error::duplicate_field("sync_setting"));
26593 }
26594 field_sync_setting = Some(map.next_value()?);
26595 }
26596 "content_sync_settings" => {
26597 if field_content_sync_settings.is_some() {
26598 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
26599 }
26600 field_content_sync_settings = Some(map.next_value()?);
26601 }
26602 "quota_limit" => {
26603 if field_quota_limit.is_some() {
26604 return Err(::serde::de::Error::duplicate_field("quota_limit"));
26605 }
26606 field_quota_limit = Some(map.next_value()?);
26607 }
26608 _ => {
26609 map.next_value::<::serde_json::Value>()?;
26611 }
26612 }
26613 }
26614 if optional && nothing {
26615 return Ok(None);
26616 }
26617 let result = TeamFolderMetadata {
26618 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26619 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26620 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
26621 is_team_shared_dropbox: field_is_team_shared_dropbox.ok_or_else(|| ::serde::de::Error::missing_field("is_team_shared_dropbox"))?,
26622 sync_setting: field_sync_setting.ok_or_else(|| ::serde::de::Error::missing_field("sync_setting"))?,
26623 content_sync_settings: field_content_sync_settings.ok_or_else(|| ::serde::de::Error::missing_field("content_sync_settings"))?,
26624 quota_limit: field_quota_limit.unwrap_or(0),
26625 };
26626 Ok(Some(result))
26627 }
26628
26629 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26630 &self,
26631 s: &mut S::SerializeStruct,
26632 ) -> Result<(), S::Error> {
26633 use serde::ser::SerializeStruct;
26634 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26635 s.serialize_field("name", &self.name)?;
26636 s.serialize_field("status", &self.status)?;
26637 s.serialize_field("is_team_shared_dropbox", &self.is_team_shared_dropbox)?;
26638 s.serialize_field("sync_setting", &self.sync_setting)?;
26639 s.serialize_field("content_sync_settings", &self.content_sync_settings)?;
26640 if self.quota_limit != 0 {
26641 s.serialize_field("quota_limit", &self.quota_limit)?;
26642 }
26643 Ok(())
26644 }
26645}
26646
26647impl<'de> ::serde::de::Deserialize<'de> for TeamFolderMetadata {
26648 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26649 use serde::de::{MapAccess, Visitor};
26651 struct StructVisitor;
26652 impl<'de> Visitor<'de> for StructVisitor {
26653 type Value = TeamFolderMetadata;
26654 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26655 f.write_str("a TeamFolderMetadata struct")
26656 }
26657 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26658 TeamFolderMetadata::internal_deserialize(map)
26659 }
26660 }
26661 deserializer.deserialize_struct("TeamFolderMetadata", TEAM_FOLDER_METADATA_FIELDS, StructVisitor)
26662 }
26663}
26664
26665impl ::serde::ser::Serialize for TeamFolderMetadata {
26666 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26667 use serde::ser::SerializeStruct;
26669 let mut s = serializer.serialize_struct("TeamFolderMetadata", 7)?;
26670 self.internal_serialize::<S>(&mut s)?;
26671 s.end()
26672 }
26673}
26674
26675
26676#[derive(Debug, Clone, PartialEq, Eq)]
26677#[non_exhaustive] pub enum TeamFolderPermanentlyDeleteError {
26679 AccessError(TeamFolderAccessError),
26680 StatusError(TeamFolderInvalidStatusError),
26681 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26682 Other,
26685}
26686
26687impl<'de> ::serde::de::Deserialize<'de> for TeamFolderPermanentlyDeleteError {
26688 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26689 use serde::de::{self, MapAccess, Visitor};
26691 struct EnumVisitor;
26692 impl<'de> Visitor<'de> for EnumVisitor {
26693 type Value = TeamFolderPermanentlyDeleteError;
26694 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26695 f.write_str("a TeamFolderPermanentlyDeleteError structure")
26696 }
26697 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26698 let tag: &str = match map.next_key()? {
26699 Some(".tag") => map.next_value()?,
26700 _ => return Err(de::Error::missing_field(".tag"))
26701 };
26702 let value = match tag {
26703 "access_error" => {
26704 match map.next_key()? {
26705 Some("access_error") => TeamFolderPermanentlyDeleteError::AccessError(map.next_value()?),
26706 None => return Err(de::Error::missing_field("access_error")),
26707 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26708 }
26709 }
26710 "status_error" => {
26711 match map.next_key()? {
26712 Some("status_error") => TeamFolderPermanentlyDeleteError::StatusError(map.next_value()?),
26713 None => return Err(de::Error::missing_field("status_error")),
26714 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26715 }
26716 }
26717 "team_shared_dropbox_error" => {
26718 match map.next_key()? {
26719 Some("team_shared_dropbox_error") => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(map.next_value()?),
26720 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26721 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26722 }
26723 }
26724 _ => TeamFolderPermanentlyDeleteError::Other,
26725 };
26726 crate::eat_json_fields(&mut map)?;
26727 Ok(value)
26728 }
26729 }
26730 const VARIANTS: &[&str] = &["access_error",
26731 "status_error",
26732 "team_shared_dropbox_error",
26733 "other"];
26734 deserializer.deserialize_struct("TeamFolderPermanentlyDeleteError", VARIANTS, EnumVisitor)
26735 }
26736}
26737
26738impl ::serde::ser::Serialize for TeamFolderPermanentlyDeleteError {
26739 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26740 use serde::ser::SerializeStruct;
26742 match self {
26743 TeamFolderPermanentlyDeleteError::AccessError(x) => {
26744 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26746 s.serialize_field(".tag", "access_error")?;
26747 s.serialize_field("access_error", x)?;
26748 s.end()
26749 }
26750 TeamFolderPermanentlyDeleteError::StatusError(x) => {
26751 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26753 s.serialize_field(".tag", "status_error")?;
26754 s.serialize_field("status_error", x)?;
26755 s.end()
26756 }
26757 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x) => {
26758 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26760 s.serialize_field(".tag", "team_shared_dropbox_error")?;
26761 s.serialize_field("team_shared_dropbox_error", x)?;
26762 s.end()
26763 }
26764 TeamFolderPermanentlyDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26765 }
26766 }
26767}
26768
26769impl ::std::error::Error for TeamFolderPermanentlyDeleteError {
26770 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26771 match self {
26772 TeamFolderPermanentlyDeleteError::AccessError(inner) => Some(inner),
26773 TeamFolderPermanentlyDeleteError::StatusError(inner) => Some(inner),
26774 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => Some(inner),
26775 _ => None,
26776 }
26777 }
26778}
26779
26780impl ::std::fmt::Display for TeamFolderPermanentlyDeleteError {
26781 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26782 match self {
26783 TeamFolderPermanentlyDeleteError::AccessError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26784 TeamFolderPermanentlyDeleteError::StatusError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26785 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26786 _ => write!(f, "{:?}", *self),
26787 }
26788 }
26789}
26790
26791impl From<BaseTeamFolderError> for TeamFolderPermanentlyDeleteError {
26793 fn from(parent: BaseTeamFolderError) -> Self {
26794 match parent {
26795 BaseTeamFolderError::AccessError(x) => TeamFolderPermanentlyDeleteError::AccessError(x),
26796 BaseTeamFolderError::StatusError(x) => TeamFolderPermanentlyDeleteError::StatusError(x),
26797 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x),
26798 BaseTeamFolderError::Other => TeamFolderPermanentlyDeleteError::Other,
26799 }
26800 }
26801}
26802#[derive(Debug, Clone, PartialEq, Eq)]
26803#[non_exhaustive] pub struct TeamFolderRenameArg {
26805 pub team_folder_id: crate::types::common::SharedFolderId,
26807 pub name: String,
26809}
26810
26811impl TeamFolderRenameArg {
26812 pub fn new(team_folder_id: crate::types::common::SharedFolderId, name: String) -> Self {
26813 TeamFolderRenameArg {
26814 team_folder_id,
26815 name,
26816 }
26817 }
26818}
26819
26820const TEAM_FOLDER_RENAME_ARG_FIELDS: &[&str] = &["team_folder_id",
26821 "name"];
26822impl TeamFolderRenameArg {
26823 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26824 map: V,
26825 ) -> Result<TeamFolderRenameArg, V::Error> {
26826 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26827 }
26828
26829 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26830 mut map: V,
26831 optional: bool,
26832 ) -> Result<Option<TeamFolderRenameArg>, V::Error> {
26833 let mut field_team_folder_id = None;
26834 let mut field_name = None;
26835 let mut nothing = true;
26836 while let Some(key) = map.next_key::<&str>()? {
26837 nothing = false;
26838 match key {
26839 "team_folder_id" => {
26840 if field_team_folder_id.is_some() {
26841 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26842 }
26843 field_team_folder_id = Some(map.next_value()?);
26844 }
26845 "name" => {
26846 if field_name.is_some() {
26847 return Err(::serde::de::Error::duplicate_field("name"));
26848 }
26849 field_name = Some(map.next_value()?);
26850 }
26851 _ => {
26852 map.next_value::<::serde_json::Value>()?;
26854 }
26855 }
26856 }
26857 if optional && nothing {
26858 return Ok(None);
26859 }
26860 let result = TeamFolderRenameArg {
26861 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26862 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26863 };
26864 Ok(Some(result))
26865 }
26866
26867 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26868 &self,
26869 s: &mut S::SerializeStruct,
26870 ) -> Result<(), S::Error> {
26871 use serde::ser::SerializeStruct;
26872 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26873 s.serialize_field("name", &self.name)?;
26874 Ok(())
26875 }
26876}
26877
26878impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameArg {
26879 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26880 use serde::de::{MapAccess, Visitor};
26882 struct StructVisitor;
26883 impl<'de> Visitor<'de> for StructVisitor {
26884 type Value = TeamFolderRenameArg;
26885 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26886 f.write_str("a TeamFolderRenameArg struct")
26887 }
26888 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26889 TeamFolderRenameArg::internal_deserialize(map)
26890 }
26891 }
26892 deserializer.deserialize_struct("TeamFolderRenameArg", TEAM_FOLDER_RENAME_ARG_FIELDS, StructVisitor)
26893 }
26894}
26895
26896impl ::serde::ser::Serialize for TeamFolderRenameArg {
26897 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26898 use serde::ser::SerializeStruct;
26900 let mut s = serializer.serialize_struct("TeamFolderRenameArg", 2)?;
26901 self.internal_serialize::<S>(&mut s)?;
26902 s.end()
26903 }
26904}
26905
26906impl From<TeamFolderRenameArg> for TeamFolderIdArg {
26908 fn from(subtype: TeamFolderRenameArg) -> Self {
26909 Self {
26910 team_folder_id: subtype.team_folder_id,
26911 }
26912 }
26913}
26914#[derive(Debug, Clone, PartialEq, Eq)]
26915#[non_exhaustive] pub enum TeamFolderRenameError {
26917 AccessError(TeamFolderAccessError),
26918 StatusError(TeamFolderInvalidStatusError),
26919 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26920 InvalidFolderName,
26922 FolderNameAlreadyUsed,
26924 FolderNameReserved,
26926 Other,
26929}
26930
26931impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameError {
26932 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26933 use serde::de::{self, MapAccess, Visitor};
26935 struct EnumVisitor;
26936 impl<'de> Visitor<'de> for EnumVisitor {
26937 type Value = TeamFolderRenameError;
26938 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26939 f.write_str("a TeamFolderRenameError structure")
26940 }
26941 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26942 let tag: &str = match map.next_key()? {
26943 Some(".tag") => map.next_value()?,
26944 _ => return Err(de::Error::missing_field(".tag"))
26945 };
26946 let value = match tag {
26947 "access_error" => {
26948 match map.next_key()? {
26949 Some("access_error") => TeamFolderRenameError::AccessError(map.next_value()?),
26950 None => return Err(de::Error::missing_field("access_error")),
26951 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26952 }
26953 }
26954 "status_error" => {
26955 match map.next_key()? {
26956 Some("status_error") => TeamFolderRenameError::StatusError(map.next_value()?),
26957 None => return Err(de::Error::missing_field("status_error")),
26958 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26959 }
26960 }
26961 "team_shared_dropbox_error" => {
26962 match map.next_key()? {
26963 Some("team_shared_dropbox_error") => TeamFolderRenameError::TeamSharedDropboxError(map.next_value()?),
26964 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26965 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26966 }
26967 }
26968 "invalid_folder_name" => TeamFolderRenameError::InvalidFolderName,
26969 "folder_name_already_used" => TeamFolderRenameError::FolderNameAlreadyUsed,
26970 "folder_name_reserved" => TeamFolderRenameError::FolderNameReserved,
26971 _ => TeamFolderRenameError::Other,
26972 };
26973 crate::eat_json_fields(&mut map)?;
26974 Ok(value)
26975 }
26976 }
26977 const VARIANTS: &[&str] = &["access_error",
26978 "status_error",
26979 "team_shared_dropbox_error",
26980 "other",
26981 "invalid_folder_name",
26982 "folder_name_already_used",
26983 "folder_name_reserved"];
26984 deserializer.deserialize_struct("TeamFolderRenameError", VARIANTS, EnumVisitor)
26985 }
26986}
26987
26988impl ::serde::ser::Serialize for TeamFolderRenameError {
26989 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26990 use serde::ser::SerializeStruct;
26992 match self {
26993 TeamFolderRenameError::AccessError(x) => {
26994 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
26996 s.serialize_field(".tag", "access_error")?;
26997 s.serialize_field("access_error", x)?;
26998 s.end()
26999 }
27000 TeamFolderRenameError::StatusError(x) => {
27001 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27003 s.serialize_field(".tag", "status_error")?;
27004 s.serialize_field("status_error", x)?;
27005 s.end()
27006 }
27007 TeamFolderRenameError::TeamSharedDropboxError(x) => {
27008 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
27010 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27011 s.serialize_field("team_shared_dropbox_error", x)?;
27012 s.end()
27013 }
27014 TeamFolderRenameError::InvalidFolderName => {
27015 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27017 s.serialize_field(".tag", "invalid_folder_name")?;
27018 s.end()
27019 }
27020 TeamFolderRenameError::FolderNameAlreadyUsed => {
27021 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27023 s.serialize_field(".tag", "folder_name_already_used")?;
27024 s.end()
27025 }
27026 TeamFolderRenameError::FolderNameReserved => {
27027 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
27029 s.serialize_field(".tag", "folder_name_reserved")?;
27030 s.end()
27031 }
27032 TeamFolderRenameError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27033 }
27034 }
27035}
27036
27037impl ::std::error::Error for TeamFolderRenameError {
27038 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27039 match self {
27040 TeamFolderRenameError::AccessError(inner) => Some(inner),
27041 TeamFolderRenameError::StatusError(inner) => Some(inner),
27042 TeamFolderRenameError::TeamSharedDropboxError(inner) => Some(inner),
27043 _ => None,
27044 }
27045 }
27046}
27047
27048impl ::std::fmt::Display for TeamFolderRenameError {
27049 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27050 match self {
27051 TeamFolderRenameError::AccessError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27052 TeamFolderRenameError::StatusError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27053 TeamFolderRenameError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
27054 TeamFolderRenameError::InvalidFolderName => f.write_str("The provided folder name cannot be used."),
27055 TeamFolderRenameError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the same name."),
27056 TeamFolderRenameError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
27057 _ => write!(f, "{:?}", *self),
27058 }
27059 }
27060}
27061
27062impl From<BaseTeamFolderError> for TeamFolderRenameError {
27064 fn from(parent: BaseTeamFolderError) -> Self {
27065 match parent {
27066 BaseTeamFolderError::AccessError(x) => TeamFolderRenameError::AccessError(x),
27067 BaseTeamFolderError::StatusError(x) => TeamFolderRenameError::StatusError(x),
27068 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRenameError::TeamSharedDropboxError(x),
27069 BaseTeamFolderError::Other => TeamFolderRenameError::Other,
27070 }
27071 }
27072}
27073
27074#[derive(Debug, Clone, PartialEq, Eq)]
27075#[non_exhaustive] pub enum TeamFolderRestoreError {
27077 AccessError(TeamFolderAccessError),
27078 StatusError(TeamFolderInvalidStatusError),
27079 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
27080 Other,
27083}
27084
27085impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRestoreError {
27086 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27087 use serde::de::{self, MapAccess, Visitor};
27089 struct EnumVisitor;
27090 impl<'de> Visitor<'de> for EnumVisitor {
27091 type Value = TeamFolderRestoreError;
27092 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27093 f.write_str("a TeamFolderRestoreError structure")
27094 }
27095 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27096 let tag: &str = match map.next_key()? {
27097 Some(".tag") => map.next_value()?,
27098 _ => return Err(de::Error::missing_field(".tag"))
27099 };
27100 let value = match tag {
27101 "access_error" => {
27102 match map.next_key()? {
27103 Some("access_error") => TeamFolderRestoreError::AccessError(map.next_value()?),
27104 None => return Err(de::Error::missing_field("access_error")),
27105 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27106 }
27107 }
27108 "status_error" => {
27109 match map.next_key()? {
27110 Some("status_error") => TeamFolderRestoreError::StatusError(map.next_value()?),
27111 None => return Err(de::Error::missing_field("status_error")),
27112 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27113 }
27114 }
27115 "team_shared_dropbox_error" => {
27116 match map.next_key()? {
27117 Some("team_shared_dropbox_error") => TeamFolderRestoreError::TeamSharedDropboxError(map.next_value()?),
27118 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
27119 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27120 }
27121 }
27122 _ => TeamFolderRestoreError::Other,
27123 };
27124 crate::eat_json_fields(&mut map)?;
27125 Ok(value)
27126 }
27127 }
27128 const VARIANTS: &[&str] = &["access_error",
27129 "status_error",
27130 "team_shared_dropbox_error",
27131 "other"];
27132 deserializer.deserialize_struct("TeamFolderRestoreError", VARIANTS, EnumVisitor)
27133 }
27134}
27135
27136impl ::serde::ser::Serialize for TeamFolderRestoreError {
27137 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27138 use serde::ser::SerializeStruct;
27140 match self {
27141 TeamFolderRestoreError::AccessError(x) => {
27142 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
27144 s.serialize_field(".tag", "access_error")?;
27145 s.serialize_field("access_error", x)?;
27146 s.end()
27147 }
27148 TeamFolderRestoreError::StatusError(x) => {
27149 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
27151 s.serialize_field(".tag", "status_error")?;
27152 s.serialize_field("status_error", x)?;
27153 s.end()
27154 }
27155 TeamFolderRestoreError::TeamSharedDropboxError(x) => {
27156 let mut s = serializer.serialize_struct("TeamFolderRestoreError", 2)?;
27158 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27159 s.serialize_field("team_shared_dropbox_error", x)?;
27160 s.end()
27161 }
27162 TeamFolderRestoreError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27163 }
27164 }
27165}
27166
27167impl ::std::error::Error for TeamFolderRestoreError {
27168 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27169 match self {
27170 TeamFolderRestoreError::AccessError(inner) => Some(inner),
27171 TeamFolderRestoreError::StatusError(inner) => Some(inner),
27172 TeamFolderRestoreError::TeamSharedDropboxError(inner) => Some(inner),
27173 _ => None,
27174 }
27175 }
27176}
27177
27178impl ::std::fmt::Display for TeamFolderRestoreError {
27179 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27180 match self {
27181 TeamFolderRestoreError::AccessError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
27182 TeamFolderRestoreError::StatusError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
27183 TeamFolderRestoreError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRestoreError: {}", inner),
27184 _ => write!(f, "{:?}", *self),
27185 }
27186 }
27187}
27188
27189impl From<BaseTeamFolderError> for TeamFolderRestoreError {
27191 fn from(parent: BaseTeamFolderError) -> Self {
27192 match parent {
27193 BaseTeamFolderError::AccessError(x) => TeamFolderRestoreError::AccessError(x),
27194 BaseTeamFolderError::StatusError(x) => TeamFolderRestoreError::StatusError(x),
27195 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRestoreError::TeamSharedDropboxError(x),
27196 BaseTeamFolderError::Other => TeamFolderRestoreError::Other,
27197 }
27198 }
27199}
27200#[derive(Debug, Clone, PartialEq, Eq)]
27201#[non_exhaustive] pub enum TeamFolderStatus {
27203 Active,
27205 Archived,
27207 ArchiveInProgress,
27210 Inactive,
27212 Other,
27215}
27216
27217impl<'de> ::serde::de::Deserialize<'de> for TeamFolderStatus {
27218 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27219 use serde::de::{self, MapAccess, Visitor};
27221 struct EnumVisitor;
27222 impl<'de> Visitor<'de> for EnumVisitor {
27223 type Value = TeamFolderStatus;
27224 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27225 f.write_str("a TeamFolderStatus structure")
27226 }
27227 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27228 let tag: &str = match map.next_key()? {
27229 Some(".tag") => map.next_value()?,
27230 _ => return Err(de::Error::missing_field(".tag"))
27231 };
27232 let value = match tag {
27233 "active" => TeamFolderStatus::Active,
27234 "archived" => TeamFolderStatus::Archived,
27235 "archive_in_progress" => TeamFolderStatus::ArchiveInProgress,
27236 "inactive" => TeamFolderStatus::Inactive,
27237 _ => TeamFolderStatus::Other,
27238 };
27239 crate::eat_json_fields(&mut map)?;
27240 Ok(value)
27241 }
27242 }
27243 const VARIANTS: &[&str] = &["active",
27244 "archived",
27245 "archive_in_progress",
27246 "inactive",
27247 "other"];
27248 deserializer.deserialize_struct("TeamFolderStatus", VARIANTS, EnumVisitor)
27249 }
27250}
27251
27252impl ::serde::ser::Serialize for TeamFolderStatus {
27253 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27254 use serde::ser::SerializeStruct;
27256 match self {
27257 TeamFolderStatus::Active => {
27258 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27260 s.serialize_field(".tag", "active")?;
27261 s.end()
27262 }
27263 TeamFolderStatus::Archived => {
27264 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27266 s.serialize_field(".tag", "archived")?;
27267 s.end()
27268 }
27269 TeamFolderStatus::ArchiveInProgress => {
27270 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27272 s.serialize_field(".tag", "archive_in_progress")?;
27273 s.end()
27274 }
27275 TeamFolderStatus::Inactive => {
27276 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
27278 s.serialize_field(".tag", "inactive")?;
27279 s.end()
27280 }
27281 TeamFolderStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27282 }
27283 }
27284}
27285
27286#[derive(Debug, Clone, PartialEq, Eq)]
27287#[non_exhaustive] pub enum TeamFolderTeamSharedDropboxError {
27289 Disallowed,
27291 Other,
27294}
27295
27296impl<'de> ::serde::de::Deserialize<'de> for TeamFolderTeamSharedDropboxError {
27297 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27298 use serde::de::{self, MapAccess, Visitor};
27300 struct EnumVisitor;
27301 impl<'de> Visitor<'de> for EnumVisitor {
27302 type Value = TeamFolderTeamSharedDropboxError;
27303 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27304 f.write_str("a TeamFolderTeamSharedDropboxError structure")
27305 }
27306 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27307 let tag: &str = match map.next_key()? {
27308 Some(".tag") => map.next_value()?,
27309 _ => return Err(de::Error::missing_field(".tag"))
27310 };
27311 let value = match tag {
27312 "disallowed" => TeamFolderTeamSharedDropboxError::Disallowed,
27313 _ => TeamFolderTeamSharedDropboxError::Other,
27314 };
27315 crate::eat_json_fields(&mut map)?;
27316 Ok(value)
27317 }
27318 }
27319 const VARIANTS: &[&str] = &["disallowed",
27320 "other"];
27321 deserializer.deserialize_struct("TeamFolderTeamSharedDropboxError", VARIANTS, EnumVisitor)
27322 }
27323}
27324
27325impl ::serde::ser::Serialize for TeamFolderTeamSharedDropboxError {
27326 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27327 use serde::ser::SerializeStruct;
27329 match self {
27330 TeamFolderTeamSharedDropboxError::Disallowed => {
27331 let mut s = serializer.serialize_struct("TeamFolderTeamSharedDropboxError", 1)?;
27333 s.serialize_field(".tag", "disallowed")?;
27334 s.end()
27335 }
27336 TeamFolderTeamSharedDropboxError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27337 }
27338 }
27339}
27340
27341impl ::std::error::Error for TeamFolderTeamSharedDropboxError {
27342}
27343
27344impl ::std::fmt::Display for TeamFolderTeamSharedDropboxError {
27345 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27346 match self {
27347 TeamFolderTeamSharedDropboxError::Disallowed => f.write_str("This action is not allowed for a shared team root."),
27348 _ => write!(f, "{:?}", *self),
27349 }
27350 }
27351}
27352
27353#[derive(Debug, Clone, PartialEq, Eq)]
27354#[non_exhaustive] pub struct TeamFolderUpdateSyncSettingsArg {
27356 pub team_folder_id: crate::types::common::SharedFolderId,
27358 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
27361 pub content_sync_settings: Option<Vec<crate::types::files::ContentSyncSettingArg>>,
27363}
27364
27365impl TeamFolderUpdateSyncSettingsArg {
27366 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
27367 TeamFolderUpdateSyncSettingsArg {
27368 team_folder_id,
27369 sync_setting: None,
27370 content_sync_settings: None,
27371 }
27372 }
27373
27374 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
27375 self.sync_setting = Some(value);
27376 self
27377 }
27378
27379 pub fn with_content_sync_settings(
27380 mut self,
27381 value: Vec<crate::types::files::ContentSyncSettingArg>,
27382 ) -> Self {
27383 self.content_sync_settings = Some(value);
27384 self
27385 }
27386}
27387
27388const TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS: &[&str] = &["team_folder_id",
27389 "sync_setting",
27390 "content_sync_settings"];
27391impl TeamFolderUpdateSyncSettingsArg {
27392 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27393 map: V,
27394 ) -> Result<TeamFolderUpdateSyncSettingsArg, V::Error> {
27395 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27396 }
27397
27398 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27399 mut map: V,
27400 optional: bool,
27401 ) -> Result<Option<TeamFolderUpdateSyncSettingsArg>, V::Error> {
27402 let mut field_team_folder_id = None;
27403 let mut field_sync_setting = None;
27404 let mut field_content_sync_settings = None;
27405 let mut nothing = true;
27406 while let Some(key) = map.next_key::<&str>()? {
27407 nothing = false;
27408 match key {
27409 "team_folder_id" => {
27410 if field_team_folder_id.is_some() {
27411 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
27412 }
27413 field_team_folder_id = Some(map.next_value()?);
27414 }
27415 "sync_setting" => {
27416 if field_sync_setting.is_some() {
27417 return Err(::serde::de::Error::duplicate_field("sync_setting"));
27418 }
27419 field_sync_setting = Some(map.next_value()?);
27420 }
27421 "content_sync_settings" => {
27422 if field_content_sync_settings.is_some() {
27423 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
27424 }
27425 field_content_sync_settings = Some(map.next_value()?);
27426 }
27427 _ => {
27428 map.next_value::<::serde_json::Value>()?;
27430 }
27431 }
27432 }
27433 if optional && nothing {
27434 return Ok(None);
27435 }
27436 let result = TeamFolderUpdateSyncSettingsArg {
27437 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
27438 sync_setting: field_sync_setting.and_then(Option::flatten),
27439 content_sync_settings: field_content_sync_settings.and_then(Option::flatten),
27440 };
27441 Ok(Some(result))
27442 }
27443
27444 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27445 &self,
27446 s: &mut S::SerializeStruct,
27447 ) -> Result<(), S::Error> {
27448 use serde::ser::SerializeStruct;
27449 s.serialize_field("team_folder_id", &self.team_folder_id)?;
27450 if let Some(val) = &self.sync_setting {
27451 s.serialize_field("sync_setting", val)?;
27452 }
27453 if let Some(val) = &self.content_sync_settings {
27454 s.serialize_field("content_sync_settings", val)?;
27455 }
27456 Ok(())
27457 }
27458}
27459
27460impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsArg {
27461 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27462 use serde::de::{MapAccess, Visitor};
27464 struct StructVisitor;
27465 impl<'de> Visitor<'de> for StructVisitor {
27466 type Value = TeamFolderUpdateSyncSettingsArg;
27467 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27468 f.write_str("a TeamFolderUpdateSyncSettingsArg struct")
27469 }
27470 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27471 TeamFolderUpdateSyncSettingsArg::internal_deserialize(map)
27472 }
27473 }
27474 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsArg", TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS, StructVisitor)
27475 }
27476}
27477
27478impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsArg {
27479 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27480 use serde::ser::SerializeStruct;
27482 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsArg", 3)?;
27483 self.internal_serialize::<S>(&mut s)?;
27484 s.end()
27485 }
27486}
27487
27488impl From<TeamFolderUpdateSyncSettingsArg> for TeamFolderIdArg {
27490 fn from(subtype: TeamFolderUpdateSyncSettingsArg) -> Self {
27491 Self {
27492 team_folder_id: subtype.team_folder_id,
27493 }
27494 }
27495}
27496#[derive(Debug, Clone, PartialEq, Eq)]
27497#[non_exhaustive] pub enum TeamFolderUpdateSyncSettingsError {
27499 AccessError(TeamFolderAccessError),
27500 StatusError(TeamFolderInvalidStatusError),
27501 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
27502 SyncSettingsError(crate::types::files::SyncSettingsError),
27504 Other,
27507}
27508
27509impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsError {
27510 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27511 use serde::de::{self, MapAccess, Visitor};
27513 struct EnumVisitor;
27514 impl<'de> Visitor<'de> for EnumVisitor {
27515 type Value = TeamFolderUpdateSyncSettingsError;
27516 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27517 f.write_str("a TeamFolderUpdateSyncSettingsError structure")
27518 }
27519 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27520 let tag: &str = match map.next_key()? {
27521 Some(".tag") => map.next_value()?,
27522 _ => return Err(de::Error::missing_field(".tag"))
27523 };
27524 let value = match tag {
27525 "access_error" => {
27526 match map.next_key()? {
27527 Some("access_error") => TeamFolderUpdateSyncSettingsError::AccessError(map.next_value()?),
27528 None => return Err(de::Error::missing_field("access_error")),
27529 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27530 }
27531 }
27532 "status_error" => {
27533 match map.next_key()? {
27534 Some("status_error") => TeamFolderUpdateSyncSettingsError::StatusError(map.next_value()?),
27535 None => return Err(de::Error::missing_field("status_error")),
27536 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27537 }
27538 }
27539 "team_shared_dropbox_error" => {
27540 match map.next_key()? {
27541 Some("team_shared_dropbox_error") => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(map.next_value()?),
27542 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
27543 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27544 }
27545 }
27546 "sync_settings_error" => {
27547 match map.next_key()? {
27548 Some("sync_settings_error") => TeamFolderUpdateSyncSettingsError::SyncSettingsError(map.next_value()?),
27549 None => return Err(de::Error::missing_field("sync_settings_error")),
27550 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
27551 }
27552 }
27553 _ => TeamFolderUpdateSyncSettingsError::Other,
27554 };
27555 crate::eat_json_fields(&mut map)?;
27556 Ok(value)
27557 }
27558 }
27559 const VARIANTS: &[&str] = &["access_error",
27560 "status_error",
27561 "team_shared_dropbox_error",
27562 "other",
27563 "sync_settings_error"];
27564 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsError", VARIANTS, EnumVisitor)
27565 }
27566}
27567
27568impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsError {
27569 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27570 use serde::ser::SerializeStruct;
27572 match self {
27573 TeamFolderUpdateSyncSettingsError::AccessError(x) => {
27574 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27576 s.serialize_field(".tag", "access_error")?;
27577 s.serialize_field("access_error", x)?;
27578 s.end()
27579 }
27580 TeamFolderUpdateSyncSettingsError::StatusError(x) => {
27581 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27583 s.serialize_field(".tag", "status_error")?;
27584 s.serialize_field("status_error", x)?;
27585 s.end()
27586 }
27587 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x) => {
27588 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27590 s.serialize_field(".tag", "team_shared_dropbox_error")?;
27591 s.serialize_field("team_shared_dropbox_error", x)?;
27592 s.end()
27593 }
27594 TeamFolderUpdateSyncSettingsError::SyncSettingsError(x) => {
27595 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
27597 s.serialize_field(".tag", "sync_settings_error")?;
27598 s.serialize_field("sync_settings_error", x)?;
27599 s.end()
27600 }
27601 TeamFolderUpdateSyncSettingsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
27602 }
27603 }
27604}
27605
27606impl ::std::error::Error for TeamFolderUpdateSyncSettingsError {
27607 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
27608 match self {
27609 TeamFolderUpdateSyncSettingsError::AccessError(inner) => Some(inner),
27610 TeamFolderUpdateSyncSettingsError::StatusError(inner) => Some(inner),
27611 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => Some(inner),
27612 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => Some(inner),
27613 _ => None,
27614 }
27615 }
27616}
27617
27618impl ::std::fmt::Display for TeamFolderUpdateSyncSettingsError {
27619 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27620 match self {
27621 TeamFolderUpdateSyncSettingsError::AccessError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
27622 TeamFolderUpdateSyncSettingsError::StatusError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
27623 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
27624 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
27625 _ => write!(f, "{:?}", *self),
27626 }
27627 }
27628}
27629
27630impl From<BaseTeamFolderError> for TeamFolderUpdateSyncSettingsError {
27632 fn from(parent: BaseTeamFolderError) -> Self {
27633 match parent {
27634 BaseTeamFolderError::AccessError(x) => TeamFolderUpdateSyncSettingsError::AccessError(x),
27635 BaseTeamFolderError::StatusError(x) => TeamFolderUpdateSyncSettingsError::StatusError(x),
27636 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x),
27637 BaseTeamFolderError::Other => TeamFolderUpdateSyncSettingsError::Other,
27638 }
27639 }
27640}
27641#[derive(Debug, Clone, PartialEq, Eq)]
27642#[non_exhaustive] pub struct TeamGetInfoResult {
27644 pub name: String,
27646 pub team_id: String,
27648 pub num_licensed_users: u32,
27650 pub num_provisioned_users: u32,
27652 pub policies: crate::types::team_policies::TeamMemberPolicies,
27653 pub num_used_licenses: u32,
27655}
27656
27657impl TeamGetInfoResult {
27658 pub fn new(
27659 name: String,
27660 team_id: String,
27661 num_licensed_users: u32,
27662 num_provisioned_users: u32,
27663 policies: crate::types::team_policies::TeamMemberPolicies,
27664 ) -> Self {
27665 TeamGetInfoResult {
27666 name,
27667 team_id,
27668 num_licensed_users,
27669 num_provisioned_users,
27670 policies,
27671 num_used_licenses: 0,
27672 }
27673 }
27674
27675 pub fn with_num_used_licenses(mut self, value: u32) -> Self {
27676 self.num_used_licenses = value;
27677 self
27678 }
27679}
27680
27681const TEAM_GET_INFO_RESULT_FIELDS: &[&str] = &["name",
27682 "team_id",
27683 "num_licensed_users",
27684 "num_provisioned_users",
27685 "policies",
27686 "num_used_licenses"];
27687impl TeamGetInfoResult {
27688 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27689 map: V,
27690 ) -> Result<TeamGetInfoResult, V::Error> {
27691 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27692 }
27693
27694 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27695 mut map: V,
27696 optional: bool,
27697 ) -> Result<Option<TeamGetInfoResult>, V::Error> {
27698 let mut field_name = None;
27699 let mut field_team_id = None;
27700 let mut field_num_licensed_users = None;
27701 let mut field_num_provisioned_users = None;
27702 let mut field_policies = None;
27703 let mut field_num_used_licenses = None;
27704 let mut nothing = true;
27705 while let Some(key) = map.next_key::<&str>()? {
27706 nothing = false;
27707 match key {
27708 "name" => {
27709 if field_name.is_some() {
27710 return Err(::serde::de::Error::duplicate_field("name"));
27711 }
27712 field_name = Some(map.next_value()?);
27713 }
27714 "team_id" => {
27715 if field_team_id.is_some() {
27716 return Err(::serde::de::Error::duplicate_field("team_id"));
27717 }
27718 field_team_id = Some(map.next_value()?);
27719 }
27720 "num_licensed_users" => {
27721 if field_num_licensed_users.is_some() {
27722 return Err(::serde::de::Error::duplicate_field("num_licensed_users"));
27723 }
27724 field_num_licensed_users = Some(map.next_value()?);
27725 }
27726 "num_provisioned_users" => {
27727 if field_num_provisioned_users.is_some() {
27728 return Err(::serde::de::Error::duplicate_field("num_provisioned_users"));
27729 }
27730 field_num_provisioned_users = Some(map.next_value()?);
27731 }
27732 "policies" => {
27733 if field_policies.is_some() {
27734 return Err(::serde::de::Error::duplicate_field("policies"));
27735 }
27736 field_policies = Some(map.next_value()?);
27737 }
27738 "num_used_licenses" => {
27739 if field_num_used_licenses.is_some() {
27740 return Err(::serde::de::Error::duplicate_field("num_used_licenses"));
27741 }
27742 field_num_used_licenses = Some(map.next_value()?);
27743 }
27744 _ => {
27745 map.next_value::<::serde_json::Value>()?;
27747 }
27748 }
27749 }
27750 if optional && nothing {
27751 return Ok(None);
27752 }
27753 let result = TeamGetInfoResult {
27754 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
27755 team_id: field_team_id.ok_or_else(|| ::serde::de::Error::missing_field("team_id"))?,
27756 num_licensed_users: field_num_licensed_users.ok_or_else(|| ::serde::de::Error::missing_field("num_licensed_users"))?,
27757 num_provisioned_users: field_num_provisioned_users.ok_or_else(|| ::serde::de::Error::missing_field("num_provisioned_users"))?,
27758 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
27759 num_used_licenses: field_num_used_licenses.unwrap_or(0),
27760 };
27761 Ok(Some(result))
27762 }
27763
27764 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27765 &self,
27766 s: &mut S::SerializeStruct,
27767 ) -> Result<(), S::Error> {
27768 use serde::ser::SerializeStruct;
27769 s.serialize_field("name", &self.name)?;
27770 s.serialize_field("team_id", &self.team_id)?;
27771 s.serialize_field("num_licensed_users", &self.num_licensed_users)?;
27772 s.serialize_field("num_provisioned_users", &self.num_provisioned_users)?;
27773 s.serialize_field("policies", &self.policies)?;
27774 if self.num_used_licenses != 0 {
27775 s.serialize_field("num_used_licenses", &self.num_used_licenses)?;
27776 }
27777 Ok(())
27778 }
27779}
27780
27781impl<'de> ::serde::de::Deserialize<'de> for TeamGetInfoResult {
27782 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27783 use serde::de::{MapAccess, Visitor};
27785 struct StructVisitor;
27786 impl<'de> Visitor<'de> for StructVisitor {
27787 type Value = TeamGetInfoResult;
27788 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27789 f.write_str("a TeamGetInfoResult struct")
27790 }
27791 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27792 TeamGetInfoResult::internal_deserialize(map)
27793 }
27794 }
27795 deserializer.deserialize_struct("TeamGetInfoResult", TEAM_GET_INFO_RESULT_FIELDS, StructVisitor)
27796 }
27797}
27798
27799impl ::serde::ser::Serialize for TeamGetInfoResult {
27800 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27801 use serde::ser::SerializeStruct;
27803 let mut s = serializer.serialize_struct("TeamGetInfoResult", 6)?;
27804 self.internal_serialize::<S>(&mut s)?;
27805 s.end()
27806 }
27807}
27808
27809#[derive(Debug, Clone, PartialEq, Eq)]
27811#[non_exhaustive] pub struct TeamMemberInfo {
27813 pub profile: TeamMemberProfile,
27815 pub role: AdminTier,
27817}
27818
27819impl TeamMemberInfo {
27820 pub fn new(profile: TeamMemberProfile, role: AdminTier) -> Self {
27821 TeamMemberInfo {
27822 profile,
27823 role,
27824 }
27825 }
27826}
27827
27828const TEAM_MEMBER_INFO_FIELDS: &[&str] = &["profile",
27829 "role"];
27830impl TeamMemberInfo {
27831 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27832 map: V,
27833 ) -> Result<TeamMemberInfo, V::Error> {
27834 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27835 }
27836
27837 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27838 mut map: V,
27839 optional: bool,
27840 ) -> Result<Option<TeamMemberInfo>, V::Error> {
27841 let mut field_profile = None;
27842 let mut field_role = None;
27843 let mut nothing = true;
27844 while let Some(key) = map.next_key::<&str>()? {
27845 nothing = false;
27846 match key {
27847 "profile" => {
27848 if field_profile.is_some() {
27849 return Err(::serde::de::Error::duplicate_field("profile"));
27850 }
27851 field_profile = Some(map.next_value()?);
27852 }
27853 "role" => {
27854 if field_role.is_some() {
27855 return Err(::serde::de::Error::duplicate_field("role"));
27856 }
27857 field_role = Some(map.next_value()?);
27858 }
27859 _ => {
27860 map.next_value::<::serde_json::Value>()?;
27862 }
27863 }
27864 }
27865 if optional && nothing {
27866 return Ok(None);
27867 }
27868 let result = TeamMemberInfo {
27869 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
27870 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
27871 };
27872 Ok(Some(result))
27873 }
27874
27875 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27876 &self,
27877 s: &mut S::SerializeStruct,
27878 ) -> Result<(), S::Error> {
27879 use serde::ser::SerializeStruct;
27880 s.serialize_field("profile", &self.profile)?;
27881 s.serialize_field("role", &self.role)?;
27882 Ok(())
27883 }
27884}
27885
27886impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfo {
27887 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27888 use serde::de::{MapAccess, Visitor};
27890 struct StructVisitor;
27891 impl<'de> Visitor<'de> for StructVisitor {
27892 type Value = TeamMemberInfo;
27893 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27894 f.write_str("a TeamMemberInfo struct")
27895 }
27896 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27897 TeamMemberInfo::internal_deserialize(map)
27898 }
27899 }
27900 deserializer.deserialize_struct("TeamMemberInfo", TEAM_MEMBER_INFO_FIELDS, StructVisitor)
27901 }
27902}
27903
27904impl ::serde::ser::Serialize for TeamMemberInfo {
27905 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27906 use serde::ser::SerializeStruct;
27908 let mut s = serializer.serialize_struct("TeamMemberInfo", 2)?;
27909 self.internal_serialize::<S>(&mut s)?;
27910 s.end()
27911 }
27912}
27913
27914#[derive(Debug, Clone, PartialEq, Eq)]
27916#[non_exhaustive] pub struct TeamMemberInfoV2 {
27918 pub profile: TeamMemberProfile,
27920 pub roles: Option<Vec<TeamMemberRole>>,
27922}
27923
27924impl TeamMemberInfoV2 {
27925 pub fn new(profile: TeamMemberProfile) -> Self {
27926 TeamMemberInfoV2 {
27927 profile,
27928 roles: None,
27929 }
27930 }
27931
27932 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
27933 self.roles = Some(value);
27934 self
27935 }
27936}
27937
27938const TEAM_MEMBER_INFO_V2_FIELDS: &[&str] = &["profile",
27939 "roles"];
27940impl TeamMemberInfoV2 {
27941 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27942 map: V,
27943 ) -> Result<TeamMemberInfoV2, V::Error> {
27944 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27945 }
27946
27947 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27948 mut map: V,
27949 optional: bool,
27950 ) -> Result<Option<TeamMemberInfoV2>, V::Error> {
27951 let mut field_profile = None;
27952 let mut field_roles = None;
27953 let mut nothing = true;
27954 while let Some(key) = map.next_key::<&str>()? {
27955 nothing = false;
27956 match key {
27957 "profile" => {
27958 if field_profile.is_some() {
27959 return Err(::serde::de::Error::duplicate_field("profile"));
27960 }
27961 field_profile = Some(map.next_value()?);
27962 }
27963 "roles" => {
27964 if field_roles.is_some() {
27965 return Err(::serde::de::Error::duplicate_field("roles"));
27966 }
27967 field_roles = Some(map.next_value()?);
27968 }
27969 _ => {
27970 map.next_value::<::serde_json::Value>()?;
27972 }
27973 }
27974 }
27975 if optional && nothing {
27976 return Ok(None);
27977 }
27978 let result = TeamMemberInfoV2 {
27979 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
27980 roles: field_roles.and_then(Option::flatten),
27981 };
27982 Ok(Some(result))
27983 }
27984
27985 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27986 &self,
27987 s: &mut S::SerializeStruct,
27988 ) -> Result<(), S::Error> {
27989 use serde::ser::SerializeStruct;
27990 s.serialize_field("profile", &self.profile)?;
27991 if let Some(val) = &self.roles {
27992 s.serialize_field("roles", val)?;
27993 }
27994 Ok(())
27995 }
27996}
27997
27998impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2 {
27999 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28000 use serde::de::{MapAccess, Visitor};
28002 struct StructVisitor;
28003 impl<'de> Visitor<'de> for StructVisitor {
28004 type Value = TeamMemberInfoV2;
28005 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28006 f.write_str("a TeamMemberInfoV2 struct")
28007 }
28008 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28009 TeamMemberInfoV2::internal_deserialize(map)
28010 }
28011 }
28012 deserializer.deserialize_struct("TeamMemberInfoV2", TEAM_MEMBER_INFO_V2_FIELDS, StructVisitor)
28013 }
28014}
28015
28016impl ::serde::ser::Serialize for TeamMemberInfoV2 {
28017 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28018 use serde::ser::SerializeStruct;
28020 let mut s = serializer.serialize_struct("TeamMemberInfoV2", 2)?;
28021 self.internal_serialize::<S>(&mut s)?;
28022 s.end()
28023 }
28024}
28025
28026#[derive(Debug, Clone, PartialEq, Eq)]
28029#[non_exhaustive] pub struct TeamMemberInfoV2Result {
28031 pub member_info: TeamMemberInfoV2,
28033}
28034
28035impl TeamMemberInfoV2Result {
28036 pub fn new(member_info: TeamMemberInfoV2) -> Self {
28037 TeamMemberInfoV2Result {
28038 member_info,
28039 }
28040 }
28041}
28042
28043const TEAM_MEMBER_INFO_V2_RESULT_FIELDS: &[&str] = &["member_info"];
28044impl TeamMemberInfoV2Result {
28045 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28046 map: V,
28047 ) -> Result<TeamMemberInfoV2Result, V::Error> {
28048 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28049 }
28050
28051 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28052 mut map: V,
28053 optional: bool,
28054 ) -> Result<Option<TeamMemberInfoV2Result>, V::Error> {
28055 let mut field_member_info = None;
28056 let mut nothing = true;
28057 while let Some(key) = map.next_key::<&str>()? {
28058 nothing = false;
28059 match key {
28060 "member_info" => {
28061 if field_member_info.is_some() {
28062 return Err(::serde::de::Error::duplicate_field("member_info"));
28063 }
28064 field_member_info = Some(map.next_value()?);
28065 }
28066 _ => {
28067 map.next_value::<::serde_json::Value>()?;
28069 }
28070 }
28071 }
28072 if optional && nothing {
28073 return Ok(None);
28074 }
28075 let result = TeamMemberInfoV2Result {
28076 member_info: field_member_info.ok_or_else(|| ::serde::de::Error::missing_field("member_info"))?,
28077 };
28078 Ok(Some(result))
28079 }
28080
28081 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28082 &self,
28083 s: &mut S::SerializeStruct,
28084 ) -> Result<(), S::Error> {
28085 use serde::ser::SerializeStruct;
28086 s.serialize_field("member_info", &self.member_info)?;
28087 Ok(())
28088 }
28089}
28090
28091impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2Result {
28092 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28093 use serde::de::{MapAccess, Visitor};
28095 struct StructVisitor;
28096 impl<'de> Visitor<'de> for StructVisitor {
28097 type Value = TeamMemberInfoV2Result;
28098 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28099 f.write_str("a TeamMemberInfoV2Result struct")
28100 }
28101 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28102 TeamMemberInfoV2Result::internal_deserialize(map)
28103 }
28104 }
28105 deserializer.deserialize_struct("TeamMemberInfoV2Result", TEAM_MEMBER_INFO_V2_RESULT_FIELDS, StructVisitor)
28106 }
28107}
28108
28109impl ::serde::ser::Serialize for TeamMemberInfoV2Result {
28110 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28111 use serde::ser::SerializeStruct;
28113 let mut s = serializer.serialize_struct("TeamMemberInfoV2Result", 1)?;
28114 self.internal_serialize::<S>(&mut s)?;
28115 s.end()
28116 }
28117}
28118
28119#[derive(Debug, Clone, PartialEq, Eq)]
28121#[non_exhaustive] pub struct TeamMemberProfile {
28123 pub team_member_id: crate::types::team_common::TeamMemberId,
28125 pub email: String,
28127 pub email_verified: bool,
28129 pub status: TeamMemberStatus,
28131 pub name: crate::types::users::Name,
28133 pub membership_type: TeamMembershipType,
28136 pub groups: Vec<crate::types::team_common::GroupId>,
28138 pub member_folder_id: crate::types::common::NamespaceId,
28140 pub root_folder_id: crate::types::common::NamespaceId,
28142 pub external_id: Option<String>,
28145 pub account_id: Option<crate::types::users_common::AccountId>,
28147 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
28149 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
28152 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
28154 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
28157 pub persistent_id: Option<String>,
28160 pub is_directory_restricted: Option<bool>,
28162 pub profile_photo_url: Option<String>,
28164}
28165
28166impl TeamMemberProfile {
28167 pub fn new(
28168 team_member_id: crate::types::team_common::TeamMemberId,
28169 email: String,
28170 email_verified: bool,
28171 status: TeamMemberStatus,
28172 name: crate::types::users::Name,
28173 membership_type: TeamMembershipType,
28174 groups: Vec<crate::types::team_common::GroupId>,
28175 member_folder_id: crate::types::common::NamespaceId,
28176 root_folder_id: crate::types::common::NamespaceId,
28177 ) -> Self {
28178 TeamMemberProfile {
28179 team_member_id,
28180 email,
28181 email_verified,
28182 status,
28183 name,
28184 membership_type,
28185 groups,
28186 member_folder_id,
28187 root_folder_id,
28188 external_id: None,
28189 account_id: None,
28190 secondary_emails: None,
28191 invited_on: None,
28192 joined_on: None,
28193 suspended_on: None,
28194 persistent_id: None,
28195 is_directory_restricted: None,
28196 profile_photo_url: None,
28197 }
28198 }
28199
28200 pub fn with_external_id(mut self, value: String) -> Self {
28201 self.external_id = Some(value);
28202 self
28203 }
28204
28205 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
28206 self.account_id = Some(value);
28207 self
28208 }
28209
28210 pub fn with_secondary_emails(
28211 mut self,
28212 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
28213 ) -> Self {
28214 self.secondary_emails = Some(value);
28215 self
28216 }
28217
28218 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
28219 self.invited_on = Some(value);
28220 self
28221 }
28222
28223 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
28224 self.joined_on = Some(value);
28225 self
28226 }
28227
28228 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
28229 self.suspended_on = Some(value);
28230 self
28231 }
28232
28233 pub fn with_persistent_id(mut self, value: String) -> Self {
28234 self.persistent_id = Some(value);
28235 self
28236 }
28237
28238 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
28239 self.is_directory_restricted = Some(value);
28240 self
28241 }
28242
28243 pub fn with_profile_photo_url(mut self, value: String) -> Self {
28244 self.profile_photo_url = Some(value);
28245 self
28246 }
28247}
28248
28249const TEAM_MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
28250 "email",
28251 "email_verified",
28252 "status",
28253 "name",
28254 "membership_type",
28255 "groups",
28256 "member_folder_id",
28257 "root_folder_id",
28258 "external_id",
28259 "account_id",
28260 "secondary_emails",
28261 "invited_on",
28262 "joined_on",
28263 "suspended_on",
28264 "persistent_id",
28265 "is_directory_restricted",
28266 "profile_photo_url"];
28267impl TeamMemberProfile {
28268 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28269 map: V,
28270 ) -> Result<TeamMemberProfile, V::Error> {
28271 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28272 }
28273
28274 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28275 mut map: V,
28276 optional: bool,
28277 ) -> Result<Option<TeamMemberProfile>, V::Error> {
28278 let mut field_team_member_id = None;
28279 let mut field_email = None;
28280 let mut field_email_verified = None;
28281 let mut field_status = None;
28282 let mut field_name = None;
28283 let mut field_membership_type = None;
28284 let mut field_groups = None;
28285 let mut field_member_folder_id = None;
28286 let mut field_root_folder_id = None;
28287 let mut field_external_id = None;
28288 let mut field_account_id = None;
28289 let mut field_secondary_emails = None;
28290 let mut field_invited_on = None;
28291 let mut field_joined_on = None;
28292 let mut field_suspended_on = None;
28293 let mut field_persistent_id = None;
28294 let mut field_is_directory_restricted = None;
28295 let mut field_profile_photo_url = None;
28296 let mut nothing = true;
28297 while let Some(key) = map.next_key::<&str>()? {
28298 nothing = false;
28299 match key {
28300 "team_member_id" => {
28301 if field_team_member_id.is_some() {
28302 return Err(::serde::de::Error::duplicate_field("team_member_id"));
28303 }
28304 field_team_member_id = Some(map.next_value()?);
28305 }
28306 "email" => {
28307 if field_email.is_some() {
28308 return Err(::serde::de::Error::duplicate_field("email"));
28309 }
28310 field_email = Some(map.next_value()?);
28311 }
28312 "email_verified" => {
28313 if field_email_verified.is_some() {
28314 return Err(::serde::de::Error::duplicate_field("email_verified"));
28315 }
28316 field_email_verified = Some(map.next_value()?);
28317 }
28318 "status" => {
28319 if field_status.is_some() {
28320 return Err(::serde::de::Error::duplicate_field("status"));
28321 }
28322 field_status = Some(map.next_value()?);
28323 }
28324 "name" => {
28325 if field_name.is_some() {
28326 return Err(::serde::de::Error::duplicate_field("name"));
28327 }
28328 field_name = Some(map.next_value()?);
28329 }
28330 "membership_type" => {
28331 if field_membership_type.is_some() {
28332 return Err(::serde::de::Error::duplicate_field("membership_type"));
28333 }
28334 field_membership_type = Some(map.next_value()?);
28335 }
28336 "groups" => {
28337 if field_groups.is_some() {
28338 return Err(::serde::de::Error::duplicate_field("groups"));
28339 }
28340 field_groups = Some(map.next_value()?);
28341 }
28342 "member_folder_id" => {
28343 if field_member_folder_id.is_some() {
28344 return Err(::serde::de::Error::duplicate_field("member_folder_id"));
28345 }
28346 field_member_folder_id = Some(map.next_value()?);
28347 }
28348 "root_folder_id" => {
28349 if field_root_folder_id.is_some() {
28350 return Err(::serde::de::Error::duplicate_field("root_folder_id"));
28351 }
28352 field_root_folder_id = Some(map.next_value()?);
28353 }
28354 "external_id" => {
28355 if field_external_id.is_some() {
28356 return Err(::serde::de::Error::duplicate_field("external_id"));
28357 }
28358 field_external_id = Some(map.next_value()?);
28359 }
28360 "account_id" => {
28361 if field_account_id.is_some() {
28362 return Err(::serde::de::Error::duplicate_field("account_id"));
28363 }
28364 field_account_id = Some(map.next_value()?);
28365 }
28366 "secondary_emails" => {
28367 if field_secondary_emails.is_some() {
28368 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
28369 }
28370 field_secondary_emails = Some(map.next_value()?);
28371 }
28372 "invited_on" => {
28373 if field_invited_on.is_some() {
28374 return Err(::serde::de::Error::duplicate_field("invited_on"));
28375 }
28376 field_invited_on = Some(map.next_value()?);
28377 }
28378 "joined_on" => {
28379 if field_joined_on.is_some() {
28380 return Err(::serde::de::Error::duplicate_field("joined_on"));
28381 }
28382 field_joined_on = Some(map.next_value()?);
28383 }
28384 "suspended_on" => {
28385 if field_suspended_on.is_some() {
28386 return Err(::serde::de::Error::duplicate_field("suspended_on"));
28387 }
28388 field_suspended_on = Some(map.next_value()?);
28389 }
28390 "persistent_id" => {
28391 if field_persistent_id.is_some() {
28392 return Err(::serde::de::Error::duplicate_field("persistent_id"));
28393 }
28394 field_persistent_id = Some(map.next_value()?);
28395 }
28396 "is_directory_restricted" => {
28397 if field_is_directory_restricted.is_some() {
28398 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
28399 }
28400 field_is_directory_restricted = Some(map.next_value()?);
28401 }
28402 "profile_photo_url" => {
28403 if field_profile_photo_url.is_some() {
28404 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
28405 }
28406 field_profile_photo_url = Some(map.next_value()?);
28407 }
28408 _ => {
28409 map.next_value::<::serde_json::Value>()?;
28411 }
28412 }
28413 }
28414 if optional && nothing {
28415 return Ok(None);
28416 }
28417 let result = TeamMemberProfile {
28418 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
28419 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
28420 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
28421 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
28422 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
28423 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
28424 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
28425 member_folder_id: field_member_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("member_folder_id"))?,
28426 root_folder_id: field_root_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("root_folder_id"))?,
28427 external_id: field_external_id.and_then(Option::flatten),
28428 account_id: field_account_id.and_then(Option::flatten),
28429 secondary_emails: field_secondary_emails.and_then(Option::flatten),
28430 invited_on: field_invited_on.and_then(Option::flatten),
28431 joined_on: field_joined_on.and_then(Option::flatten),
28432 suspended_on: field_suspended_on.and_then(Option::flatten),
28433 persistent_id: field_persistent_id.and_then(Option::flatten),
28434 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
28435 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
28436 };
28437 Ok(Some(result))
28438 }
28439
28440 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28441 &self,
28442 s: &mut S::SerializeStruct,
28443 ) -> Result<(), S::Error> {
28444 use serde::ser::SerializeStruct;
28445 s.serialize_field("team_member_id", &self.team_member_id)?;
28446 s.serialize_field("email", &self.email)?;
28447 s.serialize_field("email_verified", &self.email_verified)?;
28448 s.serialize_field("status", &self.status)?;
28449 s.serialize_field("name", &self.name)?;
28450 s.serialize_field("membership_type", &self.membership_type)?;
28451 s.serialize_field("groups", &self.groups)?;
28452 s.serialize_field("member_folder_id", &self.member_folder_id)?;
28453 s.serialize_field("root_folder_id", &self.root_folder_id)?;
28454 if let Some(val) = &self.external_id {
28455 s.serialize_field("external_id", val)?;
28456 }
28457 if let Some(val) = &self.account_id {
28458 s.serialize_field("account_id", val)?;
28459 }
28460 if let Some(val) = &self.secondary_emails {
28461 s.serialize_field("secondary_emails", val)?;
28462 }
28463 if let Some(val) = &self.invited_on {
28464 s.serialize_field("invited_on", val)?;
28465 }
28466 if let Some(val) = &self.joined_on {
28467 s.serialize_field("joined_on", val)?;
28468 }
28469 if let Some(val) = &self.suspended_on {
28470 s.serialize_field("suspended_on", val)?;
28471 }
28472 if let Some(val) = &self.persistent_id {
28473 s.serialize_field("persistent_id", val)?;
28474 }
28475 if let Some(val) = &self.is_directory_restricted {
28476 s.serialize_field("is_directory_restricted", val)?;
28477 }
28478 if let Some(val) = &self.profile_photo_url {
28479 s.serialize_field("profile_photo_url", val)?;
28480 }
28481 Ok(())
28482 }
28483}
28484
28485impl<'de> ::serde::de::Deserialize<'de> for TeamMemberProfile {
28486 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28487 use serde::de::{MapAccess, Visitor};
28489 struct StructVisitor;
28490 impl<'de> Visitor<'de> for StructVisitor {
28491 type Value = TeamMemberProfile;
28492 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28493 f.write_str("a TeamMemberProfile struct")
28494 }
28495 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28496 TeamMemberProfile::internal_deserialize(map)
28497 }
28498 }
28499 deserializer.deserialize_struct("TeamMemberProfile", TEAM_MEMBER_PROFILE_FIELDS, StructVisitor)
28500 }
28501}
28502
28503impl ::serde::ser::Serialize for TeamMemberProfile {
28504 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28505 use serde::ser::SerializeStruct;
28507 let mut s = serializer.serialize_struct("TeamMemberProfile", 18)?;
28508 self.internal_serialize::<S>(&mut s)?;
28509 s.end()
28510 }
28511}
28512
28513impl From<TeamMemberProfile> for MemberProfile {
28515 fn from(subtype: TeamMemberProfile) -> Self {
28516 Self {
28517 team_member_id: subtype.team_member_id,
28518 email: subtype.email,
28519 email_verified: subtype.email_verified,
28520 status: subtype.status,
28521 name: subtype.name,
28522 membership_type: subtype.membership_type,
28523 external_id: subtype.external_id,
28524 account_id: subtype.account_id,
28525 secondary_emails: subtype.secondary_emails,
28526 invited_on: subtype.invited_on,
28527 joined_on: subtype.joined_on,
28528 suspended_on: subtype.suspended_on,
28529 persistent_id: subtype.persistent_id,
28530 is_directory_restricted: subtype.is_directory_restricted,
28531 profile_photo_url: subtype.profile_photo_url,
28532 }
28533 }
28534}
28535#[derive(Debug, Clone, PartialEq, Eq)]
28538#[non_exhaustive] pub struct TeamMemberRole {
28540 pub role_id: TeamMemberRoleId,
28543 pub name: String,
28545 pub description: String,
28547}
28548
28549impl TeamMemberRole {
28550 pub fn new(role_id: TeamMemberRoleId, name: String, description: String) -> Self {
28551 TeamMemberRole {
28552 role_id,
28553 name,
28554 description,
28555 }
28556 }
28557}
28558
28559const TEAM_MEMBER_ROLE_FIELDS: &[&str] = &["role_id",
28560 "name",
28561 "description"];
28562impl TeamMemberRole {
28563 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28564 map: V,
28565 ) -> Result<TeamMemberRole, V::Error> {
28566 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28567 }
28568
28569 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28570 mut map: V,
28571 optional: bool,
28572 ) -> Result<Option<TeamMemberRole>, V::Error> {
28573 let mut field_role_id = None;
28574 let mut field_name = None;
28575 let mut field_description = None;
28576 let mut nothing = true;
28577 while let Some(key) = map.next_key::<&str>()? {
28578 nothing = false;
28579 match key {
28580 "role_id" => {
28581 if field_role_id.is_some() {
28582 return Err(::serde::de::Error::duplicate_field("role_id"));
28583 }
28584 field_role_id = Some(map.next_value()?);
28585 }
28586 "name" => {
28587 if field_name.is_some() {
28588 return Err(::serde::de::Error::duplicate_field("name"));
28589 }
28590 field_name = Some(map.next_value()?);
28591 }
28592 "description" => {
28593 if field_description.is_some() {
28594 return Err(::serde::de::Error::duplicate_field("description"));
28595 }
28596 field_description = Some(map.next_value()?);
28597 }
28598 _ => {
28599 map.next_value::<::serde_json::Value>()?;
28601 }
28602 }
28603 }
28604 if optional && nothing {
28605 return Ok(None);
28606 }
28607 let result = TeamMemberRole {
28608 role_id: field_role_id.ok_or_else(|| ::serde::de::Error::missing_field("role_id"))?,
28609 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
28610 description: field_description.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
28611 };
28612 Ok(Some(result))
28613 }
28614
28615 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28616 &self,
28617 s: &mut S::SerializeStruct,
28618 ) -> Result<(), S::Error> {
28619 use serde::ser::SerializeStruct;
28620 s.serialize_field("role_id", &self.role_id)?;
28621 s.serialize_field("name", &self.name)?;
28622 s.serialize_field("description", &self.description)?;
28623 Ok(())
28624 }
28625}
28626
28627impl<'de> ::serde::de::Deserialize<'de> for TeamMemberRole {
28628 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28629 use serde::de::{MapAccess, Visitor};
28631 struct StructVisitor;
28632 impl<'de> Visitor<'de> for StructVisitor {
28633 type Value = TeamMemberRole;
28634 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28635 f.write_str("a TeamMemberRole struct")
28636 }
28637 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28638 TeamMemberRole::internal_deserialize(map)
28639 }
28640 }
28641 deserializer.deserialize_struct("TeamMemberRole", TEAM_MEMBER_ROLE_FIELDS, StructVisitor)
28642 }
28643}
28644
28645impl ::serde::ser::Serialize for TeamMemberRole {
28646 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28647 use serde::ser::SerializeStruct;
28649 let mut s = serializer.serialize_struct("TeamMemberRole", 3)?;
28650 self.internal_serialize::<S>(&mut s)?;
28651 s.end()
28652 }
28653}
28654
28655#[derive(Debug, Clone, PartialEq, Eq)]
28657pub enum TeamMemberStatus {
28658 Active,
28660 Invited,
28662 Suspended,
28665 Removed(RemovedStatus),
28668}
28669
28670impl<'de> ::serde::de::Deserialize<'de> for TeamMemberStatus {
28671 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28672 use serde::de::{self, MapAccess, Visitor};
28674 struct EnumVisitor;
28675 impl<'de> Visitor<'de> for EnumVisitor {
28676 type Value = TeamMemberStatus;
28677 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28678 f.write_str("a TeamMemberStatus structure")
28679 }
28680 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28681 let tag: &str = match map.next_key()? {
28682 Some(".tag") => map.next_value()?,
28683 _ => return Err(de::Error::missing_field(".tag"))
28684 };
28685 let value = match tag {
28686 "active" => TeamMemberStatus::Active,
28687 "invited" => TeamMemberStatus::Invited,
28688 "suspended" => TeamMemberStatus::Suspended,
28689 "removed" => TeamMemberStatus::Removed(RemovedStatus::internal_deserialize(&mut map)?),
28690 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
28691 };
28692 crate::eat_json_fields(&mut map)?;
28693 Ok(value)
28694 }
28695 }
28696 const VARIANTS: &[&str] = &["active",
28697 "invited",
28698 "suspended",
28699 "removed"];
28700 deserializer.deserialize_struct("TeamMemberStatus", VARIANTS, EnumVisitor)
28701 }
28702}
28703
28704impl ::serde::ser::Serialize for TeamMemberStatus {
28705 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28706 use serde::ser::SerializeStruct;
28708 match self {
28709 TeamMemberStatus::Active => {
28710 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
28712 s.serialize_field(".tag", "active")?;
28713 s.end()
28714 }
28715 TeamMemberStatus::Invited => {
28716 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
28718 s.serialize_field(".tag", "invited")?;
28719 s.end()
28720 }
28721 TeamMemberStatus::Suspended => {
28722 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
28724 s.serialize_field(".tag", "suspended")?;
28725 s.end()
28726 }
28727 TeamMemberStatus::Removed(x) => {
28728 let mut s = serializer.serialize_struct("TeamMemberStatus", 3)?;
28730 s.serialize_field(".tag", "removed")?;
28731 x.internal_serialize::<S>(&mut s)?;
28732 s.end()
28733 }
28734 }
28735 }
28736}
28737
28738#[derive(Debug, Clone, PartialEq, Eq)]
28739pub enum TeamMembershipType {
28740 Full,
28742 Limited,
28745}
28746
28747impl<'de> ::serde::de::Deserialize<'de> for TeamMembershipType {
28748 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28749 use serde::de::{self, MapAccess, Visitor};
28751 struct EnumVisitor;
28752 impl<'de> Visitor<'de> for EnumVisitor {
28753 type Value = TeamMembershipType;
28754 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28755 f.write_str("a TeamMembershipType structure")
28756 }
28757 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28758 let tag: &str = match map.next_key()? {
28759 Some(".tag") => map.next_value()?,
28760 _ => return Err(de::Error::missing_field(".tag"))
28761 };
28762 let value = match tag {
28763 "full" => TeamMembershipType::Full,
28764 "limited" => TeamMembershipType::Limited,
28765 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
28766 };
28767 crate::eat_json_fields(&mut map)?;
28768 Ok(value)
28769 }
28770 }
28771 const VARIANTS: &[&str] = &["full",
28772 "limited"];
28773 deserializer.deserialize_struct("TeamMembershipType", VARIANTS, EnumVisitor)
28774 }
28775}
28776
28777impl ::serde::ser::Serialize for TeamMembershipType {
28778 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28779 use serde::ser::SerializeStruct;
28781 match self {
28782 TeamMembershipType::Full => {
28783 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
28785 s.serialize_field(".tag", "full")?;
28786 s.end()
28787 }
28788 TeamMembershipType::Limited => {
28789 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
28791 s.serialize_field(".tag", "limited")?;
28792 s.end()
28793 }
28794 }
28795 }
28796}
28797
28798#[derive(Debug, Clone, PartialEq, Eq)]
28799#[non_exhaustive] pub struct TeamNamespacesListArg {
28801 pub limit: u32,
28803}
28804
28805impl Default for TeamNamespacesListArg {
28806 fn default() -> Self {
28807 TeamNamespacesListArg {
28808 limit: 1000,
28809 }
28810 }
28811}
28812
28813impl TeamNamespacesListArg {
28814 pub fn with_limit(mut self, value: u32) -> Self {
28815 self.limit = value;
28816 self
28817 }
28818}
28819
28820const TEAM_NAMESPACES_LIST_ARG_FIELDS: &[&str] = &["limit"];
28821impl TeamNamespacesListArg {
28822 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28824 mut map: V,
28825 ) -> Result<TeamNamespacesListArg, V::Error> {
28826 let mut field_limit = None;
28827 while let Some(key) = map.next_key::<&str>()? {
28828 match key {
28829 "limit" => {
28830 if field_limit.is_some() {
28831 return Err(::serde::de::Error::duplicate_field("limit"));
28832 }
28833 field_limit = Some(map.next_value()?);
28834 }
28835 _ => {
28836 map.next_value::<::serde_json::Value>()?;
28838 }
28839 }
28840 }
28841 let result = TeamNamespacesListArg {
28842 limit: field_limit.unwrap_or(1000),
28843 };
28844 Ok(result)
28845 }
28846
28847 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28848 &self,
28849 s: &mut S::SerializeStruct,
28850 ) -> Result<(), S::Error> {
28851 use serde::ser::SerializeStruct;
28852 if self.limit != 1000 {
28853 s.serialize_field("limit", &self.limit)?;
28854 }
28855 Ok(())
28856 }
28857}
28858
28859impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListArg {
28860 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28861 use serde::de::{MapAccess, Visitor};
28863 struct StructVisitor;
28864 impl<'de> Visitor<'de> for StructVisitor {
28865 type Value = TeamNamespacesListArg;
28866 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28867 f.write_str("a TeamNamespacesListArg struct")
28868 }
28869 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28870 TeamNamespacesListArg::internal_deserialize(map)
28871 }
28872 }
28873 deserializer.deserialize_struct("TeamNamespacesListArg", TEAM_NAMESPACES_LIST_ARG_FIELDS, StructVisitor)
28874 }
28875}
28876
28877impl ::serde::ser::Serialize for TeamNamespacesListArg {
28878 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28879 use serde::ser::SerializeStruct;
28881 let mut s = serializer.serialize_struct("TeamNamespacesListArg", 1)?;
28882 self.internal_serialize::<S>(&mut s)?;
28883 s.end()
28884 }
28885}
28886
28887#[derive(Debug, Clone, PartialEq, Eq)]
28888#[non_exhaustive] pub struct TeamNamespacesListContinueArg {
28890 pub cursor: String,
28892}
28893
28894impl TeamNamespacesListContinueArg {
28895 pub fn new(cursor: String) -> Self {
28896 TeamNamespacesListContinueArg {
28897 cursor,
28898 }
28899 }
28900}
28901
28902const TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
28903impl TeamNamespacesListContinueArg {
28904 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28905 map: V,
28906 ) -> Result<TeamNamespacesListContinueArg, V::Error> {
28907 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28908 }
28909
28910 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28911 mut map: V,
28912 optional: bool,
28913 ) -> Result<Option<TeamNamespacesListContinueArg>, V::Error> {
28914 let mut field_cursor = None;
28915 let mut nothing = true;
28916 while let Some(key) = map.next_key::<&str>()? {
28917 nothing = false;
28918 match key {
28919 "cursor" => {
28920 if field_cursor.is_some() {
28921 return Err(::serde::de::Error::duplicate_field("cursor"));
28922 }
28923 field_cursor = Some(map.next_value()?);
28924 }
28925 _ => {
28926 map.next_value::<::serde_json::Value>()?;
28928 }
28929 }
28930 }
28931 if optional && nothing {
28932 return Ok(None);
28933 }
28934 let result = TeamNamespacesListContinueArg {
28935 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
28936 };
28937 Ok(Some(result))
28938 }
28939
28940 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28941 &self,
28942 s: &mut S::SerializeStruct,
28943 ) -> Result<(), S::Error> {
28944 use serde::ser::SerializeStruct;
28945 s.serialize_field("cursor", &self.cursor)?;
28946 Ok(())
28947 }
28948}
28949
28950impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueArg {
28951 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28952 use serde::de::{MapAccess, Visitor};
28954 struct StructVisitor;
28955 impl<'de> Visitor<'de> for StructVisitor {
28956 type Value = TeamNamespacesListContinueArg;
28957 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28958 f.write_str("a TeamNamespacesListContinueArg struct")
28959 }
28960 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28961 TeamNamespacesListContinueArg::internal_deserialize(map)
28962 }
28963 }
28964 deserializer.deserialize_struct("TeamNamespacesListContinueArg", TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
28965 }
28966}
28967
28968impl ::serde::ser::Serialize for TeamNamespacesListContinueArg {
28969 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28970 use serde::ser::SerializeStruct;
28972 let mut s = serializer.serialize_struct("TeamNamespacesListContinueArg", 1)?;
28973 self.internal_serialize::<S>(&mut s)?;
28974 s.end()
28975 }
28976}
28977
28978#[derive(Debug, Clone, PartialEq, Eq)]
28979#[non_exhaustive] pub enum TeamNamespacesListContinueError {
28981 InvalidArg,
28983 InvalidCursor,
28985 Other,
28988}
28989
28990impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueError {
28991 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28992 use serde::de::{self, MapAccess, Visitor};
28994 struct EnumVisitor;
28995 impl<'de> Visitor<'de> for EnumVisitor {
28996 type Value = TeamNamespacesListContinueError;
28997 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28998 f.write_str("a TeamNamespacesListContinueError structure")
28999 }
29000 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29001 let tag: &str = match map.next_key()? {
29002 Some(".tag") => map.next_value()?,
29003 _ => return Err(de::Error::missing_field(".tag"))
29004 };
29005 let value = match tag {
29006 "invalid_arg" => TeamNamespacesListContinueError::InvalidArg,
29007 "invalid_cursor" => TeamNamespacesListContinueError::InvalidCursor,
29008 _ => TeamNamespacesListContinueError::Other,
29009 };
29010 crate::eat_json_fields(&mut map)?;
29011 Ok(value)
29012 }
29013 }
29014 const VARIANTS: &[&str] = &["invalid_arg",
29015 "other",
29016 "invalid_cursor"];
29017 deserializer.deserialize_struct("TeamNamespacesListContinueError", VARIANTS, EnumVisitor)
29018 }
29019}
29020
29021impl ::serde::ser::Serialize for TeamNamespacesListContinueError {
29022 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29023 use serde::ser::SerializeStruct;
29025 match self {
29026 TeamNamespacesListContinueError::InvalidArg => {
29027 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
29029 s.serialize_field(".tag", "invalid_arg")?;
29030 s.end()
29031 }
29032 TeamNamespacesListContinueError::InvalidCursor => {
29033 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
29035 s.serialize_field(".tag", "invalid_cursor")?;
29036 s.end()
29037 }
29038 TeamNamespacesListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29039 }
29040 }
29041}
29042
29043impl ::std::error::Error for TeamNamespacesListContinueError {
29044}
29045
29046impl ::std::fmt::Display for TeamNamespacesListContinueError {
29047 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29048 match self {
29049 TeamNamespacesListContinueError::InvalidArg => f.write_str("Argument passed in is invalid."),
29050 TeamNamespacesListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
29051 _ => write!(f, "{:?}", *self),
29052 }
29053 }
29054}
29055
29056impl From<TeamNamespacesListError> for TeamNamespacesListContinueError {
29058 fn from(parent: TeamNamespacesListError) -> Self {
29059 match parent {
29060 TeamNamespacesListError::InvalidArg => TeamNamespacesListContinueError::InvalidArg,
29061 TeamNamespacesListError::Other => TeamNamespacesListContinueError::Other,
29062 }
29063 }
29064}
29065#[derive(Debug, Clone, PartialEq, Eq)]
29066#[non_exhaustive] pub enum TeamNamespacesListError {
29068 InvalidArg,
29070 Other,
29073}
29074
29075impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListError {
29076 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29077 use serde::de::{self, MapAccess, Visitor};
29079 struct EnumVisitor;
29080 impl<'de> Visitor<'de> for EnumVisitor {
29081 type Value = TeamNamespacesListError;
29082 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29083 f.write_str("a TeamNamespacesListError structure")
29084 }
29085 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29086 let tag: &str = match map.next_key()? {
29087 Some(".tag") => map.next_value()?,
29088 _ => return Err(de::Error::missing_field(".tag"))
29089 };
29090 let value = match tag {
29091 "invalid_arg" => TeamNamespacesListError::InvalidArg,
29092 _ => TeamNamespacesListError::Other,
29093 };
29094 crate::eat_json_fields(&mut map)?;
29095 Ok(value)
29096 }
29097 }
29098 const VARIANTS: &[&str] = &["invalid_arg",
29099 "other"];
29100 deserializer.deserialize_struct("TeamNamespacesListError", VARIANTS, EnumVisitor)
29101 }
29102}
29103
29104impl ::serde::ser::Serialize for TeamNamespacesListError {
29105 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29106 use serde::ser::SerializeStruct;
29108 match self {
29109 TeamNamespacesListError::InvalidArg => {
29110 let mut s = serializer.serialize_struct("TeamNamespacesListError", 1)?;
29112 s.serialize_field(".tag", "invalid_arg")?;
29113 s.end()
29114 }
29115 TeamNamespacesListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29116 }
29117 }
29118}
29119
29120impl ::std::error::Error for TeamNamespacesListError {
29121}
29122
29123impl ::std::fmt::Display for TeamNamespacesListError {
29124 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29125 match self {
29126 TeamNamespacesListError::InvalidArg => f.write_str("Argument passed in is invalid."),
29127 _ => write!(f, "{:?}", *self),
29128 }
29129 }
29130}
29131
29132#[derive(Debug, Clone, PartialEq, Eq)]
29134#[non_exhaustive] pub struct TeamNamespacesListResult {
29136 pub namespaces: Vec<NamespaceMetadata>,
29138 pub cursor: String,
29141 pub has_more: bool,
29143}
29144
29145impl TeamNamespacesListResult {
29146 pub fn new(namespaces: Vec<NamespaceMetadata>, cursor: String, has_more: bool) -> Self {
29147 TeamNamespacesListResult {
29148 namespaces,
29149 cursor,
29150 has_more,
29151 }
29152 }
29153}
29154
29155const TEAM_NAMESPACES_LIST_RESULT_FIELDS: &[&str] = &["namespaces",
29156 "cursor",
29157 "has_more"];
29158impl TeamNamespacesListResult {
29159 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29160 map: V,
29161 ) -> Result<TeamNamespacesListResult, V::Error> {
29162 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29163 }
29164
29165 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29166 mut map: V,
29167 optional: bool,
29168 ) -> Result<Option<TeamNamespacesListResult>, V::Error> {
29169 let mut field_namespaces = None;
29170 let mut field_cursor = None;
29171 let mut field_has_more = None;
29172 let mut nothing = true;
29173 while let Some(key) = map.next_key::<&str>()? {
29174 nothing = false;
29175 match key {
29176 "namespaces" => {
29177 if field_namespaces.is_some() {
29178 return Err(::serde::de::Error::duplicate_field("namespaces"));
29179 }
29180 field_namespaces = Some(map.next_value()?);
29181 }
29182 "cursor" => {
29183 if field_cursor.is_some() {
29184 return Err(::serde::de::Error::duplicate_field("cursor"));
29185 }
29186 field_cursor = Some(map.next_value()?);
29187 }
29188 "has_more" => {
29189 if field_has_more.is_some() {
29190 return Err(::serde::de::Error::duplicate_field("has_more"));
29191 }
29192 field_has_more = Some(map.next_value()?);
29193 }
29194 _ => {
29195 map.next_value::<::serde_json::Value>()?;
29197 }
29198 }
29199 }
29200 if optional && nothing {
29201 return Ok(None);
29202 }
29203 let result = TeamNamespacesListResult {
29204 namespaces: field_namespaces.ok_or_else(|| ::serde::de::Error::missing_field("namespaces"))?,
29205 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
29206 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
29207 };
29208 Ok(Some(result))
29209 }
29210
29211 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29212 &self,
29213 s: &mut S::SerializeStruct,
29214 ) -> Result<(), S::Error> {
29215 use serde::ser::SerializeStruct;
29216 s.serialize_field("namespaces", &self.namespaces)?;
29217 s.serialize_field("cursor", &self.cursor)?;
29218 s.serialize_field("has_more", &self.has_more)?;
29219 Ok(())
29220 }
29221}
29222
29223impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListResult {
29224 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29225 use serde::de::{MapAccess, Visitor};
29227 struct StructVisitor;
29228 impl<'de> Visitor<'de> for StructVisitor {
29229 type Value = TeamNamespacesListResult;
29230 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29231 f.write_str("a TeamNamespacesListResult struct")
29232 }
29233 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29234 TeamNamespacesListResult::internal_deserialize(map)
29235 }
29236 }
29237 deserializer.deserialize_struct("TeamNamespacesListResult", TEAM_NAMESPACES_LIST_RESULT_FIELDS, StructVisitor)
29238 }
29239}
29240
29241impl ::serde::ser::Serialize for TeamNamespacesListResult {
29242 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29243 use serde::ser::SerializeStruct;
29245 let mut s = serializer.serialize_struct("TeamNamespacesListResult", 3)?;
29246 self.internal_serialize::<S>(&mut s)?;
29247 s.end()
29248 }
29249}
29250
29251#[derive(Debug, Clone, PartialEq, Eq)]
29252#[non_exhaustive] pub enum TeamReportFailureReason {
29254 TemporaryError,
29257 ManyReportsAtOnce,
29260 TooMuchData,
29262 Other,
29265}
29266
29267impl<'de> ::serde::de::Deserialize<'de> for TeamReportFailureReason {
29268 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29269 use serde::de::{self, MapAccess, Visitor};
29271 struct EnumVisitor;
29272 impl<'de> Visitor<'de> for EnumVisitor {
29273 type Value = TeamReportFailureReason;
29274 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29275 f.write_str("a TeamReportFailureReason structure")
29276 }
29277 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29278 let tag: &str = match map.next_key()? {
29279 Some(".tag") => map.next_value()?,
29280 _ => return Err(de::Error::missing_field(".tag"))
29281 };
29282 let value = match tag {
29283 "temporary_error" => TeamReportFailureReason::TemporaryError,
29284 "many_reports_at_once" => TeamReportFailureReason::ManyReportsAtOnce,
29285 "too_much_data" => TeamReportFailureReason::TooMuchData,
29286 _ => TeamReportFailureReason::Other,
29287 };
29288 crate::eat_json_fields(&mut map)?;
29289 Ok(value)
29290 }
29291 }
29292 const VARIANTS: &[&str] = &["temporary_error",
29293 "many_reports_at_once",
29294 "too_much_data",
29295 "other"];
29296 deserializer.deserialize_struct("TeamReportFailureReason", VARIANTS, EnumVisitor)
29297 }
29298}
29299
29300impl ::serde::ser::Serialize for TeamReportFailureReason {
29301 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29302 use serde::ser::SerializeStruct;
29304 match self {
29305 TeamReportFailureReason::TemporaryError => {
29306 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
29308 s.serialize_field(".tag", "temporary_error")?;
29309 s.end()
29310 }
29311 TeamReportFailureReason::ManyReportsAtOnce => {
29312 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
29314 s.serialize_field(".tag", "many_reports_at_once")?;
29315 s.end()
29316 }
29317 TeamReportFailureReason::TooMuchData => {
29318 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
29320 s.serialize_field(".tag", "too_much_data")?;
29321 s.end()
29322 }
29323 TeamReportFailureReason::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29324 }
29325 }
29326}
29327
29328#[derive(Debug, Clone, PartialEq, Eq)]
29331#[non_exhaustive] pub enum TokenGetAuthenticatedAdminError {
29333 MappingNotFound,
29337 AdminNotActive,
29340 Other,
29343}
29344
29345impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminError {
29346 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29347 use serde::de::{self, MapAccess, Visitor};
29349 struct EnumVisitor;
29350 impl<'de> Visitor<'de> for EnumVisitor {
29351 type Value = TokenGetAuthenticatedAdminError;
29352 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29353 f.write_str("a TokenGetAuthenticatedAdminError structure")
29354 }
29355 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29356 let tag: &str = match map.next_key()? {
29357 Some(".tag") => map.next_value()?,
29358 _ => return Err(de::Error::missing_field(".tag"))
29359 };
29360 let value = match tag {
29361 "mapping_not_found" => TokenGetAuthenticatedAdminError::MappingNotFound,
29362 "admin_not_active" => TokenGetAuthenticatedAdminError::AdminNotActive,
29363 _ => TokenGetAuthenticatedAdminError::Other,
29364 };
29365 crate::eat_json_fields(&mut map)?;
29366 Ok(value)
29367 }
29368 }
29369 const VARIANTS: &[&str] = &["mapping_not_found",
29370 "admin_not_active",
29371 "other"];
29372 deserializer.deserialize_struct("TokenGetAuthenticatedAdminError", VARIANTS, EnumVisitor)
29373 }
29374}
29375
29376impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminError {
29377 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29378 use serde::ser::SerializeStruct;
29380 match self {
29381 TokenGetAuthenticatedAdminError::MappingNotFound => {
29382 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
29384 s.serialize_field(".tag", "mapping_not_found")?;
29385 s.end()
29386 }
29387 TokenGetAuthenticatedAdminError::AdminNotActive => {
29388 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
29390 s.serialize_field(".tag", "admin_not_active")?;
29391 s.end()
29392 }
29393 TokenGetAuthenticatedAdminError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29394 }
29395 }
29396}
29397
29398impl ::std::error::Error for TokenGetAuthenticatedAdminError {
29399}
29400
29401impl ::std::fmt::Display for TokenGetAuthenticatedAdminError {
29402 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29403 match self {
29404 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."),
29405 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."),
29406 _ => write!(f, "{:?}", *self),
29407 }
29408 }
29409}
29410
29411#[derive(Debug, Clone, PartialEq, Eq)]
29413#[non_exhaustive] pub struct TokenGetAuthenticatedAdminResult {
29415 pub admin_profile: TeamMemberProfile,
29417}
29418
29419impl TokenGetAuthenticatedAdminResult {
29420 pub fn new(admin_profile: TeamMemberProfile) -> Self {
29421 TokenGetAuthenticatedAdminResult {
29422 admin_profile,
29423 }
29424 }
29425}
29426
29427const TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS: &[&str] = &["admin_profile"];
29428impl TokenGetAuthenticatedAdminResult {
29429 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29430 map: V,
29431 ) -> Result<TokenGetAuthenticatedAdminResult, V::Error> {
29432 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29433 }
29434
29435 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29436 mut map: V,
29437 optional: bool,
29438 ) -> Result<Option<TokenGetAuthenticatedAdminResult>, V::Error> {
29439 let mut field_admin_profile = None;
29440 let mut nothing = true;
29441 while let Some(key) = map.next_key::<&str>()? {
29442 nothing = false;
29443 match key {
29444 "admin_profile" => {
29445 if field_admin_profile.is_some() {
29446 return Err(::serde::de::Error::duplicate_field("admin_profile"));
29447 }
29448 field_admin_profile = Some(map.next_value()?);
29449 }
29450 _ => {
29451 map.next_value::<::serde_json::Value>()?;
29453 }
29454 }
29455 }
29456 if optional && nothing {
29457 return Ok(None);
29458 }
29459 let result = TokenGetAuthenticatedAdminResult {
29460 admin_profile: field_admin_profile.ok_or_else(|| ::serde::de::Error::missing_field("admin_profile"))?,
29461 };
29462 Ok(Some(result))
29463 }
29464
29465 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29466 &self,
29467 s: &mut S::SerializeStruct,
29468 ) -> Result<(), S::Error> {
29469 use serde::ser::SerializeStruct;
29470 s.serialize_field("admin_profile", &self.admin_profile)?;
29471 Ok(())
29472 }
29473}
29474
29475impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminResult {
29476 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29477 use serde::de::{MapAccess, Visitor};
29479 struct StructVisitor;
29480 impl<'de> Visitor<'de> for StructVisitor {
29481 type Value = TokenGetAuthenticatedAdminResult;
29482 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29483 f.write_str("a TokenGetAuthenticatedAdminResult struct")
29484 }
29485 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29486 TokenGetAuthenticatedAdminResult::internal_deserialize(map)
29487 }
29488 }
29489 deserializer.deserialize_struct("TokenGetAuthenticatedAdminResult", TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS, StructVisitor)
29490 }
29491}
29492
29493impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminResult {
29494 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29495 use serde::ser::SerializeStruct;
29497 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminResult", 1)?;
29498 self.internal_serialize::<S>(&mut s)?;
29499 s.end()
29500 }
29501}
29502
29503#[derive(Debug, Clone, PartialEq, Eq)]
29505#[non_exhaustive] pub enum UploadApiRateLimitValue {
29507 Unlimited,
29510 Limit(u32),
29512 Other,
29515}
29516
29517impl<'de> ::serde::de::Deserialize<'de> for UploadApiRateLimitValue {
29518 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29519 use serde::de::{self, MapAccess, Visitor};
29521 struct EnumVisitor;
29522 impl<'de> Visitor<'de> for EnumVisitor {
29523 type Value = UploadApiRateLimitValue;
29524 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29525 f.write_str("a UploadApiRateLimitValue structure")
29526 }
29527 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29528 let tag: &str = match map.next_key()? {
29529 Some(".tag") => map.next_value()?,
29530 _ => return Err(de::Error::missing_field(".tag"))
29531 };
29532 let value = match tag {
29533 "unlimited" => UploadApiRateLimitValue::Unlimited,
29534 "limit" => {
29535 match map.next_key()? {
29536 Some("limit") => UploadApiRateLimitValue::Limit(map.next_value()?),
29537 None => return Err(de::Error::missing_field("limit")),
29538 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29539 }
29540 }
29541 _ => UploadApiRateLimitValue::Other,
29542 };
29543 crate::eat_json_fields(&mut map)?;
29544 Ok(value)
29545 }
29546 }
29547 const VARIANTS: &[&str] = &["unlimited",
29548 "limit",
29549 "other"];
29550 deserializer.deserialize_struct("UploadApiRateLimitValue", VARIANTS, EnumVisitor)
29551 }
29552}
29553
29554impl ::serde::ser::Serialize for UploadApiRateLimitValue {
29555 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29556 use serde::ser::SerializeStruct;
29558 match self {
29559 UploadApiRateLimitValue::Unlimited => {
29560 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 1)?;
29562 s.serialize_field(".tag", "unlimited")?;
29563 s.end()
29564 }
29565 UploadApiRateLimitValue::Limit(x) => {
29566 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 2)?;
29568 s.serialize_field(".tag", "limit")?;
29569 s.serialize_field("limit", x)?;
29570 s.end()
29571 }
29572 UploadApiRateLimitValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29573 }
29574 }
29575}
29576
29577#[derive(Debug, Clone, PartialEq, Eq)]
29581#[non_exhaustive] pub enum UserAddResult {
29583 Success(UserSecondaryEmailsResult),
29585 InvalidUser(UserSelectorArg),
29587 Unverified(UserSelectorArg),
29589 PlaceholderUser(UserSelectorArg),
29591 Other,
29594}
29595
29596impl<'de> ::serde::de::Deserialize<'de> for UserAddResult {
29597 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29598 use serde::de::{self, MapAccess, Visitor};
29600 struct EnumVisitor;
29601 impl<'de> Visitor<'de> for EnumVisitor {
29602 type Value = UserAddResult;
29603 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29604 f.write_str("a UserAddResult structure")
29605 }
29606 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29607 let tag: &str = match map.next_key()? {
29608 Some(".tag") => map.next_value()?,
29609 _ => return Err(de::Error::missing_field(".tag"))
29610 };
29611 let value = match tag {
29612 "success" => UserAddResult::Success(UserSecondaryEmailsResult::internal_deserialize(&mut map)?),
29613 "invalid_user" => {
29614 match map.next_key()? {
29615 Some("invalid_user") => UserAddResult::InvalidUser(map.next_value()?),
29616 None => return Err(de::Error::missing_field("invalid_user")),
29617 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29618 }
29619 }
29620 "unverified" => {
29621 match map.next_key()? {
29622 Some("unverified") => UserAddResult::Unverified(map.next_value()?),
29623 None => return Err(de::Error::missing_field("unverified")),
29624 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29625 }
29626 }
29627 "placeholder_user" => {
29628 match map.next_key()? {
29629 Some("placeholder_user") => UserAddResult::PlaceholderUser(map.next_value()?),
29630 None => return Err(de::Error::missing_field("placeholder_user")),
29631 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29632 }
29633 }
29634 _ => UserAddResult::Other,
29635 };
29636 crate::eat_json_fields(&mut map)?;
29637 Ok(value)
29638 }
29639 }
29640 const VARIANTS: &[&str] = &["success",
29641 "invalid_user",
29642 "unverified",
29643 "placeholder_user",
29644 "other"];
29645 deserializer.deserialize_struct("UserAddResult", VARIANTS, EnumVisitor)
29646 }
29647}
29648
29649impl ::serde::ser::Serialize for UserAddResult {
29650 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29651 use serde::ser::SerializeStruct;
29653 match self {
29654 UserAddResult::Success(x) => {
29655 let mut s = serializer.serialize_struct("UserAddResult", 3)?;
29657 s.serialize_field(".tag", "success")?;
29658 x.internal_serialize::<S>(&mut s)?;
29659 s.end()
29660 }
29661 UserAddResult::InvalidUser(x) => {
29662 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
29664 s.serialize_field(".tag", "invalid_user")?;
29665 s.serialize_field("invalid_user", x)?;
29666 s.end()
29667 }
29668 UserAddResult::Unverified(x) => {
29669 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
29671 s.serialize_field(".tag", "unverified")?;
29672 s.serialize_field("unverified", x)?;
29673 s.end()
29674 }
29675 UserAddResult::PlaceholderUser(x) => {
29676 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
29678 s.serialize_field(".tag", "placeholder_user")?;
29679 s.serialize_field("placeholder_user", x)?;
29680 s.end()
29681 }
29682 UserAddResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29683 }
29684 }
29685}
29686
29687#[derive(Debug, Clone, PartialEq, Eq)]
29689#[non_exhaustive] pub struct UserCustomQuotaArg {
29691 pub user: UserSelectorArg,
29692 pub quota_gb: UserQuota,
29693}
29694
29695impl UserCustomQuotaArg {
29696 pub fn new(user: UserSelectorArg, quota_gb: UserQuota) -> Self {
29697 UserCustomQuotaArg {
29698 user,
29699 quota_gb,
29700 }
29701 }
29702}
29703
29704const USER_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["user",
29705 "quota_gb"];
29706impl UserCustomQuotaArg {
29707 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29708 map: V,
29709 ) -> Result<UserCustomQuotaArg, V::Error> {
29710 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29711 }
29712
29713 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29714 mut map: V,
29715 optional: bool,
29716 ) -> Result<Option<UserCustomQuotaArg>, V::Error> {
29717 let mut field_user = None;
29718 let mut field_quota_gb = None;
29719 let mut nothing = true;
29720 while let Some(key) = map.next_key::<&str>()? {
29721 nothing = false;
29722 match key {
29723 "user" => {
29724 if field_user.is_some() {
29725 return Err(::serde::de::Error::duplicate_field("user"));
29726 }
29727 field_user = Some(map.next_value()?);
29728 }
29729 "quota_gb" => {
29730 if field_quota_gb.is_some() {
29731 return Err(::serde::de::Error::duplicate_field("quota_gb"));
29732 }
29733 field_quota_gb = Some(map.next_value()?);
29734 }
29735 _ => {
29736 map.next_value::<::serde_json::Value>()?;
29738 }
29739 }
29740 }
29741 if optional && nothing {
29742 return Ok(None);
29743 }
29744 let result = UserCustomQuotaArg {
29745 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29746 quota_gb: field_quota_gb.ok_or_else(|| ::serde::de::Error::missing_field("quota_gb"))?,
29747 };
29748 Ok(Some(result))
29749 }
29750
29751 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29752 &self,
29753 s: &mut S::SerializeStruct,
29754 ) -> Result<(), S::Error> {
29755 use serde::ser::SerializeStruct;
29756 s.serialize_field("user", &self.user)?;
29757 s.serialize_field("quota_gb", &self.quota_gb)?;
29758 Ok(())
29759 }
29760}
29761
29762impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaArg {
29763 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29764 use serde::de::{MapAccess, Visitor};
29766 struct StructVisitor;
29767 impl<'de> Visitor<'de> for StructVisitor {
29768 type Value = UserCustomQuotaArg;
29769 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29770 f.write_str("a UserCustomQuotaArg struct")
29771 }
29772 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29773 UserCustomQuotaArg::internal_deserialize(map)
29774 }
29775 }
29776 deserializer.deserialize_struct("UserCustomQuotaArg", USER_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
29777 }
29778}
29779
29780impl ::serde::ser::Serialize for UserCustomQuotaArg {
29781 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29782 use serde::ser::SerializeStruct;
29784 let mut s = serializer.serialize_struct("UserCustomQuotaArg", 2)?;
29785 self.internal_serialize::<S>(&mut s)?;
29786 s.end()
29787 }
29788}
29789
29790#[derive(Debug, Clone, PartialEq, Eq)]
29793#[non_exhaustive] pub struct UserCustomQuotaResult {
29795 pub user: UserSelectorArg,
29796 pub quota_gb: Option<UserQuota>,
29797}
29798
29799impl UserCustomQuotaResult {
29800 pub fn new(user: UserSelectorArg) -> Self {
29801 UserCustomQuotaResult {
29802 user,
29803 quota_gb: None,
29804 }
29805 }
29806
29807 pub fn with_quota_gb(mut self, value: UserQuota) -> Self {
29808 self.quota_gb = Some(value);
29809 self
29810 }
29811}
29812
29813const USER_CUSTOM_QUOTA_RESULT_FIELDS: &[&str] = &["user",
29814 "quota_gb"];
29815impl UserCustomQuotaResult {
29816 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29817 map: V,
29818 ) -> Result<UserCustomQuotaResult, V::Error> {
29819 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29820 }
29821
29822 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29823 mut map: V,
29824 optional: bool,
29825 ) -> Result<Option<UserCustomQuotaResult>, V::Error> {
29826 let mut field_user = None;
29827 let mut field_quota_gb = None;
29828 let mut nothing = true;
29829 while let Some(key) = map.next_key::<&str>()? {
29830 nothing = false;
29831 match key {
29832 "user" => {
29833 if field_user.is_some() {
29834 return Err(::serde::de::Error::duplicate_field("user"));
29835 }
29836 field_user = Some(map.next_value()?);
29837 }
29838 "quota_gb" => {
29839 if field_quota_gb.is_some() {
29840 return Err(::serde::de::Error::duplicate_field("quota_gb"));
29841 }
29842 field_quota_gb = Some(map.next_value()?);
29843 }
29844 _ => {
29845 map.next_value::<::serde_json::Value>()?;
29847 }
29848 }
29849 }
29850 if optional && nothing {
29851 return Ok(None);
29852 }
29853 let result = UserCustomQuotaResult {
29854 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29855 quota_gb: field_quota_gb.and_then(Option::flatten),
29856 };
29857 Ok(Some(result))
29858 }
29859
29860 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29861 &self,
29862 s: &mut S::SerializeStruct,
29863 ) -> Result<(), S::Error> {
29864 use serde::ser::SerializeStruct;
29865 s.serialize_field("user", &self.user)?;
29866 if let Some(val) = &self.quota_gb {
29867 s.serialize_field("quota_gb", val)?;
29868 }
29869 Ok(())
29870 }
29871}
29872
29873impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaResult {
29874 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29875 use serde::de::{MapAccess, Visitor};
29877 struct StructVisitor;
29878 impl<'de> Visitor<'de> for StructVisitor {
29879 type Value = UserCustomQuotaResult;
29880 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29881 f.write_str("a UserCustomQuotaResult struct")
29882 }
29883 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29884 UserCustomQuotaResult::internal_deserialize(map)
29885 }
29886 }
29887 deserializer.deserialize_struct("UserCustomQuotaResult", USER_CUSTOM_QUOTA_RESULT_FIELDS, StructVisitor)
29888 }
29889}
29890
29891impl ::serde::ser::Serialize for UserCustomQuotaResult {
29892 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29893 use serde::ser::SerializeStruct;
29895 let mut s = serializer.serialize_struct("UserCustomQuotaResult", 2)?;
29896 self.internal_serialize::<S>(&mut s)?;
29897 s.end()
29898 }
29899}
29900
29901#[derive(Debug, Clone, PartialEq, Eq)]
29902#[non_exhaustive] pub struct UserDeleteEmailsResult {
29904 pub user: UserSelectorArg,
29905 pub results: Vec<DeleteSecondaryEmailResult>,
29906}
29907
29908impl UserDeleteEmailsResult {
29909 pub fn new(user: UserSelectorArg, results: Vec<DeleteSecondaryEmailResult>) -> Self {
29910 UserDeleteEmailsResult {
29911 user,
29912 results,
29913 }
29914 }
29915}
29916
29917const USER_DELETE_EMAILS_RESULT_FIELDS: &[&str] = &["user",
29918 "results"];
29919impl UserDeleteEmailsResult {
29920 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29921 map: V,
29922 ) -> Result<UserDeleteEmailsResult, V::Error> {
29923 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29924 }
29925
29926 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29927 mut map: V,
29928 optional: bool,
29929 ) -> Result<Option<UserDeleteEmailsResult>, V::Error> {
29930 let mut field_user = None;
29931 let mut field_results = None;
29932 let mut nothing = true;
29933 while let Some(key) = map.next_key::<&str>()? {
29934 nothing = false;
29935 match key {
29936 "user" => {
29937 if field_user.is_some() {
29938 return Err(::serde::de::Error::duplicate_field("user"));
29939 }
29940 field_user = Some(map.next_value()?);
29941 }
29942 "results" => {
29943 if field_results.is_some() {
29944 return Err(::serde::de::Error::duplicate_field("results"));
29945 }
29946 field_results = Some(map.next_value()?);
29947 }
29948 _ => {
29949 map.next_value::<::serde_json::Value>()?;
29951 }
29952 }
29953 }
29954 if optional && nothing {
29955 return Ok(None);
29956 }
29957 let result = UserDeleteEmailsResult {
29958 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29959 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
29960 };
29961 Ok(Some(result))
29962 }
29963
29964 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29965 &self,
29966 s: &mut S::SerializeStruct,
29967 ) -> Result<(), S::Error> {
29968 use serde::ser::SerializeStruct;
29969 s.serialize_field("user", &self.user)?;
29970 s.serialize_field("results", &self.results)?;
29971 Ok(())
29972 }
29973}
29974
29975impl<'de> ::serde::de::Deserialize<'de> for UserDeleteEmailsResult {
29976 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29977 use serde::de::{MapAccess, Visitor};
29979 struct StructVisitor;
29980 impl<'de> Visitor<'de> for StructVisitor {
29981 type Value = UserDeleteEmailsResult;
29982 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29983 f.write_str("a UserDeleteEmailsResult struct")
29984 }
29985 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29986 UserDeleteEmailsResult::internal_deserialize(map)
29987 }
29988 }
29989 deserializer.deserialize_struct("UserDeleteEmailsResult", USER_DELETE_EMAILS_RESULT_FIELDS, StructVisitor)
29990 }
29991}
29992
29993impl ::serde::ser::Serialize for UserDeleteEmailsResult {
29994 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29995 use serde::ser::SerializeStruct;
29997 let mut s = serializer.serialize_struct("UserDeleteEmailsResult", 2)?;
29998 self.internal_serialize::<S>(&mut s)?;
29999 s.end()
30000 }
30001}
30002
30003#[derive(Debug, Clone, PartialEq, Eq)]
30007#[non_exhaustive] pub enum UserDeleteResult {
30009 Success(UserDeleteEmailsResult),
30011 InvalidUser(UserSelectorArg),
30013 Other,
30016}
30017
30018impl<'de> ::serde::de::Deserialize<'de> for UserDeleteResult {
30019 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30020 use serde::de::{self, MapAccess, Visitor};
30022 struct EnumVisitor;
30023 impl<'de> Visitor<'de> for EnumVisitor {
30024 type Value = UserDeleteResult;
30025 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30026 f.write_str("a UserDeleteResult structure")
30027 }
30028 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30029 let tag: &str = match map.next_key()? {
30030 Some(".tag") => map.next_value()?,
30031 _ => return Err(de::Error::missing_field(".tag"))
30032 };
30033 let value = match tag {
30034 "success" => UserDeleteResult::Success(UserDeleteEmailsResult::internal_deserialize(&mut map)?),
30035 "invalid_user" => {
30036 match map.next_key()? {
30037 Some("invalid_user") => UserDeleteResult::InvalidUser(map.next_value()?),
30038 None => return Err(de::Error::missing_field("invalid_user")),
30039 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30040 }
30041 }
30042 _ => UserDeleteResult::Other,
30043 };
30044 crate::eat_json_fields(&mut map)?;
30045 Ok(value)
30046 }
30047 }
30048 const VARIANTS: &[&str] = &["success",
30049 "invalid_user",
30050 "other"];
30051 deserializer.deserialize_struct("UserDeleteResult", VARIANTS, EnumVisitor)
30052 }
30053}
30054
30055impl ::serde::ser::Serialize for UserDeleteResult {
30056 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30057 use serde::ser::SerializeStruct;
30059 match self {
30060 UserDeleteResult::Success(x) => {
30061 let mut s = serializer.serialize_struct("UserDeleteResult", 3)?;
30063 s.serialize_field(".tag", "success")?;
30064 x.internal_serialize::<S>(&mut s)?;
30065 s.end()
30066 }
30067 UserDeleteResult::InvalidUser(x) => {
30068 let mut s = serializer.serialize_struct("UserDeleteResult", 2)?;
30070 s.serialize_field(".tag", "invalid_user")?;
30071 s.serialize_field("invalid_user", x)?;
30072 s.end()
30073 }
30074 UserDeleteResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30075 }
30076 }
30077}
30078
30079#[derive(Debug, Clone, PartialEq, Eq)]
30080#[non_exhaustive] pub struct UserResendEmailsResult {
30082 pub user: UserSelectorArg,
30083 pub results: Vec<ResendSecondaryEmailResult>,
30084}
30085
30086impl UserResendEmailsResult {
30087 pub fn new(user: UserSelectorArg, results: Vec<ResendSecondaryEmailResult>) -> Self {
30088 UserResendEmailsResult {
30089 user,
30090 results,
30091 }
30092 }
30093}
30094
30095const USER_RESEND_EMAILS_RESULT_FIELDS: &[&str] = &["user",
30096 "results"];
30097impl UserResendEmailsResult {
30098 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30099 map: V,
30100 ) -> Result<UserResendEmailsResult, V::Error> {
30101 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30102 }
30103
30104 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30105 mut map: V,
30106 optional: bool,
30107 ) -> Result<Option<UserResendEmailsResult>, V::Error> {
30108 let mut field_user = None;
30109 let mut field_results = None;
30110 let mut nothing = true;
30111 while let Some(key) = map.next_key::<&str>()? {
30112 nothing = false;
30113 match key {
30114 "user" => {
30115 if field_user.is_some() {
30116 return Err(::serde::de::Error::duplicate_field("user"));
30117 }
30118 field_user = Some(map.next_value()?);
30119 }
30120 "results" => {
30121 if field_results.is_some() {
30122 return Err(::serde::de::Error::duplicate_field("results"));
30123 }
30124 field_results = Some(map.next_value()?);
30125 }
30126 _ => {
30127 map.next_value::<::serde_json::Value>()?;
30129 }
30130 }
30131 }
30132 if optional && nothing {
30133 return Ok(None);
30134 }
30135 let result = UserResendEmailsResult {
30136 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30137 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
30138 };
30139 Ok(Some(result))
30140 }
30141
30142 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30143 &self,
30144 s: &mut S::SerializeStruct,
30145 ) -> Result<(), S::Error> {
30146 use serde::ser::SerializeStruct;
30147 s.serialize_field("user", &self.user)?;
30148 s.serialize_field("results", &self.results)?;
30149 Ok(())
30150 }
30151}
30152
30153impl<'de> ::serde::de::Deserialize<'de> for UserResendEmailsResult {
30154 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30155 use serde::de::{MapAccess, Visitor};
30157 struct StructVisitor;
30158 impl<'de> Visitor<'de> for StructVisitor {
30159 type Value = UserResendEmailsResult;
30160 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30161 f.write_str("a UserResendEmailsResult struct")
30162 }
30163 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30164 UserResendEmailsResult::internal_deserialize(map)
30165 }
30166 }
30167 deserializer.deserialize_struct("UserResendEmailsResult", USER_RESEND_EMAILS_RESULT_FIELDS, StructVisitor)
30168 }
30169}
30170
30171impl ::serde::ser::Serialize for UserResendEmailsResult {
30172 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30173 use serde::ser::SerializeStruct;
30175 let mut s = serializer.serialize_struct("UserResendEmailsResult", 2)?;
30176 self.internal_serialize::<S>(&mut s)?;
30177 s.end()
30178 }
30179}
30180
30181#[derive(Debug, Clone, PartialEq, Eq)]
30185#[non_exhaustive] pub enum UserResendResult {
30187 Success(UserResendEmailsResult),
30189 InvalidUser(UserSelectorArg),
30191 Other,
30194}
30195
30196impl<'de> ::serde::de::Deserialize<'de> for UserResendResult {
30197 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30198 use serde::de::{self, MapAccess, Visitor};
30200 struct EnumVisitor;
30201 impl<'de> Visitor<'de> for EnumVisitor {
30202 type Value = UserResendResult;
30203 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30204 f.write_str("a UserResendResult structure")
30205 }
30206 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30207 let tag: &str = match map.next_key()? {
30208 Some(".tag") => map.next_value()?,
30209 _ => return Err(de::Error::missing_field(".tag"))
30210 };
30211 let value = match tag {
30212 "success" => UserResendResult::Success(UserResendEmailsResult::internal_deserialize(&mut map)?),
30213 "invalid_user" => {
30214 match map.next_key()? {
30215 Some("invalid_user") => UserResendResult::InvalidUser(map.next_value()?),
30216 None => return Err(de::Error::missing_field("invalid_user")),
30217 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30218 }
30219 }
30220 _ => UserResendResult::Other,
30221 };
30222 crate::eat_json_fields(&mut map)?;
30223 Ok(value)
30224 }
30225 }
30226 const VARIANTS: &[&str] = &["success",
30227 "invalid_user",
30228 "other"];
30229 deserializer.deserialize_struct("UserResendResult", VARIANTS, EnumVisitor)
30230 }
30231}
30232
30233impl ::serde::ser::Serialize for UserResendResult {
30234 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30235 use serde::ser::SerializeStruct;
30237 match self {
30238 UserResendResult::Success(x) => {
30239 let mut s = serializer.serialize_struct("UserResendResult", 3)?;
30241 s.serialize_field(".tag", "success")?;
30242 x.internal_serialize::<S>(&mut s)?;
30243 s.end()
30244 }
30245 UserResendResult::InvalidUser(x) => {
30246 let mut s = serializer.serialize_struct("UserResendResult", 2)?;
30248 s.serialize_field(".tag", "invalid_user")?;
30249 s.serialize_field("invalid_user", x)?;
30250 s.end()
30251 }
30252 UserResendResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
30253 }
30254 }
30255}
30256
30257#[derive(Debug, Clone, PartialEq, Eq)]
30259#[non_exhaustive] pub struct UserSecondaryEmailsArg {
30261 pub user: UserSelectorArg,
30262 pub secondary_emails: Vec<crate::types::common::EmailAddress>,
30263}
30264
30265impl UserSecondaryEmailsArg {
30266 pub fn new(
30267 user: UserSelectorArg,
30268 secondary_emails: Vec<crate::types::common::EmailAddress>,
30269 ) -> Self {
30270 UserSecondaryEmailsArg {
30271 user,
30272 secondary_emails,
30273 }
30274 }
30275}
30276
30277const USER_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["user",
30278 "secondary_emails"];
30279impl UserSecondaryEmailsArg {
30280 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30281 map: V,
30282 ) -> Result<UserSecondaryEmailsArg, V::Error> {
30283 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30284 }
30285
30286 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30287 mut map: V,
30288 optional: bool,
30289 ) -> Result<Option<UserSecondaryEmailsArg>, V::Error> {
30290 let mut field_user = None;
30291 let mut field_secondary_emails = None;
30292 let mut nothing = true;
30293 while let Some(key) = map.next_key::<&str>()? {
30294 nothing = false;
30295 match key {
30296 "user" => {
30297 if field_user.is_some() {
30298 return Err(::serde::de::Error::duplicate_field("user"));
30299 }
30300 field_user = Some(map.next_value()?);
30301 }
30302 "secondary_emails" => {
30303 if field_secondary_emails.is_some() {
30304 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
30305 }
30306 field_secondary_emails = Some(map.next_value()?);
30307 }
30308 _ => {
30309 map.next_value::<::serde_json::Value>()?;
30311 }
30312 }
30313 }
30314 if optional && nothing {
30315 return Ok(None);
30316 }
30317 let result = UserSecondaryEmailsArg {
30318 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30319 secondary_emails: field_secondary_emails.ok_or_else(|| ::serde::de::Error::missing_field("secondary_emails"))?,
30320 };
30321 Ok(Some(result))
30322 }
30323
30324 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30325 &self,
30326 s: &mut S::SerializeStruct,
30327 ) -> Result<(), S::Error> {
30328 use serde::ser::SerializeStruct;
30329 s.serialize_field("user", &self.user)?;
30330 s.serialize_field("secondary_emails", &self.secondary_emails)?;
30331 Ok(())
30332 }
30333}
30334
30335impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsArg {
30336 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30337 use serde::de::{MapAccess, Visitor};
30339 struct StructVisitor;
30340 impl<'de> Visitor<'de> for StructVisitor {
30341 type Value = UserSecondaryEmailsArg;
30342 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30343 f.write_str("a UserSecondaryEmailsArg struct")
30344 }
30345 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30346 UserSecondaryEmailsArg::internal_deserialize(map)
30347 }
30348 }
30349 deserializer.deserialize_struct("UserSecondaryEmailsArg", USER_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
30350 }
30351}
30352
30353impl ::serde::ser::Serialize for UserSecondaryEmailsArg {
30354 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30355 use serde::ser::SerializeStruct;
30357 let mut s = serializer.serialize_struct("UserSecondaryEmailsArg", 2)?;
30358 self.internal_serialize::<S>(&mut s)?;
30359 s.end()
30360 }
30361}
30362
30363#[derive(Debug, Clone, PartialEq, Eq)]
30364#[non_exhaustive] pub struct UserSecondaryEmailsResult {
30366 pub user: UserSelectorArg,
30367 pub results: Vec<AddSecondaryEmailResult>,
30368}
30369
30370impl UserSecondaryEmailsResult {
30371 pub fn new(user: UserSelectorArg, results: Vec<AddSecondaryEmailResult>) -> Self {
30372 UserSecondaryEmailsResult {
30373 user,
30374 results,
30375 }
30376 }
30377}
30378
30379const USER_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["user",
30380 "results"];
30381impl UserSecondaryEmailsResult {
30382 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30383 map: V,
30384 ) -> Result<UserSecondaryEmailsResult, V::Error> {
30385 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
30386 }
30387
30388 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
30389 mut map: V,
30390 optional: bool,
30391 ) -> Result<Option<UserSecondaryEmailsResult>, V::Error> {
30392 let mut field_user = None;
30393 let mut field_results = None;
30394 let mut nothing = true;
30395 while let Some(key) = map.next_key::<&str>()? {
30396 nothing = false;
30397 match key {
30398 "user" => {
30399 if field_user.is_some() {
30400 return Err(::serde::de::Error::duplicate_field("user"));
30401 }
30402 field_user = Some(map.next_value()?);
30403 }
30404 "results" => {
30405 if field_results.is_some() {
30406 return Err(::serde::de::Error::duplicate_field("results"));
30407 }
30408 field_results = Some(map.next_value()?);
30409 }
30410 _ => {
30411 map.next_value::<::serde_json::Value>()?;
30413 }
30414 }
30415 }
30416 if optional && nothing {
30417 return Ok(None);
30418 }
30419 let result = UserSecondaryEmailsResult {
30420 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
30421 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
30422 };
30423 Ok(Some(result))
30424 }
30425
30426 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
30427 &self,
30428 s: &mut S::SerializeStruct,
30429 ) -> Result<(), S::Error> {
30430 use serde::ser::SerializeStruct;
30431 s.serialize_field("user", &self.user)?;
30432 s.serialize_field("results", &self.results)?;
30433 Ok(())
30434 }
30435}
30436
30437impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsResult {
30438 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30439 use serde::de::{MapAccess, Visitor};
30441 struct StructVisitor;
30442 impl<'de> Visitor<'de> for StructVisitor {
30443 type Value = UserSecondaryEmailsResult;
30444 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30445 f.write_str("a UserSecondaryEmailsResult struct")
30446 }
30447 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
30448 UserSecondaryEmailsResult::internal_deserialize(map)
30449 }
30450 }
30451 deserializer.deserialize_struct("UserSecondaryEmailsResult", USER_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
30452 }
30453}
30454
30455impl ::serde::ser::Serialize for UserSecondaryEmailsResult {
30456 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30457 use serde::ser::SerializeStruct;
30459 let mut s = serializer.serialize_struct("UserSecondaryEmailsResult", 2)?;
30460 self.internal_serialize::<S>(&mut s)?;
30461 s.end()
30462 }
30463}
30464
30465#[derive(Debug, Clone, PartialEq, Eq)]
30467pub enum UserSelectorArg {
30468 TeamMemberId(crate::types::team_common::TeamMemberId),
30469 ExternalId(crate::types::team_common::MemberExternalId),
30470 Email(crate::types::common::EmailAddress),
30471}
30472
30473impl<'de> ::serde::de::Deserialize<'de> for UserSelectorArg {
30474 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30475 use serde::de::{self, MapAccess, Visitor};
30477 struct EnumVisitor;
30478 impl<'de> Visitor<'de> for EnumVisitor {
30479 type Value = UserSelectorArg;
30480 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30481 f.write_str("a UserSelectorArg structure")
30482 }
30483 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30484 let tag: &str = match map.next_key()? {
30485 Some(".tag") => map.next_value()?,
30486 _ => return Err(de::Error::missing_field(".tag"))
30487 };
30488 let value = match tag {
30489 "team_member_id" => {
30490 match map.next_key()? {
30491 Some("team_member_id") => UserSelectorArg::TeamMemberId(map.next_value()?),
30492 None => return Err(de::Error::missing_field("team_member_id")),
30493 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30494 }
30495 }
30496 "external_id" => {
30497 match map.next_key()? {
30498 Some("external_id") => UserSelectorArg::ExternalId(map.next_value()?),
30499 None => return Err(de::Error::missing_field("external_id")),
30500 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30501 }
30502 }
30503 "email" => {
30504 match map.next_key()? {
30505 Some("email") => UserSelectorArg::Email(map.next_value()?),
30506 None => return Err(de::Error::missing_field("email")),
30507 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30508 }
30509 }
30510 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
30511 };
30512 crate::eat_json_fields(&mut map)?;
30513 Ok(value)
30514 }
30515 }
30516 const VARIANTS: &[&str] = &["team_member_id",
30517 "external_id",
30518 "email"];
30519 deserializer.deserialize_struct("UserSelectorArg", VARIANTS, EnumVisitor)
30520 }
30521}
30522
30523impl ::serde::ser::Serialize for UserSelectorArg {
30524 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30525 use serde::ser::SerializeStruct;
30527 match self {
30528 UserSelectorArg::TeamMemberId(x) => {
30529 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
30531 s.serialize_field(".tag", "team_member_id")?;
30532 s.serialize_field("team_member_id", x)?;
30533 s.end()
30534 }
30535 UserSelectorArg::ExternalId(x) => {
30536 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
30538 s.serialize_field(".tag", "external_id")?;
30539 s.serialize_field("external_id", x)?;
30540 s.end()
30541 }
30542 UserSelectorArg::Email(x) => {
30543 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
30545 s.serialize_field(".tag", "email")?;
30546 s.serialize_field("email", x)?;
30547 s.end()
30548 }
30549 }
30550 }
30551}
30552
30553#[derive(Debug, Clone, PartialEq, Eq)]
30555pub enum UserSelectorError {
30556 UserNotFound,
30559}
30560
30561impl<'de> ::serde::de::Deserialize<'de> for UserSelectorError {
30562 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30563 use serde::de::{self, MapAccess, Visitor};
30565 struct EnumVisitor;
30566 impl<'de> Visitor<'de> for EnumVisitor {
30567 type Value = UserSelectorError;
30568 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30569 f.write_str("a UserSelectorError structure")
30570 }
30571 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30572 let tag: &str = match map.next_key()? {
30573 Some(".tag") => map.next_value()?,
30574 _ => return Err(de::Error::missing_field(".tag"))
30575 };
30576 let value = match tag {
30577 "user_not_found" => UserSelectorError::UserNotFound,
30578 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
30579 };
30580 crate::eat_json_fields(&mut map)?;
30581 Ok(value)
30582 }
30583 }
30584 const VARIANTS: &[&str] = &["user_not_found"];
30585 deserializer.deserialize_struct("UserSelectorError", VARIANTS, EnumVisitor)
30586 }
30587}
30588
30589impl ::serde::ser::Serialize for UserSelectorError {
30590 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30591 use serde::ser::SerializeStruct;
30593 match self {
30594 UserSelectorError::UserNotFound => {
30595 let mut s = serializer.serialize_struct("UserSelectorError", 1)?;
30597 s.serialize_field(".tag", "user_not_found")?;
30598 s.end()
30599 }
30600 }
30601 }
30602}
30603
30604impl ::std::error::Error for UserSelectorError {
30605}
30606
30607impl ::std::fmt::Display for UserSelectorError {
30608 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30609 match self {
30610 UserSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
30611 }
30612 }
30613}
30614
30615#[derive(Debug, Clone, PartialEq, Eq)]
30617pub enum UsersSelectorArg {
30618 TeamMemberIds(Vec<crate::types::team_common::TeamMemberId>),
30620 ExternalIds(Vec<crate::types::team_common::MemberExternalId>),
30622 Emails(Vec<crate::types::common::EmailAddress>),
30624}
30625
30626impl<'de> ::serde::de::Deserialize<'de> for UsersSelectorArg {
30627 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
30628 use serde::de::{self, MapAccess, Visitor};
30630 struct EnumVisitor;
30631 impl<'de> Visitor<'de> for EnumVisitor {
30632 type Value = UsersSelectorArg;
30633 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30634 f.write_str("a UsersSelectorArg structure")
30635 }
30636 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
30637 let tag: &str = match map.next_key()? {
30638 Some(".tag") => map.next_value()?,
30639 _ => return Err(de::Error::missing_field(".tag"))
30640 };
30641 let value = match tag {
30642 "team_member_ids" => {
30643 match map.next_key()? {
30644 Some("team_member_ids") => UsersSelectorArg::TeamMemberIds(map.next_value()?),
30645 None => return Err(de::Error::missing_field("team_member_ids")),
30646 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30647 }
30648 }
30649 "external_ids" => {
30650 match map.next_key()? {
30651 Some("external_ids") => UsersSelectorArg::ExternalIds(map.next_value()?),
30652 None => return Err(de::Error::missing_field("external_ids")),
30653 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30654 }
30655 }
30656 "emails" => {
30657 match map.next_key()? {
30658 Some("emails") => UsersSelectorArg::Emails(map.next_value()?),
30659 None => return Err(de::Error::missing_field("emails")),
30660 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
30661 }
30662 }
30663 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
30664 };
30665 crate::eat_json_fields(&mut map)?;
30666 Ok(value)
30667 }
30668 }
30669 const VARIANTS: &[&str] = &["team_member_ids",
30670 "external_ids",
30671 "emails"];
30672 deserializer.deserialize_struct("UsersSelectorArg", VARIANTS, EnumVisitor)
30673 }
30674}
30675
30676impl ::serde::ser::Serialize for UsersSelectorArg {
30677 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
30678 use serde::ser::SerializeStruct;
30680 match self {
30681 UsersSelectorArg::TeamMemberIds(x) => {
30682 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
30684 s.serialize_field(".tag", "team_member_ids")?;
30685 s.serialize_field("team_member_ids", x)?;
30686 s.end()
30687 }
30688 UsersSelectorArg::ExternalIds(x) => {
30689 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
30691 s.serialize_field(".tag", "external_ids")?;
30692 s.serialize_field("external_ids", x)?;
30693 s.end()
30694 }
30695 UsersSelectorArg::Emails(x) => {
30696 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
30698 s.serialize_field(".tag", "emails")?;
30699 s.serialize_field("emails", x)?;
30700 s.end()
30701 }
30702 }
30703 }
30704}
30705