1#![allow(
5 clippy::too_many_arguments,
6 clippy::large_enum_variant,
7 clippy::result_large_err,
8 clippy::doc_markdown,
9)]
10
11pub type GroupsGetInfoResult = Vec<GroupsGetInfoItem>;
12pub type LegalHoldId = String;
13pub type LegalHoldPolicyDescription = String;
14pub type LegalHoldPolicyName = String;
15pub type LegalHoldsGetPolicyResult = LegalHoldPolicy;
16pub type LegalHoldsPolicyCreateResult = LegalHoldPolicy;
17pub type LegalHoldsPolicyUpdateResult = LegalHoldPolicy;
18pub type ListHeldRevisionCursor = String;
19pub type MembersGetInfoResult = Vec<MembersGetInfoItem>;
20pub type NumberPerDay = Vec<Option<u64>>;
21pub type Path = String;
22pub type SecondaryEmail = crate::types::secondary_emails::SecondaryEmail;
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(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(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 Other,
3417}
3418
3419impl<'de> ::serde::de::Deserialize<'de> for Feature {
3420 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3421 use serde::de::{self, MapAccess, Visitor};
3423 struct EnumVisitor;
3424 impl<'de> Visitor<'de> for EnumVisitor {
3425 type Value = Feature;
3426 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3427 f.write_str("a Feature structure")
3428 }
3429 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3430 let tag: &str = match map.next_key()? {
3431 Some(".tag") => map.next_value()?,
3432 _ => return Err(de::Error::missing_field(".tag"))
3433 };
3434 let value = match tag {
3435 "upload_api_rate_limit" => Feature::UploadApiRateLimit,
3436 "has_team_shared_dropbox" => Feature::HasTeamSharedDropbox,
3437 "has_team_file_events" => Feature::HasTeamFileEvents,
3438 "has_team_selective_sync" => Feature::HasTeamSelectiveSync,
3439 _ => Feature::Other,
3440 };
3441 crate::eat_json_fields(&mut map)?;
3442 Ok(value)
3443 }
3444 }
3445 const VARIANTS: &[&str] = &["upload_api_rate_limit",
3446 "has_team_shared_dropbox",
3447 "has_team_file_events",
3448 "has_team_selective_sync",
3449 "other"];
3450 deserializer.deserialize_struct("Feature", VARIANTS, EnumVisitor)
3451 }
3452}
3453
3454impl ::serde::ser::Serialize for Feature {
3455 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3456 use serde::ser::SerializeStruct;
3458 match self {
3459 Feature::UploadApiRateLimit => {
3460 let mut s = serializer.serialize_struct("Feature", 1)?;
3462 s.serialize_field(".tag", "upload_api_rate_limit")?;
3463 s.end()
3464 }
3465 Feature::HasTeamSharedDropbox => {
3466 let mut s = serializer.serialize_struct("Feature", 1)?;
3468 s.serialize_field(".tag", "has_team_shared_dropbox")?;
3469 s.end()
3470 }
3471 Feature::HasTeamFileEvents => {
3472 let mut s = serializer.serialize_struct("Feature", 1)?;
3474 s.serialize_field(".tag", "has_team_file_events")?;
3475 s.end()
3476 }
3477 Feature::HasTeamSelectiveSync => {
3478 let mut s = serializer.serialize_struct("Feature", 1)?;
3480 s.serialize_field(".tag", "has_team_selective_sync")?;
3481 s.end()
3482 }
3483 Feature::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3484 }
3485 }
3486}
3487
3488#[derive(Debug, Clone, PartialEq, Eq)]
3491#[non_exhaustive] pub enum FeatureValue {
3493 UploadApiRateLimit(UploadApiRateLimitValue),
3494 HasTeamSharedDropbox(HasTeamSharedDropboxValue),
3495 HasTeamFileEvents(HasTeamFileEventsValue),
3496 HasTeamSelectiveSync(HasTeamSelectiveSyncValue),
3497 Other,
3500}
3501
3502impl<'de> ::serde::de::Deserialize<'de> for FeatureValue {
3503 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3504 use serde::de::{self, MapAccess, Visitor};
3506 struct EnumVisitor;
3507 impl<'de> Visitor<'de> for EnumVisitor {
3508 type Value = FeatureValue;
3509 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3510 f.write_str("a FeatureValue structure")
3511 }
3512 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3513 let tag: &str = match map.next_key()? {
3514 Some(".tag") => map.next_value()?,
3515 _ => return Err(de::Error::missing_field(".tag"))
3516 };
3517 let value = match tag {
3518 "upload_api_rate_limit" => {
3519 match map.next_key()? {
3520 Some("upload_api_rate_limit") => FeatureValue::UploadApiRateLimit(map.next_value()?),
3521 None => return Err(de::Error::missing_field("upload_api_rate_limit")),
3522 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3523 }
3524 }
3525 "has_team_shared_dropbox" => {
3526 match map.next_key()? {
3527 Some("has_team_shared_dropbox") => FeatureValue::HasTeamSharedDropbox(map.next_value()?),
3528 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
3529 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3530 }
3531 }
3532 "has_team_file_events" => {
3533 match map.next_key()? {
3534 Some("has_team_file_events") => FeatureValue::HasTeamFileEvents(map.next_value()?),
3535 None => return Err(de::Error::missing_field("has_team_file_events")),
3536 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3537 }
3538 }
3539 "has_team_selective_sync" => {
3540 match map.next_key()? {
3541 Some("has_team_selective_sync") => FeatureValue::HasTeamSelectiveSync(map.next_value()?),
3542 None => return Err(de::Error::missing_field("has_team_selective_sync")),
3543 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
3544 }
3545 }
3546 _ => FeatureValue::Other,
3547 };
3548 crate::eat_json_fields(&mut map)?;
3549 Ok(value)
3550 }
3551 }
3552 const VARIANTS: &[&str] = &["upload_api_rate_limit",
3553 "has_team_shared_dropbox",
3554 "has_team_file_events",
3555 "has_team_selective_sync",
3556 "other"];
3557 deserializer.deserialize_struct("FeatureValue", VARIANTS, EnumVisitor)
3558 }
3559}
3560
3561impl ::serde::ser::Serialize for FeatureValue {
3562 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3563 use serde::ser::SerializeStruct;
3565 match self {
3566 FeatureValue::UploadApiRateLimit(x) => {
3567 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3569 s.serialize_field(".tag", "upload_api_rate_limit")?;
3570 s.serialize_field("upload_api_rate_limit", x)?;
3571 s.end()
3572 }
3573 FeatureValue::HasTeamSharedDropbox(x) => {
3574 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3576 s.serialize_field(".tag", "has_team_shared_dropbox")?;
3577 s.serialize_field("has_team_shared_dropbox", x)?;
3578 s.end()
3579 }
3580 FeatureValue::HasTeamFileEvents(x) => {
3581 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3583 s.serialize_field(".tag", "has_team_file_events")?;
3584 s.serialize_field("has_team_file_events", x)?;
3585 s.end()
3586 }
3587 FeatureValue::HasTeamSelectiveSync(x) => {
3588 let mut s = serializer.serialize_struct("FeatureValue", 2)?;
3590 s.serialize_field(".tag", "has_team_selective_sync")?;
3591 s.serialize_field("has_team_selective_sync", x)?;
3592 s.end()
3593 }
3594 FeatureValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3595 }
3596 }
3597}
3598
3599#[derive(Debug, Clone, PartialEq, Eq)]
3600#[non_exhaustive] pub struct FeaturesGetValuesBatchArg {
3602 pub features: Vec<Feature>,
3605}
3606
3607impl FeaturesGetValuesBatchArg {
3608 pub fn new(features: Vec<Feature>) -> Self {
3609 FeaturesGetValuesBatchArg {
3610 features,
3611 }
3612 }
3613}
3614
3615const FEATURES_GET_VALUES_BATCH_ARG_FIELDS: &[&str] = &["features"];
3616impl FeaturesGetValuesBatchArg {
3617 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3618 map: V,
3619 ) -> Result<FeaturesGetValuesBatchArg, V::Error> {
3620 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3621 }
3622
3623 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3624 mut map: V,
3625 optional: bool,
3626 ) -> Result<Option<FeaturesGetValuesBatchArg>, V::Error> {
3627 let mut field_features = None;
3628 let mut nothing = true;
3629 while let Some(key) = map.next_key::<&str>()? {
3630 nothing = false;
3631 match key {
3632 "features" => {
3633 if field_features.is_some() {
3634 return Err(::serde::de::Error::duplicate_field("features"));
3635 }
3636 field_features = Some(map.next_value()?);
3637 }
3638 _ => {
3639 map.next_value::<::serde_json::Value>()?;
3641 }
3642 }
3643 }
3644 if optional && nothing {
3645 return Ok(None);
3646 }
3647 let result = FeaturesGetValuesBatchArg {
3648 features: field_features.ok_or_else(|| ::serde::de::Error::missing_field("features"))?,
3649 };
3650 Ok(Some(result))
3651 }
3652
3653 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3654 &self,
3655 s: &mut S::SerializeStruct,
3656 ) -> Result<(), S::Error> {
3657 use serde::ser::SerializeStruct;
3658 s.serialize_field("features", &self.features)?;
3659 Ok(())
3660 }
3661}
3662
3663impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchArg {
3664 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3665 use serde::de::{MapAccess, Visitor};
3667 struct StructVisitor;
3668 impl<'de> Visitor<'de> for StructVisitor {
3669 type Value = FeaturesGetValuesBatchArg;
3670 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3671 f.write_str("a FeaturesGetValuesBatchArg struct")
3672 }
3673 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3674 FeaturesGetValuesBatchArg::internal_deserialize(map)
3675 }
3676 }
3677 deserializer.deserialize_struct("FeaturesGetValuesBatchArg", FEATURES_GET_VALUES_BATCH_ARG_FIELDS, StructVisitor)
3678 }
3679}
3680
3681impl ::serde::ser::Serialize for FeaturesGetValuesBatchArg {
3682 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3683 use serde::ser::SerializeStruct;
3685 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchArg", 1)?;
3686 self.internal_serialize::<S>(&mut s)?;
3687 s.end()
3688 }
3689}
3690
3691#[derive(Debug, Clone, PartialEq, Eq)]
3692#[non_exhaustive] pub enum FeaturesGetValuesBatchError {
3694 EmptyFeaturesList,
3697 Other,
3700}
3701
3702impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchError {
3703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3704 use serde::de::{self, MapAccess, Visitor};
3706 struct EnumVisitor;
3707 impl<'de> Visitor<'de> for EnumVisitor {
3708 type Value = FeaturesGetValuesBatchError;
3709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3710 f.write_str("a FeaturesGetValuesBatchError structure")
3711 }
3712 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3713 let tag: &str = match map.next_key()? {
3714 Some(".tag") => map.next_value()?,
3715 _ => return Err(de::Error::missing_field(".tag"))
3716 };
3717 let value = match tag {
3718 "empty_features_list" => FeaturesGetValuesBatchError::EmptyFeaturesList,
3719 _ => FeaturesGetValuesBatchError::Other,
3720 };
3721 crate::eat_json_fields(&mut map)?;
3722 Ok(value)
3723 }
3724 }
3725 const VARIANTS: &[&str] = &["empty_features_list",
3726 "other"];
3727 deserializer.deserialize_struct("FeaturesGetValuesBatchError", VARIANTS, EnumVisitor)
3728 }
3729}
3730
3731impl ::serde::ser::Serialize for FeaturesGetValuesBatchError {
3732 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3733 use serde::ser::SerializeStruct;
3735 match self {
3736 FeaturesGetValuesBatchError::EmptyFeaturesList => {
3737 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchError", 1)?;
3739 s.serialize_field(".tag", "empty_features_list")?;
3740 s.end()
3741 }
3742 FeaturesGetValuesBatchError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3743 }
3744 }
3745}
3746
3747impl ::std::error::Error for FeaturesGetValuesBatchError {
3748}
3749
3750impl ::std::fmt::Display for FeaturesGetValuesBatchError {
3751 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3752 write!(f, "{:?}", *self)
3753 }
3754}
3755
3756#[derive(Debug, Clone, PartialEq, Eq)]
3757#[non_exhaustive] pub struct FeaturesGetValuesBatchResult {
3759 pub values: Vec<FeatureValue>,
3760}
3761
3762impl FeaturesGetValuesBatchResult {
3763 pub fn new(values: Vec<FeatureValue>) -> Self {
3764 FeaturesGetValuesBatchResult {
3765 values,
3766 }
3767 }
3768}
3769
3770const FEATURES_GET_VALUES_BATCH_RESULT_FIELDS: &[&str] = &["values"];
3771impl FeaturesGetValuesBatchResult {
3772 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3773 map: V,
3774 ) -> Result<FeaturesGetValuesBatchResult, V::Error> {
3775 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3776 }
3777
3778 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3779 mut map: V,
3780 optional: bool,
3781 ) -> Result<Option<FeaturesGetValuesBatchResult>, V::Error> {
3782 let mut field_values = None;
3783 let mut nothing = true;
3784 while let Some(key) = map.next_key::<&str>()? {
3785 nothing = false;
3786 match key {
3787 "values" => {
3788 if field_values.is_some() {
3789 return Err(::serde::de::Error::duplicate_field("values"));
3790 }
3791 field_values = Some(map.next_value()?);
3792 }
3793 _ => {
3794 map.next_value::<::serde_json::Value>()?;
3796 }
3797 }
3798 }
3799 if optional && nothing {
3800 return Ok(None);
3801 }
3802 let result = FeaturesGetValuesBatchResult {
3803 values: field_values.ok_or_else(|| ::serde::de::Error::missing_field("values"))?,
3804 };
3805 Ok(Some(result))
3806 }
3807
3808 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3809 &self,
3810 s: &mut S::SerializeStruct,
3811 ) -> Result<(), S::Error> {
3812 use serde::ser::SerializeStruct;
3813 s.serialize_field("values", &self.values)?;
3814 Ok(())
3815 }
3816}
3817
3818impl<'de> ::serde::de::Deserialize<'de> for FeaturesGetValuesBatchResult {
3819 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3820 use serde::de::{MapAccess, Visitor};
3822 struct StructVisitor;
3823 impl<'de> Visitor<'de> for StructVisitor {
3824 type Value = FeaturesGetValuesBatchResult;
3825 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3826 f.write_str("a FeaturesGetValuesBatchResult struct")
3827 }
3828 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3829 FeaturesGetValuesBatchResult::internal_deserialize(map)
3830 }
3831 }
3832 deserializer.deserialize_struct("FeaturesGetValuesBatchResult", FEATURES_GET_VALUES_BATCH_RESULT_FIELDS, StructVisitor)
3833 }
3834}
3835
3836impl ::serde::ser::Serialize for FeaturesGetValuesBatchResult {
3837 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3838 use serde::ser::SerializeStruct;
3840 let mut s = serializer.serialize_struct("FeaturesGetValuesBatchResult", 1)?;
3841 self.internal_serialize::<S>(&mut s)?;
3842 s.end()
3843 }
3844}
3845
3846#[derive(Debug, Clone, PartialEq, Eq)]
3849#[non_exhaustive] pub struct GetActivityReport {
3851 pub start_date: String,
3853 pub adds: NumberPerDay,
3855 pub edits: NumberPerDay,
3858 pub deletes: NumberPerDay,
3860 pub active_users_28_day: NumberPerDay,
3862 pub active_users_7_day: NumberPerDay,
3864 pub active_users_1_day: NumberPerDay,
3866 pub active_shared_folders_28_day: NumberPerDay,
3868 pub active_shared_folders_7_day: NumberPerDay,
3870 pub active_shared_folders_1_day: NumberPerDay,
3872 pub shared_links_created: NumberPerDay,
3874 pub shared_links_viewed_by_team: NumberPerDay,
3876 pub shared_links_viewed_by_outside_user: NumberPerDay,
3879 pub shared_links_viewed_by_not_logged_in: NumberPerDay,
3881 pub shared_links_viewed_total: NumberPerDay,
3883}
3884
3885impl GetActivityReport {
3886 pub fn new(
3887 start_date: String,
3888 adds: NumberPerDay,
3889 edits: NumberPerDay,
3890 deletes: NumberPerDay,
3891 active_users_28_day: NumberPerDay,
3892 active_users_7_day: NumberPerDay,
3893 active_users_1_day: NumberPerDay,
3894 active_shared_folders_28_day: NumberPerDay,
3895 active_shared_folders_7_day: NumberPerDay,
3896 active_shared_folders_1_day: NumberPerDay,
3897 shared_links_created: NumberPerDay,
3898 shared_links_viewed_by_team: NumberPerDay,
3899 shared_links_viewed_by_outside_user: NumberPerDay,
3900 shared_links_viewed_by_not_logged_in: NumberPerDay,
3901 shared_links_viewed_total: NumberPerDay,
3902 ) -> Self {
3903 GetActivityReport {
3904 start_date,
3905 adds,
3906 edits,
3907 deletes,
3908 active_users_28_day,
3909 active_users_7_day,
3910 active_users_1_day,
3911 active_shared_folders_28_day,
3912 active_shared_folders_7_day,
3913 active_shared_folders_1_day,
3914 shared_links_created,
3915 shared_links_viewed_by_team,
3916 shared_links_viewed_by_outside_user,
3917 shared_links_viewed_by_not_logged_in,
3918 shared_links_viewed_total,
3919 }
3920 }
3921}
3922
3923const GET_ACTIVITY_REPORT_FIELDS: &[&str] = &["start_date",
3924 "adds",
3925 "edits",
3926 "deletes",
3927 "active_users_28_day",
3928 "active_users_7_day",
3929 "active_users_1_day",
3930 "active_shared_folders_28_day",
3931 "active_shared_folders_7_day",
3932 "active_shared_folders_1_day",
3933 "shared_links_created",
3934 "shared_links_viewed_by_team",
3935 "shared_links_viewed_by_outside_user",
3936 "shared_links_viewed_by_not_logged_in",
3937 "shared_links_viewed_total"];
3938impl GetActivityReport {
3939 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3940 map: V,
3941 ) -> Result<GetActivityReport, V::Error> {
3942 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3943 }
3944
3945 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3946 mut map: V,
3947 optional: bool,
3948 ) -> Result<Option<GetActivityReport>, V::Error> {
3949 let mut field_start_date = None;
3950 let mut field_adds = None;
3951 let mut field_edits = None;
3952 let mut field_deletes = None;
3953 let mut field_active_users_28_day = None;
3954 let mut field_active_users_7_day = None;
3955 let mut field_active_users_1_day = None;
3956 let mut field_active_shared_folders_28_day = None;
3957 let mut field_active_shared_folders_7_day = None;
3958 let mut field_active_shared_folders_1_day = None;
3959 let mut field_shared_links_created = None;
3960 let mut field_shared_links_viewed_by_team = None;
3961 let mut field_shared_links_viewed_by_outside_user = None;
3962 let mut field_shared_links_viewed_by_not_logged_in = None;
3963 let mut field_shared_links_viewed_total = None;
3964 let mut nothing = true;
3965 while let Some(key) = map.next_key::<&str>()? {
3966 nothing = false;
3967 match key {
3968 "start_date" => {
3969 if field_start_date.is_some() {
3970 return Err(::serde::de::Error::duplicate_field("start_date"));
3971 }
3972 field_start_date = Some(map.next_value()?);
3973 }
3974 "adds" => {
3975 if field_adds.is_some() {
3976 return Err(::serde::de::Error::duplicate_field("adds"));
3977 }
3978 field_adds = Some(map.next_value()?);
3979 }
3980 "edits" => {
3981 if field_edits.is_some() {
3982 return Err(::serde::de::Error::duplicate_field("edits"));
3983 }
3984 field_edits = Some(map.next_value()?);
3985 }
3986 "deletes" => {
3987 if field_deletes.is_some() {
3988 return Err(::serde::de::Error::duplicate_field("deletes"));
3989 }
3990 field_deletes = Some(map.next_value()?);
3991 }
3992 "active_users_28_day" => {
3993 if field_active_users_28_day.is_some() {
3994 return Err(::serde::de::Error::duplicate_field("active_users_28_day"));
3995 }
3996 field_active_users_28_day = Some(map.next_value()?);
3997 }
3998 "active_users_7_day" => {
3999 if field_active_users_7_day.is_some() {
4000 return Err(::serde::de::Error::duplicate_field("active_users_7_day"));
4001 }
4002 field_active_users_7_day = Some(map.next_value()?);
4003 }
4004 "active_users_1_day" => {
4005 if field_active_users_1_day.is_some() {
4006 return Err(::serde::de::Error::duplicate_field("active_users_1_day"));
4007 }
4008 field_active_users_1_day = Some(map.next_value()?);
4009 }
4010 "active_shared_folders_28_day" => {
4011 if field_active_shared_folders_28_day.is_some() {
4012 return Err(::serde::de::Error::duplicate_field("active_shared_folders_28_day"));
4013 }
4014 field_active_shared_folders_28_day = Some(map.next_value()?);
4015 }
4016 "active_shared_folders_7_day" => {
4017 if field_active_shared_folders_7_day.is_some() {
4018 return Err(::serde::de::Error::duplicate_field("active_shared_folders_7_day"));
4019 }
4020 field_active_shared_folders_7_day = Some(map.next_value()?);
4021 }
4022 "active_shared_folders_1_day" => {
4023 if field_active_shared_folders_1_day.is_some() {
4024 return Err(::serde::de::Error::duplicate_field("active_shared_folders_1_day"));
4025 }
4026 field_active_shared_folders_1_day = Some(map.next_value()?);
4027 }
4028 "shared_links_created" => {
4029 if field_shared_links_created.is_some() {
4030 return Err(::serde::de::Error::duplicate_field("shared_links_created"));
4031 }
4032 field_shared_links_created = Some(map.next_value()?);
4033 }
4034 "shared_links_viewed_by_team" => {
4035 if field_shared_links_viewed_by_team.is_some() {
4036 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_team"));
4037 }
4038 field_shared_links_viewed_by_team = Some(map.next_value()?);
4039 }
4040 "shared_links_viewed_by_outside_user" => {
4041 if field_shared_links_viewed_by_outside_user.is_some() {
4042 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_outside_user"));
4043 }
4044 field_shared_links_viewed_by_outside_user = Some(map.next_value()?);
4045 }
4046 "shared_links_viewed_by_not_logged_in" => {
4047 if field_shared_links_viewed_by_not_logged_in.is_some() {
4048 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_by_not_logged_in"));
4049 }
4050 field_shared_links_viewed_by_not_logged_in = Some(map.next_value()?);
4051 }
4052 "shared_links_viewed_total" => {
4053 if field_shared_links_viewed_total.is_some() {
4054 return Err(::serde::de::Error::duplicate_field("shared_links_viewed_total"));
4055 }
4056 field_shared_links_viewed_total = Some(map.next_value()?);
4057 }
4058 _ => {
4059 map.next_value::<::serde_json::Value>()?;
4061 }
4062 }
4063 }
4064 if optional && nothing {
4065 return Ok(None);
4066 }
4067 let result = GetActivityReport {
4068 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4069 adds: field_adds.ok_or_else(|| ::serde::de::Error::missing_field("adds"))?,
4070 edits: field_edits.ok_or_else(|| ::serde::de::Error::missing_field("edits"))?,
4071 deletes: field_deletes.ok_or_else(|| ::serde::de::Error::missing_field("deletes"))?,
4072 active_users_28_day: field_active_users_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_28_day"))?,
4073 active_users_7_day: field_active_users_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_7_day"))?,
4074 active_users_1_day: field_active_users_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_users_1_day"))?,
4075 active_shared_folders_28_day: field_active_shared_folders_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_28_day"))?,
4076 active_shared_folders_7_day: field_active_shared_folders_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_7_day"))?,
4077 active_shared_folders_1_day: field_active_shared_folders_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_shared_folders_1_day"))?,
4078 shared_links_created: field_shared_links_created.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_created"))?,
4079 shared_links_viewed_by_team: field_shared_links_viewed_by_team.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_by_team"))?,
4080 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"))?,
4081 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"))?,
4082 shared_links_viewed_total: field_shared_links_viewed_total.ok_or_else(|| ::serde::de::Error::missing_field("shared_links_viewed_total"))?,
4083 };
4084 Ok(Some(result))
4085 }
4086
4087 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4088 &self,
4089 s: &mut S::SerializeStruct,
4090 ) -> Result<(), S::Error> {
4091 use serde::ser::SerializeStruct;
4092 s.serialize_field("start_date", &self.start_date)?;
4093 s.serialize_field("adds", &self.adds)?;
4094 s.serialize_field("edits", &self.edits)?;
4095 s.serialize_field("deletes", &self.deletes)?;
4096 s.serialize_field("active_users_28_day", &self.active_users_28_day)?;
4097 s.serialize_field("active_users_7_day", &self.active_users_7_day)?;
4098 s.serialize_field("active_users_1_day", &self.active_users_1_day)?;
4099 s.serialize_field("active_shared_folders_28_day", &self.active_shared_folders_28_day)?;
4100 s.serialize_field("active_shared_folders_7_day", &self.active_shared_folders_7_day)?;
4101 s.serialize_field("active_shared_folders_1_day", &self.active_shared_folders_1_day)?;
4102 s.serialize_field("shared_links_created", &self.shared_links_created)?;
4103 s.serialize_field("shared_links_viewed_by_team", &self.shared_links_viewed_by_team)?;
4104 s.serialize_field("shared_links_viewed_by_outside_user", &self.shared_links_viewed_by_outside_user)?;
4105 s.serialize_field("shared_links_viewed_by_not_logged_in", &self.shared_links_viewed_by_not_logged_in)?;
4106 s.serialize_field("shared_links_viewed_total", &self.shared_links_viewed_total)?;
4107 Ok(())
4108 }
4109}
4110
4111impl<'de> ::serde::de::Deserialize<'de> for GetActivityReport {
4112 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4113 use serde::de::{MapAccess, Visitor};
4115 struct StructVisitor;
4116 impl<'de> Visitor<'de> for StructVisitor {
4117 type Value = GetActivityReport;
4118 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4119 f.write_str("a GetActivityReport struct")
4120 }
4121 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4122 GetActivityReport::internal_deserialize(map)
4123 }
4124 }
4125 deserializer.deserialize_struct("GetActivityReport", GET_ACTIVITY_REPORT_FIELDS, StructVisitor)
4126 }
4127}
4128
4129impl ::serde::ser::Serialize for GetActivityReport {
4130 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4131 use serde::ser::SerializeStruct;
4133 let mut s = serializer.serialize_struct("GetActivityReport", 15)?;
4134 self.internal_serialize::<S>(&mut s)?;
4135 s.end()
4136 }
4137}
4138
4139impl From<GetActivityReport> for BaseDfbReport {
4141 fn from(subtype: GetActivityReport) -> Self {
4142 Self {
4143 start_date: subtype.start_date,
4144 }
4145 }
4146}
4147#[derive(Debug, Clone, PartialEq, Eq)]
4151#[non_exhaustive] pub struct GetDevicesReport {
4153 pub start_date: String,
4155 pub active_1_day: DevicesActive,
4157 pub active_7_day: DevicesActive,
4159 pub active_28_day: DevicesActive,
4161}
4162
4163impl GetDevicesReport {
4164 pub fn new(
4165 start_date: String,
4166 active_1_day: DevicesActive,
4167 active_7_day: DevicesActive,
4168 active_28_day: DevicesActive,
4169 ) -> Self {
4170 GetDevicesReport {
4171 start_date,
4172 active_1_day,
4173 active_7_day,
4174 active_28_day,
4175 }
4176 }
4177}
4178
4179const GET_DEVICES_REPORT_FIELDS: &[&str] = &["start_date",
4180 "active_1_day",
4181 "active_7_day",
4182 "active_28_day"];
4183impl GetDevicesReport {
4184 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4185 map: V,
4186 ) -> Result<GetDevicesReport, V::Error> {
4187 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4188 }
4189
4190 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4191 mut map: V,
4192 optional: bool,
4193 ) -> Result<Option<GetDevicesReport>, V::Error> {
4194 let mut field_start_date = None;
4195 let mut field_active_1_day = None;
4196 let mut field_active_7_day = None;
4197 let mut field_active_28_day = None;
4198 let mut nothing = true;
4199 while let Some(key) = map.next_key::<&str>()? {
4200 nothing = false;
4201 match key {
4202 "start_date" => {
4203 if field_start_date.is_some() {
4204 return Err(::serde::de::Error::duplicate_field("start_date"));
4205 }
4206 field_start_date = Some(map.next_value()?);
4207 }
4208 "active_1_day" => {
4209 if field_active_1_day.is_some() {
4210 return Err(::serde::de::Error::duplicate_field("active_1_day"));
4211 }
4212 field_active_1_day = Some(map.next_value()?);
4213 }
4214 "active_7_day" => {
4215 if field_active_7_day.is_some() {
4216 return Err(::serde::de::Error::duplicate_field("active_7_day"));
4217 }
4218 field_active_7_day = Some(map.next_value()?);
4219 }
4220 "active_28_day" => {
4221 if field_active_28_day.is_some() {
4222 return Err(::serde::de::Error::duplicate_field("active_28_day"));
4223 }
4224 field_active_28_day = Some(map.next_value()?);
4225 }
4226 _ => {
4227 map.next_value::<::serde_json::Value>()?;
4229 }
4230 }
4231 }
4232 if optional && nothing {
4233 return Ok(None);
4234 }
4235 let result = GetDevicesReport {
4236 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4237 active_1_day: field_active_1_day.ok_or_else(|| ::serde::de::Error::missing_field("active_1_day"))?,
4238 active_7_day: field_active_7_day.ok_or_else(|| ::serde::de::Error::missing_field("active_7_day"))?,
4239 active_28_day: field_active_28_day.ok_or_else(|| ::serde::de::Error::missing_field("active_28_day"))?,
4240 };
4241 Ok(Some(result))
4242 }
4243
4244 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4245 &self,
4246 s: &mut S::SerializeStruct,
4247 ) -> Result<(), S::Error> {
4248 use serde::ser::SerializeStruct;
4249 s.serialize_field("start_date", &self.start_date)?;
4250 s.serialize_field("active_1_day", &self.active_1_day)?;
4251 s.serialize_field("active_7_day", &self.active_7_day)?;
4252 s.serialize_field("active_28_day", &self.active_28_day)?;
4253 Ok(())
4254 }
4255}
4256
4257impl<'de> ::serde::de::Deserialize<'de> for GetDevicesReport {
4258 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4259 use serde::de::{MapAccess, Visitor};
4261 struct StructVisitor;
4262 impl<'de> Visitor<'de> for StructVisitor {
4263 type Value = GetDevicesReport;
4264 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4265 f.write_str("a GetDevicesReport struct")
4266 }
4267 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4268 GetDevicesReport::internal_deserialize(map)
4269 }
4270 }
4271 deserializer.deserialize_struct("GetDevicesReport", GET_DEVICES_REPORT_FIELDS, StructVisitor)
4272 }
4273}
4274
4275impl ::serde::ser::Serialize for GetDevicesReport {
4276 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4277 use serde::ser::SerializeStruct;
4279 let mut s = serializer.serialize_struct("GetDevicesReport", 4)?;
4280 self.internal_serialize::<S>(&mut s)?;
4281 s.end()
4282 }
4283}
4284
4285impl From<GetDevicesReport> for BaseDfbReport {
4287 fn from(subtype: GetDevicesReport) -> Self {
4288 Self {
4289 start_date: subtype.start_date,
4290 }
4291 }
4292}
4293#[derive(Debug, Clone, PartialEq, Eq)]
4296#[non_exhaustive] pub struct GetMembershipReport {
4298 pub start_date: String,
4300 pub team_size: NumberPerDay,
4302 pub pending_invites: NumberPerDay,
4304 pub members_joined: NumberPerDay,
4306 pub suspended_members: NumberPerDay,
4308 pub licenses: NumberPerDay,
4310}
4311
4312impl GetMembershipReport {
4313 pub fn new(
4314 start_date: String,
4315 team_size: NumberPerDay,
4316 pending_invites: NumberPerDay,
4317 members_joined: NumberPerDay,
4318 suspended_members: NumberPerDay,
4319 licenses: NumberPerDay,
4320 ) -> Self {
4321 GetMembershipReport {
4322 start_date,
4323 team_size,
4324 pending_invites,
4325 members_joined,
4326 suspended_members,
4327 licenses,
4328 }
4329 }
4330}
4331
4332const GET_MEMBERSHIP_REPORT_FIELDS: &[&str] = &["start_date",
4333 "team_size",
4334 "pending_invites",
4335 "members_joined",
4336 "suspended_members",
4337 "licenses"];
4338impl GetMembershipReport {
4339 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4340 map: V,
4341 ) -> Result<GetMembershipReport, V::Error> {
4342 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4343 }
4344
4345 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4346 mut map: V,
4347 optional: bool,
4348 ) -> Result<Option<GetMembershipReport>, V::Error> {
4349 let mut field_start_date = None;
4350 let mut field_team_size = None;
4351 let mut field_pending_invites = None;
4352 let mut field_members_joined = None;
4353 let mut field_suspended_members = None;
4354 let mut field_licenses = None;
4355 let mut nothing = true;
4356 while let Some(key) = map.next_key::<&str>()? {
4357 nothing = false;
4358 match key {
4359 "start_date" => {
4360 if field_start_date.is_some() {
4361 return Err(::serde::de::Error::duplicate_field("start_date"));
4362 }
4363 field_start_date = Some(map.next_value()?);
4364 }
4365 "team_size" => {
4366 if field_team_size.is_some() {
4367 return Err(::serde::de::Error::duplicate_field("team_size"));
4368 }
4369 field_team_size = Some(map.next_value()?);
4370 }
4371 "pending_invites" => {
4372 if field_pending_invites.is_some() {
4373 return Err(::serde::de::Error::duplicate_field("pending_invites"));
4374 }
4375 field_pending_invites = Some(map.next_value()?);
4376 }
4377 "members_joined" => {
4378 if field_members_joined.is_some() {
4379 return Err(::serde::de::Error::duplicate_field("members_joined"));
4380 }
4381 field_members_joined = Some(map.next_value()?);
4382 }
4383 "suspended_members" => {
4384 if field_suspended_members.is_some() {
4385 return Err(::serde::de::Error::duplicate_field("suspended_members"));
4386 }
4387 field_suspended_members = Some(map.next_value()?);
4388 }
4389 "licenses" => {
4390 if field_licenses.is_some() {
4391 return Err(::serde::de::Error::duplicate_field("licenses"));
4392 }
4393 field_licenses = Some(map.next_value()?);
4394 }
4395 _ => {
4396 map.next_value::<::serde_json::Value>()?;
4398 }
4399 }
4400 }
4401 if optional && nothing {
4402 return Ok(None);
4403 }
4404 let result = GetMembershipReport {
4405 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4406 team_size: field_team_size.ok_or_else(|| ::serde::de::Error::missing_field("team_size"))?,
4407 pending_invites: field_pending_invites.ok_or_else(|| ::serde::de::Error::missing_field("pending_invites"))?,
4408 members_joined: field_members_joined.ok_or_else(|| ::serde::de::Error::missing_field("members_joined"))?,
4409 suspended_members: field_suspended_members.ok_or_else(|| ::serde::de::Error::missing_field("suspended_members"))?,
4410 licenses: field_licenses.ok_or_else(|| ::serde::de::Error::missing_field("licenses"))?,
4411 };
4412 Ok(Some(result))
4413 }
4414
4415 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4416 &self,
4417 s: &mut S::SerializeStruct,
4418 ) -> Result<(), S::Error> {
4419 use serde::ser::SerializeStruct;
4420 s.serialize_field("start_date", &self.start_date)?;
4421 s.serialize_field("team_size", &self.team_size)?;
4422 s.serialize_field("pending_invites", &self.pending_invites)?;
4423 s.serialize_field("members_joined", &self.members_joined)?;
4424 s.serialize_field("suspended_members", &self.suspended_members)?;
4425 s.serialize_field("licenses", &self.licenses)?;
4426 Ok(())
4427 }
4428}
4429
4430impl<'de> ::serde::de::Deserialize<'de> for GetMembershipReport {
4431 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4432 use serde::de::{MapAccess, Visitor};
4434 struct StructVisitor;
4435 impl<'de> Visitor<'de> for StructVisitor {
4436 type Value = GetMembershipReport;
4437 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4438 f.write_str("a GetMembershipReport struct")
4439 }
4440 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4441 GetMembershipReport::internal_deserialize(map)
4442 }
4443 }
4444 deserializer.deserialize_struct("GetMembershipReport", GET_MEMBERSHIP_REPORT_FIELDS, StructVisitor)
4445 }
4446}
4447
4448impl ::serde::ser::Serialize for GetMembershipReport {
4449 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4450 use serde::ser::SerializeStruct;
4452 let mut s = serializer.serialize_struct("GetMembershipReport", 6)?;
4453 self.internal_serialize::<S>(&mut s)?;
4454 s.end()
4455 }
4456}
4457
4458impl From<GetMembershipReport> for BaseDfbReport {
4460 fn from(subtype: GetMembershipReport) -> Self {
4461 Self {
4462 start_date: subtype.start_date,
4463 }
4464 }
4465}
4466#[derive(Debug, Clone, PartialEq, Eq)]
4469#[non_exhaustive] pub struct GetStorageReport {
4471 pub start_date: String,
4473 pub total_usage: NumberPerDay,
4475 pub shared_usage: NumberPerDay,
4477 pub unshared_usage: NumberPerDay,
4479 pub shared_folders: NumberPerDay,
4481 pub member_storage_map: Vec<Vec<StorageBucket>>,
4486}
4487
4488impl GetStorageReport {
4489 pub fn new(
4490 start_date: String,
4491 total_usage: NumberPerDay,
4492 shared_usage: NumberPerDay,
4493 unshared_usage: NumberPerDay,
4494 shared_folders: NumberPerDay,
4495 member_storage_map: Vec<Vec<StorageBucket>>,
4496 ) -> Self {
4497 GetStorageReport {
4498 start_date,
4499 total_usage,
4500 shared_usage,
4501 unshared_usage,
4502 shared_folders,
4503 member_storage_map,
4504 }
4505 }
4506}
4507
4508const GET_STORAGE_REPORT_FIELDS: &[&str] = &["start_date",
4509 "total_usage",
4510 "shared_usage",
4511 "unshared_usage",
4512 "shared_folders",
4513 "member_storage_map"];
4514impl GetStorageReport {
4515 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4516 map: V,
4517 ) -> Result<GetStorageReport, V::Error> {
4518 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4519 }
4520
4521 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4522 mut map: V,
4523 optional: bool,
4524 ) -> Result<Option<GetStorageReport>, V::Error> {
4525 let mut field_start_date = None;
4526 let mut field_total_usage = None;
4527 let mut field_shared_usage = None;
4528 let mut field_unshared_usage = None;
4529 let mut field_shared_folders = None;
4530 let mut field_member_storage_map = None;
4531 let mut nothing = true;
4532 while let Some(key) = map.next_key::<&str>()? {
4533 nothing = false;
4534 match key {
4535 "start_date" => {
4536 if field_start_date.is_some() {
4537 return Err(::serde::de::Error::duplicate_field("start_date"));
4538 }
4539 field_start_date = Some(map.next_value()?);
4540 }
4541 "total_usage" => {
4542 if field_total_usage.is_some() {
4543 return Err(::serde::de::Error::duplicate_field("total_usage"));
4544 }
4545 field_total_usage = Some(map.next_value()?);
4546 }
4547 "shared_usage" => {
4548 if field_shared_usage.is_some() {
4549 return Err(::serde::de::Error::duplicate_field("shared_usage"));
4550 }
4551 field_shared_usage = Some(map.next_value()?);
4552 }
4553 "unshared_usage" => {
4554 if field_unshared_usage.is_some() {
4555 return Err(::serde::de::Error::duplicate_field("unshared_usage"));
4556 }
4557 field_unshared_usage = Some(map.next_value()?);
4558 }
4559 "shared_folders" => {
4560 if field_shared_folders.is_some() {
4561 return Err(::serde::de::Error::duplicate_field("shared_folders"));
4562 }
4563 field_shared_folders = Some(map.next_value()?);
4564 }
4565 "member_storage_map" => {
4566 if field_member_storage_map.is_some() {
4567 return Err(::serde::de::Error::duplicate_field("member_storage_map"));
4568 }
4569 field_member_storage_map = Some(map.next_value()?);
4570 }
4571 _ => {
4572 map.next_value::<::serde_json::Value>()?;
4574 }
4575 }
4576 }
4577 if optional && nothing {
4578 return Ok(None);
4579 }
4580 let result = GetStorageReport {
4581 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
4582 total_usage: field_total_usage.ok_or_else(|| ::serde::de::Error::missing_field("total_usage"))?,
4583 shared_usage: field_shared_usage.ok_or_else(|| ::serde::de::Error::missing_field("shared_usage"))?,
4584 unshared_usage: field_unshared_usage.ok_or_else(|| ::serde::de::Error::missing_field("unshared_usage"))?,
4585 shared_folders: field_shared_folders.ok_or_else(|| ::serde::de::Error::missing_field("shared_folders"))?,
4586 member_storage_map: field_member_storage_map.ok_or_else(|| ::serde::de::Error::missing_field("member_storage_map"))?,
4587 };
4588 Ok(Some(result))
4589 }
4590
4591 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4592 &self,
4593 s: &mut S::SerializeStruct,
4594 ) -> Result<(), S::Error> {
4595 use serde::ser::SerializeStruct;
4596 s.serialize_field("start_date", &self.start_date)?;
4597 s.serialize_field("total_usage", &self.total_usage)?;
4598 s.serialize_field("shared_usage", &self.shared_usage)?;
4599 s.serialize_field("unshared_usage", &self.unshared_usage)?;
4600 s.serialize_field("shared_folders", &self.shared_folders)?;
4601 s.serialize_field("member_storage_map", &self.member_storage_map)?;
4602 Ok(())
4603 }
4604}
4605
4606impl<'de> ::serde::de::Deserialize<'de> for GetStorageReport {
4607 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4608 use serde::de::{MapAccess, Visitor};
4610 struct StructVisitor;
4611 impl<'de> Visitor<'de> for StructVisitor {
4612 type Value = GetStorageReport;
4613 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4614 f.write_str("a GetStorageReport struct")
4615 }
4616 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4617 GetStorageReport::internal_deserialize(map)
4618 }
4619 }
4620 deserializer.deserialize_struct("GetStorageReport", GET_STORAGE_REPORT_FIELDS, StructVisitor)
4621 }
4622}
4623
4624impl ::serde::ser::Serialize for GetStorageReport {
4625 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4626 use serde::ser::SerializeStruct;
4628 let mut s = serializer.serialize_struct("GetStorageReport", 6)?;
4629 self.internal_serialize::<S>(&mut s)?;
4630 s.end()
4631 }
4632}
4633
4634impl From<GetStorageReport> for BaseDfbReport {
4636 fn from(subtype: GetStorageReport) -> Self {
4637 Self {
4638 start_date: subtype.start_date,
4639 }
4640 }
4641}
4642#[derive(Debug, Clone, PartialEq, Eq)]
4644pub enum GroupAccessType {
4645 Member,
4647 Owner,
4649}
4650
4651impl<'de> ::serde::de::Deserialize<'de> for GroupAccessType {
4652 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4653 use serde::de::{self, MapAccess, Visitor};
4655 struct EnumVisitor;
4656 impl<'de> Visitor<'de> for EnumVisitor {
4657 type Value = GroupAccessType;
4658 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4659 f.write_str("a GroupAccessType structure")
4660 }
4661 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4662 let tag: &str = match map.next_key()? {
4663 Some(".tag") => map.next_value()?,
4664 _ => return Err(de::Error::missing_field(".tag"))
4665 };
4666 let value = match tag {
4667 "member" => GroupAccessType::Member,
4668 "owner" => GroupAccessType::Owner,
4669 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
4670 };
4671 crate::eat_json_fields(&mut map)?;
4672 Ok(value)
4673 }
4674 }
4675 const VARIANTS: &[&str] = &["member",
4676 "owner"];
4677 deserializer.deserialize_struct("GroupAccessType", VARIANTS, EnumVisitor)
4678 }
4679}
4680
4681impl ::serde::ser::Serialize for GroupAccessType {
4682 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4683 use serde::ser::SerializeStruct;
4685 match self {
4686 GroupAccessType::Member => {
4687 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
4689 s.serialize_field(".tag", "member")?;
4690 s.end()
4691 }
4692 GroupAccessType::Owner => {
4693 let mut s = serializer.serialize_struct("GroupAccessType", 1)?;
4695 s.serialize_field(".tag", "owner")?;
4696 s.end()
4697 }
4698 }
4699 }
4700}
4701
4702#[derive(Debug, Clone, PartialEq, Eq)]
4703#[non_exhaustive] pub struct GroupCreateArg {
4705 pub group_name: String,
4707 pub add_creator_as_owner: bool,
4709 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
4711 pub group_management_type: Option<crate::types::team_common::GroupManagementType>,
4713}
4714
4715impl GroupCreateArg {
4716 pub fn new(group_name: String) -> Self {
4717 GroupCreateArg {
4718 group_name,
4719 add_creator_as_owner: false,
4720 group_external_id: None,
4721 group_management_type: None,
4722 }
4723 }
4724
4725 pub fn with_add_creator_as_owner(mut self, value: bool) -> Self {
4726 self.add_creator_as_owner = value;
4727 self
4728 }
4729
4730 pub fn with_group_external_id(
4731 mut self,
4732 value: crate::types::team_common::GroupExternalId,
4733 ) -> Self {
4734 self.group_external_id = Some(value);
4735 self
4736 }
4737
4738 pub fn with_group_management_type(
4739 mut self,
4740 value: crate::types::team_common::GroupManagementType,
4741 ) -> Self {
4742 self.group_management_type = Some(value);
4743 self
4744 }
4745}
4746
4747const GROUP_CREATE_ARG_FIELDS: &[&str] = &["group_name",
4748 "add_creator_as_owner",
4749 "group_external_id",
4750 "group_management_type"];
4751impl GroupCreateArg {
4752 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4753 map: V,
4754 ) -> Result<GroupCreateArg, V::Error> {
4755 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4756 }
4757
4758 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4759 mut map: V,
4760 optional: bool,
4761 ) -> Result<Option<GroupCreateArg>, V::Error> {
4762 let mut field_group_name = None;
4763 let mut field_add_creator_as_owner = None;
4764 let mut field_group_external_id = None;
4765 let mut field_group_management_type = None;
4766 let mut nothing = true;
4767 while let Some(key) = map.next_key::<&str>()? {
4768 nothing = false;
4769 match key {
4770 "group_name" => {
4771 if field_group_name.is_some() {
4772 return Err(::serde::de::Error::duplicate_field("group_name"));
4773 }
4774 field_group_name = Some(map.next_value()?);
4775 }
4776 "add_creator_as_owner" => {
4777 if field_add_creator_as_owner.is_some() {
4778 return Err(::serde::de::Error::duplicate_field("add_creator_as_owner"));
4779 }
4780 field_add_creator_as_owner = Some(map.next_value()?);
4781 }
4782 "group_external_id" => {
4783 if field_group_external_id.is_some() {
4784 return Err(::serde::de::Error::duplicate_field("group_external_id"));
4785 }
4786 field_group_external_id = Some(map.next_value()?);
4787 }
4788 "group_management_type" => {
4789 if field_group_management_type.is_some() {
4790 return Err(::serde::de::Error::duplicate_field("group_management_type"));
4791 }
4792 field_group_management_type = Some(map.next_value()?);
4793 }
4794 _ => {
4795 map.next_value::<::serde_json::Value>()?;
4797 }
4798 }
4799 }
4800 if optional && nothing {
4801 return Ok(None);
4802 }
4803 let result = GroupCreateArg {
4804 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
4805 add_creator_as_owner: field_add_creator_as_owner.unwrap_or(false),
4806 group_external_id: field_group_external_id.and_then(Option::flatten),
4807 group_management_type: field_group_management_type.and_then(Option::flatten),
4808 };
4809 Ok(Some(result))
4810 }
4811
4812 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4813 &self,
4814 s: &mut S::SerializeStruct,
4815 ) -> Result<(), S::Error> {
4816 use serde::ser::SerializeStruct;
4817 s.serialize_field("group_name", &self.group_name)?;
4818 if self.add_creator_as_owner {
4819 s.serialize_field("add_creator_as_owner", &self.add_creator_as_owner)?;
4820 }
4821 if let Some(val) = &self.group_external_id {
4822 s.serialize_field("group_external_id", val)?;
4823 }
4824 if let Some(val) = &self.group_management_type {
4825 s.serialize_field("group_management_type", val)?;
4826 }
4827 Ok(())
4828 }
4829}
4830
4831impl<'de> ::serde::de::Deserialize<'de> for GroupCreateArg {
4832 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4833 use serde::de::{MapAccess, Visitor};
4835 struct StructVisitor;
4836 impl<'de> Visitor<'de> for StructVisitor {
4837 type Value = GroupCreateArg;
4838 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4839 f.write_str("a GroupCreateArg struct")
4840 }
4841 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4842 GroupCreateArg::internal_deserialize(map)
4843 }
4844 }
4845 deserializer.deserialize_struct("GroupCreateArg", GROUP_CREATE_ARG_FIELDS, StructVisitor)
4846 }
4847}
4848
4849impl ::serde::ser::Serialize for GroupCreateArg {
4850 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4851 use serde::ser::SerializeStruct;
4853 let mut s = serializer.serialize_struct("GroupCreateArg", 4)?;
4854 self.internal_serialize::<S>(&mut s)?;
4855 s.end()
4856 }
4857}
4858
4859#[derive(Debug, Clone, PartialEq, Eq)]
4860#[non_exhaustive] pub enum GroupCreateError {
4862 GroupNameAlreadyUsed,
4864 GroupNameInvalid,
4866 ExternalIdAlreadyInUse,
4868 SystemManagedGroupDisallowed,
4870 Other,
4873}
4874
4875impl<'de> ::serde::de::Deserialize<'de> for GroupCreateError {
4876 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4877 use serde::de::{self, MapAccess, Visitor};
4879 struct EnumVisitor;
4880 impl<'de> Visitor<'de> for EnumVisitor {
4881 type Value = GroupCreateError;
4882 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4883 f.write_str("a GroupCreateError structure")
4884 }
4885 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4886 let tag: &str = match map.next_key()? {
4887 Some(".tag") => map.next_value()?,
4888 _ => return Err(de::Error::missing_field(".tag"))
4889 };
4890 let value = match tag {
4891 "group_name_already_used" => GroupCreateError::GroupNameAlreadyUsed,
4892 "group_name_invalid" => GroupCreateError::GroupNameInvalid,
4893 "external_id_already_in_use" => GroupCreateError::ExternalIdAlreadyInUse,
4894 "system_managed_group_disallowed" => GroupCreateError::SystemManagedGroupDisallowed,
4895 _ => GroupCreateError::Other,
4896 };
4897 crate::eat_json_fields(&mut map)?;
4898 Ok(value)
4899 }
4900 }
4901 const VARIANTS: &[&str] = &["group_name_already_used",
4902 "group_name_invalid",
4903 "external_id_already_in_use",
4904 "system_managed_group_disallowed",
4905 "other"];
4906 deserializer.deserialize_struct("GroupCreateError", VARIANTS, EnumVisitor)
4907 }
4908}
4909
4910impl ::serde::ser::Serialize for GroupCreateError {
4911 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4912 use serde::ser::SerializeStruct;
4914 match self {
4915 GroupCreateError::GroupNameAlreadyUsed => {
4916 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4918 s.serialize_field(".tag", "group_name_already_used")?;
4919 s.end()
4920 }
4921 GroupCreateError::GroupNameInvalid => {
4922 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4924 s.serialize_field(".tag", "group_name_invalid")?;
4925 s.end()
4926 }
4927 GroupCreateError::ExternalIdAlreadyInUse => {
4928 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4930 s.serialize_field(".tag", "external_id_already_in_use")?;
4931 s.end()
4932 }
4933 GroupCreateError::SystemManagedGroupDisallowed => {
4934 let mut s = serializer.serialize_struct("GroupCreateError", 1)?;
4936 s.serialize_field(".tag", "system_managed_group_disallowed")?;
4937 s.end()
4938 }
4939 GroupCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4940 }
4941 }
4942}
4943
4944impl ::std::error::Error for GroupCreateError {
4945}
4946
4947impl ::std::fmt::Display for GroupCreateError {
4948 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4949 match self {
4950 GroupCreateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
4951 GroupCreateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
4952 GroupCreateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
4953 GroupCreateError::SystemManagedGroupDisallowed => f.write_str("System-managed group cannot be manually created."),
4954 _ => write!(f, "{:?}", *self),
4955 }
4956 }
4957}
4958
4959#[derive(Debug, Clone, PartialEq, Eq)]
4960#[non_exhaustive] pub enum GroupDeleteError {
4962 GroupNotFound,
4964 SystemManagedGroupDisallowed,
4966 GroupAlreadyDeleted,
4968 Other,
4971}
4972
4973impl<'de> ::serde::de::Deserialize<'de> for GroupDeleteError {
4974 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4975 use serde::de::{self, MapAccess, Visitor};
4977 struct EnumVisitor;
4978 impl<'de> Visitor<'de> for EnumVisitor {
4979 type Value = GroupDeleteError;
4980 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4981 f.write_str("a GroupDeleteError structure")
4982 }
4983 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4984 let tag: &str = match map.next_key()? {
4985 Some(".tag") => map.next_value()?,
4986 _ => return Err(de::Error::missing_field(".tag"))
4987 };
4988 let value = match tag {
4989 "group_not_found" => GroupDeleteError::GroupNotFound,
4990 "system_managed_group_disallowed" => GroupDeleteError::SystemManagedGroupDisallowed,
4991 "group_already_deleted" => GroupDeleteError::GroupAlreadyDeleted,
4992 _ => GroupDeleteError::Other,
4993 };
4994 crate::eat_json_fields(&mut map)?;
4995 Ok(value)
4996 }
4997 }
4998 const VARIANTS: &[&str] = &["group_not_found",
4999 "other",
5000 "system_managed_group_disallowed",
5001 "group_already_deleted"];
5002 deserializer.deserialize_struct("GroupDeleteError", VARIANTS, EnumVisitor)
5003 }
5004}
5005
5006impl ::serde::ser::Serialize for GroupDeleteError {
5007 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5008 use serde::ser::SerializeStruct;
5010 match self {
5011 GroupDeleteError::GroupNotFound => {
5012 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5014 s.serialize_field(".tag", "group_not_found")?;
5015 s.end()
5016 }
5017 GroupDeleteError::SystemManagedGroupDisallowed => {
5018 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5020 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5021 s.end()
5022 }
5023 GroupDeleteError::GroupAlreadyDeleted => {
5024 let mut s = serializer.serialize_struct("GroupDeleteError", 1)?;
5026 s.serialize_field(".tag", "group_already_deleted")?;
5027 s.end()
5028 }
5029 GroupDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5030 }
5031 }
5032}
5033
5034impl ::std::error::Error for GroupDeleteError {
5035}
5036
5037impl ::std::fmt::Display for GroupDeleteError {
5038 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5039 match self {
5040 GroupDeleteError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5041 GroupDeleteError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5042 GroupDeleteError::GroupAlreadyDeleted => f.write_str("This group has already been deleted."),
5043 _ => write!(f, "{:?}", *self),
5044 }
5045 }
5046}
5047
5048impl From<GroupSelectorWithTeamGroupError> for GroupDeleteError {
5050 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5051 match parent {
5052 GroupSelectorWithTeamGroupError::GroupNotFound => GroupDeleteError::GroupNotFound,
5053 GroupSelectorWithTeamGroupError::Other => GroupDeleteError::Other,
5054 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupDeleteError::SystemManagedGroupDisallowed,
5055 }
5056 }
5057}
5058#[derive(Debug, Clone, PartialEq, Eq)]
5060#[non_exhaustive] pub struct GroupFullInfo {
5062 pub group_name: String,
5063 pub group_id: crate::types::team_common::GroupId,
5064 pub group_management_type: crate::types::team_common::GroupManagementType,
5066 pub created: u64,
5068 pub group_external_id: Option<crate::types::team_common::GroupExternalId>,
5070 pub member_count: Option<u32>,
5072 pub members: Option<Vec<GroupMemberInfo>>,
5074}
5075
5076impl GroupFullInfo {
5077 pub fn new(
5078 group_name: String,
5079 group_id: crate::types::team_common::GroupId,
5080 group_management_type: crate::types::team_common::GroupManagementType,
5081 created: u64,
5082 ) -> Self {
5083 GroupFullInfo {
5084 group_name,
5085 group_id,
5086 group_management_type,
5087 created,
5088 group_external_id: None,
5089 member_count: None,
5090 members: None,
5091 }
5092 }
5093
5094 pub fn with_group_external_id(
5095 mut self,
5096 value: crate::types::team_common::GroupExternalId,
5097 ) -> Self {
5098 self.group_external_id = Some(value);
5099 self
5100 }
5101
5102 pub fn with_member_count(mut self, value: u32) -> Self {
5103 self.member_count = Some(value);
5104 self
5105 }
5106
5107 pub fn with_members(mut self, value: Vec<GroupMemberInfo>) -> Self {
5108 self.members = Some(value);
5109 self
5110 }
5111}
5112
5113const GROUP_FULL_INFO_FIELDS: &[&str] = &["group_name",
5114 "group_id",
5115 "group_management_type",
5116 "created",
5117 "group_external_id",
5118 "member_count",
5119 "members"];
5120impl GroupFullInfo {
5121 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5122 map: V,
5123 ) -> Result<GroupFullInfo, V::Error> {
5124 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5125 }
5126
5127 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5128 mut map: V,
5129 optional: bool,
5130 ) -> Result<Option<GroupFullInfo>, V::Error> {
5131 let mut field_group_name = None;
5132 let mut field_group_id = None;
5133 let mut field_group_management_type = None;
5134 let mut field_created = None;
5135 let mut field_group_external_id = None;
5136 let mut field_member_count = None;
5137 let mut field_members = None;
5138 let mut nothing = true;
5139 while let Some(key) = map.next_key::<&str>()? {
5140 nothing = false;
5141 match key {
5142 "group_name" => {
5143 if field_group_name.is_some() {
5144 return Err(::serde::de::Error::duplicate_field("group_name"));
5145 }
5146 field_group_name = Some(map.next_value()?);
5147 }
5148 "group_id" => {
5149 if field_group_id.is_some() {
5150 return Err(::serde::de::Error::duplicate_field("group_id"));
5151 }
5152 field_group_id = Some(map.next_value()?);
5153 }
5154 "group_management_type" => {
5155 if field_group_management_type.is_some() {
5156 return Err(::serde::de::Error::duplicate_field("group_management_type"));
5157 }
5158 field_group_management_type = Some(map.next_value()?);
5159 }
5160 "created" => {
5161 if field_created.is_some() {
5162 return Err(::serde::de::Error::duplicate_field("created"));
5163 }
5164 field_created = Some(map.next_value()?);
5165 }
5166 "group_external_id" => {
5167 if field_group_external_id.is_some() {
5168 return Err(::serde::de::Error::duplicate_field("group_external_id"));
5169 }
5170 field_group_external_id = Some(map.next_value()?);
5171 }
5172 "member_count" => {
5173 if field_member_count.is_some() {
5174 return Err(::serde::de::Error::duplicate_field("member_count"));
5175 }
5176 field_member_count = Some(map.next_value()?);
5177 }
5178 "members" => {
5179 if field_members.is_some() {
5180 return Err(::serde::de::Error::duplicate_field("members"));
5181 }
5182 field_members = Some(map.next_value()?);
5183 }
5184 _ => {
5185 map.next_value::<::serde_json::Value>()?;
5187 }
5188 }
5189 }
5190 if optional && nothing {
5191 return Ok(None);
5192 }
5193 let result = GroupFullInfo {
5194 group_name: field_group_name.ok_or_else(|| ::serde::de::Error::missing_field("group_name"))?,
5195 group_id: field_group_id.ok_or_else(|| ::serde::de::Error::missing_field("group_id"))?,
5196 group_management_type: field_group_management_type.ok_or_else(|| ::serde::de::Error::missing_field("group_management_type"))?,
5197 created: field_created.ok_or_else(|| ::serde::de::Error::missing_field("created"))?,
5198 group_external_id: field_group_external_id.and_then(Option::flatten),
5199 member_count: field_member_count.and_then(Option::flatten),
5200 members: field_members.and_then(Option::flatten),
5201 };
5202 Ok(Some(result))
5203 }
5204
5205 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5206 &self,
5207 s: &mut S::SerializeStruct,
5208 ) -> Result<(), S::Error> {
5209 use serde::ser::SerializeStruct;
5210 s.serialize_field("group_name", &self.group_name)?;
5211 s.serialize_field("group_id", &self.group_id)?;
5212 s.serialize_field("group_management_type", &self.group_management_type)?;
5213 s.serialize_field("created", &self.created)?;
5214 if let Some(val) = &self.group_external_id {
5215 s.serialize_field("group_external_id", val)?;
5216 }
5217 if let Some(val) = &self.member_count {
5218 s.serialize_field("member_count", val)?;
5219 }
5220 if let Some(val) = &self.members {
5221 s.serialize_field("members", val)?;
5222 }
5223 Ok(())
5224 }
5225}
5226
5227impl<'de> ::serde::de::Deserialize<'de> for GroupFullInfo {
5228 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5229 use serde::de::{MapAccess, Visitor};
5231 struct StructVisitor;
5232 impl<'de> Visitor<'de> for StructVisitor {
5233 type Value = GroupFullInfo;
5234 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5235 f.write_str("a GroupFullInfo struct")
5236 }
5237 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5238 GroupFullInfo::internal_deserialize(map)
5239 }
5240 }
5241 deserializer.deserialize_struct("GroupFullInfo", GROUP_FULL_INFO_FIELDS, StructVisitor)
5242 }
5243}
5244
5245impl ::serde::ser::Serialize for GroupFullInfo {
5246 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5247 use serde::ser::SerializeStruct;
5249 let mut s = serializer.serialize_struct("GroupFullInfo", 7)?;
5250 self.internal_serialize::<S>(&mut s)?;
5251 s.end()
5252 }
5253}
5254
5255impl From<GroupFullInfo> for crate::types::team_common::GroupSummary {
5257 fn from(subtype: GroupFullInfo) -> Self {
5258 Self {
5259 group_name: subtype.group_name,
5260 group_id: subtype.group_id,
5261 group_management_type: subtype.group_management_type,
5262 group_external_id: subtype.group_external_id,
5263 member_count: subtype.member_count,
5264 }
5265 }
5266}
5267#[derive(Debug, Clone, PartialEq, Eq)]
5269#[non_exhaustive] pub struct GroupMemberInfo {
5271 pub profile: MemberProfile,
5273 pub access_type: GroupAccessType,
5275}
5276
5277impl GroupMemberInfo {
5278 pub fn new(profile: MemberProfile, access_type: GroupAccessType) -> Self {
5279 GroupMemberInfo {
5280 profile,
5281 access_type,
5282 }
5283 }
5284}
5285
5286const GROUP_MEMBER_INFO_FIELDS: &[&str] = &["profile",
5287 "access_type"];
5288impl GroupMemberInfo {
5289 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5290 map: V,
5291 ) -> Result<GroupMemberInfo, V::Error> {
5292 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5293 }
5294
5295 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5296 mut map: V,
5297 optional: bool,
5298 ) -> Result<Option<GroupMemberInfo>, V::Error> {
5299 let mut field_profile = None;
5300 let mut field_access_type = None;
5301 let mut nothing = true;
5302 while let Some(key) = map.next_key::<&str>()? {
5303 nothing = false;
5304 match key {
5305 "profile" => {
5306 if field_profile.is_some() {
5307 return Err(::serde::de::Error::duplicate_field("profile"));
5308 }
5309 field_profile = Some(map.next_value()?);
5310 }
5311 "access_type" => {
5312 if field_access_type.is_some() {
5313 return Err(::serde::de::Error::duplicate_field("access_type"));
5314 }
5315 field_access_type = Some(map.next_value()?);
5316 }
5317 _ => {
5318 map.next_value::<::serde_json::Value>()?;
5320 }
5321 }
5322 }
5323 if optional && nothing {
5324 return Ok(None);
5325 }
5326 let result = GroupMemberInfo {
5327 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
5328 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
5329 };
5330 Ok(Some(result))
5331 }
5332
5333 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5334 &self,
5335 s: &mut S::SerializeStruct,
5336 ) -> Result<(), S::Error> {
5337 use serde::ser::SerializeStruct;
5338 s.serialize_field("profile", &self.profile)?;
5339 s.serialize_field("access_type", &self.access_type)?;
5340 Ok(())
5341 }
5342}
5343
5344impl<'de> ::serde::de::Deserialize<'de> for GroupMemberInfo {
5345 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5346 use serde::de::{MapAccess, Visitor};
5348 struct StructVisitor;
5349 impl<'de> Visitor<'de> for StructVisitor {
5350 type Value = GroupMemberInfo;
5351 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5352 f.write_str("a GroupMemberInfo struct")
5353 }
5354 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5355 GroupMemberInfo::internal_deserialize(map)
5356 }
5357 }
5358 deserializer.deserialize_struct("GroupMemberInfo", GROUP_MEMBER_INFO_FIELDS, StructVisitor)
5359 }
5360}
5361
5362impl ::serde::ser::Serialize for GroupMemberInfo {
5363 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5364 use serde::ser::SerializeStruct;
5366 let mut s = serializer.serialize_struct("GroupMemberInfo", 2)?;
5367 self.internal_serialize::<S>(&mut s)?;
5368 s.end()
5369 }
5370}
5371
5372#[derive(Debug, Clone, PartialEq, Eq)]
5374#[non_exhaustive] pub struct GroupMemberSelector {
5376 pub group: GroupSelector,
5378 pub user: UserSelectorArg,
5380}
5381
5382impl GroupMemberSelector {
5383 pub fn new(group: GroupSelector, user: UserSelectorArg) -> Self {
5384 GroupMemberSelector {
5385 group,
5386 user,
5387 }
5388 }
5389}
5390
5391const GROUP_MEMBER_SELECTOR_FIELDS: &[&str] = &["group",
5392 "user"];
5393impl GroupMemberSelector {
5394 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5395 map: V,
5396 ) -> Result<GroupMemberSelector, V::Error> {
5397 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5398 }
5399
5400 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5401 mut map: V,
5402 optional: bool,
5403 ) -> Result<Option<GroupMemberSelector>, V::Error> {
5404 let mut field_group = None;
5405 let mut field_user = None;
5406 let mut nothing = true;
5407 while let Some(key) = map.next_key::<&str>()? {
5408 nothing = false;
5409 match key {
5410 "group" => {
5411 if field_group.is_some() {
5412 return Err(::serde::de::Error::duplicate_field("group"));
5413 }
5414 field_group = Some(map.next_value()?);
5415 }
5416 "user" => {
5417 if field_user.is_some() {
5418 return Err(::serde::de::Error::duplicate_field("user"));
5419 }
5420 field_user = Some(map.next_value()?);
5421 }
5422 _ => {
5423 map.next_value::<::serde_json::Value>()?;
5425 }
5426 }
5427 }
5428 if optional && nothing {
5429 return Ok(None);
5430 }
5431 let result = GroupMemberSelector {
5432 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
5433 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
5434 };
5435 Ok(Some(result))
5436 }
5437
5438 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5439 &self,
5440 s: &mut S::SerializeStruct,
5441 ) -> Result<(), S::Error> {
5442 use serde::ser::SerializeStruct;
5443 s.serialize_field("group", &self.group)?;
5444 s.serialize_field("user", &self.user)?;
5445 Ok(())
5446 }
5447}
5448
5449impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelector {
5450 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5451 use serde::de::{MapAccess, Visitor};
5453 struct StructVisitor;
5454 impl<'de> Visitor<'de> for StructVisitor {
5455 type Value = GroupMemberSelector;
5456 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5457 f.write_str("a GroupMemberSelector struct")
5458 }
5459 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5460 GroupMemberSelector::internal_deserialize(map)
5461 }
5462 }
5463 deserializer.deserialize_struct("GroupMemberSelector", GROUP_MEMBER_SELECTOR_FIELDS, StructVisitor)
5464 }
5465}
5466
5467impl ::serde::ser::Serialize for GroupMemberSelector {
5468 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5469 use serde::ser::SerializeStruct;
5471 let mut s = serializer.serialize_struct("GroupMemberSelector", 2)?;
5472 self.internal_serialize::<S>(&mut s)?;
5473 s.end()
5474 }
5475}
5476
5477#[derive(Debug, Clone, PartialEq, Eq)]
5480#[non_exhaustive] pub enum GroupMemberSelectorError {
5482 GroupNotFound,
5484 SystemManagedGroupDisallowed,
5486 MemberNotInGroup,
5488 Other,
5491}
5492
5493impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSelectorError {
5494 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5495 use serde::de::{self, MapAccess, Visitor};
5497 struct EnumVisitor;
5498 impl<'de> Visitor<'de> for EnumVisitor {
5499 type Value = GroupMemberSelectorError;
5500 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5501 f.write_str("a GroupMemberSelectorError structure")
5502 }
5503 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5504 let tag: &str = match map.next_key()? {
5505 Some(".tag") => map.next_value()?,
5506 _ => return Err(de::Error::missing_field(".tag"))
5507 };
5508 let value = match tag {
5509 "group_not_found" => GroupMemberSelectorError::GroupNotFound,
5510 "system_managed_group_disallowed" => GroupMemberSelectorError::SystemManagedGroupDisallowed,
5511 "member_not_in_group" => GroupMemberSelectorError::MemberNotInGroup,
5512 _ => GroupMemberSelectorError::Other,
5513 };
5514 crate::eat_json_fields(&mut map)?;
5515 Ok(value)
5516 }
5517 }
5518 const VARIANTS: &[&str] = &["group_not_found",
5519 "other",
5520 "system_managed_group_disallowed",
5521 "member_not_in_group"];
5522 deserializer.deserialize_struct("GroupMemberSelectorError", VARIANTS, EnumVisitor)
5523 }
5524}
5525
5526impl ::serde::ser::Serialize for GroupMemberSelectorError {
5527 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5528 use serde::ser::SerializeStruct;
5530 match self {
5531 GroupMemberSelectorError::GroupNotFound => {
5532 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5534 s.serialize_field(".tag", "group_not_found")?;
5535 s.end()
5536 }
5537 GroupMemberSelectorError::SystemManagedGroupDisallowed => {
5538 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5540 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5541 s.end()
5542 }
5543 GroupMemberSelectorError::MemberNotInGroup => {
5544 let mut s = serializer.serialize_struct("GroupMemberSelectorError", 1)?;
5546 s.serialize_field(".tag", "member_not_in_group")?;
5547 s.end()
5548 }
5549 GroupMemberSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5550 }
5551 }
5552}
5553
5554impl ::std::error::Error for GroupMemberSelectorError {
5555}
5556
5557impl ::std::fmt::Display for GroupMemberSelectorError {
5558 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5559 match self {
5560 GroupMemberSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5561 GroupMemberSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5562 GroupMemberSelectorError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
5563 _ => write!(f, "{:?}", *self),
5564 }
5565 }
5566}
5567
5568impl From<GroupSelectorWithTeamGroupError> for GroupMemberSelectorError {
5570 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5571 match parent {
5572 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMemberSelectorError::GroupNotFound,
5573 GroupSelectorWithTeamGroupError::Other => GroupMemberSelectorError::Other,
5574 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMemberSelectorError::SystemManagedGroupDisallowed,
5575 }
5576 }
5577}
5578#[derive(Debug, Clone, PartialEq, Eq)]
5579#[non_exhaustive] pub enum GroupMemberSetAccessTypeError {
5581 GroupNotFound,
5583 SystemManagedGroupDisallowed,
5585 MemberNotInGroup,
5587 UserCannotBeManagerOfCompanyManagedGroup,
5589 Other,
5592}
5593
5594impl<'de> ::serde::de::Deserialize<'de> for GroupMemberSetAccessTypeError {
5595 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5596 use serde::de::{self, MapAccess, Visitor};
5598 struct EnumVisitor;
5599 impl<'de> Visitor<'de> for EnumVisitor {
5600 type Value = GroupMemberSetAccessTypeError;
5601 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5602 f.write_str("a GroupMemberSetAccessTypeError structure")
5603 }
5604 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5605 let tag: &str = match map.next_key()? {
5606 Some(".tag") => map.next_value()?,
5607 _ => return Err(de::Error::missing_field(".tag"))
5608 };
5609 let value = match tag {
5610 "group_not_found" => GroupMemberSetAccessTypeError::GroupNotFound,
5611 "system_managed_group_disallowed" => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
5612 "member_not_in_group" => GroupMemberSetAccessTypeError::MemberNotInGroup,
5613 "user_cannot_be_manager_of_company_managed_group" => GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup,
5614 _ => GroupMemberSetAccessTypeError::Other,
5615 };
5616 crate::eat_json_fields(&mut map)?;
5617 Ok(value)
5618 }
5619 }
5620 const VARIANTS: &[&str] = &["group_not_found",
5621 "other",
5622 "system_managed_group_disallowed",
5623 "member_not_in_group",
5624 "user_cannot_be_manager_of_company_managed_group"];
5625 deserializer.deserialize_struct("GroupMemberSetAccessTypeError", VARIANTS, EnumVisitor)
5626 }
5627}
5628
5629impl ::serde::ser::Serialize for GroupMemberSetAccessTypeError {
5630 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5631 use serde::ser::SerializeStruct;
5633 match self {
5634 GroupMemberSetAccessTypeError::GroupNotFound => {
5635 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5637 s.serialize_field(".tag", "group_not_found")?;
5638 s.end()
5639 }
5640 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => {
5641 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5643 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5644 s.end()
5645 }
5646 GroupMemberSetAccessTypeError::MemberNotInGroup => {
5647 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5649 s.serialize_field(".tag", "member_not_in_group")?;
5650 s.end()
5651 }
5652 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => {
5653 let mut s = serializer.serialize_struct("GroupMemberSetAccessTypeError", 1)?;
5655 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
5656 s.end()
5657 }
5658 GroupMemberSetAccessTypeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5659 }
5660 }
5661}
5662
5663impl ::std::error::Error for GroupMemberSetAccessTypeError {
5664}
5665
5666impl ::std::fmt::Display for GroupMemberSetAccessTypeError {
5667 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5668 match self {
5669 GroupMemberSetAccessTypeError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5670 GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5671 GroupMemberSetAccessTypeError::MemberNotInGroup => f.write_str("The specified user is not a member of this group."),
5672 GroupMemberSetAccessTypeError::UserCannotBeManagerOfCompanyManagedGroup => f.write_str("A company managed group cannot be managed by a user."),
5673 _ => write!(f, "{:?}", *self),
5674 }
5675 }
5676}
5677
5678impl From<GroupMemberSelectorError> for GroupMemberSetAccessTypeError {
5680 fn from(parent: GroupMemberSelectorError) -> Self {
5681 match parent {
5682 GroupMemberSelectorError::GroupNotFound => GroupMemberSetAccessTypeError::GroupNotFound,
5683 GroupMemberSelectorError::Other => GroupMemberSetAccessTypeError::Other,
5684 GroupMemberSelectorError::SystemManagedGroupDisallowed => GroupMemberSetAccessTypeError::SystemManagedGroupDisallowed,
5685 GroupMemberSelectorError::MemberNotInGroup => GroupMemberSetAccessTypeError::MemberNotInGroup,
5686 }
5687 }
5688}
5689#[derive(Debug, Clone, PartialEq, Eq)]
5690#[non_exhaustive] pub struct GroupMembersAddArg {
5692 pub group: GroupSelector,
5694 pub members: Vec<MemberAccess>,
5696 pub return_members: bool,
5700}
5701
5702impl GroupMembersAddArg {
5703 pub fn new(group: GroupSelector, members: Vec<MemberAccess>) -> Self {
5704 GroupMembersAddArg {
5705 group,
5706 members,
5707 return_members: true,
5708 }
5709 }
5710
5711 pub fn with_return_members(mut self, value: bool) -> Self {
5712 self.return_members = value;
5713 self
5714 }
5715}
5716
5717const GROUP_MEMBERS_ADD_ARG_FIELDS: &[&str] = &["group",
5718 "members",
5719 "return_members"];
5720impl GroupMembersAddArg {
5721 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5722 map: V,
5723 ) -> Result<GroupMembersAddArg, V::Error> {
5724 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5725 }
5726
5727 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5728 mut map: V,
5729 optional: bool,
5730 ) -> Result<Option<GroupMembersAddArg>, V::Error> {
5731 let mut field_group = None;
5732 let mut field_members = None;
5733 let mut field_return_members = None;
5734 let mut nothing = true;
5735 while let Some(key) = map.next_key::<&str>()? {
5736 nothing = false;
5737 match key {
5738 "group" => {
5739 if field_group.is_some() {
5740 return Err(::serde::de::Error::duplicate_field("group"));
5741 }
5742 field_group = Some(map.next_value()?);
5743 }
5744 "members" => {
5745 if field_members.is_some() {
5746 return Err(::serde::de::Error::duplicate_field("members"));
5747 }
5748 field_members = Some(map.next_value()?);
5749 }
5750 "return_members" => {
5751 if field_return_members.is_some() {
5752 return Err(::serde::de::Error::duplicate_field("return_members"));
5753 }
5754 field_return_members = Some(map.next_value()?);
5755 }
5756 _ => {
5757 map.next_value::<::serde_json::Value>()?;
5759 }
5760 }
5761 }
5762 if optional && nothing {
5763 return Ok(None);
5764 }
5765 let result = GroupMembersAddArg {
5766 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
5767 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
5768 return_members: field_return_members.unwrap_or(true),
5769 };
5770 Ok(Some(result))
5771 }
5772
5773 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5774 &self,
5775 s: &mut S::SerializeStruct,
5776 ) -> Result<(), S::Error> {
5777 use serde::ser::SerializeStruct;
5778 s.serialize_field("group", &self.group)?;
5779 s.serialize_field("members", &self.members)?;
5780 if !self.return_members {
5781 s.serialize_field("return_members", &self.return_members)?;
5782 }
5783 Ok(())
5784 }
5785}
5786
5787impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddArg {
5788 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5789 use serde::de::{MapAccess, Visitor};
5791 struct StructVisitor;
5792 impl<'de> Visitor<'de> for StructVisitor {
5793 type Value = GroupMembersAddArg;
5794 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5795 f.write_str("a GroupMembersAddArg struct")
5796 }
5797 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5798 GroupMembersAddArg::internal_deserialize(map)
5799 }
5800 }
5801 deserializer.deserialize_struct("GroupMembersAddArg", GROUP_MEMBERS_ADD_ARG_FIELDS, StructVisitor)
5802 }
5803}
5804
5805impl ::serde::ser::Serialize for GroupMembersAddArg {
5806 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5807 use serde::ser::SerializeStruct;
5809 let mut s = serializer.serialize_struct("GroupMembersAddArg", 3)?;
5810 self.internal_serialize::<S>(&mut s)?;
5811 s.end()
5812 }
5813}
5814
5815impl From<GroupMembersAddArg> for IncludeMembersArg {
5817 fn from(subtype: GroupMembersAddArg) -> Self {
5818 Self {
5819 return_members: subtype.return_members,
5820 }
5821 }
5822}
5823#[derive(Debug, Clone, PartialEq, Eq)]
5824#[non_exhaustive] pub enum GroupMembersAddError {
5826 GroupNotFound,
5828 SystemManagedGroupDisallowed,
5830 DuplicateUser,
5833 GroupNotInTeam,
5835 MembersNotInTeam(Vec<String>),
5840 UsersNotFound(Vec<String>),
5842 UserMustBeActiveToBeOwner,
5844 UserCannotBeManagerOfCompanyManagedGroup(Vec<String>),
5846 Other,
5849}
5850
5851impl<'de> ::serde::de::Deserialize<'de> for GroupMembersAddError {
5852 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5853 use serde::de::{self, MapAccess, Visitor};
5855 struct EnumVisitor;
5856 impl<'de> Visitor<'de> for EnumVisitor {
5857 type Value = GroupMembersAddError;
5858 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5859 f.write_str("a GroupMembersAddError structure")
5860 }
5861 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5862 let tag: &str = match map.next_key()? {
5863 Some(".tag") => map.next_value()?,
5864 _ => return Err(de::Error::missing_field(".tag"))
5865 };
5866 let value = match tag {
5867 "group_not_found" => GroupMembersAddError::GroupNotFound,
5868 "system_managed_group_disallowed" => GroupMembersAddError::SystemManagedGroupDisallowed,
5869 "duplicate_user" => GroupMembersAddError::DuplicateUser,
5870 "group_not_in_team" => GroupMembersAddError::GroupNotInTeam,
5871 "members_not_in_team" => {
5872 match map.next_key()? {
5873 Some("members_not_in_team") => GroupMembersAddError::MembersNotInTeam(map.next_value()?),
5874 None => return Err(de::Error::missing_field("members_not_in_team")),
5875 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5876 }
5877 }
5878 "users_not_found" => {
5879 match map.next_key()? {
5880 Some("users_not_found") => GroupMembersAddError::UsersNotFound(map.next_value()?),
5881 None => return Err(de::Error::missing_field("users_not_found")),
5882 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5883 }
5884 }
5885 "user_must_be_active_to_be_owner" => GroupMembersAddError::UserMustBeActiveToBeOwner,
5886 "user_cannot_be_manager_of_company_managed_group" => {
5887 match map.next_key()? {
5888 Some("user_cannot_be_manager_of_company_managed_group") => GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(map.next_value()?),
5889 None => return Err(de::Error::missing_field("user_cannot_be_manager_of_company_managed_group")),
5890 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
5891 }
5892 }
5893 _ => GroupMembersAddError::Other,
5894 };
5895 crate::eat_json_fields(&mut map)?;
5896 Ok(value)
5897 }
5898 }
5899 const VARIANTS: &[&str] = &["group_not_found",
5900 "other",
5901 "system_managed_group_disallowed",
5902 "duplicate_user",
5903 "group_not_in_team",
5904 "members_not_in_team",
5905 "users_not_found",
5906 "user_must_be_active_to_be_owner",
5907 "user_cannot_be_manager_of_company_managed_group"];
5908 deserializer.deserialize_struct("GroupMembersAddError", VARIANTS, EnumVisitor)
5909 }
5910}
5911
5912impl ::serde::ser::Serialize for GroupMembersAddError {
5913 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5914 use serde::ser::SerializeStruct;
5916 match self {
5917 GroupMembersAddError::GroupNotFound => {
5918 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5920 s.serialize_field(".tag", "group_not_found")?;
5921 s.end()
5922 }
5923 GroupMembersAddError::SystemManagedGroupDisallowed => {
5924 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5926 s.serialize_field(".tag", "system_managed_group_disallowed")?;
5927 s.end()
5928 }
5929 GroupMembersAddError::DuplicateUser => {
5930 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5932 s.serialize_field(".tag", "duplicate_user")?;
5933 s.end()
5934 }
5935 GroupMembersAddError::GroupNotInTeam => {
5936 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5938 s.serialize_field(".tag", "group_not_in_team")?;
5939 s.end()
5940 }
5941 GroupMembersAddError::MembersNotInTeam(x) => {
5942 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5944 s.serialize_field(".tag", "members_not_in_team")?;
5945 s.serialize_field("members_not_in_team", x)?;
5946 s.end()
5947 }
5948 GroupMembersAddError::UsersNotFound(x) => {
5949 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5951 s.serialize_field(".tag", "users_not_found")?;
5952 s.serialize_field("users_not_found", x)?;
5953 s.end()
5954 }
5955 GroupMembersAddError::UserMustBeActiveToBeOwner => {
5956 let mut s = serializer.serialize_struct("GroupMembersAddError", 1)?;
5958 s.serialize_field(".tag", "user_must_be_active_to_be_owner")?;
5959 s.end()
5960 }
5961 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(x) => {
5962 let mut s = serializer.serialize_struct("GroupMembersAddError", 2)?;
5964 s.serialize_field(".tag", "user_cannot_be_manager_of_company_managed_group")?;
5965 s.serialize_field("user_cannot_be_manager_of_company_managed_group", x)?;
5966 s.end()
5967 }
5968 GroupMembersAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5969 }
5970 }
5971}
5972
5973impl ::std::error::Error for GroupMembersAddError {
5974}
5975
5976impl ::std::fmt::Display for GroupMembersAddError {
5977 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5978 match self {
5979 GroupMembersAddError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
5980 GroupMembersAddError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
5981 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."),
5982 GroupMembersAddError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot add members to a group that is outside of your team."),
5983 GroupMembersAddError::MembersNotInTeam(inner) => write!(f, "members_not_in_team: {:?}", inner),
5984 GroupMembersAddError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
5985 GroupMembersAddError::UserCannotBeManagerOfCompanyManagedGroup(inner) => write!(f, "A company-managed group cannot be managed by a user: {:?}", inner),
5986 _ => write!(f, "{:?}", *self),
5987 }
5988 }
5989}
5990
5991impl From<GroupSelectorWithTeamGroupError> for GroupMembersAddError {
5993 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
5994 match parent {
5995 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersAddError::GroupNotFound,
5996 GroupSelectorWithTeamGroupError::Other => GroupMembersAddError::Other,
5997 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersAddError::SystemManagedGroupDisallowed,
5998 }
5999 }
6000}
6001#[derive(Debug, Clone, PartialEq, Eq)]
6004#[non_exhaustive] pub struct GroupMembersChangeResult {
6006 pub group_info: GroupFullInfo,
6008 pub async_job_id: crate::types::dbx_async::AsyncJobId,
6012}
6013
6014impl GroupMembersChangeResult {
6015 pub fn new(
6016 group_info: GroupFullInfo,
6017 async_job_id: crate::types::dbx_async::AsyncJobId,
6018 ) -> Self {
6019 GroupMembersChangeResult {
6020 group_info,
6021 async_job_id,
6022 }
6023 }
6024}
6025
6026const GROUP_MEMBERS_CHANGE_RESULT_FIELDS: &[&str] = &["group_info",
6027 "async_job_id"];
6028impl GroupMembersChangeResult {
6029 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6030 map: V,
6031 ) -> Result<GroupMembersChangeResult, V::Error> {
6032 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6033 }
6034
6035 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6036 mut map: V,
6037 optional: bool,
6038 ) -> Result<Option<GroupMembersChangeResult>, V::Error> {
6039 let mut field_group_info = None;
6040 let mut field_async_job_id = None;
6041 let mut nothing = true;
6042 while let Some(key) = map.next_key::<&str>()? {
6043 nothing = false;
6044 match key {
6045 "group_info" => {
6046 if field_group_info.is_some() {
6047 return Err(::serde::de::Error::duplicate_field("group_info"));
6048 }
6049 field_group_info = Some(map.next_value()?);
6050 }
6051 "async_job_id" => {
6052 if field_async_job_id.is_some() {
6053 return Err(::serde::de::Error::duplicate_field("async_job_id"));
6054 }
6055 field_async_job_id = Some(map.next_value()?);
6056 }
6057 _ => {
6058 map.next_value::<::serde_json::Value>()?;
6060 }
6061 }
6062 }
6063 if optional && nothing {
6064 return Ok(None);
6065 }
6066 let result = GroupMembersChangeResult {
6067 group_info: field_group_info.ok_or_else(|| ::serde::de::Error::missing_field("group_info"))?,
6068 async_job_id: field_async_job_id.ok_or_else(|| ::serde::de::Error::missing_field("async_job_id"))?,
6069 };
6070 Ok(Some(result))
6071 }
6072
6073 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6074 &self,
6075 s: &mut S::SerializeStruct,
6076 ) -> Result<(), S::Error> {
6077 use serde::ser::SerializeStruct;
6078 s.serialize_field("group_info", &self.group_info)?;
6079 s.serialize_field("async_job_id", &self.async_job_id)?;
6080 Ok(())
6081 }
6082}
6083
6084impl<'de> ::serde::de::Deserialize<'de> for GroupMembersChangeResult {
6085 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6086 use serde::de::{MapAccess, Visitor};
6088 struct StructVisitor;
6089 impl<'de> Visitor<'de> for StructVisitor {
6090 type Value = GroupMembersChangeResult;
6091 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6092 f.write_str("a GroupMembersChangeResult struct")
6093 }
6094 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6095 GroupMembersChangeResult::internal_deserialize(map)
6096 }
6097 }
6098 deserializer.deserialize_struct("GroupMembersChangeResult", GROUP_MEMBERS_CHANGE_RESULT_FIELDS, StructVisitor)
6099 }
6100}
6101
6102impl ::serde::ser::Serialize for GroupMembersChangeResult {
6103 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6104 use serde::ser::SerializeStruct;
6106 let mut s = serializer.serialize_struct("GroupMembersChangeResult", 2)?;
6107 self.internal_serialize::<S>(&mut s)?;
6108 s.end()
6109 }
6110}
6111
6112#[derive(Debug, Clone, PartialEq, Eq)]
6113#[non_exhaustive] pub struct GroupMembersRemoveArg {
6115 pub group: GroupSelector,
6117 pub users: Vec<UserSelectorArg>,
6119 pub return_members: bool,
6123}
6124
6125impl GroupMembersRemoveArg {
6126 pub fn new(group: GroupSelector, users: Vec<UserSelectorArg>) -> Self {
6127 GroupMembersRemoveArg {
6128 group,
6129 users,
6130 return_members: true,
6131 }
6132 }
6133
6134 pub fn with_return_members(mut self, value: bool) -> Self {
6135 self.return_members = value;
6136 self
6137 }
6138}
6139
6140const GROUP_MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["group",
6141 "users",
6142 "return_members"];
6143impl GroupMembersRemoveArg {
6144 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6145 map: V,
6146 ) -> Result<GroupMembersRemoveArg, V::Error> {
6147 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6148 }
6149
6150 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6151 mut map: V,
6152 optional: bool,
6153 ) -> Result<Option<GroupMembersRemoveArg>, V::Error> {
6154 let mut field_group = None;
6155 let mut field_users = None;
6156 let mut field_return_members = None;
6157 let mut nothing = true;
6158 while let Some(key) = map.next_key::<&str>()? {
6159 nothing = false;
6160 match key {
6161 "group" => {
6162 if field_group.is_some() {
6163 return Err(::serde::de::Error::duplicate_field("group"));
6164 }
6165 field_group = Some(map.next_value()?);
6166 }
6167 "users" => {
6168 if field_users.is_some() {
6169 return Err(::serde::de::Error::duplicate_field("users"));
6170 }
6171 field_users = Some(map.next_value()?);
6172 }
6173 "return_members" => {
6174 if field_return_members.is_some() {
6175 return Err(::serde::de::Error::duplicate_field("return_members"));
6176 }
6177 field_return_members = Some(map.next_value()?);
6178 }
6179 _ => {
6180 map.next_value::<::serde_json::Value>()?;
6182 }
6183 }
6184 }
6185 if optional && nothing {
6186 return Ok(None);
6187 }
6188 let result = GroupMembersRemoveArg {
6189 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6190 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
6191 return_members: field_return_members.unwrap_or(true),
6192 };
6193 Ok(Some(result))
6194 }
6195
6196 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6197 &self,
6198 s: &mut S::SerializeStruct,
6199 ) -> Result<(), S::Error> {
6200 use serde::ser::SerializeStruct;
6201 s.serialize_field("group", &self.group)?;
6202 s.serialize_field("users", &self.users)?;
6203 if !self.return_members {
6204 s.serialize_field("return_members", &self.return_members)?;
6205 }
6206 Ok(())
6207 }
6208}
6209
6210impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveArg {
6211 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6212 use serde::de::{MapAccess, Visitor};
6214 struct StructVisitor;
6215 impl<'de> Visitor<'de> for StructVisitor {
6216 type Value = GroupMembersRemoveArg;
6217 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6218 f.write_str("a GroupMembersRemoveArg struct")
6219 }
6220 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6221 GroupMembersRemoveArg::internal_deserialize(map)
6222 }
6223 }
6224 deserializer.deserialize_struct("GroupMembersRemoveArg", GROUP_MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
6225 }
6226}
6227
6228impl ::serde::ser::Serialize for GroupMembersRemoveArg {
6229 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6230 use serde::ser::SerializeStruct;
6232 let mut s = serializer.serialize_struct("GroupMembersRemoveArg", 3)?;
6233 self.internal_serialize::<S>(&mut s)?;
6234 s.end()
6235 }
6236}
6237
6238impl From<GroupMembersRemoveArg> for IncludeMembersArg {
6240 fn from(subtype: GroupMembersRemoveArg) -> Self {
6241 Self {
6242 return_members: subtype.return_members,
6243 }
6244 }
6245}
6246#[derive(Debug, Clone, PartialEq, Eq)]
6247#[non_exhaustive] pub enum GroupMembersRemoveError {
6249 GroupNotFound,
6251 SystemManagedGroupDisallowed,
6253 MemberNotInGroup,
6255 GroupNotInTeam,
6258 MembersNotInTeam(Vec<String>),
6260 UsersNotFound(Vec<String>),
6262 Other,
6265}
6266
6267impl<'de> ::serde::de::Deserialize<'de> for GroupMembersRemoveError {
6268 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6269 use serde::de::{self, MapAccess, Visitor};
6271 struct EnumVisitor;
6272 impl<'de> Visitor<'de> for EnumVisitor {
6273 type Value = GroupMembersRemoveError;
6274 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6275 f.write_str("a GroupMembersRemoveError structure")
6276 }
6277 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6278 let tag: &str = match map.next_key()? {
6279 Some(".tag") => map.next_value()?,
6280 _ => return Err(de::Error::missing_field(".tag"))
6281 };
6282 let value = match tag {
6283 "group_not_found" => GroupMembersRemoveError::GroupNotFound,
6284 "system_managed_group_disallowed" => GroupMembersRemoveError::SystemManagedGroupDisallowed,
6285 "member_not_in_group" => GroupMembersRemoveError::MemberNotInGroup,
6286 "group_not_in_team" => GroupMembersRemoveError::GroupNotInTeam,
6287 "members_not_in_team" => {
6288 match map.next_key()? {
6289 Some("members_not_in_team") => GroupMembersRemoveError::MembersNotInTeam(map.next_value()?),
6290 None => return Err(de::Error::missing_field("members_not_in_team")),
6291 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6292 }
6293 }
6294 "users_not_found" => {
6295 match map.next_key()? {
6296 Some("users_not_found") => GroupMembersRemoveError::UsersNotFound(map.next_value()?),
6297 None => return Err(de::Error::missing_field("users_not_found")),
6298 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6299 }
6300 }
6301 _ => GroupMembersRemoveError::Other,
6302 };
6303 crate::eat_json_fields(&mut map)?;
6304 Ok(value)
6305 }
6306 }
6307 const VARIANTS: &[&str] = &["group_not_found",
6308 "other",
6309 "system_managed_group_disallowed",
6310 "member_not_in_group",
6311 "group_not_in_team",
6312 "members_not_in_team",
6313 "users_not_found"];
6314 deserializer.deserialize_struct("GroupMembersRemoveError", VARIANTS, EnumVisitor)
6315 }
6316}
6317
6318impl ::serde::ser::Serialize for GroupMembersRemoveError {
6319 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6320 use serde::ser::SerializeStruct;
6322 match self {
6323 GroupMembersRemoveError::GroupNotFound => {
6324 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6326 s.serialize_field(".tag", "group_not_found")?;
6327 s.end()
6328 }
6329 GroupMembersRemoveError::SystemManagedGroupDisallowed => {
6330 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6332 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6333 s.end()
6334 }
6335 GroupMembersRemoveError::MemberNotInGroup => {
6336 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6338 s.serialize_field(".tag", "member_not_in_group")?;
6339 s.end()
6340 }
6341 GroupMembersRemoveError::GroupNotInTeam => {
6342 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 1)?;
6344 s.serialize_field(".tag", "group_not_in_team")?;
6345 s.end()
6346 }
6347 GroupMembersRemoveError::MembersNotInTeam(x) => {
6348 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
6350 s.serialize_field(".tag", "members_not_in_team")?;
6351 s.serialize_field("members_not_in_team", x)?;
6352 s.end()
6353 }
6354 GroupMembersRemoveError::UsersNotFound(x) => {
6355 let mut s = serializer.serialize_struct("GroupMembersRemoveError", 2)?;
6357 s.serialize_field(".tag", "users_not_found")?;
6358 s.serialize_field("users_not_found", x)?;
6359 s.end()
6360 }
6361 GroupMembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6362 }
6363 }
6364}
6365
6366impl ::std::error::Error for GroupMembersRemoveError {
6367}
6368
6369impl ::std::fmt::Display for GroupMembersRemoveError {
6370 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6371 match self {
6372 GroupMembersRemoveError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6373 GroupMembersRemoveError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6374 GroupMembersRemoveError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
6375 GroupMembersRemoveError::GroupNotInTeam => f.write_str("Group is not in this team. You cannot remove members from a group that is outside of your team."),
6376 GroupMembersRemoveError::MembersNotInTeam(inner) => write!(f, "These members are not part of your team: {:?}", inner),
6377 GroupMembersRemoveError::UsersNotFound(inner) => write!(f, "These users were not found in Dropbox: {:?}", inner),
6378 _ => write!(f, "{:?}", *self),
6379 }
6380 }
6381}
6382
6383impl From<GroupMembersSelectorError> for GroupMembersRemoveError {
6385 fn from(parent: GroupMembersSelectorError) -> Self {
6386 match parent {
6387 GroupMembersSelectorError::GroupNotFound => GroupMembersRemoveError::GroupNotFound,
6388 GroupMembersSelectorError::Other => GroupMembersRemoveError::Other,
6389 GroupMembersSelectorError::SystemManagedGroupDisallowed => GroupMembersRemoveError::SystemManagedGroupDisallowed,
6390 GroupMembersSelectorError::MemberNotInGroup => GroupMembersRemoveError::MemberNotInGroup,
6391 }
6392 }
6393}
6394#[derive(Debug, Clone, PartialEq, Eq)]
6396#[non_exhaustive] pub struct GroupMembersSelector {
6398 pub group: GroupSelector,
6400 pub users: UsersSelectorArg,
6402}
6403
6404impl GroupMembersSelector {
6405 pub fn new(group: GroupSelector, users: UsersSelectorArg) -> Self {
6406 GroupMembersSelector {
6407 group,
6408 users,
6409 }
6410 }
6411}
6412
6413const GROUP_MEMBERS_SELECTOR_FIELDS: &[&str] = &["group",
6414 "users"];
6415impl GroupMembersSelector {
6416 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6417 map: V,
6418 ) -> Result<GroupMembersSelector, V::Error> {
6419 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6420 }
6421
6422 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6423 mut map: V,
6424 optional: bool,
6425 ) -> Result<Option<GroupMembersSelector>, V::Error> {
6426 let mut field_group = None;
6427 let mut field_users = None;
6428 let mut nothing = true;
6429 while let Some(key) = map.next_key::<&str>()? {
6430 nothing = false;
6431 match key {
6432 "group" => {
6433 if field_group.is_some() {
6434 return Err(::serde::de::Error::duplicate_field("group"));
6435 }
6436 field_group = Some(map.next_value()?);
6437 }
6438 "users" => {
6439 if field_users.is_some() {
6440 return Err(::serde::de::Error::duplicate_field("users"));
6441 }
6442 field_users = Some(map.next_value()?);
6443 }
6444 _ => {
6445 map.next_value::<::serde_json::Value>()?;
6447 }
6448 }
6449 }
6450 if optional && nothing {
6451 return Ok(None);
6452 }
6453 let result = GroupMembersSelector {
6454 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6455 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
6456 };
6457 Ok(Some(result))
6458 }
6459
6460 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6461 &self,
6462 s: &mut S::SerializeStruct,
6463 ) -> Result<(), S::Error> {
6464 use serde::ser::SerializeStruct;
6465 s.serialize_field("group", &self.group)?;
6466 s.serialize_field("users", &self.users)?;
6467 Ok(())
6468 }
6469}
6470
6471impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelector {
6472 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6473 use serde::de::{MapAccess, Visitor};
6475 struct StructVisitor;
6476 impl<'de> Visitor<'de> for StructVisitor {
6477 type Value = GroupMembersSelector;
6478 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6479 f.write_str("a GroupMembersSelector struct")
6480 }
6481 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6482 GroupMembersSelector::internal_deserialize(map)
6483 }
6484 }
6485 deserializer.deserialize_struct("GroupMembersSelector", GROUP_MEMBERS_SELECTOR_FIELDS, StructVisitor)
6486 }
6487}
6488
6489impl ::serde::ser::Serialize for GroupMembersSelector {
6490 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6491 use serde::ser::SerializeStruct;
6493 let mut s = serializer.serialize_struct("GroupMembersSelector", 2)?;
6494 self.internal_serialize::<S>(&mut s)?;
6495 s.end()
6496 }
6497}
6498
6499#[derive(Debug, Clone, PartialEq, Eq)]
6502#[non_exhaustive] pub enum GroupMembersSelectorError {
6504 GroupNotFound,
6506 SystemManagedGroupDisallowed,
6508 MemberNotInGroup,
6510 Other,
6513}
6514
6515impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSelectorError {
6516 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6517 use serde::de::{self, MapAccess, Visitor};
6519 struct EnumVisitor;
6520 impl<'de> Visitor<'de> for EnumVisitor {
6521 type Value = GroupMembersSelectorError;
6522 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6523 f.write_str("a GroupMembersSelectorError structure")
6524 }
6525 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6526 let tag: &str = match map.next_key()? {
6527 Some(".tag") => map.next_value()?,
6528 _ => return Err(de::Error::missing_field(".tag"))
6529 };
6530 let value = match tag {
6531 "group_not_found" => GroupMembersSelectorError::GroupNotFound,
6532 "system_managed_group_disallowed" => GroupMembersSelectorError::SystemManagedGroupDisallowed,
6533 "member_not_in_group" => GroupMembersSelectorError::MemberNotInGroup,
6534 _ => GroupMembersSelectorError::Other,
6535 };
6536 crate::eat_json_fields(&mut map)?;
6537 Ok(value)
6538 }
6539 }
6540 const VARIANTS: &[&str] = &["group_not_found",
6541 "other",
6542 "system_managed_group_disallowed",
6543 "member_not_in_group"];
6544 deserializer.deserialize_struct("GroupMembersSelectorError", VARIANTS, EnumVisitor)
6545 }
6546}
6547
6548impl ::serde::ser::Serialize for GroupMembersSelectorError {
6549 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6550 use serde::ser::SerializeStruct;
6552 match self {
6553 GroupMembersSelectorError::GroupNotFound => {
6554 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6556 s.serialize_field(".tag", "group_not_found")?;
6557 s.end()
6558 }
6559 GroupMembersSelectorError::SystemManagedGroupDisallowed => {
6560 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6562 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6563 s.end()
6564 }
6565 GroupMembersSelectorError::MemberNotInGroup => {
6566 let mut s = serializer.serialize_struct("GroupMembersSelectorError", 1)?;
6568 s.serialize_field(".tag", "member_not_in_group")?;
6569 s.end()
6570 }
6571 GroupMembersSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6572 }
6573 }
6574}
6575
6576impl ::std::error::Error for GroupMembersSelectorError {
6577}
6578
6579impl ::std::fmt::Display for GroupMembersSelectorError {
6580 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6581 match self {
6582 GroupMembersSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6583 GroupMembersSelectorError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6584 GroupMembersSelectorError::MemberNotInGroup => f.write_str("At least one of the specified users is not a member of the group."),
6585 _ => write!(f, "{:?}", *self),
6586 }
6587 }
6588}
6589
6590impl From<GroupSelectorWithTeamGroupError> for GroupMembersSelectorError {
6592 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
6593 match parent {
6594 GroupSelectorWithTeamGroupError::GroupNotFound => GroupMembersSelectorError::GroupNotFound,
6595 GroupSelectorWithTeamGroupError::Other => GroupMembersSelectorError::Other,
6596 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupMembersSelectorError::SystemManagedGroupDisallowed,
6597 }
6598 }
6599}
6600#[derive(Debug, Clone, PartialEq, Eq)]
6601#[non_exhaustive] pub struct GroupMembersSetAccessTypeArg {
6603 pub group: GroupSelector,
6605 pub user: UserSelectorArg,
6607 pub access_type: GroupAccessType,
6609 pub return_members: bool,
6613}
6614
6615impl GroupMembersSetAccessTypeArg {
6616 pub fn new(group: GroupSelector, user: UserSelectorArg, access_type: GroupAccessType) -> Self {
6617 GroupMembersSetAccessTypeArg {
6618 group,
6619 user,
6620 access_type,
6621 return_members: true,
6622 }
6623 }
6624
6625 pub fn with_return_members(mut self, value: bool) -> Self {
6626 self.return_members = value;
6627 self
6628 }
6629}
6630
6631const GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS: &[&str] = &["group",
6632 "user",
6633 "access_type",
6634 "return_members"];
6635impl GroupMembersSetAccessTypeArg {
6636 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
6637 map: V,
6638 ) -> Result<GroupMembersSetAccessTypeArg, V::Error> {
6639 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
6640 }
6641
6642 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
6643 mut map: V,
6644 optional: bool,
6645 ) -> Result<Option<GroupMembersSetAccessTypeArg>, V::Error> {
6646 let mut field_group = None;
6647 let mut field_user = None;
6648 let mut field_access_type = None;
6649 let mut field_return_members = None;
6650 let mut nothing = true;
6651 while let Some(key) = map.next_key::<&str>()? {
6652 nothing = false;
6653 match key {
6654 "group" => {
6655 if field_group.is_some() {
6656 return Err(::serde::de::Error::duplicate_field("group"));
6657 }
6658 field_group = Some(map.next_value()?);
6659 }
6660 "user" => {
6661 if field_user.is_some() {
6662 return Err(::serde::de::Error::duplicate_field("user"));
6663 }
6664 field_user = Some(map.next_value()?);
6665 }
6666 "access_type" => {
6667 if field_access_type.is_some() {
6668 return Err(::serde::de::Error::duplicate_field("access_type"));
6669 }
6670 field_access_type = Some(map.next_value()?);
6671 }
6672 "return_members" => {
6673 if field_return_members.is_some() {
6674 return Err(::serde::de::Error::duplicate_field("return_members"));
6675 }
6676 field_return_members = Some(map.next_value()?);
6677 }
6678 _ => {
6679 map.next_value::<::serde_json::Value>()?;
6681 }
6682 }
6683 }
6684 if optional && nothing {
6685 return Ok(None);
6686 }
6687 let result = GroupMembersSetAccessTypeArg {
6688 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
6689 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
6690 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
6691 return_members: field_return_members.unwrap_or(true),
6692 };
6693 Ok(Some(result))
6694 }
6695
6696 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
6697 &self,
6698 s: &mut S::SerializeStruct,
6699 ) -> Result<(), S::Error> {
6700 use serde::ser::SerializeStruct;
6701 s.serialize_field("group", &self.group)?;
6702 s.serialize_field("user", &self.user)?;
6703 s.serialize_field("access_type", &self.access_type)?;
6704 if !self.return_members {
6705 s.serialize_field("return_members", &self.return_members)?;
6706 }
6707 Ok(())
6708 }
6709}
6710
6711impl<'de> ::serde::de::Deserialize<'de> for GroupMembersSetAccessTypeArg {
6712 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6713 use serde::de::{MapAccess, Visitor};
6715 struct StructVisitor;
6716 impl<'de> Visitor<'de> for StructVisitor {
6717 type Value = GroupMembersSetAccessTypeArg;
6718 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6719 f.write_str("a GroupMembersSetAccessTypeArg struct")
6720 }
6721 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
6722 GroupMembersSetAccessTypeArg::internal_deserialize(map)
6723 }
6724 }
6725 deserializer.deserialize_struct("GroupMembersSetAccessTypeArg", GROUP_MEMBERS_SET_ACCESS_TYPE_ARG_FIELDS, StructVisitor)
6726 }
6727}
6728
6729impl ::serde::ser::Serialize for GroupMembersSetAccessTypeArg {
6730 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6731 use serde::ser::SerializeStruct;
6733 let mut s = serializer.serialize_struct("GroupMembersSetAccessTypeArg", 4)?;
6734 self.internal_serialize::<S>(&mut s)?;
6735 s.end()
6736 }
6737}
6738
6739impl From<GroupMembersSetAccessTypeArg> for GroupMemberSelector {
6741 fn from(subtype: GroupMembersSetAccessTypeArg) -> Self {
6742 Self {
6743 group: subtype.group,
6744 user: subtype.user,
6745 }
6746 }
6747}
6748#[derive(Debug, Clone, PartialEq, Eq)]
6750pub enum GroupSelector {
6751 GroupId(crate::types::team_common::GroupId),
6753 GroupExternalId(crate::types::team_common::GroupExternalId),
6755}
6756
6757impl<'de> ::serde::de::Deserialize<'de> for GroupSelector {
6758 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6759 use serde::de::{self, MapAccess, Visitor};
6761 struct EnumVisitor;
6762 impl<'de> Visitor<'de> for EnumVisitor {
6763 type Value = GroupSelector;
6764 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6765 f.write_str("a GroupSelector structure")
6766 }
6767 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6768 let tag: &str = match map.next_key()? {
6769 Some(".tag") => map.next_value()?,
6770 _ => return Err(de::Error::missing_field(".tag"))
6771 };
6772 let value = match tag {
6773 "group_id" => {
6774 match map.next_key()? {
6775 Some("group_id") => GroupSelector::GroupId(map.next_value()?),
6776 None => return Err(de::Error::missing_field("group_id")),
6777 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6778 }
6779 }
6780 "group_external_id" => {
6781 match map.next_key()? {
6782 Some("group_external_id") => GroupSelector::GroupExternalId(map.next_value()?),
6783 None => return Err(de::Error::missing_field("group_external_id")),
6784 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
6785 }
6786 }
6787 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
6788 };
6789 crate::eat_json_fields(&mut map)?;
6790 Ok(value)
6791 }
6792 }
6793 const VARIANTS: &[&str] = &["group_id",
6794 "group_external_id"];
6795 deserializer.deserialize_struct("GroupSelector", VARIANTS, EnumVisitor)
6796 }
6797}
6798
6799impl ::serde::ser::Serialize for GroupSelector {
6800 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6801 use serde::ser::SerializeStruct;
6803 match self {
6804 GroupSelector::GroupId(x) => {
6805 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
6807 s.serialize_field(".tag", "group_id")?;
6808 s.serialize_field("group_id", x)?;
6809 s.end()
6810 }
6811 GroupSelector::GroupExternalId(x) => {
6812 let mut s = serializer.serialize_struct("GroupSelector", 2)?;
6814 s.serialize_field(".tag", "group_external_id")?;
6815 s.serialize_field("group_external_id", x)?;
6816 s.end()
6817 }
6818 }
6819 }
6820}
6821
6822#[derive(Debug, Clone, PartialEq, Eq)]
6824#[non_exhaustive] pub enum GroupSelectorError {
6826 GroupNotFound,
6828 Other,
6831}
6832
6833impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorError {
6834 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6835 use serde::de::{self, MapAccess, Visitor};
6837 struct EnumVisitor;
6838 impl<'de> Visitor<'de> for EnumVisitor {
6839 type Value = GroupSelectorError;
6840 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6841 f.write_str("a GroupSelectorError structure")
6842 }
6843 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6844 let tag: &str = match map.next_key()? {
6845 Some(".tag") => map.next_value()?,
6846 _ => return Err(de::Error::missing_field(".tag"))
6847 };
6848 let value = match tag {
6849 "group_not_found" => GroupSelectorError::GroupNotFound,
6850 _ => GroupSelectorError::Other,
6851 };
6852 crate::eat_json_fields(&mut map)?;
6853 Ok(value)
6854 }
6855 }
6856 const VARIANTS: &[&str] = &["group_not_found",
6857 "other"];
6858 deserializer.deserialize_struct("GroupSelectorError", VARIANTS, EnumVisitor)
6859 }
6860}
6861
6862impl ::serde::ser::Serialize for GroupSelectorError {
6863 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6864 use serde::ser::SerializeStruct;
6866 match self {
6867 GroupSelectorError::GroupNotFound => {
6868 let mut s = serializer.serialize_struct("GroupSelectorError", 1)?;
6870 s.serialize_field(".tag", "group_not_found")?;
6871 s.end()
6872 }
6873 GroupSelectorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6874 }
6875 }
6876}
6877
6878impl ::std::error::Error for GroupSelectorError {
6879}
6880
6881impl ::std::fmt::Display for GroupSelectorError {
6882 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6883 match self {
6884 GroupSelectorError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6885 _ => write!(f, "{:?}", *self),
6886 }
6887 }
6888}
6889
6890#[derive(Debug, Clone, PartialEq, Eq)]
6893#[non_exhaustive] pub enum GroupSelectorWithTeamGroupError {
6895 GroupNotFound,
6897 SystemManagedGroupDisallowed,
6899 Other,
6902}
6903
6904impl<'de> ::serde::de::Deserialize<'de> for GroupSelectorWithTeamGroupError {
6905 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
6906 use serde::de::{self, MapAccess, Visitor};
6908 struct EnumVisitor;
6909 impl<'de> Visitor<'de> for EnumVisitor {
6910 type Value = GroupSelectorWithTeamGroupError;
6911 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6912 f.write_str("a GroupSelectorWithTeamGroupError structure")
6913 }
6914 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
6915 let tag: &str = match map.next_key()? {
6916 Some(".tag") => map.next_value()?,
6917 _ => return Err(de::Error::missing_field(".tag"))
6918 };
6919 let value = match tag {
6920 "group_not_found" => GroupSelectorWithTeamGroupError::GroupNotFound,
6921 "system_managed_group_disallowed" => GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed,
6922 _ => GroupSelectorWithTeamGroupError::Other,
6923 };
6924 crate::eat_json_fields(&mut map)?;
6925 Ok(value)
6926 }
6927 }
6928 const VARIANTS: &[&str] = &["group_not_found",
6929 "other",
6930 "system_managed_group_disallowed"];
6931 deserializer.deserialize_struct("GroupSelectorWithTeamGroupError", VARIANTS, EnumVisitor)
6932 }
6933}
6934
6935impl ::serde::ser::Serialize for GroupSelectorWithTeamGroupError {
6936 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
6937 use serde::ser::SerializeStruct;
6939 match self {
6940 GroupSelectorWithTeamGroupError::GroupNotFound => {
6941 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
6943 s.serialize_field(".tag", "group_not_found")?;
6944 s.end()
6945 }
6946 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => {
6947 let mut s = serializer.serialize_struct("GroupSelectorWithTeamGroupError", 1)?;
6949 s.serialize_field(".tag", "system_managed_group_disallowed")?;
6950 s.end()
6951 }
6952 GroupSelectorWithTeamGroupError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
6953 }
6954 }
6955}
6956
6957impl ::std::error::Error for GroupSelectorWithTeamGroupError {
6958}
6959
6960impl ::std::fmt::Display for GroupSelectorWithTeamGroupError {
6961 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6962 match self {
6963 GroupSelectorWithTeamGroupError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
6964 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
6965 _ => write!(f, "{:?}", *self),
6966 }
6967 }
6968}
6969
6970impl From<GroupSelectorError> for GroupSelectorWithTeamGroupError {
6972 fn from(parent: GroupSelectorError) -> Self {
6973 match parent {
6974 GroupSelectorError::GroupNotFound => GroupSelectorWithTeamGroupError::GroupNotFound,
6975 GroupSelectorError::Other => GroupSelectorWithTeamGroupError::Other,
6976 }
6977 }
6978}
6979#[derive(Debug, Clone, PartialEq, Eq)]
6980#[non_exhaustive] pub struct GroupUpdateArgs {
6982 pub group: GroupSelector,
6984 pub return_members: bool,
6988 pub new_group_name: Option<String>,
6990 pub new_group_external_id: Option<crate::types::team_common::GroupExternalId>,
6993 pub new_group_management_type: Option<crate::types::team_common::GroupManagementType>,
6995}
6996
6997impl GroupUpdateArgs {
6998 pub fn new(group: GroupSelector) -> Self {
6999 GroupUpdateArgs {
7000 group,
7001 return_members: true,
7002 new_group_name: None,
7003 new_group_external_id: None,
7004 new_group_management_type: None,
7005 }
7006 }
7007
7008 pub fn with_return_members(mut self, value: bool) -> Self {
7009 self.return_members = value;
7010 self
7011 }
7012
7013 pub fn with_new_group_name(mut self, value: String) -> Self {
7014 self.new_group_name = Some(value);
7015 self
7016 }
7017
7018 pub fn with_new_group_external_id(
7019 mut self,
7020 value: crate::types::team_common::GroupExternalId,
7021 ) -> Self {
7022 self.new_group_external_id = Some(value);
7023 self
7024 }
7025
7026 pub fn with_new_group_management_type(
7027 mut self,
7028 value: crate::types::team_common::GroupManagementType,
7029 ) -> Self {
7030 self.new_group_management_type = Some(value);
7031 self
7032 }
7033}
7034
7035const GROUP_UPDATE_ARGS_FIELDS: &[&str] = &["group",
7036 "return_members",
7037 "new_group_name",
7038 "new_group_external_id",
7039 "new_group_management_type"];
7040impl GroupUpdateArgs {
7041 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7042 map: V,
7043 ) -> Result<GroupUpdateArgs, V::Error> {
7044 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7045 }
7046
7047 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7048 mut map: V,
7049 optional: bool,
7050 ) -> Result<Option<GroupUpdateArgs>, V::Error> {
7051 let mut field_group = None;
7052 let mut field_return_members = None;
7053 let mut field_new_group_name = None;
7054 let mut field_new_group_external_id = None;
7055 let mut field_new_group_management_type = None;
7056 let mut nothing = true;
7057 while let Some(key) = map.next_key::<&str>()? {
7058 nothing = false;
7059 match key {
7060 "group" => {
7061 if field_group.is_some() {
7062 return Err(::serde::de::Error::duplicate_field("group"));
7063 }
7064 field_group = Some(map.next_value()?);
7065 }
7066 "return_members" => {
7067 if field_return_members.is_some() {
7068 return Err(::serde::de::Error::duplicate_field("return_members"));
7069 }
7070 field_return_members = Some(map.next_value()?);
7071 }
7072 "new_group_name" => {
7073 if field_new_group_name.is_some() {
7074 return Err(::serde::de::Error::duplicate_field("new_group_name"));
7075 }
7076 field_new_group_name = Some(map.next_value()?);
7077 }
7078 "new_group_external_id" => {
7079 if field_new_group_external_id.is_some() {
7080 return Err(::serde::de::Error::duplicate_field("new_group_external_id"));
7081 }
7082 field_new_group_external_id = Some(map.next_value()?);
7083 }
7084 "new_group_management_type" => {
7085 if field_new_group_management_type.is_some() {
7086 return Err(::serde::de::Error::duplicate_field("new_group_management_type"));
7087 }
7088 field_new_group_management_type = Some(map.next_value()?);
7089 }
7090 _ => {
7091 map.next_value::<::serde_json::Value>()?;
7093 }
7094 }
7095 }
7096 if optional && nothing {
7097 return Ok(None);
7098 }
7099 let result = GroupUpdateArgs {
7100 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7101 return_members: field_return_members.unwrap_or(true),
7102 new_group_name: field_new_group_name.and_then(Option::flatten),
7103 new_group_external_id: field_new_group_external_id.and_then(Option::flatten),
7104 new_group_management_type: field_new_group_management_type.and_then(Option::flatten),
7105 };
7106 Ok(Some(result))
7107 }
7108
7109 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7110 &self,
7111 s: &mut S::SerializeStruct,
7112 ) -> Result<(), S::Error> {
7113 use serde::ser::SerializeStruct;
7114 s.serialize_field("group", &self.group)?;
7115 if !self.return_members {
7116 s.serialize_field("return_members", &self.return_members)?;
7117 }
7118 if let Some(val) = &self.new_group_name {
7119 s.serialize_field("new_group_name", val)?;
7120 }
7121 if let Some(val) = &self.new_group_external_id {
7122 s.serialize_field("new_group_external_id", val)?;
7123 }
7124 if let Some(val) = &self.new_group_management_type {
7125 s.serialize_field("new_group_management_type", val)?;
7126 }
7127 Ok(())
7128 }
7129}
7130
7131impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateArgs {
7132 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7133 use serde::de::{MapAccess, Visitor};
7135 struct StructVisitor;
7136 impl<'de> Visitor<'de> for StructVisitor {
7137 type Value = GroupUpdateArgs;
7138 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7139 f.write_str("a GroupUpdateArgs struct")
7140 }
7141 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7142 GroupUpdateArgs::internal_deserialize(map)
7143 }
7144 }
7145 deserializer.deserialize_struct("GroupUpdateArgs", GROUP_UPDATE_ARGS_FIELDS, StructVisitor)
7146 }
7147}
7148
7149impl ::serde::ser::Serialize for GroupUpdateArgs {
7150 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7151 use serde::ser::SerializeStruct;
7153 let mut s = serializer.serialize_struct("GroupUpdateArgs", 5)?;
7154 self.internal_serialize::<S>(&mut s)?;
7155 s.end()
7156 }
7157}
7158
7159impl From<GroupUpdateArgs> for IncludeMembersArg {
7161 fn from(subtype: GroupUpdateArgs) -> Self {
7162 Self {
7163 return_members: subtype.return_members,
7164 }
7165 }
7166}
7167#[derive(Debug, Clone, PartialEq, Eq)]
7168#[non_exhaustive] pub enum GroupUpdateError {
7170 GroupNotFound,
7172 SystemManagedGroupDisallowed,
7174 GroupNameAlreadyUsed,
7176 GroupNameInvalid,
7178 ExternalIdAlreadyInUse,
7180 Other,
7183}
7184
7185impl<'de> ::serde::de::Deserialize<'de> for GroupUpdateError {
7186 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7187 use serde::de::{self, MapAccess, Visitor};
7189 struct EnumVisitor;
7190 impl<'de> Visitor<'de> for EnumVisitor {
7191 type Value = GroupUpdateError;
7192 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7193 f.write_str("a GroupUpdateError structure")
7194 }
7195 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7196 let tag: &str = match map.next_key()? {
7197 Some(".tag") => map.next_value()?,
7198 _ => return Err(de::Error::missing_field(".tag"))
7199 };
7200 let value = match tag {
7201 "group_not_found" => GroupUpdateError::GroupNotFound,
7202 "system_managed_group_disallowed" => GroupUpdateError::SystemManagedGroupDisallowed,
7203 "group_name_already_used" => GroupUpdateError::GroupNameAlreadyUsed,
7204 "group_name_invalid" => GroupUpdateError::GroupNameInvalid,
7205 "external_id_already_in_use" => GroupUpdateError::ExternalIdAlreadyInUse,
7206 _ => GroupUpdateError::Other,
7207 };
7208 crate::eat_json_fields(&mut map)?;
7209 Ok(value)
7210 }
7211 }
7212 const VARIANTS: &[&str] = &["group_not_found",
7213 "other",
7214 "system_managed_group_disallowed",
7215 "group_name_already_used",
7216 "group_name_invalid",
7217 "external_id_already_in_use"];
7218 deserializer.deserialize_struct("GroupUpdateError", VARIANTS, EnumVisitor)
7219 }
7220}
7221
7222impl ::serde::ser::Serialize for GroupUpdateError {
7223 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7224 use serde::ser::SerializeStruct;
7226 match self {
7227 GroupUpdateError::GroupNotFound => {
7228 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7230 s.serialize_field(".tag", "group_not_found")?;
7231 s.end()
7232 }
7233 GroupUpdateError::SystemManagedGroupDisallowed => {
7234 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7236 s.serialize_field(".tag", "system_managed_group_disallowed")?;
7237 s.end()
7238 }
7239 GroupUpdateError::GroupNameAlreadyUsed => {
7240 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7242 s.serialize_field(".tag", "group_name_already_used")?;
7243 s.end()
7244 }
7245 GroupUpdateError::GroupNameInvalid => {
7246 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7248 s.serialize_field(".tag", "group_name_invalid")?;
7249 s.end()
7250 }
7251 GroupUpdateError::ExternalIdAlreadyInUse => {
7252 let mut s = serializer.serialize_struct("GroupUpdateError", 1)?;
7254 s.serialize_field(".tag", "external_id_already_in_use")?;
7255 s.end()
7256 }
7257 GroupUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7258 }
7259 }
7260}
7261
7262impl ::std::error::Error for GroupUpdateError {
7263}
7264
7265impl ::std::fmt::Display for GroupUpdateError {
7266 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7267 match self {
7268 GroupUpdateError::GroupNotFound => f.write_str("No matching group found. No groups match the specified group ID."),
7269 GroupUpdateError::SystemManagedGroupDisallowed => f.write_str("This operation is not supported on system-managed groups."),
7270 GroupUpdateError::GroupNameAlreadyUsed => f.write_str("The requested group name is already being used by another group."),
7271 GroupUpdateError::GroupNameInvalid => f.write_str("Group name is empty or has invalid characters."),
7272 GroupUpdateError::ExternalIdAlreadyInUse => f.write_str("The requested external ID is already being used by another group."),
7273 _ => write!(f, "{:?}", *self),
7274 }
7275 }
7276}
7277
7278impl From<GroupSelectorWithTeamGroupError> for GroupUpdateError {
7280 fn from(parent: GroupSelectorWithTeamGroupError) -> Self {
7281 match parent {
7282 GroupSelectorWithTeamGroupError::GroupNotFound => GroupUpdateError::GroupNotFound,
7283 GroupSelectorWithTeamGroupError::Other => GroupUpdateError::Other,
7284 GroupSelectorWithTeamGroupError::SystemManagedGroupDisallowed => GroupUpdateError::SystemManagedGroupDisallowed,
7285 }
7286 }
7287}
7288#[derive(Debug, Clone, PartialEq, Eq)]
7289#[non_exhaustive] pub enum GroupsGetInfoError {
7291 GroupNotOnTeam,
7293 Other,
7296}
7297
7298impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoError {
7299 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7300 use serde::de::{self, MapAccess, Visitor};
7302 struct EnumVisitor;
7303 impl<'de> Visitor<'de> for EnumVisitor {
7304 type Value = GroupsGetInfoError;
7305 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7306 f.write_str("a GroupsGetInfoError structure")
7307 }
7308 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7309 let tag: &str = match map.next_key()? {
7310 Some(".tag") => map.next_value()?,
7311 _ => return Err(de::Error::missing_field(".tag"))
7312 };
7313 let value = match tag {
7314 "group_not_on_team" => GroupsGetInfoError::GroupNotOnTeam,
7315 _ => GroupsGetInfoError::Other,
7316 };
7317 crate::eat_json_fields(&mut map)?;
7318 Ok(value)
7319 }
7320 }
7321 const VARIANTS: &[&str] = &["group_not_on_team",
7322 "other"];
7323 deserializer.deserialize_struct("GroupsGetInfoError", VARIANTS, EnumVisitor)
7324 }
7325}
7326
7327impl ::serde::ser::Serialize for GroupsGetInfoError {
7328 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7329 use serde::ser::SerializeStruct;
7331 match self {
7332 GroupsGetInfoError::GroupNotOnTeam => {
7333 let mut s = serializer.serialize_struct("GroupsGetInfoError", 1)?;
7335 s.serialize_field(".tag", "group_not_on_team")?;
7336 s.end()
7337 }
7338 GroupsGetInfoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7339 }
7340 }
7341}
7342
7343impl ::std::error::Error for GroupsGetInfoError {
7344}
7345
7346impl ::std::fmt::Display for GroupsGetInfoError {
7347 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7348 match self {
7349 GroupsGetInfoError::GroupNotOnTeam => f.write_str("The group is not on your team."),
7350 _ => write!(f, "{:?}", *self),
7351 }
7352 }
7353}
7354
7355#[derive(Debug, Clone, PartialEq, Eq)]
7356pub enum GroupsGetInfoItem {
7357 IdNotFound(String),
7361 GroupInfo(GroupFullInfo),
7363}
7364
7365impl<'de> ::serde::de::Deserialize<'de> for GroupsGetInfoItem {
7366 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7367 use serde::de::{self, MapAccess, Visitor};
7369 struct EnumVisitor;
7370 impl<'de> Visitor<'de> for EnumVisitor {
7371 type Value = GroupsGetInfoItem;
7372 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7373 f.write_str("a GroupsGetInfoItem structure")
7374 }
7375 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7376 let tag: &str = match map.next_key()? {
7377 Some(".tag") => map.next_value()?,
7378 _ => return Err(de::Error::missing_field(".tag"))
7379 };
7380 let value = match tag {
7381 "id_not_found" => {
7382 match map.next_key()? {
7383 Some("id_not_found") => GroupsGetInfoItem::IdNotFound(map.next_value()?),
7384 None => return Err(de::Error::missing_field("id_not_found")),
7385 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
7386 }
7387 }
7388 "group_info" => GroupsGetInfoItem::GroupInfo(GroupFullInfo::internal_deserialize(&mut map)?),
7389 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
7390 };
7391 crate::eat_json_fields(&mut map)?;
7392 Ok(value)
7393 }
7394 }
7395 const VARIANTS: &[&str] = &["id_not_found",
7396 "group_info"];
7397 deserializer.deserialize_struct("GroupsGetInfoItem", VARIANTS, EnumVisitor)
7398 }
7399}
7400
7401impl ::serde::ser::Serialize for GroupsGetInfoItem {
7402 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7403 use serde::ser::SerializeStruct;
7405 match self {
7406 GroupsGetInfoItem::IdNotFound(x) => {
7407 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 2)?;
7409 s.serialize_field(".tag", "id_not_found")?;
7410 s.serialize_field("id_not_found", x)?;
7411 s.end()
7412 }
7413 GroupsGetInfoItem::GroupInfo(x) => {
7414 let mut s = serializer.serialize_struct("GroupsGetInfoItem", 8)?;
7416 s.serialize_field(".tag", "group_info")?;
7417 x.internal_serialize::<S>(&mut s)?;
7418 s.end()
7419 }
7420 }
7421 }
7422}
7423
7424#[derive(Debug, Clone, PartialEq, Eq)]
7425#[non_exhaustive] pub struct GroupsListArg {
7427 pub limit: u32,
7429}
7430
7431impl Default for GroupsListArg {
7432 fn default() -> Self {
7433 GroupsListArg {
7434 limit: 1000,
7435 }
7436 }
7437}
7438
7439impl GroupsListArg {
7440 pub fn with_limit(mut self, value: u32) -> Self {
7441 self.limit = value;
7442 self
7443 }
7444}
7445
7446const GROUPS_LIST_ARG_FIELDS: &[&str] = &["limit"];
7447impl GroupsListArg {
7448 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7450 mut map: V,
7451 ) -> Result<GroupsListArg, V::Error> {
7452 let mut field_limit = None;
7453 while let Some(key) = map.next_key::<&str>()? {
7454 match key {
7455 "limit" => {
7456 if field_limit.is_some() {
7457 return Err(::serde::de::Error::duplicate_field("limit"));
7458 }
7459 field_limit = Some(map.next_value()?);
7460 }
7461 _ => {
7462 map.next_value::<::serde_json::Value>()?;
7464 }
7465 }
7466 }
7467 let result = GroupsListArg {
7468 limit: field_limit.unwrap_or(1000),
7469 };
7470 Ok(result)
7471 }
7472
7473 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7474 &self,
7475 s: &mut S::SerializeStruct,
7476 ) -> Result<(), S::Error> {
7477 use serde::ser::SerializeStruct;
7478 if self.limit != 1000 {
7479 s.serialize_field("limit", &self.limit)?;
7480 }
7481 Ok(())
7482 }
7483}
7484
7485impl<'de> ::serde::de::Deserialize<'de> for GroupsListArg {
7486 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7487 use serde::de::{MapAccess, Visitor};
7489 struct StructVisitor;
7490 impl<'de> Visitor<'de> for StructVisitor {
7491 type Value = GroupsListArg;
7492 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7493 f.write_str("a GroupsListArg struct")
7494 }
7495 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7496 GroupsListArg::internal_deserialize(map)
7497 }
7498 }
7499 deserializer.deserialize_struct("GroupsListArg", GROUPS_LIST_ARG_FIELDS, StructVisitor)
7500 }
7501}
7502
7503impl ::serde::ser::Serialize for GroupsListArg {
7504 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7505 use serde::ser::SerializeStruct;
7507 let mut s = serializer.serialize_struct("GroupsListArg", 1)?;
7508 self.internal_serialize::<S>(&mut s)?;
7509 s.end()
7510 }
7511}
7512
7513#[derive(Debug, Clone, PartialEq, Eq)]
7514#[non_exhaustive] pub struct GroupsListContinueArg {
7516 pub cursor: String,
7518}
7519
7520impl GroupsListContinueArg {
7521 pub fn new(cursor: String) -> Self {
7522 GroupsListContinueArg {
7523 cursor,
7524 }
7525 }
7526}
7527
7528const GROUPS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
7529impl GroupsListContinueArg {
7530 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7531 map: V,
7532 ) -> Result<GroupsListContinueArg, V::Error> {
7533 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7534 }
7535
7536 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7537 mut map: V,
7538 optional: bool,
7539 ) -> Result<Option<GroupsListContinueArg>, V::Error> {
7540 let mut field_cursor = None;
7541 let mut nothing = true;
7542 while let Some(key) = map.next_key::<&str>()? {
7543 nothing = false;
7544 match key {
7545 "cursor" => {
7546 if field_cursor.is_some() {
7547 return Err(::serde::de::Error::duplicate_field("cursor"));
7548 }
7549 field_cursor = Some(map.next_value()?);
7550 }
7551 _ => {
7552 map.next_value::<::serde_json::Value>()?;
7554 }
7555 }
7556 }
7557 if optional && nothing {
7558 return Ok(None);
7559 }
7560 let result = GroupsListContinueArg {
7561 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7562 };
7563 Ok(Some(result))
7564 }
7565
7566 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7567 &self,
7568 s: &mut S::SerializeStruct,
7569 ) -> Result<(), S::Error> {
7570 use serde::ser::SerializeStruct;
7571 s.serialize_field("cursor", &self.cursor)?;
7572 Ok(())
7573 }
7574}
7575
7576impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueArg {
7577 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7578 use serde::de::{MapAccess, Visitor};
7580 struct StructVisitor;
7581 impl<'de> Visitor<'de> for StructVisitor {
7582 type Value = GroupsListContinueArg;
7583 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7584 f.write_str("a GroupsListContinueArg struct")
7585 }
7586 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7587 GroupsListContinueArg::internal_deserialize(map)
7588 }
7589 }
7590 deserializer.deserialize_struct("GroupsListContinueArg", GROUPS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
7591 }
7592}
7593
7594impl ::serde::ser::Serialize for GroupsListContinueArg {
7595 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7596 use serde::ser::SerializeStruct;
7598 let mut s = serializer.serialize_struct("GroupsListContinueArg", 1)?;
7599 self.internal_serialize::<S>(&mut s)?;
7600 s.end()
7601 }
7602}
7603
7604#[derive(Debug, Clone, PartialEq, Eq)]
7605#[non_exhaustive] pub enum GroupsListContinueError {
7607 InvalidCursor,
7609 Other,
7612}
7613
7614impl<'de> ::serde::de::Deserialize<'de> for GroupsListContinueError {
7615 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7616 use serde::de::{self, MapAccess, Visitor};
7618 struct EnumVisitor;
7619 impl<'de> Visitor<'de> for EnumVisitor {
7620 type Value = GroupsListContinueError;
7621 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7622 f.write_str("a GroupsListContinueError structure")
7623 }
7624 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
7625 let tag: &str = match map.next_key()? {
7626 Some(".tag") => map.next_value()?,
7627 _ => return Err(de::Error::missing_field(".tag"))
7628 };
7629 let value = match tag {
7630 "invalid_cursor" => GroupsListContinueError::InvalidCursor,
7631 _ => GroupsListContinueError::Other,
7632 };
7633 crate::eat_json_fields(&mut map)?;
7634 Ok(value)
7635 }
7636 }
7637 const VARIANTS: &[&str] = &["invalid_cursor",
7638 "other"];
7639 deserializer.deserialize_struct("GroupsListContinueError", VARIANTS, EnumVisitor)
7640 }
7641}
7642
7643impl ::serde::ser::Serialize for GroupsListContinueError {
7644 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7645 use serde::ser::SerializeStruct;
7647 match self {
7648 GroupsListContinueError::InvalidCursor => {
7649 let mut s = serializer.serialize_struct("GroupsListContinueError", 1)?;
7651 s.serialize_field(".tag", "invalid_cursor")?;
7652 s.end()
7653 }
7654 GroupsListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
7655 }
7656 }
7657}
7658
7659impl ::std::error::Error for GroupsListContinueError {
7660}
7661
7662impl ::std::fmt::Display for GroupsListContinueError {
7663 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7664 match self {
7665 GroupsListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
7666 _ => write!(f, "{:?}", *self),
7667 }
7668 }
7669}
7670
7671#[derive(Debug, Clone, PartialEq, Eq)]
7672#[non_exhaustive] pub struct GroupsListResult {
7674 pub groups: Vec<crate::types::team_common::GroupSummary>,
7675 pub cursor: String,
7678 pub has_more: bool,
7681}
7682
7683impl GroupsListResult {
7684 pub fn new(
7685 groups: Vec<crate::types::team_common::GroupSummary>,
7686 cursor: String,
7687 has_more: bool,
7688 ) -> Self {
7689 GroupsListResult {
7690 groups,
7691 cursor,
7692 has_more,
7693 }
7694 }
7695}
7696
7697const GROUPS_LIST_RESULT_FIELDS: &[&str] = &["groups",
7698 "cursor",
7699 "has_more"];
7700impl GroupsListResult {
7701 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7702 map: V,
7703 ) -> Result<GroupsListResult, V::Error> {
7704 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7705 }
7706
7707 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7708 mut map: V,
7709 optional: bool,
7710 ) -> Result<Option<GroupsListResult>, V::Error> {
7711 let mut field_groups = None;
7712 let mut field_cursor = None;
7713 let mut field_has_more = None;
7714 let mut nothing = true;
7715 while let Some(key) = map.next_key::<&str>()? {
7716 nothing = false;
7717 match key {
7718 "groups" => {
7719 if field_groups.is_some() {
7720 return Err(::serde::de::Error::duplicate_field("groups"));
7721 }
7722 field_groups = Some(map.next_value()?);
7723 }
7724 "cursor" => {
7725 if field_cursor.is_some() {
7726 return Err(::serde::de::Error::duplicate_field("cursor"));
7727 }
7728 field_cursor = Some(map.next_value()?);
7729 }
7730 "has_more" => {
7731 if field_has_more.is_some() {
7732 return Err(::serde::de::Error::duplicate_field("has_more"));
7733 }
7734 field_has_more = Some(map.next_value()?);
7735 }
7736 _ => {
7737 map.next_value::<::serde_json::Value>()?;
7739 }
7740 }
7741 }
7742 if optional && nothing {
7743 return Ok(None);
7744 }
7745 let result = GroupsListResult {
7746 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
7747 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7748 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
7749 };
7750 Ok(Some(result))
7751 }
7752
7753 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7754 &self,
7755 s: &mut S::SerializeStruct,
7756 ) -> Result<(), S::Error> {
7757 use serde::ser::SerializeStruct;
7758 s.serialize_field("groups", &self.groups)?;
7759 s.serialize_field("cursor", &self.cursor)?;
7760 s.serialize_field("has_more", &self.has_more)?;
7761 Ok(())
7762 }
7763}
7764
7765impl<'de> ::serde::de::Deserialize<'de> for GroupsListResult {
7766 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7767 use serde::de::{MapAccess, Visitor};
7769 struct StructVisitor;
7770 impl<'de> Visitor<'de> for StructVisitor {
7771 type Value = GroupsListResult;
7772 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7773 f.write_str("a GroupsListResult struct")
7774 }
7775 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7776 GroupsListResult::internal_deserialize(map)
7777 }
7778 }
7779 deserializer.deserialize_struct("GroupsListResult", GROUPS_LIST_RESULT_FIELDS, StructVisitor)
7780 }
7781}
7782
7783impl ::serde::ser::Serialize for GroupsListResult {
7784 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7785 use serde::ser::SerializeStruct;
7787 let mut s = serializer.serialize_struct("GroupsListResult", 3)?;
7788 self.internal_serialize::<S>(&mut s)?;
7789 s.end()
7790 }
7791}
7792
7793#[derive(Debug, Clone, PartialEq, Eq)]
7794#[non_exhaustive] pub struct GroupsMembersListArg {
7796 pub group: GroupSelector,
7798 pub limit: u32,
7800}
7801
7802impl GroupsMembersListArg {
7803 pub fn new(group: GroupSelector) -> Self {
7804 GroupsMembersListArg {
7805 group,
7806 limit: 1000,
7807 }
7808 }
7809
7810 pub fn with_limit(mut self, value: u32) -> Self {
7811 self.limit = value;
7812 self
7813 }
7814}
7815
7816const GROUPS_MEMBERS_LIST_ARG_FIELDS: &[&str] = &["group",
7817 "limit"];
7818impl GroupsMembersListArg {
7819 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7820 map: V,
7821 ) -> Result<GroupsMembersListArg, V::Error> {
7822 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7823 }
7824
7825 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7826 mut map: V,
7827 optional: bool,
7828 ) -> Result<Option<GroupsMembersListArg>, V::Error> {
7829 let mut field_group = None;
7830 let mut field_limit = None;
7831 let mut nothing = true;
7832 while let Some(key) = map.next_key::<&str>()? {
7833 nothing = false;
7834 match key {
7835 "group" => {
7836 if field_group.is_some() {
7837 return Err(::serde::de::Error::duplicate_field("group"));
7838 }
7839 field_group = Some(map.next_value()?);
7840 }
7841 "limit" => {
7842 if field_limit.is_some() {
7843 return Err(::serde::de::Error::duplicate_field("limit"));
7844 }
7845 field_limit = Some(map.next_value()?);
7846 }
7847 _ => {
7848 map.next_value::<::serde_json::Value>()?;
7850 }
7851 }
7852 }
7853 if optional && nothing {
7854 return Ok(None);
7855 }
7856 let result = GroupsMembersListArg {
7857 group: field_group.ok_or_else(|| ::serde::de::Error::missing_field("group"))?,
7858 limit: field_limit.unwrap_or(1000),
7859 };
7860 Ok(Some(result))
7861 }
7862
7863 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7864 &self,
7865 s: &mut S::SerializeStruct,
7866 ) -> Result<(), S::Error> {
7867 use serde::ser::SerializeStruct;
7868 s.serialize_field("group", &self.group)?;
7869 if self.limit != 1000 {
7870 s.serialize_field("limit", &self.limit)?;
7871 }
7872 Ok(())
7873 }
7874}
7875
7876impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListArg {
7877 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7878 use serde::de::{MapAccess, Visitor};
7880 struct StructVisitor;
7881 impl<'de> Visitor<'de> for StructVisitor {
7882 type Value = GroupsMembersListArg;
7883 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7884 f.write_str("a GroupsMembersListArg struct")
7885 }
7886 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7887 GroupsMembersListArg::internal_deserialize(map)
7888 }
7889 }
7890 deserializer.deserialize_struct("GroupsMembersListArg", GROUPS_MEMBERS_LIST_ARG_FIELDS, StructVisitor)
7891 }
7892}
7893
7894impl ::serde::ser::Serialize for GroupsMembersListArg {
7895 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7896 use serde::ser::SerializeStruct;
7898 let mut s = serializer.serialize_struct("GroupsMembersListArg", 2)?;
7899 self.internal_serialize::<S>(&mut s)?;
7900 s.end()
7901 }
7902}
7903
7904#[derive(Debug, Clone, PartialEq, Eq)]
7905#[non_exhaustive] pub struct GroupsMembersListContinueArg {
7907 pub cursor: String,
7909}
7910
7911impl GroupsMembersListContinueArg {
7912 pub fn new(cursor: String) -> Self {
7913 GroupsMembersListContinueArg {
7914 cursor,
7915 }
7916 }
7917}
7918
7919const GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
7920impl GroupsMembersListContinueArg {
7921 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
7922 map: V,
7923 ) -> Result<GroupsMembersListContinueArg, V::Error> {
7924 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
7925 }
7926
7927 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
7928 mut map: V,
7929 optional: bool,
7930 ) -> Result<Option<GroupsMembersListContinueArg>, V::Error> {
7931 let mut field_cursor = None;
7932 let mut nothing = true;
7933 while let Some(key) = map.next_key::<&str>()? {
7934 nothing = false;
7935 match key {
7936 "cursor" => {
7937 if field_cursor.is_some() {
7938 return Err(::serde::de::Error::duplicate_field("cursor"));
7939 }
7940 field_cursor = Some(map.next_value()?);
7941 }
7942 _ => {
7943 map.next_value::<::serde_json::Value>()?;
7945 }
7946 }
7947 }
7948 if optional && nothing {
7949 return Ok(None);
7950 }
7951 let result = GroupsMembersListContinueArg {
7952 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
7953 };
7954 Ok(Some(result))
7955 }
7956
7957 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
7958 &self,
7959 s: &mut S::SerializeStruct,
7960 ) -> Result<(), S::Error> {
7961 use serde::ser::SerializeStruct;
7962 s.serialize_field("cursor", &self.cursor)?;
7963 Ok(())
7964 }
7965}
7966
7967impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueArg {
7968 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
7969 use serde::de::{MapAccess, Visitor};
7971 struct StructVisitor;
7972 impl<'de> Visitor<'de> for StructVisitor {
7973 type Value = GroupsMembersListContinueArg;
7974 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
7975 f.write_str("a GroupsMembersListContinueArg struct")
7976 }
7977 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
7978 GroupsMembersListContinueArg::internal_deserialize(map)
7979 }
7980 }
7981 deserializer.deserialize_struct("GroupsMembersListContinueArg", GROUPS_MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
7982 }
7983}
7984
7985impl ::serde::ser::Serialize for GroupsMembersListContinueArg {
7986 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
7987 use serde::ser::SerializeStruct;
7989 let mut s = serializer.serialize_struct("GroupsMembersListContinueArg", 1)?;
7990 self.internal_serialize::<S>(&mut s)?;
7991 s.end()
7992 }
7993}
7994
7995#[derive(Debug, Clone, PartialEq, Eq)]
7996#[non_exhaustive] pub enum GroupsMembersListContinueError {
7998 InvalidCursor,
8000 Other,
8003}
8004
8005impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListContinueError {
8006 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8007 use serde::de::{self, MapAccess, Visitor};
8009 struct EnumVisitor;
8010 impl<'de> Visitor<'de> for EnumVisitor {
8011 type Value = GroupsMembersListContinueError;
8012 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8013 f.write_str("a GroupsMembersListContinueError structure")
8014 }
8015 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8016 let tag: &str = match map.next_key()? {
8017 Some(".tag") => map.next_value()?,
8018 _ => return Err(de::Error::missing_field(".tag"))
8019 };
8020 let value = match tag {
8021 "invalid_cursor" => GroupsMembersListContinueError::InvalidCursor,
8022 _ => GroupsMembersListContinueError::Other,
8023 };
8024 crate::eat_json_fields(&mut map)?;
8025 Ok(value)
8026 }
8027 }
8028 const VARIANTS: &[&str] = &["invalid_cursor",
8029 "other"];
8030 deserializer.deserialize_struct("GroupsMembersListContinueError", VARIANTS, EnumVisitor)
8031 }
8032}
8033
8034impl ::serde::ser::Serialize for GroupsMembersListContinueError {
8035 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8036 use serde::ser::SerializeStruct;
8038 match self {
8039 GroupsMembersListContinueError::InvalidCursor => {
8040 let mut s = serializer.serialize_struct("GroupsMembersListContinueError", 1)?;
8042 s.serialize_field(".tag", "invalid_cursor")?;
8043 s.end()
8044 }
8045 GroupsMembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8046 }
8047 }
8048}
8049
8050impl ::std::error::Error for GroupsMembersListContinueError {
8051}
8052
8053impl ::std::fmt::Display for GroupsMembersListContinueError {
8054 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8055 match self {
8056 GroupsMembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
8057 _ => write!(f, "{:?}", *self),
8058 }
8059 }
8060}
8061
8062#[derive(Debug, Clone, PartialEq, Eq)]
8063#[non_exhaustive] pub struct GroupsMembersListResult {
8065 pub members: Vec<GroupMemberInfo>,
8066 pub cursor: String,
8070 pub has_more: bool,
8074}
8075
8076impl GroupsMembersListResult {
8077 pub fn new(members: Vec<GroupMemberInfo>, cursor: String, has_more: bool) -> Self {
8078 GroupsMembersListResult {
8079 members,
8080 cursor,
8081 has_more,
8082 }
8083 }
8084}
8085
8086const GROUPS_MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
8087 "cursor",
8088 "has_more"];
8089impl GroupsMembersListResult {
8090 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8091 map: V,
8092 ) -> Result<GroupsMembersListResult, V::Error> {
8093 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8094 }
8095
8096 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8097 mut map: V,
8098 optional: bool,
8099 ) -> Result<Option<GroupsMembersListResult>, V::Error> {
8100 let mut field_members = None;
8101 let mut field_cursor = None;
8102 let mut field_has_more = None;
8103 let mut nothing = true;
8104 while let Some(key) = map.next_key::<&str>()? {
8105 nothing = false;
8106 match key {
8107 "members" => {
8108 if field_members.is_some() {
8109 return Err(::serde::de::Error::duplicate_field("members"));
8110 }
8111 field_members = Some(map.next_value()?);
8112 }
8113 "cursor" => {
8114 if field_cursor.is_some() {
8115 return Err(::serde::de::Error::duplicate_field("cursor"));
8116 }
8117 field_cursor = Some(map.next_value()?);
8118 }
8119 "has_more" => {
8120 if field_has_more.is_some() {
8121 return Err(::serde::de::Error::duplicate_field("has_more"));
8122 }
8123 field_has_more = Some(map.next_value()?);
8124 }
8125 _ => {
8126 map.next_value::<::serde_json::Value>()?;
8128 }
8129 }
8130 }
8131 if optional && nothing {
8132 return Ok(None);
8133 }
8134 let result = GroupsMembersListResult {
8135 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
8136 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
8137 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
8138 };
8139 Ok(Some(result))
8140 }
8141
8142 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8143 &self,
8144 s: &mut S::SerializeStruct,
8145 ) -> Result<(), S::Error> {
8146 use serde::ser::SerializeStruct;
8147 s.serialize_field("members", &self.members)?;
8148 s.serialize_field("cursor", &self.cursor)?;
8149 s.serialize_field("has_more", &self.has_more)?;
8150 Ok(())
8151 }
8152}
8153
8154impl<'de> ::serde::de::Deserialize<'de> for GroupsMembersListResult {
8155 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8156 use serde::de::{MapAccess, Visitor};
8158 struct StructVisitor;
8159 impl<'de> Visitor<'de> for StructVisitor {
8160 type Value = GroupsMembersListResult;
8161 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8162 f.write_str("a GroupsMembersListResult struct")
8163 }
8164 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8165 GroupsMembersListResult::internal_deserialize(map)
8166 }
8167 }
8168 deserializer.deserialize_struct("GroupsMembersListResult", GROUPS_MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
8169 }
8170}
8171
8172impl ::serde::ser::Serialize for GroupsMembersListResult {
8173 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8174 use serde::ser::SerializeStruct;
8176 let mut s = serializer.serialize_struct("GroupsMembersListResult", 3)?;
8177 self.internal_serialize::<S>(&mut s)?;
8178 s.end()
8179 }
8180}
8181
8182#[derive(Debug, Clone, PartialEq, Eq)]
8183#[non_exhaustive] pub enum GroupsPollError {
8185 InvalidAsyncJobId,
8187 InternalError,
8190 AccessDenied,
8192 Other,
8195}
8196
8197impl<'de> ::serde::de::Deserialize<'de> for GroupsPollError {
8198 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8199 use serde::de::{self, MapAccess, Visitor};
8201 struct EnumVisitor;
8202 impl<'de> Visitor<'de> for EnumVisitor {
8203 type Value = GroupsPollError;
8204 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8205 f.write_str("a GroupsPollError structure")
8206 }
8207 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8208 let tag: &str = match map.next_key()? {
8209 Some(".tag") => map.next_value()?,
8210 _ => return Err(de::Error::missing_field(".tag"))
8211 };
8212 let value = match tag {
8213 "invalid_async_job_id" => GroupsPollError::InvalidAsyncJobId,
8214 "internal_error" => GroupsPollError::InternalError,
8215 "access_denied" => GroupsPollError::AccessDenied,
8216 _ => GroupsPollError::Other,
8217 };
8218 crate::eat_json_fields(&mut map)?;
8219 Ok(value)
8220 }
8221 }
8222 const VARIANTS: &[&str] = &["invalid_async_job_id",
8223 "internal_error",
8224 "other",
8225 "access_denied"];
8226 deserializer.deserialize_struct("GroupsPollError", VARIANTS, EnumVisitor)
8227 }
8228}
8229
8230impl ::serde::ser::Serialize for GroupsPollError {
8231 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8232 use serde::ser::SerializeStruct;
8234 match self {
8235 GroupsPollError::InvalidAsyncJobId => {
8236 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8238 s.serialize_field(".tag", "invalid_async_job_id")?;
8239 s.end()
8240 }
8241 GroupsPollError::InternalError => {
8242 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8244 s.serialize_field(".tag", "internal_error")?;
8245 s.end()
8246 }
8247 GroupsPollError::AccessDenied => {
8248 let mut s = serializer.serialize_struct("GroupsPollError", 1)?;
8250 s.serialize_field(".tag", "access_denied")?;
8251 s.end()
8252 }
8253 GroupsPollError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8254 }
8255 }
8256}
8257
8258impl ::std::error::Error for GroupsPollError {
8259}
8260
8261impl ::std::fmt::Display for GroupsPollError {
8262 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8263 match self {
8264 GroupsPollError::InvalidAsyncJobId => f.write_str("The job ID is invalid."),
8265 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."),
8266 GroupsPollError::AccessDenied => f.write_str("You are not allowed to poll this job."),
8267 _ => write!(f, "{:?}", *self),
8268 }
8269 }
8270}
8271
8272impl From<crate::types::dbx_async::PollError> for GroupsPollError {
8274 fn from(parent: crate::types::dbx_async::PollError) -> Self {
8275 match parent {
8276 crate::types::dbx_async::PollError::InvalidAsyncJobId => GroupsPollError::InvalidAsyncJobId,
8277 crate::types::dbx_async::PollError::InternalError => GroupsPollError::InternalError,
8278 crate::types::dbx_async::PollError::Other => GroupsPollError::Other,
8279 }
8280 }
8281}
8282#[derive(Debug, Clone, PartialEq, Eq)]
8284pub enum GroupsSelector {
8285 GroupIds(Vec<crate::types::team_common::GroupId>),
8287 GroupExternalIds(Vec<String>),
8289}
8290
8291impl<'de> ::serde::de::Deserialize<'de> for GroupsSelector {
8292 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8293 use serde::de::{self, MapAccess, Visitor};
8295 struct EnumVisitor;
8296 impl<'de> Visitor<'de> for EnumVisitor {
8297 type Value = GroupsSelector;
8298 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8299 f.write_str("a GroupsSelector structure")
8300 }
8301 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8302 let tag: &str = match map.next_key()? {
8303 Some(".tag") => map.next_value()?,
8304 _ => return Err(de::Error::missing_field(".tag"))
8305 };
8306 let value = match tag {
8307 "group_ids" => {
8308 match map.next_key()? {
8309 Some("group_ids") => GroupsSelector::GroupIds(map.next_value()?),
8310 None => return Err(de::Error::missing_field("group_ids")),
8311 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8312 }
8313 }
8314 "group_external_ids" => {
8315 match map.next_key()? {
8316 Some("group_external_ids") => GroupsSelector::GroupExternalIds(map.next_value()?),
8317 None => return Err(de::Error::missing_field("group_external_ids")),
8318 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8319 }
8320 }
8321 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
8322 };
8323 crate::eat_json_fields(&mut map)?;
8324 Ok(value)
8325 }
8326 }
8327 const VARIANTS: &[&str] = &["group_ids",
8328 "group_external_ids"];
8329 deserializer.deserialize_struct("GroupsSelector", VARIANTS, EnumVisitor)
8330 }
8331}
8332
8333impl ::serde::ser::Serialize for GroupsSelector {
8334 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8335 use serde::ser::SerializeStruct;
8337 match self {
8338 GroupsSelector::GroupIds(x) => {
8339 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
8341 s.serialize_field(".tag", "group_ids")?;
8342 s.serialize_field("group_ids", x)?;
8343 s.end()
8344 }
8345 GroupsSelector::GroupExternalIds(x) => {
8346 let mut s = serializer.serialize_struct("GroupsSelector", 2)?;
8348 s.serialize_field(".tag", "group_external_ids")?;
8349 s.serialize_field("group_external_ids", x)?;
8350 s.end()
8351 }
8352 }
8353 }
8354}
8355
8356#[derive(Debug, Clone, PartialEq, Eq)]
8358#[non_exhaustive] pub enum HasTeamFileEventsValue {
8360 Enabled(bool),
8362 Other,
8365}
8366
8367impl<'de> ::serde::de::Deserialize<'de> for HasTeamFileEventsValue {
8368 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8369 use serde::de::{self, MapAccess, Visitor};
8371 struct EnumVisitor;
8372 impl<'de> Visitor<'de> for EnumVisitor {
8373 type Value = HasTeamFileEventsValue;
8374 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8375 f.write_str("a HasTeamFileEventsValue structure")
8376 }
8377 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8378 let tag: &str = match map.next_key()? {
8379 Some(".tag") => map.next_value()?,
8380 _ => return Err(de::Error::missing_field(".tag"))
8381 };
8382 let value = match tag {
8383 "enabled" => {
8384 match map.next_key()? {
8385 Some("enabled") => HasTeamFileEventsValue::Enabled(map.next_value()?),
8386 None => return Err(de::Error::missing_field("enabled")),
8387 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8388 }
8389 }
8390 _ => HasTeamFileEventsValue::Other,
8391 };
8392 crate::eat_json_fields(&mut map)?;
8393 Ok(value)
8394 }
8395 }
8396 const VARIANTS: &[&str] = &["enabled",
8397 "other"];
8398 deserializer.deserialize_struct("HasTeamFileEventsValue", VARIANTS, EnumVisitor)
8399 }
8400}
8401
8402impl ::serde::ser::Serialize for HasTeamFileEventsValue {
8403 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8404 use serde::ser::SerializeStruct;
8406 match self {
8407 HasTeamFileEventsValue::Enabled(x) => {
8408 let mut s = serializer.serialize_struct("HasTeamFileEventsValue", 2)?;
8410 s.serialize_field(".tag", "enabled")?;
8411 s.serialize_field("enabled", x)?;
8412 s.end()
8413 }
8414 HasTeamFileEventsValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8415 }
8416 }
8417}
8418
8419#[derive(Debug, Clone, PartialEq, Eq)]
8421#[non_exhaustive] pub enum HasTeamSelectiveSyncValue {
8423 HasTeamSelectiveSync(bool),
8425 Other,
8428}
8429
8430impl<'de> ::serde::de::Deserialize<'de> for HasTeamSelectiveSyncValue {
8431 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8432 use serde::de::{self, MapAccess, Visitor};
8434 struct EnumVisitor;
8435 impl<'de> Visitor<'de> for EnumVisitor {
8436 type Value = HasTeamSelectiveSyncValue;
8437 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8438 f.write_str("a HasTeamSelectiveSyncValue structure")
8439 }
8440 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8441 let tag: &str = match map.next_key()? {
8442 Some(".tag") => map.next_value()?,
8443 _ => return Err(de::Error::missing_field(".tag"))
8444 };
8445 let value = match tag {
8446 "has_team_selective_sync" => {
8447 match map.next_key()? {
8448 Some("has_team_selective_sync") => HasTeamSelectiveSyncValue::HasTeamSelectiveSync(map.next_value()?),
8449 None => return Err(de::Error::missing_field("has_team_selective_sync")),
8450 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8451 }
8452 }
8453 _ => HasTeamSelectiveSyncValue::Other,
8454 };
8455 crate::eat_json_fields(&mut map)?;
8456 Ok(value)
8457 }
8458 }
8459 const VARIANTS: &[&str] = &["has_team_selective_sync",
8460 "other"];
8461 deserializer.deserialize_struct("HasTeamSelectiveSyncValue", VARIANTS, EnumVisitor)
8462 }
8463}
8464
8465impl ::serde::ser::Serialize for HasTeamSelectiveSyncValue {
8466 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8467 use serde::ser::SerializeStruct;
8469 match self {
8470 HasTeamSelectiveSyncValue::HasTeamSelectiveSync(x) => {
8471 let mut s = serializer.serialize_struct("HasTeamSelectiveSyncValue", 2)?;
8473 s.serialize_field(".tag", "has_team_selective_sync")?;
8474 s.serialize_field("has_team_selective_sync", x)?;
8475 s.end()
8476 }
8477 HasTeamSelectiveSyncValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8478 }
8479 }
8480}
8481
8482#[derive(Debug, Clone, PartialEq, Eq)]
8484#[non_exhaustive] pub enum HasTeamSharedDropboxValue {
8486 HasTeamSharedDropbox(bool),
8488 Other,
8491}
8492
8493impl<'de> ::serde::de::Deserialize<'de> for HasTeamSharedDropboxValue {
8494 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8495 use serde::de::{self, MapAccess, Visitor};
8497 struct EnumVisitor;
8498 impl<'de> Visitor<'de> for EnumVisitor {
8499 type Value = HasTeamSharedDropboxValue;
8500 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8501 f.write_str("a HasTeamSharedDropboxValue structure")
8502 }
8503 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
8504 let tag: &str = match map.next_key()? {
8505 Some(".tag") => map.next_value()?,
8506 _ => return Err(de::Error::missing_field(".tag"))
8507 };
8508 let value = match tag {
8509 "has_team_shared_dropbox" => {
8510 match map.next_key()? {
8511 Some("has_team_shared_dropbox") => HasTeamSharedDropboxValue::HasTeamSharedDropbox(map.next_value()?),
8512 None => return Err(de::Error::missing_field("has_team_shared_dropbox")),
8513 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
8514 }
8515 }
8516 _ => HasTeamSharedDropboxValue::Other,
8517 };
8518 crate::eat_json_fields(&mut map)?;
8519 Ok(value)
8520 }
8521 }
8522 const VARIANTS: &[&str] = &["has_team_shared_dropbox",
8523 "other"];
8524 deserializer.deserialize_struct("HasTeamSharedDropboxValue", VARIANTS, EnumVisitor)
8525 }
8526}
8527
8528impl ::serde::ser::Serialize for HasTeamSharedDropboxValue {
8529 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8530 use serde::ser::SerializeStruct;
8532 match self {
8533 HasTeamSharedDropboxValue::HasTeamSharedDropbox(x) => {
8534 let mut s = serializer.serialize_struct("HasTeamSharedDropboxValue", 2)?;
8536 s.serialize_field(".tag", "has_team_shared_dropbox")?;
8537 s.serialize_field("has_team_shared_dropbox", x)?;
8538 s.end()
8539 }
8540 HasTeamSharedDropboxValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
8541 }
8542 }
8543}
8544
8545#[derive(Debug, Clone, PartialEq, Eq)]
8546#[non_exhaustive] pub struct IncludeMembersArg {
8548 pub return_members: bool,
8552}
8553
8554impl Default for IncludeMembersArg {
8555 fn default() -> Self {
8556 IncludeMembersArg {
8557 return_members: true,
8558 }
8559 }
8560}
8561
8562impl IncludeMembersArg {
8563 pub fn with_return_members(mut self, value: bool) -> Self {
8564 self.return_members = value;
8565 self
8566 }
8567}
8568
8569const INCLUDE_MEMBERS_ARG_FIELDS: &[&str] = &["return_members"];
8570impl IncludeMembersArg {
8571 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8573 mut map: V,
8574 ) -> Result<IncludeMembersArg, V::Error> {
8575 let mut field_return_members = None;
8576 while let Some(key) = map.next_key::<&str>()? {
8577 match key {
8578 "return_members" => {
8579 if field_return_members.is_some() {
8580 return Err(::serde::de::Error::duplicate_field("return_members"));
8581 }
8582 field_return_members = Some(map.next_value()?);
8583 }
8584 _ => {
8585 map.next_value::<::serde_json::Value>()?;
8587 }
8588 }
8589 }
8590 let result = IncludeMembersArg {
8591 return_members: field_return_members.unwrap_or(true),
8592 };
8593 Ok(result)
8594 }
8595
8596 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8597 &self,
8598 s: &mut S::SerializeStruct,
8599 ) -> Result<(), S::Error> {
8600 use serde::ser::SerializeStruct;
8601 if !self.return_members {
8602 s.serialize_field("return_members", &self.return_members)?;
8603 }
8604 Ok(())
8605 }
8606}
8607
8608impl<'de> ::serde::de::Deserialize<'de> for IncludeMembersArg {
8609 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8610 use serde::de::{MapAccess, Visitor};
8612 struct StructVisitor;
8613 impl<'de> Visitor<'de> for StructVisitor {
8614 type Value = IncludeMembersArg;
8615 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8616 f.write_str("a IncludeMembersArg struct")
8617 }
8618 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8619 IncludeMembersArg::internal_deserialize(map)
8620 }
8621 }
8622 deserializer.deserialize_struct("IncludeMembersArg", INCLUDE_MEMBERS_ARG_FIELDS, StructVisitor)
8623 }
8624}
8625
8626impl ::serde::ser::Serialize for IncludeMembersArg {
8627 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8628 use serde::ser::SerializeStruct;
8630 let mut s = serializer.serialize_struct("IncludeMembersArg", 1)?;
8631 self.internal_serialize::<S>(&mut s)?;
8632 s.end()
8633 }
8634}
8635
8636#[derive(Debug, Clone, PartialEq, Eq)]
8637#[non_exhaustive] pub struct LegalHoldHeldRevisionMetadata {
8639 pub new_filename: String,
8641 pub original_revision_id: crate::types::files::Rev,
8643 pub original_file_path: Path,
8645 pub server_modified: crate::types::common::DropboxTimestamp,
8647 pub author_member_id: crate::types::team_common::TeamMemberId,
8649 pub author_member_status: TeamMemberStatus,
8651 pub author_email: crate::types::common::EmailAddress,
8653 pub file_type: String,
8655 pub size: u64,
8657 pub content_hash: crate::types::files::Sha256HexHash,
8661}
8662
8663impl LegalHoldHeldRevisionMetadata {
8664 pub fn new(
8665 new_filename: String,
8666 original_revision_id: crate::types::files::Rev,
8667 original_file_path: Path,
8668 server_modified: crate::types::common::DropboxTimestamp,
8669 author_member_id: crate::types::team_common::TeamMemberId,
8670 author_member_status: TeamMemberStatus,
8671 author_email: crate::types::common::EmailAddress,
8672 file_type: String,
8673 size: u64,
8674 content_hash: crate::types::files::Sha256HexHash,
8675 ) -> Self {
8676 LegalHoldHeldRevisionMetadata {
8677 new_filename,
8678 original_revision_id,
8679 original_file_path,
8680 server_modified,
8681 author_member_id,
8682 author_member_status,
8683 author_email,
8684 file_type,
8685 size,
8686 content_hash,
8687 }
8688 }
8689}
8690
8691const LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS: &[&str] = &["new_filename",
8692 "original_revision_id",
8693 "original_file_path",
8694 "server_modified",
8695 "author_member_id",
8696 "author_member_status",
8697 "author_email",
8698 "file_type",
8699 "size",
8700 "content_hash"];
8701impl LegalHoldHeldRevisionMetadata {
8702 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8703 map: V,
8704 ) -> Result<LegalHoldHeldRevisionMetadata, V::Error> {
8705 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8706 }
8707
8708 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8709 mut map: V,
8710 optional: bool,
8711 ) -> Result<Option<LegalHoldHeldRevisionMetadata>, V::Error> {
8712 let mut field_new_filename = None;
8713 let mut field_original_revision_id = None;
8714 let mut field_original_file_path = None;
8715 let mut field_server_modified = None;
8716 let mut field_author_member_id = None;
8717 let mut field_author_member_status = None;
8718 let mut field_author_email = None;
8719 let mut field_file_type = None;
8720 let mut field_size = None;
8721 let mut field_content_hash = None;
8722 let mut nothing = true;
8723 while let Some(key) = map.next_key::<&str>()? {
8724 nothing = false;
8725 match key {
8726 "new_filename" => {
8727 if field_new_filename.is_some() {
8728 return Err(::serde::de::Error::duplicate_field("new_filename"));
8729 }
8730 field_new_filename = Some(map.next_value()?);
8731 }
8732 "original_revision_id" => {
8733 if field_original_revision_id.is_some() {
8734 return Err(::serde::de::Error::duplicate_field("original_revision_id"));
8735 }
8736 field_original_revision_id = Some(map.next_value()?);
8737 }
8738 "original_file_path" => {
8739 if field_original_file_path.is_some() {
8740 return Err(::serde::de::Error::duplicate_field("original_file_path"));
8741 }
8742 field_original_file_path = Some(map.next_value()?);
8743 }
8744 "server_modified" => {
8745 if field_server_modified.is_some() {
8746 return Err(::serde::de::Error::duplicate_field("server_modified"));
8747 }
8748 field_server_modified = Some(map.next_value()?);
8749 }
8750 "author_member_id" => {
8751 if field_author_member_id.is_some() {
8752 return Err(::serde::de::Error::duplicate_field("author_member_id"));
8753 }
8754 field_author_member_id = Some(map.next_value()?);
8755 }
8756 "author_member_status" => {
8757 if field_author_member_status.is_some() {
8758 return Err(::serde::de::Error::duplicate_field("author_member_status"));
8759 }
8760 field_author_member_status = Some(map.next_value()?);
8761 }
8762 "author_email" => {
8763 if field_author_email.is_some() {
8764 return Err(::serde::de::Error::duplicate_field("author_email"));
8765 }
8766 field_author_email = Some(map.next_value()?);
8767 }
8768 "file_type" => {
8769 if field_file_type.is_some() {
8770 return Err(::serde::de::Error::duplicate_field("file_type"));
8771 }
8772 field_file_type = Some(map.next_value()?);
8773 }
8774 "size" => {
8775 if field_size.is_some() {
8776 return Err(::serde::de::Error::duplicate_field("size"));
8777 }
8778 field_size = Some(map.next_value()?);
8779 }
8780 "content_hash" => {
8781 if field_content_hash.is_some() {
8782 return Err(::serde::de::Error::duplicate_field("content_hash"));
8783 }
8784 field_content_hash = Some(map.next_value()?);
8785 }
8786 _ => {
8787 map.next_value::<::serde_json::Value>()?;
8789 }
8790 }
8791 }
8792 if optional && nothing {
8793 return Ok(None);
8794 }
8795 let result = LegalHoldHeldRevisionMetadata {
8796 new_filename: field_new_filename.ok_or_else(|| ::serde::de::Error::missing_field("new_filename"))?,
8797 original_revision_id: field_original_revision_id.ok_or_else(|| ::serde::de::Error::missing_field("original_revision_id"))?,
8798 original_file_path: field_original_file_path.ok_or_else(|| ::serde::de::Error::missing_field("original_file_path"))?,
8799 server_modified: field_server_modified.ok_or_else(|| ::serde::de::Error::missing_field("server_modified"))?,
8800 author_member_id: field_author_member_id.ok_or_else(|| ::serde::de::Error::missing_field("author_member_id"))?,
8801 author_member_status: field_author_member_status.ok_or_else(|| ::serde::de::Error::missing_field("author_member_status"))?,
8802 author_email: field_author_email.ok_or_else(|| ::serde::de::Error::missing_field("author_email"))?,
8803 file_type: field_file_type.ok_or_else(|| ::serde::de::Error::missing_field("file_type"))?,
8804 size: field_size.ok_or_else(|| ::serde::de::Error::missing_field("size"))?,
8805 content_hash: field_content_hash.ok_or_else(|| ::serde::de::Error::missing_field("content_hash"))?,
8806 };
8807 Ok(Some(result))
8808 }
8809
8810 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
8811 &self,
8812 s: &mut S::SerializeStruct,
8813 ) -> Result<(), S::Error> {
8814 use serde::ser::SerializeStruct;
8815 s.serialize_field("new_filename", &self.new_filename)?;
8816 s.serialize_field("original_revision_id", &self.original_revision_id)?;
8817 s.serialize_field("original_file_path", &self.original_file_path)?;
8818 s.serialize_field("server_modified", &self.server_modified)?;
8819 s.serialize_field("author_member_id", &self.author_member_id)?;
8820 s.serialize_field("author_member_status", &self.author_member_status)?;
8821 s.serialize_field("author_email", &self.author_email)?;
8822 s.serialize_field("file_type", &self.file_type)?;
8823 s.serialize_field("size", &self.size)?;
8824 s.serialize_field("content_hash", &self.content_hash)?;
8825 Ok(())
8826 }
8827}
8828
8829impl<'de> ::serde::de::Deserialize<'de> for LegalHoldHeldRevisionMetadata {
8830 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
8831 use serde::de::{MapAccess, Visitor};
8833 struct StructVisitor;
8834 impl<'de> Visitor<'de> for StructVisitor {
8835 type Value = LegalHoldHeldRevisionMetadata;
8836 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
8837 f.write_str("a LegalHoldHeldRevisionMetadata struct")
8838 }
8839 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
8840 LegalHoldHeldRevisionMetadata::internal_deserialize(map)
8841 }
8842 }
8843 deserializer.deserialize_struct("LegalHoldHeldRevisionMetadata", LEGAL_HOLD_HELD_REVISION_METADATA_FIELDS, StructVisitor)
8844 }
8845}
8846
8847impl ::serde::ser::Serialize for LegalHoldHeldRevisionMetadata {
8848 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
8849 use serde::ser::SerializeStruct;
8851 let mut s = serializer.serialize_struct("LegalHoldHeldRevisionMetadata", 10)?;
8852 self.internal_serialize::<S>(&mut s)?;
8853 s.end()
8854 }
8855}
8856
8857#[derive(Debug, Clone, PartialEq, Eq)]
8858#[non_exhaustive] pub struct LegalHoldPolicy {
8860 pub id: LegalHoldId,
8862 pub name: LegalHoldPolicyName,
8864 pub members: MembersInfo,
8866 pub status: LegalHoldStatus,
8868 pub start_date: crate::types::common::DropboxTimestamp,
8870 pub description: Option<LegalHoldPolicyDescription>,
8872 pub activation_time: Option<crate::types::common::DropboxTimestamp>,
8874 pub end_date: Option<crate::types::common::DropboxTimestamp>,
8876}
8877
8878impl LegalHoldPolicy {
8879 pub fn new(
8880 id: LegalHoldId,
8881 name: LegalHoldPolicyName,
8882 members: MembersInfo,
8883 status: LegalHoldStatus,
8884 start_date: crate::types::common::DropboxTimestamp,
8885 ) -> Self {
8886 LegalHoldPolicy {
8887 id,
8888 name,
8889 members,
8890 status,
8891 start_date,
8892 description: None,
8893 activation_time: None,
8894 end_date: None,
8895 }
8896 }
8897
8898 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
8899 self.description = Some(value);
8900 self
8901 }
8902
8903 pub fn with_activation_time(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
8904 self.activation_time = Some(value);
8905 self
8906 }
8907
8908 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
8909 self.end_date = Some(value);
8910 self
8911 }
8912}
8913
8914const LEGAL_HOLD_POLICY_FIELDS: &[&str] = &["id",
8915 "name",
8916 "members",
8917 "status",
8918 "start_date",
8919 "description",
8920 "activation_time",
8921 "end_date"];
8922impl LegalHoldPolicy {
8923 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
8924 map: V,
8925 ) -> Result<LegalHoldPolicy, V::Error> {
8926 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
8927 }
8928
8929 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
8930 mut map: V,
8931 optional: bool,
8932 ) -> Result<Option<LegalHoldPolicy>, V::Error> {
8933 let mut field_id = None;
8934 let mut field_name = None;
8935 let mut field_members = None;
8936 let mut field_status = None;
8937 let mut field_start_date = None;
8938 let mut field_description = None;
8939 let mut field_activation_time = None;
8940 let mut field_end_date = None;
8941 let mut nothing = true;
8942 while let Some(key) = map.next_key::<&str>()? {
8943 nothing = false;
8944 match key {
8945 "id" => {
8946 if field_id.is_some() {
8947 return Err(::serde::de::Error::duplicate_field("id"));
8948 }
8949 field_id = Some(map.next_value()?);
8950 }
8951 "name" => {
8952 if field_name.is_some() {
8953 return Err(::serde::de::Error::duplicate_field("name"));
8954 }
8955 field_name = Some(map.next_value()?);
8956 }
8957 "members" => {
8958 if field_members.is_some() {
8959 return Err(::serde::de::Error::duplicate_field("members"));
8960 }
8961 field_members = Some(map.next_value()?);
8962 }
8963 "status" => {
8964 if field_status.is_some() {
8965 return Err(::serde::de::Error::duplicate_field("status"));
8966 }
8967 field_status = Some(map.next_value()?);
8968 }
8969 "start_date" => {
8970 if field_start_date.is_some() {
8971 return Err(::serde::de::Error::duplicate_field("start_date"));
8972 }
8973 field_start_date = Some(map.next_value()?);
8974 }
8975 "description" => {
8976 if field_description.is_some() {
8977 return Err(::serde::de::Error::duplicate_field("description"));
8978 }
8979 field_description = Some(map.next_value()?);
8980 }
8981 "activation_time" => {
8982 if field_activation_time.is_some() {
8983 return Err(::serde::de::Error::duplicate_field("activation_time"));
8984 }
8985 field_activation_time = Some(map.next_value()?);
8986 }
8987 "end_date" => {
8988 if field_end_date.is_some() {
8989 return Err(::serde::de::Error::duplicate_field("end_date"));
8990 }
8991 field_end_date = Some(map.next_value()?);
8992 }
8993 _ => {
8994 map.next_value::<::serde_json::Value>()?;
8996 }
8997 }
8998 }
8999 if optional && nothing {
9000 return Ok(None);
9001 }
9002 let result = LegalHoldPolicy {
9003 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9004 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
9005 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
9006 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
9007 start_date: field_start_date.ok_or_else(|| ::serde::de::Error::missing_field("start_date"))?,
9008 description: field_description.and_then(Option::flatten),
9009 activation_time: field_activation_time.and_then(Option::flatten),
9010 end_date: field_end_date.and_then(Option::flatten),
9011 };
9012 Ok(Some(result))
9013 }
9014
9015 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9016 &self,
9017 s: &mut S::SerializeStruct,
9018 ) -> Result<(), S::Error> {
9019 use serde::ser::SerializeStruct;
9020 s.serialize_field("id", &self.id)?;
9021 s.serialize_field("name", &self.name)?;
9022 s.serialize_field("members", &self.members)?;
9023 s.serialize_field("status", &self.status)?;
9024 s.serialize_field("start_date", &self.start_date)?;
9025 if let Some(val) = &self.description {
9026 s.serialize_field("description", val)?;
9027 }
9028 if let Some(val) = &self.activation_time {
9029 s.serialize_field("activation_time", val)?;
9030 }
9031 if let Some(val) = &self.end_date {
9032 s.serialize_field("end_date", val)?;
9033 }
9034 Ok(())
9035 }
9036}
9037
9038impl<'de> ::serde::de::Deserialize<'de> for LegalHoldPolicy {
9039 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9040 use serde::de::{MapAccess, Visitor};
9042 struct StructVisitor;
9043 impl<'de> Visitor<'de> for StructVisitor {
9044 type Value = LegalHoldPolicy;
9045 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9046 f.write_str("a LegalHoldPolicy struct")
9047 }
9048 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9049 LegalHoldPolicy::internal_deserialize(map)
9050 }
9051 }
9052 deserializer.deserialize_struct("LegalHoldPolicy", LEGAL_HOLD_POLICY_FIELDS, StructVisitor)
9053 }
9054}
9055
9056impl ::serde::ser::Serialize for LegalHoldPolicy {
9057 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9058 use serde::ser::SerializeStruct;
9060 let mut s = serializer.serialize_struct("LegalHoldPolicy", 8)?;
9061 self.internal_serialize::<S>(&mut s)?;
9062 s.end()
9063 }
9064}
9065
9066#[derive(Debug, Clone, PartialEq, Eq)]
9067#[non_exhaustive] pub enum LegalHoldStatus {
9069 Active,
9071 Released,
9073 Activating,
9075 Updating,
9077 Exporting,
9079 Releasing,
9081 Other,
9084}
9085
9086impl<'de> ::serde::de::Deserialize<'de> for LegalHoldStatus {
9087 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9088 use serde::de::{self, MapAccess, Visitor};
9090 struct EnumVisitor;
9091 impl<'de> Visitor<'de> for EnumVisitor {
9092 type Value = LegalHoldStatus;
9093 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9094 f.write_str("a LegalHoldStatus structure")
9095 }
9096 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9097 let tag: &str = match map.next_key()? {
9098 Some(".tag") => map.next_value()?,
9099 _ => return Err(de::Error::missing_field(".tag"))
9100 };
9101 let value = match tag {
9102 "active" => LegalHoldStatus::Active,
9103 "released" => LegalHoldStatus::Released,
9104 "activating" => LegalHoldStatus::Activating,
9105 "updating" => LegalHoldStatus::Updating,
9106 "exporting" => LegalHoldStatus::Exporting,
9107 "releasing" => LegalHoldStatus::Releasing,
9108 _ => LegalHoldStatus::Other,
9109 };
9110 crate::eat_json_fields(&mut map)?;
9111 Ok(value)
9112 }
9113 }
9114 const VARIANTS: &[&str] = &["active",
9115 "released",
9116 "activating",
9117 "updating",
9118 "exporting",
9119 "releasing",
9120 "other"];
9121 deserializer.deserialize_struct("LegalHoldStatus", VARIANTS, EnumVisitor)
9122 }
9123}
9124
9125impl ::serde::ser::Serialize for LegalHoldStatus {
9126 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9127 use serde::ser::SerializeStruct;
9129 match self {
9130 LegalHoldStatus::Active => {
9131 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9133 s.serialize_field(".tag", "active")?;
9134 s.end()
9135 }
9136 LegalHoldStatus::Released => {
9137 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9139 s.serialize_field(".tag", "released")?;
9140 s.end()
9141 }
9142 LegalHoldStatus::Activating => {
9143 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9145 s.serialize_field(".tag", "activating")?;
9146 s.end()
9147 }
9148 LegalHoldStatus::Updating => {
9149 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9151 s.serialize_field(".tag", "updating")?;
9152 s.end()
9153 }
9154 LegalHoldStatus::Exporting => {
9155 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9157 s.serialize_field(".tag", "exporting")?;
9158 s.end()
9159 }
9160 LegalHoldStatus::Releasing => {
9161 let mut s = serializer.serialize_struct("LegalHoldStatus", 1)?;
9163 s.serialize_field(".tag", "releasing")?;
9164 s.end()
9165 }
9166 LegalHoldStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9167 }
9168 }
9169}
9170
9171#[derive(Debug, Clone, PartialEq, Eq)]
9172#[non_exhaustive] pub enum LegalHoldsError {
9174 UnknownLegalHoldError,
9176 InsufficientPermissions,
9178 Other,
9181}
9182
9183impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsError {
9184 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9185 use serde::de::{self, MapAccess, Visitor};
9187 struct EnumVisitor;
9188 impl<'de> Visitor<'de> for EnumVisitor {
9189 type Value = LegalHoldsError;
9190 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9191 f.write_str("a LegalHoldsError structure")
9192 }
9193 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9194 let tag: &str = match map.next_key()? {
9195 Some(".tag") => map.next_value()?,
9196 _ => return Err(de::Error::missing_field(".tag"))
9197 };
9198 let value = match tag {
9199 "unknown_legal_hold_error" => LegalHoldsError::UnknownLegalHoldError,
9200 "insufficient_permissions" => LegalHoldsError::InsufficientPermissions,
9201 _ => LegalHoldsError::Other,
9202 };
9203 crate::eat_json_fields(&mut map)?;
9204 Ok(value)
9205 }
9206 }
9207 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9208 "insufficient_permissions",
9209 "other"];
9210 deserializer.deserialize_struct("LegalHoldsError", VARIANTS, EnumVisitor)
9211 }
9212}
9213
9214impl ::serde::ser::Serialize for LegalHoldsError {
9215 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9216 use serde::ser::SerializeStruct;
9218 match self {
9219 LegalHoldsError::UnknownLegalHoldError => {
9220 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
9222 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9223 s.end()
9224 }
9225 LegalHoldsError::InsufficientPermissions => {
9226 let mut s = serializer.serialize_struct("LegalHoldsError", 1)?;
9228 s.serialize_field(".tag", "insufficient_permissions")?;
9229 s.end()
9230 }
9231 LegalHoldsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9232 }
9233 }
9234}
9235
9236impl ::std::error::Error for LegalHoldsError {
9237}
9238
9239impl ::std::fmt::Display for LegalHoldsError {
9240 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9241 match self {
9242 LegalHoldsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9243 LegalHoldsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9244 _ => write!(f, "{:?}", *self),
9245 }
9246 }
9247}
9248
9249#[derive(Debug, Clone, PartialEq, Eq)]
9250#[non_exhaustive] pub struct LegalHoldsGetPolicyArg {
9252 pub id: LegalHoldId,
9254}
9255
9256impl LegalHoldsGetPolicyArg {
9257 pub fn new(id: LegalHoldId) -> Self {
9258 LegalHoldsGetPolicyArg {
9259 id,
9260 }
9261 }
9262}
9263
9264const LEGAL_HOLDS_GET_POLICY_ARG_FIELDS: &[&str] = &["id"];
9265impl LegalHoldsGetPolicyArg {
9266 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9267 map: V,
9268 ) -> Result<LegalHoldsGetPolicyArg, V::Error> {
9269 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9270 }
9271
9272 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9273 mut map: V,
9274 optional: bool,
9275 ) -> Result<Option<LegalHoldsGetPolicyArg>, V::Error> {
9276 let mut field_id = None;
9277 let mut nothing = true;
9278 while let Some(key) = map.next_key::<&str>()? {
9279 nothing = false;
9280 match key {
9281 "id" => {
9282 if field_id.is_some() {
9283 return Err(::serde::de::Error::duplicate_field("id"));
9284 }
9285 field_id = Some(map.next_value()?);
9286 }
9287 _ => {
9288 map.next_value::<::serde_json::Value>()?;
9290 }
9291 }
9292 }
9293 if optional && nothing {
9294 return Ok(None);
9295 }
9296 let result = LegalHoldsGetPolicyArg {
9297 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9298 };
9299 Ok(Some(result))
9300 }
9301
9302 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9303 &self,
9304 s: &mut S::SerializeStruct,
9305 ) -> Result<(), S::Error> {
9306 use serde::ser::SerializeStruct;
9307 s.serialize_field("id", &self.id)?;
9308 Ok(())
9309 }
9310}
9311
9312impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyArg {
9313 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9314 use serde::de::{MapAccess, Visitor};
9316 struct StructVisitor;
9317 impl<'de> Visitor<'de> for StructVisitor {
9318 type Value = LegalHoldsGetPolicyArg;
9319 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9320 f.write_str("a LegalHoldsGetPolicyArg struct")
9321 }
9322 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9323 LegalHoldsGetPolicyArg::internal_deserialize(map)
9324 }
9325 }
9326 deserializer.deserialize_struct("LegalHoldsGetPolicyArg", LEGAL_HOLDS_GET_POLICY_ARG_FIELDS, StructVisitor)
9327 }
9328}
9329
9330impl ::serde::ser::Serialize for LegalHoldsGetPolicyArg {
9331 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9332 use serde::ser::SerializeStruct;
9334 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyArg", 1)?;
9335 self.internal_serialize::<S>(&mut s)?;
9336 s.end()
9337 }
9338}
9339
9340#[derive(Debug, Clone, PartialEq, Eq)]
9341#[non_exhaustive] pub enum LegalHoldsGetPolicyError {
9343 UnknownLegalHoldError,
9345 InsufficientPermissions,
9347 LegalHoldPolicyNotFound,
9349 Other,
9352}
9353
9354impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsGetPolicyError {
9355 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9356 use serde::de::{self, MapAccess, Visitor};
9358 struct EnumVisitor;
9359 impl<'de> Visitor<'de> for EnumVisitor {
9360 type Value = LegalHoldsGetPolicyError;
9361 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9362 f.write_str("a LegalHoldsGetPolicyError structure")
9363 }
9364 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9365 let tag: &str = match map.next_key()? {
9366 Some(".tag") => map.next_value()?,
9367 _ => return Err(de::Error::missing_field(".tag"))
9368 };
9369 let value = match tag {
9370 "unknown_legal_hold_error" => LegalHoldsGetPolicyError::UnknownLegalHoldError,
9371 "insufficient_permissions" => LegalHoldsGetPolicyError::InsufficientPermissions,
9372 "legal_hold_policy_not_found" => LegalHoldsGetPolicyError::LegalHoldPolicyNotFound,
9373 _ => LegalHoldsGetPolicyError::Other,
9374 };
9375 crate::eat_json_fields(&mut map)?;
9376 Ok(value)
9377 }
9378 }
9379 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9380 "insufficient_permissions",
9381 "other",
9382 "legal_hold_policy_not_found"];
9383 deserializer.deserialize_struct("LegalHoldsGetPolicyError", VARIANTS, EnumVisitor)
9384 }
9385}
9386
9387impl ::serde::ser::Serialize for LegalHoldsGetPolicyError {
9388 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9389 use serde::ser::SerializeStruct;
9391 match self {
9392 LegalHoldsGetPolicyError::UnknownLegalHoldError => {
9393 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9395 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9396 s.end()
9397 }
9398 LegalHoldsGetPolicyError::InsufficientPermissions => {
9399 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9401 s.serialize_field(".tag", "insufficient_permissions")?;
9402 s.end()
9403 }
9404 LegalHoldsGetPolicyError::LegalHoldPolicyNotFound => {
9405 let mut s = serializer.serialize_struct("LegalHoldsGetPolicyError", 1)?;
9407 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
9408 s.end()
9409 }
9410 LegalHoldsGetPolicyError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9411 }
9412 }
9413}
9414
9415impl ::std::error::Error for LegalHoldsGetPolicyError {
9416}
9417
9418impl ::std::fmt::Display for LegalHoldsGetPolicyError {
9419 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9420 match self {
9421 LegalHoldsGetPolicyError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9422 LegalHoldsGetPolicyError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9423 _ => write!(f, "{:?}", *self),
9424 }
9425 }
9426}
9427
9428impl From<LegalHoldsError> for LegalHoldsGetPolicyError {
9430 fn from(parent: LegalHoldsError) -> Self {
9431 match parent {
9432 LegalHoldsError::UnknownLegalHoldError => LegalHoldsGetPolicyError::UnknownLegalHoldError,
9433 LegalHoldsError::InsufficientPermissions => LegalHoldsGetPolicyError::InsufficientPermissions,
9434 LegalHoldsError::Other => LegalHoldsGetPolicyError::Other,
9435 }
9436 }
9437}
9438#[derive(Debug, Clone, PartialEq, Eq)]
9439#[non_exhaustive] pub struct LegalHoldsListHeldRevisionResult {
9441 pub entries: Vec<LegalHoldHeldRevisionMetadata>,
9443 pub has_more: bool,
9446 pub cursor: Option<ListHeldRevisionCursor>,
9450}
9451
9452impl LegalHoldsListHeldRevisionResult {
9453 pub fn new(entries: Vec<LegalHoldHeldRevisionMetadata>, has_more: bool) -> Self {
9454 LegalHoldsListHeldRevisionResult {
9455 entries,
9456 has_more,
9457 cursor: None,
9458 }
9459 }
9460
9461 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
9462 self.cursor = Some(value);
9463 self
9464 }
9465}
9466
9467const LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS: &[&str] = &["entries",
9468 "has_more",
9469 "cursor"];
9470impl LegalHoldsListHeldRevisionResult {
9471 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9472 map: V,
9473 ) -> Result<LegalHoldsListHeldRevisionResult, V::Error> {
9474 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9475 }
9476
9477 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9478 mut map: V,
9479 optional: bool,
9480 ) -> Result<Option<LegalHoldsListHeldRevisionResult>, V::Error> {
9481 let mut field_entries = None;
9482 let mut field_has_more = None;
9483 let mut field_cursor = None;
9484 let mut nothing = true;
9485 while let Some(key) = map.next_key::<&str>()? {
9486 nothing = false;
9487 match key {
9488 "entries" => {
9489 if field_entries.is_some() {
9490 return Err(::serde::de::Error::duplicate_field("entries"));
9491 }
9492 field_entries = Some(map.next_value()?);
9493 }
9494 "has_more" => {
9495 if field_has_more.is_some() {
9496 return Err(::serde::de::Error::duplicate_field("has_more"));
9497 }
9498 field_has_more = Some(map.next_value()?);
9499 }
9500 "cursor" => {
9501 if field_cursor.is_some() {
9502 return Err(::serde::de::Error::duplicate_field("cursor"));
9503 }
9504 field_cursor = Some(map.next_value()?);
9505 }
9506 _ => {
9507 map.next_value::<::serde_json::Value>()?;
9509 }
9510 }
9511 }
9512 if optional && nothing {
9513 return Ok(None);
9514 }
9515 let result = LegalHoldsListHeldRevisionResult {
9516 entries: field_entries.ok_or_else(|| ::serde::de::Error::missing_field("entries"))?,
9517 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
9518 cursor: field_cursor.and_then(Option::flatten),
9519 };
9520 Ok(Some(result))
9521 }
9522
9523 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9524 &self,
9525 s: &mut S::SerializeStruct,
9526 ) -> Result<(), S::Error> {
9527 use serde::ser::SerializeStruct;
9528 s.serialize_field("entries", &self.entries)?;
9529 s.serialize_field("has_more", &self.has_more)?;
9530 if let Some(val) = &self.cursor {
9531 s.serialize_field("cursor", val)?;
9532 }
9533 Ok(())
9534 }
9535}
9536
9537impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionResult {
9538 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9539 use serde::de::{MapAccess, Visitor};
9541 struct StructVisitor;
9542 impl<'de> Visitor<'de> for StructVisitor {
9543 type Value = LegalHoldsListHeldRevisionResult;
9544 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9545 f.write_str("a LegalHoldsListHeldRevisionResult struct")
9546 }
9547 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9548 LegalHoldsListHeldRevisionResult::internal_deserialize(map)
9549 }
9550 }
9551 deserializer.deserialize_struct("LegalHoldsListHeldRevisionResult", LEGAL_HOLDS_LIST_HELD_REVISION_RESULT_FIELDS, StructVisitor)
9552 }
9553}
9554
9555impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionResult {
9556 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9557 use serde::ser::SerializeStruct;
9559 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionResult", 3)?;
9560 self.internal_serialize::<S>(&mut s)?;
9561 s.end()
9562 }
9563}
9564
9565#[derive(Debug, Clone, PartialEq, Eq)]
9566#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsArg {
9568 pub id: LegalHoldId,
9570}
9571
9572impl LegalHoldsListHeldRevisionsArg {
9573 pub fn new(id: LegalHoldId) -> Self {
9574 LegalHoldsListHeldRevisionsArg {
9575 id,
9576 }
9577 }
9578}
9579
9580const LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS: &[&str] = &["id"];
9581impl LegalHoldsListHeldRevisionsArg {
9582 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9583 map: V,
9584 ) -> Result<LegalHoldsListHeldRevisionsArg, V::Error> {
9585 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9586 }
9587
9588 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9589 mut map: V,
9590 optional: bool,
9591 ) -> Result<Option<LegalHoldsListHeldRevisionsArg>, V::Error> {
9592 let mut field_id = None;
9593 let mut nothing = true;
9594 while let Some(key) = map.next_key::<&str>()? {
9595 nothing = false;
9596 match key {
9597 "id" => {
9598 if field_id.is_some() {
9599 return Err(::serde::de::Error::duplicate_field("id"));
9600 }
9601 field_id = Some(map.next_value()?);
9602 }
9603 _ => {
9604 map.next_value::<::serde_json::Value>()?;
9606 }
9607 }
9608 }
9609 if optional && nothing {
9610 return Ok(None);
9611 }
9612 let result = LegalHoldsListHeldRevisionsArg {
9613 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9614 };
9615 Ok(Some(result))
9616 }
9617
9618 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9619 &self,
9620 s: &mut S::SerializeStruct,
9621 ) -> Result<(), S::Error> {
9622 use serde::ser::SerializeStruct;
9623 s.serialize_field("id", &self.id)?;
9624 Ok(())
9625 }
9626}
9627
9628impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsArg {
9629 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9630 use serde::de::{MapAccess, Visitor};
9632 struct StructVisitor;
9633 impl<'de> Visitor<'de> for StructVisitor {
9634 type Value = LegalHoldsListHeldRevisionsArg;
9635 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9636 f.write_str("a LegalHoldsListHeldRevisionsArg struct")
9637 }
9638 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9639 LegalHoldsListHeldRevisionsArg::internal_deserialize(map)
9640 }
9641 }
9642 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_ARG_FIELDS, StructVisitor)
9643 }
9644}
9645
9646impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsArg {
9647 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9648 use serde::ser::SerializeStruct;
9650 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsArg", 1)?;
9651 self.internal_serialize::<S>(&mut s)?;
9652 s.end()
9653 }
9654}
9655
9656#[derive(Debug, Clone, PartialEq, Eq)]
9657#[non_exhaustive] pub struct LegalHoldsListHeldRevisionsContinueArg {
9659 pub id: LegalHoldId,
9661 pub cursor: Option<ListHeldRevisionCursor>,
9664}
9665
9666impl LegalHoldsListHeldRevisionsContinueArg {
9667 pub fn new(id: LegalHoldId) -> Self {
9668 LegalHoldsListHeldRevisionsContinueArg {
9669 id,
9670 cursor: None,
9671 }
9672 }
9673
9674 pub fn with_cursor(mut self, value: ListHeldRevisionCursor) -> Self {
9675 self.cursor = Some(value);
9676 self
9677 }
9678}
9679
9680const LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS: &[&str] = &["id",
9681 "cursor"];
9682impl LegalHoldsListHeldRevisionsContinueArg {
9683 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9684 map: V,
9685 ) -> Result<LegalHoldsListHeldRevisionsContinueArg, V::Error> {
9686 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
9687 }
9688
9689 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
9690 mut map: V,
9691 optional: bool,
9692 ) -> Result<Option<LegalHoldsListHeldRevisionsContinueArg>, V::Error> {
9693 let mut field_id = None;
9694 let mut field_cursor = None;
9695 let mut nothing = true;
9696 while let Some(key) = map.next_key::<&str>()? {
9697 nothing = false;
9698 match key {
9699 "id" => {
9700 if field_id.is_some() {
9701 return Err(::serde::de::Error::duplicate_field("id"));
9702 }
9703 field_id = Some(map.next_value()?);
9704 }
9705 "cursor" => {
9706 if field_cursor.is_some() {
9707 return Err(::serde::de::Error::duplicate_field("cursor"));
9708 }
9709 field_cursor = Some(map.next_value()?);
9710 }
9711 _ => {
9712 map.next_value::<::serde_json::Value>()?;
9714 }
9715 }
9716 }
9717 if optional && nothing {
9718 return Ok(None);
9719 }
9720 let result = LegalHoldsListHeldRevisionsContinueArg {
9721 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
9722 cursor: field_cursor.and_then(Option::flatten),
9723 };
9724 Ok(Some(result))
9725 }
9726
9727 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
9728 &self,
9729 s: &mut S::SerializeStruct,
9730 ) -> Result<(), S::Error> {
9731 use serde::ser::SerializeStruct;
9732 s.serialize_field("id", &self.id)?;
9733 if let Some(val) = &self.cursor {
9734 s.serialize_field("cursor", val)?;
9735 }
9736 Ok(())
9737 }
9738}
9739
9740impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueArg {
9741 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9742 use serde::de::{MapAccess, Visitor};
9744 struct StructVisitor;
9745 impl<'de> Visitor<'de> for StructVisitor {
9746 type Value = LegalHoldsListHeldRevisionsContinueArg;
9747 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9748 f.write_str("a LegalHoldsListHeldRevisionsContinueArg struct")
9749 }
9750 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
9751 LegalHoldsListHeldRevisionsContinueArg::internal_deserialize(map)
9752 }
9753 }
9754 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueArg", LEGAL_HOLDS_LIST_HELD_REVISIONS_CONTINUE_ARG_FIELDS, StructVisitor)
9755 }
9756}
9757
9758impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueArg {
9759 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9760 use serde::ser::SerializeStruct;
9762 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueArg", 2)?;
9763 self.internal_serialize::<S>(&mut s)?;
9764 s.end()
9765 }
9766}
9767
9768#[derive(Debug, Clone, PartialEq, Eq)]
9769#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsContinueError {
9771 UnknownLegalHoldError,
9773 TransientError,
9775 Reset,
9779 Other,
9782}
9783
9784impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsContinueError {
9785 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9786 use serde::de::{self, MapAccess, Visitor};
9788 struct EnumVisitor;
9789 impl<'de> Visitor<'de> for EnumVisitor {
9790 type Value = LegalHoldsListHeldRevisionsContinueError;
9791 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9792 f.write_str("a LegalHoldsListHeldRevisionsContinueError structure")
9793 }
9794 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9795 let tag: &str = match map.next_key()? {
9796 Some(".tag") => map.next_value()?,
9797 _ => return Err(de::Error::missing_field(".tag"))
9798 };
9799 let value = match tag {
9800 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError,
9801 "transient_error" => LegalHoldsListHeldRevisionsContinueError::TransientError,
9802 "reset" => LegalHoldsListHeldRevisionsContinueError::Reset,
9803 _ => LegalHoldsListHeldRevisionsContinueError::Other,
9804 };
9805 crate::eat_json_fields(&mut map)?;
9806 Ok(value)
9807 }
9808 }
9809 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9810 "transient_error",
9811 "reset",
9812 "other"];
9813 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsContinueError", VARIANTS, EnumVisitor)
9814 }
9815}
9816
9817impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsContinueError {
9818 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9819 use serde::ser::SerializeStruct;
9821 match self {
9822 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => {
9823 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9825 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9826 s.end()
9827 }
9828 LegalHoldsListHeldRevisionsContinueError::TransientError => {
9829 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9831 s.serialize_field(".tag", "transient_error")?;
9832 s.end()
9833 }
9834 LegalHoldsListHeldRevisionsContinueError::Reset => {
9835 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsContinueError", 1)?;
9837 s.serialize_field(".tag", "reset")?;
9838 s.end()
9839 }
9840 LegalHoldsListHeldRevisionsContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9841 }
9842 }
9843}
9844
9845impl ::std::error::Error for LegalHoldsListHeldRevisionsContinueError {
9846}
9847
9848impl ::std::fmt::Display for LegalHoldsListHeldRevisionsContinueError {
9849 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9850 match self {
9851 LegalHoldsListHeldRevisionsContinueError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9852 LegalHoldsListHeldRevisionsContinueError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
9853 _ => write!(f, "{:?}", *self),
9854 }
9855 }
9856}
9857
9858#[derive(Debug, Clone, PartialEq, Eq)]
9859#[non_exhaustive] pub enum LegalHoldsListHeldRevisionsError {
9861 UnknownLegalHoldError,
9863 InsufficientPermissions,
9865 TransientError,
9867 LegalHoldStillEmpty,
9869 InactiveLegalHold,
9871 Other,
9874}
9875
9876impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListHeldRevisionsError {
9877 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
9878 use serde::de::{self, MapAccess, Visitor};
9880 struct EnumVisitor;
9881 impl<'de> Visitor<'de> for EnumVisitor {
9882 type Value = LegalHoldsListHeldRevisionsError;
9883 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9884 f.write_str("a LegalHoldsListHeldRevisionsError structure")
9885 }
9886 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
9887 let tag: &str = match map.next_key()? {
9888 Some(".tag") => map.next_value()?,
9889 _ => return Err(de::Error::missing_field(".tag"))
9890 };
9891 let value = match tag {
9892 "unknown_legal_hold_error" => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
9893 "insufficient_permissions" => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
9894 "transient_error" => LegalHoldsListHeldRevisionsError::TransientError,
9895 "legal_hold_still_empty" => LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty,
9896 "inactive_legal_hold" => LegalHoldsListHeldRevisionsError::InactiveLegalHold,
9897 _ => LegalHoldsListHeldRevisionsError::Other,
9898 };
9899 crate::eat_json_fields(&mut map)?;
9900 Ok(value)
9901 }
9902 }
9903 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
9904 "insufficient_permissions",
9905 "other",
9906 "transient_error",
9907 "legal_hold_still_empty",
9908 "inactive_legal_hold"];
9909 deserializer.deserialize_struct("LegalHoldsListHeldRevisionsError", VARIANTS, EnumVisitor)
9910 }
9911}
9912
9913impl ::serde::ser::Serialize for LegalHoldsListHeldRevisionsError {
9914 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
9915 use serde::ser::SerializeStruct;
9917 match self {
9918 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => {
9919 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
9921 s.serialize_field(".tag", "unknown_legal_hold_error")?;
9922 s.end()
9923 }
9924 LegalHoldsListHeldRevisionsError::InsufficientPermissions => {
9925 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
9927 s.serialize_field(".tag", "insufficient_permissions")?;
9928 s.end()
9929 }
9930 LegalHoldsListHeldRevisionsError::TransientError => {
9931 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
9933 s.serialize_field(".tag", "transient_error")?;
9934 s.end()
9935 }
9936 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => {
9937 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
9939 s.serialize_field(".tag", "legal_hold_still_empty")?;
9940 s.end()
9941 }
9942 LegalHoldsListHeldRevisionsError::InactiveLegalHold => {
9943 let mut s = serializer.serialize_struct("LegalHoldsListHeldRevisionsError", 1)?;
9945 s.serialize_field(".tag", "inactive_legal_hold")?;
9946 s.end()
9947 }
9948 LegalHoldsListHeldRevisionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
9949 }
9950 }
9951}
9952
9953impl ::std::error::Error for LegalHoldsListHeldRevisionsError {
9954}
9955
9956impl ::std::fmt::Display for LegalHoldsListHeldRevisionsError {
9957 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9958 match self {
9959 LegalHoldsListHeldRevisionsError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
9960 LegalHoldsListHeldRevisionsError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
9961 LegalHoldsListHeldRevisionsError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
9962 LegalHoldsListHeldRevisionsError::LegalHoldStillEmpty => f.write_str("The legal hold is not holding any revisions yet."),
9963 LegalHoldsListHeldRevisionsError::InactiveLegalHold => f.write_str("Trying to list revisions for an inactive legal hold."),
9964 _ => write!(f, "{:?}", *self),
9965 }
9966 }
9967}
9968
9969impl From<LegalHoldsError> for LegalHoldsListHeldRevisionsError {
9971 fn from(parent: LegalHoldsError) -> Self {
9972 match parent {
9973 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListHeldRevisionsError::UnknownLegalHoldError,
9974 LegalHoldsError::InsufficientPermissions => LegalHoldsListHeldRevisionsError::InsufficientPermissions,
9975 LegalHoldsError::Other => LegalHoldsListHeldRevisionsError::Other,
9976 }
9977 }
9978}
9979#[derive(Debug, Clone, PartialEq, Eq, Default)]
9980#[non_exhaustive] pub struct LegalHoldsListPoliciesArg {
9982 pub include_released: bool,
9984}
9985
9986impl LegalHoldsListPoliciesArg {
9987 pub fn with_include_released(mut self, value: bool) -> Self {
9988 self.include_released = value;
9989 self
9990 }
9991}
9992
9993const LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS: &[&str] = &["include_released"];
9994impl LegalHoldsListPoliciesArg {
9995 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
9997 mut map: V,
9998 ) -> Result<LegalHoldsListPoliciesArg, V::Error> {
9999 let mut field_include_released = None;
10000 while let Some(key) = map.next_key::<&str>()? {
10001 match key {
10002 "include_released" => {
10003 if field_include_released.is_some() {
10004 return Err(::serde::de::Error::duplicate_field("include_released"));
10005 }
10006 field_include_released = Some(map.next_value()?);
10007 }
10008 _ => {
10009 map.next_value::<::serde_json::Value>()?;
10011 }
10012 }
10013 }
10014 let result = LegalHoldsListPoliciesArg {
10015 include_released: field_include_released.unwrap_or(false),
10016 };
10017 Ok(result)
10018 }
10019
10020 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10021 &self,
10022 s: &mut S::SerializeStruct,
10023 ) -> Result<(), S::Error> {
10024 use serde::ser::SerializeStruct;
10025 if self.include_released {
10026 s.serialize_field("include_released", &self.include_released)?;
10027 }
10028 Ok(())
10029 }
10030}
10031
10032impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesArg {
10033 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10034 use serde::de::{MapAccess, Visitor};
10036 struct StructVisitor;
10037 impl<'de> Visitor<'de> for StructVisitor {
10038 type Value = LegalHoldsListPoliciesArg;
10039 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10040 f.write_str("a LegalHoldsListPoliciesArg struct")
10041 }
10042 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10043 LegalHoldsListPoliciesArg::internal_deserialize(map)
10044 }
10045 }
10046 deserializer.deserialize_struct("LegalHoldsListPoliciesArg", LEGAL_HOLDS_LIST_POLICIES_ARG_FIELDS, StructVisitor)
10047 }
10048}
10049
10050impl ::serde::ser::Serialize for LegalHoldsListPoliciesArg {
10051 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10052 use serde::ser::SerializeStruct;
10054 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesArg", 1)?;
10055 self.internal_serialize::<S>(&mut s)?;
10056 s.end()
10057 }
10058}
10059
10060#[derive(Debug, Clone, PartialEq, Eq)]
10061#[non_exhaustive] pub enum LegalHoldsListPoliciesError {
10063 UnknownLegalHoldError,
10065 InsufficientPermissions,
10067 TransientError,
10069 Other,
10072}
10073
10074impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesError {
10075 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10076 use serde::de::{self, MapAccess, Visitor};
10078 struct EnumVisitor;
10079 impl<'de> Visitor<'de> for EnumVisitor {
10080 type Value = LegalHoldsListPoliciesError;
10081 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10082 f.write_str("a LegalHoldsListPoliciesError structure")
10083 }
10084 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10085 let tag: &str = match map.next_key()? {
10086 Some(".tag") => map.next_value()?,
10087 _ => return Err(de::Error::missing_field(".tag"))
10088 };
10089 let value = match tag {
10090 "unknown_legal_hold_error" => LegalHoldsListPoliciesError::UnknownLegalHoldError,
10091 "insufficient_permissions" => LegalHoldsListPoliciesError::InsufficientPermissions,
10092 "transient_error" => LegalHoldsListPoliciesError::TransientError,
10093 _ => LegalHoldsListPoliciesError::Other,
10094 };
10095 crate::eat_json_fields(&mut map)?;
10096 Ok(value)
10097 }
10098 }
10099 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10100 "insufficient_permissions",
10101 "other",
10102 "transient_error"];
10103 deserializer.deserialize_struct("LegalHoldsListPoliciesError", VARIANTS, EnumVisitor)
10104 }
10105}
10106
10107impl ::serde::ser::Serialize for LegalHoldsListPoliciesError {
10108 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10109 use serde::ser::SerializeStruct;
10111 match self {
10112 LegalHoldsListPoliciesError::UnknownLegalHoldError => {
10113 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10115 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10116 s.end()
10117 }
10118 LegalHoldsListPoliciesError::InsufficientPermissions => {
10119 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10121 s.serialize_field(".tag", "insufficient_permissions")?;
10122 s.end()
10123 }
10124 LegalHoldsListPoliciesError::TransientError => {
10125 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesError", 1)?;
10127 s.serialize_field(".tag", "transient_error")?;
10128 s.end()
10129 }
10130 LegalHoldsListPoliciesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10131 }
10132 }
10133}
10134
10135impl ::std::error::Error for LegalHoldsListPoliciesError {
10136}
10137
10138impl ::std::fmt::Display for LegalHoldsListPoliciesError {
10139 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10140 match self {
10141 LegalHoldsListPoliciesError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10142 LegalHoldsListPoliciesError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10143 LegalHoldsListPoliciesError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10144 _ => write!(f, "{:?}", *self),
10145 }
10146 }
10147}
10148
10149impl From<LegalHoldsError> for LegalHoldsListPoliciesError {
10151 fn from(parent: LegalHoldsError) -> Self {
10152 match parent {
10153 LegalHoldsError::UnknownLegalHoldError => LegalHoldsListPoliciesError::UnknownLegalHoldError,
10154 LegalHoldsError::InsufficientPermissions => LegalHoldsListPoliciesError::InsufficientPermissions,
10155 LegalHoldsError::Other => LegalHoldsListPoliciesError::Other,
10156 }
10157 }
10158}
10159#[derive(Debug, Clone, PartialEq, Eq)]
10160#[non_exhaustive] pub struct LegalHoldsListPoliciesResult {
10162 pub policies: Vec<LegalHoldPolicy>,
10163}
10164
10165impl LegalHoldsListPoliciesResult {
10166 pub fn new(policies: Vec<LegalHoldPolicy>) -> Self {
10167 LegalHoldsListPoliciesResult {
10168 policies,
10169 }
10170 }
10171}
10172
10173const LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS: &[&str] = &["policies"];
10174impl LegalHoldsListPoliciesResult {
10175 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10176 map: V,
10177 ) -> Result<LegalHoldsListPoliciesResult, V::Error> {
10178 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10179 }
10180
10181 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10182 mut map: V,
10183 optional: bool,
10184 ) -> Result<Option<LegalHoldsListPoliciesResult>, V::Error> {
10185 let mut field_policies = None;
10186 let mut nothing = true;
10187 while let Some(key) = map.next_key::<&str>()? {
10188 nothing = false;
10189 match key {
10190 "policies" => {
10191 if field_policies.is_some() {
10192 return Err(::serde::de::Error::duplicate_field("policies"));
10193 }
10194 field_policies = Some(map.next_value()?);
10195 }
10196 _ => {
10197 map.next_value::<::serde_json::Value>()?;
10199 }
10200 }
10201 }
10202 if optional && nothing {
10203 return Ok(None);
10204 }
10205 let result = LegalHoldsListPoliciesResult {
10206 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
10207 };
10208 Ok(Some(result))
10209 }
10210
10211 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10212 &self,
10213 s: &mut S::SerializeStruct,
10214 ) -> Result<(), S::Error> {
10215 use serde::ser::SerializeStruct;
10216 s.serialize_field("policies", &self.policies)?;
10217 Ok(())
10218 }
10219}
10220
10221impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsListPoliciesResult {
10222 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10223 use serde::de::{MapAccess, Visitor};
10225 struct StructVisitor;
10226 impl<'de> Visitor<'de> for StructVisitor {
10227 type Value = LegalHoldsListPoliciesResult;
10228 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10229 f.write_str("a LegalHoldsListPoliciesResult struct")
10230 }
10231 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10232 LegalHoldsListPoliciesResult::internal_deserialize(map)
10233 }
10234 }
10235 deserializer.deserialize_struct("LegalHoldsListPoliciesResult", LEGAL_HOLDS_LIST_POLICIES_RESULT_FIELDS, StructVisitor)
10236 }
10237}
10238
10239impl ::serde::ser::Serialize for LegalHoldsListPoliciesResult {
10240 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10241 use serde::ser::SerializeStruct;
10243 let mut s = serializer.serialize_struct("LegalHoldsListPoliciesResult", 1)?;
10244 self.internal_serialize::<S>(&mut s)?;
10245 s.end()
10246 }
10247}
10248
10249#[derive(Debug, Clone, PartialEq, Eq)]
10250#[non_exhaustive] pub struct LegalHoldsPolicyCreateArg {
10252 pub name: LegalHoldPolicyName,
10254 pub members: Vec<crate::types::team_common::TeamMemberId>,
10256 pub description: Option<LegalHoldPolicyDescription>,
10258 pub start_date: Option<crate::types::common::DropboxTimestamp>,
10260 pub end_date: Option<crate::types::common::DropboxTimestamp>,
10262}
10263
10264impl LegalHoldsPolicyCreateArg {
10265 pub fn new(
10266 name: LegalHoldPolicyName,
10267 members: Vec<crate::types::team_common::TeamMemberId>,
10268 ) -> Self {
10269 LegalHoldsPolicyCreateArg {
10270 name,
10271 members,
10272 description: None,
10273 start_date: None,
10274 end_date: None,
10275 }
10276 }
10277
10278 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
10279 self.description = Some(value);
10280 self
10281 }
10282
10283 pub fn with_start_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
10284 self.start_date = Some(value);
10285 self
10286 }
10287
10288 pub fn with_end_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
10289 self.end_date = Some(value);
10290 self
10291 }
10292}
10293
10294const LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS: &[&str] = &["name",
10295 "members",
10296 "description",
10297 "start_date",
10298 "end_date"];
10299impl LegalHoldsPolicyCreateArg {
10300 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10301 map: V,
10302 ) -> Result<LegalHoldsPolicyCreateArg, V::Error> {
10303 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10304 }
10305
10306 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10307 mut map: V,
10308 optional: bool,
10309 ) -> Result<Option<LegalHoldsPolicyCreateArg>, V::Error> {
10310 let mut field_name = None;
10311 let mut field_members = None;
10312 let mut field_description = None;
10313 let mut field_start_date = None;
10314 let mut field_end_date = None;
10315 let mut nothing = true;
10316 while let Some(key) = map.next_key::<&str>()? {
10317 nothing = false;
10318 match key {
10319 "name" => {
10320 if field_name.is_some() {
10321 return Err(::serde::de::Error::duplicate_field("name"));
10322 }
10323 field_name = Some(map.next_value()?);
10324 }
10325 "members" => {
10326 if field_members.is_some() {
10327 return Err(::serde::de::Error::duplicate_field("members"));
10328 }
10329 field_members = Some(map.next_value()?);
10330 }
10331 "description" => {
10332 if field_description.is_some() {
10333 return Err(::serde::de::Error::duplicate_field("description"));
10334 }
10335 field_description = Some(map.next_value()?);
10336 }
10337 "start_date" => {
10338 if field_start_date.is_some() {
10339 return Err(::serde::de::Error::duplicate_field("start_date"));
10340 }
10341 field_start_date = Some(map.next_value()?);
10342 }
10343 "end_date" => {
10344 if field_end_date.is_some() {
10345 return Err(::serde::de::Error::duplicate_field("end_date"));
10346 }
10347 field_end_date = Some(map.next_value()?);
10348 }
10349 _ => {
10350 map.next_value::<::serde_json::Value>()?;
10352 }
10353 }
10354 }
10355 if optional && nothing {
10356 return Ok(None);
10357 }
10358 let result = LegalHoldsPolicyCreateArg {
10359 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
10360 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
10361 description: field_description.and_then(Option::flatten),
10362 start_date: field_start_date.and_then(Option::flatten),
10363 end_date: field_end_date.and_then(Option::flatten),
10364 };
10365 Ok(Some(result))
10366 }
10367
10368 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10369 &self,
10370 s: &mut S::SerializeStruct,
10371 ) -> Result<(), S::Error> {
10372 use serde::ser::SerializeStruct;
10373 s.serialize_field("name", &self.name)?;
10374 s.serialize_field("members", &self.members)?;
10375 if let Some(val) = &self.description {
10376 s.serialize_field("description", val)?;
10377 }
10378 if let Some(val) = &self.start_date {
10379 s.serialize_field("start_date", val)?;
10380 }
10381 if let Some(val) = &self.end_date {
10382 s.serialize_field("end_date", val)?;
10383 }
10384 Ok(())
10385 }
10386}
10387
10388impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateArg {
10389 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10390 use serde::de::{MapAccess, Visitor};
10392 struct StructVisitor;
10393 impl<'de> Visitor<'de> for StructVisitor {
10394 type Value = LegalHoldsPolicyCreateArg;
10395 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10396 f.write_str("a LegalHoldsPolicyCreateArg struct")
10397 }
10398 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10399 LegalHoldsPolicyCreateArg::internal_deserialize(map)
10400 }
10401 }
10402 deserializer.deserialize_struct("LegalHoldsPolicyCreateArg", LEGAL_HOLDS_POLICY_CREATE_ARG_FIELDS, StructVisitor)
10403 }
10404}
10405
10406impl ::serde::ser::Serialize for LegalHoldsPolicyCreateArg {
10407 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10408 use serde::ser::SerializeStruct;
10410 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateArg", 5)?;
10411 self.internal_serialize::<S>(&mut s)?;
10412 s.end()
10413 }
10414}
10415
10416#[derive(Debug, Clone, PartialEq, Eq)]
10417#[non_exhaustive] pub enum LegalHoldsPolicyCreateError {
10419 UnknownLegalHoldError,
10421 InsufficientPermissions,
10423 StartDateIsLaterThanEndDate,
10425 EmptyMembersList,
10427 InvalidMembers,
10429 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10431 TransientError,
10433 NameMustBeUnique,
10435 TeamExceededLegalHoldQuota,
10437 InvalidDate,
10439 Other,
10442}
10443
10444impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyCreateError {
10445 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10446 use serde::de::{self, MapAccess, Visitor};
10448 struct EnumVisitor;
10449 impl<'de> Visitor<'de> for EnumVisitor {
10450 type Value = LegalHoldsPolicyCreateError;
10451 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10452 f.write_str("a LegalHoldsPolicyCreateError structure")
10453 }
10454 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10455 let tag: &str = match map.next_key()? {
10456 Some(".tag") => map.next_value()?,
10457 _ => return Err(de::Error::missing_field(".tag"))
10458 };
10459 let value = match tag {
10460 "unknown_legal_hold_error" => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
10461 "insufficient_permissions" => LegalHoldsPolicyCreateError::InsufficientPermissions,
10462 "start_date_is_later_than_end_date" => LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate,
10463 "empty_members_list" => LegalHoldsPolicyCreateError::EmptyMembersList,
10464 "invalid_members" => LegalHoldsPolicyCreateError::InvalidMembers,
10465 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10466 "transient_error" => LegalHoldsPolicyCreateError::TransientError,
10467 "name_must_be_unique" => LegalHoldsPolicyCreateError::NameMustBeUnique,
10468 "team_exceeded_legal_hold_quota" => LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota,
10469 "invalid_date" => LegalHoldsPolicyCreateError::InvalidDate,
10470 _ => LegalHoldsPolicyCreateError::Other,
10471 };
10472 crate::eat_json_fields(&mut map)?;
10473 Ok(value)
10474 }
10475 }
10476 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10477 "insufficient_permissions",
10478 "other",
10479 "start_date_is_later_than_end_date",
10480 "empty_members_list",
10481 "invalid_members",
10482 "number_of_users_on_hold_is_greater_than_hold_limitation",
10483 "transient_error",
10484 "name_must_be_unique",
10485 "team_exceeded_legal_hold_quota",
10486 "invalid_date"];
10487 deserializer.deserialize_struct("LegalHoldsPolicyCreateError", VARIANTS, EnumVisitor)
10488 }
10489}
10490
10491impl ::serde::ser::Serialize for LegalHoldsPolicyCreateError {
10492 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10493 use serde::ser::SerializeStruct;
10495 match self {
10496 LegalHoldsPolicyCreateError::UnknownLegalHoldError => {
10497 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10499 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10500 s.end()
10501 }
10502 LegalHoldsPolicyCreateError::InsufficientPermissions => {
10503 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10505 s.serialize_field(".tag", "insufficient_permissions")?;
10506 s.end()
10507 }
10508 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => {
10509 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10511 s.serialize_field(".tag", "start_date_is_later_than_end_date")?;
10512 s.end()
10513 }
10514 LegalHoldsPolicyCreateError::EmptyMembersList => {
10515 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10517 s.serialize_field(".tag", "empty_members_list")?;
10518 s.end()
10519 }
10520 LegalHoldsPolicyCreateError::InvalidMembers => {
10521 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10523 s.serialize_field(".tag", "invalid_members")?;
10524 s.end()
10525 }
10526 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
10527 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10529 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
10530 s.end()
10531 }
10532 LegalHoldsPolicyCreateError::TransientError => {
10533 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10535 s.serialize_field(".tag", "transient_error")?;
10536 s.end()
10537 }
10538 LegalHoldsPolicyCreateError::NameMustBeUnique => {
10539 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10541 s.serialize_field(".tag", "name_must_be_unique")?;
10542 s.end()
10543 }
10544 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => {
10545 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10547 s.serialize_field(".tag", "team_exceeded_legal_hold_quota")?;
10548 s.end()
10549 }
10550 LegalHoldsPolicyCreateError::InvalidDate => {
10551 let mut s = serializer.serialize_struct("LegalHoldsPolicyCreateError", 1)?;
10553 s.serialize_field(".tag", "invalid_date")?;
10554 s.end()
10555 }
10556 LegalHoldsPolicyCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10557 }
10558 }
10559}
10560
10561impl ::std::error::Error for LegalHoldsPolicyCreateError {
10562}
10563
10564impl ::std::fmt::Display for LegalHoldsPolicyCreateError {
10565 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10566 match self {
10567 LegalHoldsPolicyCreateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10568 LegalHoldsPolicyCreateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10569 LegalHoldsPolicyCreateError::StartDateIsLaterThanEndDate => f.write_str("Start date must be earlier than end date."),
10570 LegalHoldsPolicyCreateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
10571 LegalHoldsPolicyCreateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
10572 LegalHoldsPolicyCreateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
10573 LegalHoldsPolicyCreateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
10574 LegalHoldsPolicyCreateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
10575 LegalHoldsPolicyCreateError::TeamExceededLegalHoldQuota => f.write_str("Team exceeded legal hold quota."),
10576 LegalHoldsPolicyCreateError::InvalidDate => f.write_str("The provided date is invalid."),
10577 _ => write!(f, "{:?}", *self),
10578 }
10579 }
10580}
10581
10582impl From<LegalHoldsError> for LegalHoldsPolicyCreateError {
10584 fn from(parent: LegalHoldsError) -> Self {
10585 match parent {
10586 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyCreateError::UnknownLegalHoldError,
10587 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyCreateError::InsufficientPermissions,
10588 LegalHoldsError::Other => LegalHoldsPolicyCreateError::Other,
10589 }
10590 }
10591}
10592#[derive(Debug, Clone, PartialEq, Eq)]
10593#[non_exhaustive] pub struct LegalHoldsPolicyReleaseArg {
10595 pub id: LegalHoldId,
10597}
10598
10599impl LegalHoldsPolicyReleaseArg {
10600 pub fn new(id: LegalHoldId) -> Self {
10601 LegalHoldsPolicyReleaseArg {
10602 id,
10603 }
10604 }
10605}
10606
10607const LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS: &[&str] = &["id"];
10608impl LegalHoldsPolicyReleaseArg {
10609 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10610 map: V,
10611 ) -> Result<LegalHoldsPolicyReleaseArg, V::Error> {
10612 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10613 }
10614
10615 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10616 mut map: V,
10617 optional: bool,
10618 ) -> Result<Option<LegalHoldsPolicyReleaseArg>, V::Error> {
10619 let mut field_id = None;
10620 let mut nothing = true;
10621 while let Some(key) = map.next_key::<&str>()? {
10622 nothing = false;
10623 match key {
10624 "id" => {
10625 if field_id.is_some() {
10626 return Err(::serde::de::Error::duplicate_field("id"));
10627 }
10628 field_id = Some(map.next_value()?);
10629 }
10630 _ => {
10631 map.next_value::<::serde_json::Value>()?;
10633 }
10634 }
10635 }
10636 if optional && nothing {
10637 return Ok(None);
10638 }
10639 let result = LegalHoldsPolicyReleaseArg {
10640 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10641 };
10642 Ok(Some(result))
10643 }
10644
10645 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10646 &self,
10647 s: &mut S::SerializeStruct,
10648 ) -> Result<(), S::Error> {
10649 use serde::ser::SerializeStruct;
10650 s.serialize_field("id", &self.id)?;
10651 Ok(())
10652 }
10653}
10654
10655impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseArg {
10656 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10657 use serde::de::{MapAccess, Visitor};
10659 struct StructVisitor;
10660 impl<'de> Visitor<'de> for StructVisitor {
10661 type Value = LegalHoldsPolicyReleaseArg;
10662 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10663 f.write_str("a LegalHoldsPolicyReleaseArg struct")
10664 }
10665 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10666 LegalHoldsPolicyReleaseArg::internal_deserialize(map)
10667 }
10668 }
10669 deserializer.deserialize_struct("LegalHoldsPolicyReleaseArg", LEGAL_HOLDS_POLICY_RELEASE_ARG_FIELDS, StructVisitor)
10670 }
10671}
10672
10673impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseArg {
10674 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10675 use serde::ser::SerializeStruct;
10677 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseArg", 1)?;
10678 self.internal_serialize::<S>(&mut s)?;
10679 s.end()
10680 }
10681}
10682
10683#[derive(Debug, Clone, PartialEq, Eq)]
10684#[non_exhaustive] pub enum LegalHoldsPolicyReleaseError {
10686 UnknownLegalHoldError,
10688 InsufficientPermissions,
10690 LegalHoldPerformingAnotherOperation,
10692 LegalHoldAlreadyReleasing,
10694 LegalHoldPolicyNotFound,
10697 Other,
10700}
10701
10702impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyReleaseError {
10703 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10704 use serde::de::{self, MapAccess, Visitor};
10706 struct EnumVisitor;
10707 impl<'de> Visitor<'de> for EnumVisitor {
10708 type Value = LegalHoldsPolicyReleaseError;
10709 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10710 f.write_str("a LegalHoldsPolicyReleaseError structure")
10711 }
10712 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10713 let tag: &str = match map.next_key()? {
10714 Some(".tag") => map.next_value()?,
10715 _ => return Err(de::Error::missing_field(".tag"))
10716 };
10717 let value = match tag {
10718 "unknown_legal_hold_error" => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
10719 "insufficient_permissions" => LegalHoldsPolicyReleaseError::InsufficientPermissions,
10720 "legal_hold_performing_another_operation" => LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation,
10721 "legal_hold_already_releasing" => LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing,
10722 "legal_hold_policy_not_found" => LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound,
10723 _ => LegalHoldsPolicyReleaseError::Other,
10724 };
10725 crate::eat_json_fields(&mut map)?;
10726 Ok(value)
10727 }
10728 }
10729 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
10730 "insufficient_permissions",
10731 "other",
10732 "legal_hold_performing_another_operation",
10733 "legal_hold_already_releasing",
10734 "legal_hold_policy_not_found"];
10735 deserializer.deserialize_struct("LegalHoldsPolicyReleaseError", VARIANTS, EnumVisitor)
10736 }
10737}
10738
10739impl ::serde::ser::Serialize for LegalHoldsPolicyReleaseError {
10740 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10741 use serde::ser::SerializeStruct;
10743 match self {
10744 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => {
10745 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10747 s.serialize_field(".tag", "unknown_legal_hold_error")?;
10748 s.end()
10749 }
10750 LegalHoldsPolicyReleaseError::InsufficientPermissions => {
10751 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10753 s.serialize_field(".tag", "insufficient_permissions")?;
10754 s.end()
10755 }
10756 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => {
10757 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10759 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
10760 s.end()
10761 }
10762 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => {
10763 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10765 s.serialize_field(".tag", "legal_hold_already_releasing")?;
10766 s.end()
10767 }
10768 LegalHoldsPolicyReleaseError::LegalHoldPolicyNotFound => {
10769 let mut s = serializer.serialize_struct("LegalHoldsPolicyReleaseError", 1)?;
10771 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
10772 s.end()
10773 }
10774 LegalHoldsPolicyReleaseError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
10775 }
10776 }
10777}
10778
10779impl ::std::error::Error for LegalHoldsPolicyReleaseError {
10780}
10781
10782impl ::std::fmt::Display for LegalHoldsPolicyReleaseError {
10783 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10784 match self {
10785 LegalHoldsPolicyReleaseError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
10786 LegalHoldsPolicyReleaseError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
10787 LegalHoldsPolicyReleaseError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
10788 LegalHoldsPolicyReleaseError::LegalHoldAlreadyReleasing => f.write_str("Legal hold is currently performing a release or is already released."),
10789 _ => write!(f, "{:?}", *self),
10790 }
10791 }
10792}
10793
10794impl From<LegalHoldsError> for LegalHoldsPolicyReleaseError {
10796 fn from(parent: LegalHoldsError) -> Self {
10797 match parent {
10798 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyReleaseError::UnknownLegalHoldError,
10799 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyReleaseError::InsufficientPermissions,
10800 LegalHoldsError::Other => LegalHoldsPolicyReleaseError::Other,
10801 }
10802 }
10803}
10804#[derive(Debug, Clone, PartialEq, Eq)]
10805#[non_exhaustive] pub struct LegalHoldsPolicyUpdateArg {
10807 pub id: LegalHoldId,
10809 pub name: Option<LegalHoldPolicyName>,
10811 pub description: Option<LegalHoldPolicyDescription>,
10813 pub members: Option<Vec<crate::types::team_common::TeamMemberId>>,
10815}
10816
10817impl LegalHoldsPolicyUpdateArg {
10818 pub fn new(id: LegalHoldId) -> Self {
10819 LegalHoldsPolicyUpdateArg {
10820 id,
10821 name: None,
10822 description: None,
10823 members: None,
10824 }
10825 }
10826
10827 pub fn with_name(mut self, value: LegalHoldPolicyName) -> Self {
10828 self.name = Some(value);
10829 self
10830 }
10831
10832 pub fn with_description(mut self, value: LegalHoldPolicyDescription) -> Self {
10833 self.description = Some(value);
10834 self
10835 }
10836
10837 pub fn with_members(mut self, value: Vec<crate::types::team_common::TeamMemberId>) -> Self {
10838 self.members = Some(value);
10839 self
10840 }
10841}
10842
10843const LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS: &[&str] = &["id",
10844 "name",
10845 "description",
10846 "members"];
10847impl LegalHoldsPolicyUpdateArg {
10848 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
10849 map: V,
10850 ) -> Result<LegalHoldsPolicyUpdateArg, V::Error> {
10851 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
10852 }
10853
10854 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
10855 mut map: V,
10856 optional: bool,
10857 ) -> Result<Option<LegalHoldsPolicyUpdateArg>, V::Error> {
10858 let mut field_id = None;
10859 let mut field_name = None;
10860 let mut field_description = None;
10861 let mut field_members = None;
10862 let mut nothing = true;
10863 while let Some(key) = map.next_key::<&str>()? {
10864 nothing = false;
10865 match key {
10866 "id" => {
10867 if field_id.is_some() {
10868 return Err(::serde::de::Error::duplicate_field("id"));
10869 }
10870 field_id = Some(map.next_value()?);
10871 }
10872 "name" => {
10873 if field_name.is_some() {
10874 return Err(::serde::de::Error::duplicate_field("name"));
10875 }
10876 field_name = Some(map.next_value()?);
10877 }
10878 "description" => {
10879 if field_description.is_some() {
10880 return Err(::serde::de::Error::duplicate_field("description"));
10881 }
10882 field_description = Some(map.next_value()?);
10883 }
10884 "members" => {
10885 if field_members.is_some() {
10886 return Err(::serde::de::Error::duplicate_field("members"));
10887 }
10888 field_members = Some(map.next_value()?);
10889 }
10890 _ => {
10891 map.next_value::<::serde_json::Value>()?;
10893 }
10894 }
10895 }
10896 if optional && nothing {
10897 return Ok(None);
10898 }
10899 let result = LegalHoldsPolicyUpdateArg {
10900 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
10901 name: field_name.and_then(Option::flatten),
10902 description: field_description.and_then(Option::flatten),
10903 members: field_members.and_then(Option::flatten),
10904 };
10905 Ok(Some(result))
10906 }
10907
10908 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
10909 &self,
10910 s: &mut S::SerializeStruct,
10911 ) -> Result<(), S::Error> {
10912 use serde::ser::SerializeStruct;
10913 s.serialize_field("id", &self.id)?;
10914 if let Some(val) = &self.name {
10915 s.serialize_field("name", val)?;
10916 }
10917 if let Some(val) = &self.description {
10918 s.serialize_field("description", val)?;
10919 }
10920 if let Some(val) = &self.members {
10921 s.serialize_field("members", val)?;
10922 }
10923 Ok(())
10924 }
10925}
10926
10927impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateArg {
10928 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10929 use serde::de::{MapAccess, Visitor};
10931 struct StructVisitor;
10932 impl<'de> Visitor<'de> for StructVisitor {
10933 type Value = LegalHoldsPolicyUpdateArg;
10934 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10935 f.write_str("a LegalHoldsPolicyUpdateArg struct")
10936 }
10937 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
10938 LegalHoldsPolicyUpdateArg::internal_deserialize(map)
10939 }
10940 }
10941 deserializer.deserialize_struct("LegalHoldsPolicyUpdateArg", LEGAL_HOLDS_POLICY_UPDATE_ARG_FIELDS, StructVisitor)
10942 }
10943}
10944
10945impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateArg {
10946 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
10947 use serde::ser::SerializeStruct;
10949 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateArg", 4)?;
10950 self.internal_serialize::<S>(&mut s)?;
10951 s.end()
10952 }
10953}
10954
10955#[derive(Debug, Clone, PartialEq, Eq)]
10956#[non_exhaustive] pub enum LegalHoldsPolicyUpdateError {
10958 UnknownLegalHoldError,
10960 InsufficientPermissions,
10962 TransientError,
10964 InactiveLegalHold,
10966 LegalHoldPerformingAnotherOperation,
10968 InvalidMembers,
10970 NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
10972 EmptyMembersList,
10974 NameMustBeUnique,
10976 LegalHoldPolicyNotFound,
10979 Other,
10982}
10983
10984impl<'de> ::serde::de::Deserialize<'de> for LegalHoldsPolicyUpdateError {
10985 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
10986 use serde::de::{self, MapAccess, Visitor};
10988 struct EnumVisitor;
10989 impl<'de> Visitor<'de> for EnumVisitor {
10990 type Value = LegalHoldsPolicyUpdateError;
10991 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10992 f.write_str("a LegalHoldsPolicyUpdateError structure")
10993 }
10994 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
10995 let tag: &str = match map.next_key()? {
10996 Some(".tag") => map.next_value()?,
10997 _ => return Err(de::Error::missing_field(".tag"))
10998 };
10999 let value = match tag {
11000 "unknown_legal_hold_error" => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11001 "insufficient_permissions" => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11002 "transient_error" => LegalHoldsPolicyUpdateError::TransientError,
11003 "inactive_legal_hold" => LegalHoldsPolicyUpdateError::InactiveLegalHold,
11004 "legal_hold_performing_another_operation" => LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation,
11005 "invalid_members" => LegalHoldsPolicyUpdateError::InvalidMembers,
11006 "number_of_users_on_hold_is_greater_than_hold_limitation" => LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation,
11007 "empty_members_list" => LegalHoldsPolicyUpdateError::EmptyMembersList,
11008 "name_must_be_unique" => LegalHoldsPolicyUpdateError::NameMustBeUnique,
11009 "legal_hold_policy_not_found" => LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound,
11010 _ => LegalHoldsPolicyUpdateError::Other,
11011 };
11012 crate::eat_json_fields(&mut map)?;
11013 Ok(value)
11014 }
11015 }
11016 const VARIANTS: &[&str] = &["unknown_legal_hold_error",
11017 "insufficient_permissions",
11018 "other",
11019 "transient_error",
11020 "inactive_legal_hold",
11021 "legal_hold_performing_another_operation",
11022 "invalid_members",
11023 "number_of_users_on_hold_is_greater_than_hold_limitation",
11024 "empty_members_list",
11025 "name_must_be_unique",
11026 "legal_hold_policy_not_found"];
11027 deserializer.deserialize_struct("LegalHoldsPolicyUpdateError", VARIANTS, EnumVisitor)
11028 }
11029}
11030
11031impl ::serde::ser::Serialize for LegalHoldsPolicyUpdateError {
11032 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11033 use serde::ser::SerializeStruct;
11035 match self {
11036 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => {
11037 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11039 s.serialize_field(".tag", "unknown_legal_hold_error")?;
11040 s.end()
11041 }
11042 LegalHoldsPolicyUpdateError::InsufficientPermissions => {
11043 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11045 s.serialize_field(".tag", "insufficient_permissions")?;
11046 s.end()
11047 }
11048 LegalHoldsPolicyUpdateError::TransientError => {
11049 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11051 s.serialize_field(".tag", "transient_error")?;
11052 s.end()
11053 }
11054 LegalHoldsPolicyUpdateError::InactiveLegalHold => {
11055 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11057 s.serialize_field(".tag", "inactive_legal_hold")?;
11058 s.end()
11059 }
11060 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => {
11061 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11063 s.serialize_field(".tag", "legal_hold_performing_another_operation")?;
11064 s.end()
11065 }
11066 LegalHoldsPolicyUpdateError::InvalidMembers => {
11067 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11069 s.serialize_field(".tag", "invalid_members")?;
11070 s.end()
11071 }
11072 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => {
11073 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11075 s.serialize_field(".tag", "number_of_users_on_hold_is_greater_than_hold_limitation")?;
11076 s.end()
11077 }
11078 LegalHoldsPolicyUpdateError::EmptyMembersList => {
11079 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11081 s.serialize_field(".tag", "empty_members_list")?;
11082 s.end()
11083 }
11084 LegalHoldsPolicyUpdateError::NameMustBeUnique => {
11085 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11087 s.serialize_field(".tag", "name_must_be_unique")?;
11088 s.end()
11089 }
11090 LegalHoldsPolicyUpdateError::LegalHoldPolicyNotFound => {
11091 let mut s = serializer.serialize_struct("LegalHoldsPolicyUpdateError", 1)?;
11093 s.serialize_field(".tag", "legal_hold_policy_not_found")?;
11094 s.end()
11095 }
11096 LegalHoldsPolicyUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11097 }
11098 }
11099}
11100
11101impl ::std::error::Error for LegalHoldsPolicyUpdateError {
11102}
11103
11104impl ::std::fmt::Display for LegalHoldsPolicyUpdateError {
11105 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11106 match self {
11107 LegalHoldsPolicyUpdateError::UnknownLegalHoldError => f.write_str("There has been an unknown legal hold error."),
11108 LegalHoldsPolicyUpdateError::InsufficientPermissions => f.write_str("You don't have permissions to perform this action."),
11109 LegalHoldsPolicyUpdateError::TransientError => f.write_str("Temporary infrastructure failure, please retry."),
11110 LegalHoldsPolicyUpdateError::InactiveLegalHold => f.write_str("Trying to release an inactive legal hold."),
11111 LegalHoldsPolicyUpdateError::LegalHoldPerformingAnotherOperation => f.write_str("Legal hold is currently performing another operation."),
11112 LegalHoldsPolicyUpdateError::InvalidMembers => f.write_str("Some members in the members list are not valid to be placed under legal hold."),
11113 LegalHoldsPolicyUpdateError::NumberOfUsersOnHoldIsGreaterThanHoldLimitation => f.write_str("You cannot add more than 5 users in a legal hold."),
11114 LegalHoldsPolicyUpdateError::EmptyMembersList => f.write_str("The users list must have at least one user."),
11115 LegalHoldsPolicyUpdateError::NameMustBeUnique => f.write_str("The name provided is already in use by another legal hold."),
11116 _ => write!(f, "{:?}", *self),
11117 }
11118 }
11119}
11120
11121impl From<LegalHoldsError> for LegalHoldsPolicyUpdateError {
11123 fn from(parent: LegalHoldsError) -> Self {
11124 match parent {
11125 LegalHoldsError::UnknownLegalHoldError => LegalHoldsPolicyUpdateError::UnknownLegalHoldError,
11126 LegalHoldsError::InsufficientPermissions => LegalHoldsPolicyUpdateError::InsufficientPermissions,
11127 LegalHoldsError::Other => LegalHoldsPolicyUpdateError::Other,
11128 }
11129 }
11130}
11131#[derive(Debug, Clone, PartialEq, Eq)]
11132#[non_exhaustive] pub struct ListMemberAppsArg {
11134 pub team_member_id: String,
11136}
11137
11138impl ListMemberAppsArg {
11139 pub fn new(team_member_id: String) -> Self {
11140 ListMemberAppsArg {
11141 team_member_id,
11142 }
11143 }
11144}
11145
11146const LIST_MEMBER_APPS_ARG_FIELDS: &[&str] = &["team_member_id"];
11147impl ListMemberAppsArg {
11148 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11149 map: V,
11150 ) -> Result<ListMemberAppsArg, V::Error> {
11151 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11152 }
11153
11154 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11155 mut map: V,
11156 optional: bool,
11157 ) -> Result<Option<ListMemberAppsArg>, V::Error> {
11158 let mut field_team_member_id = None;
11159 let mut nothing = true;
11160 while let Some(key) = map.next_key::<&str>()? {
11161 nothing = false;
11162 match key {
11163 "team_member_id" => {
11164 if field_team_member_id.is_some() {
11165 return Err(::serde::de::Error::duplicate_field("team_member_id"));
11166 }
11167 field_team_member_id = Some(map.next_value()?);
11168 }
11169 _ => {
11170 map.next_value::<::serde_json::Value>()?;
11172 }
11173 }
11174 }
11175 if optional && nothing {
11176 return Ok(None);
11177 }
11178 let result = ListMemberAppsArg {
11179 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
11180 };
11181 Ok(Some(result))
11182 }
11183
11184 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11185 &self,
11186 s: &mut S::SerializeStruct,
11187 ) -> Result<(), S::Error> {
11188 use serde::ser::SerializeStruct;
11189 s.serialize_field("team_member_id", &self.team_member_id)?;
11190 Ok(())
11191 }
11192}
11193
11194impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsArg {
11195 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11196 use serde::de::{MapAccess, Visitor};
11198 struct StructVisitor;
11199 impl<'de> Visitor<'de> for StructVisitor {
11200 type Value = ListMemberAppsArg;
11201 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11202 f.write_str("a ListMemberAppsArg struct")
11203 }
11204 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11205 ListMemberAppsArg::internal_deserialize(map)
11206 }
11207 }
11208 deserializer.deserialize_struct("ListMemberAppsArg", LIST_MEMBER_APPS_ARG_FIELDS, StructVisitor)
11209 }
11210}
11211
11212impl ::serde::ser::Serialize for ListMemberAppsArg {
11213 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11214 use serde::ser::SerializeStruct;
11216 let mut s = serializer.serialize_struct("ListMemberAppsArg", 1)?;
11217 self.internal_serialize::<S>(&mut s)?;
11218 s.end()
11219 }
11220}
11221
11222#[derive(Debug, Clone, PartialEq, Eq)]
11225#[non_exhaustive] pub enum ListMemberAppsError {
11227 MemberNotFound,
11229 Other,
11232}
11233
11234impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsError {
11235 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11236 use serde::de::{self, MapAccess, Visitor};
11238 struct EnumVisitor;
11239 impl<'de> Visitor<'de> for EnumVisitor {
11240 type Value = ListMemberAppsError;
11241 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11242 f.write_str("a ListMemberAppsError structure")
11243 }
11244 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11245 let tag: &str = match map.next_key()? {
11246 Some(".tag") => map.next_value()?,
11247 _ => return Err(de::Error::missing_field(".tag"))
11248 };
11249 let value = match tag {
11250 "member_not_found" => ListMemberAppsError::MemberNotFound,
11251 _ => ListMemberAppsError::Other,
11252 };
11253 crate::eat_json_fields(&mut map)?;
11254 Ok(value)
11255 }
11256 }
11257 const VARIANTS: &[&str] = &["member_not_found",
11258 "other"];
11259 deserializer.deserialize_struct("ListMemberAppsError", VARIANTS, EnumVisitor)
11260 }
11261}
11262
11263impl ::serde::ser::Serialize for ListMemberAppsError {
11264 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11265 use serde::ser::SerializeStruct;
11267 match self {
11268 ListMemberAppsError::MemberNotFound => {
11269 let mut s = serializer.serialize_struct("ListMemberAppsError", 1)?;
11271 s.serialize_field(".tag", "member_not_found")?;
11272 s.end()
11273 }
11274 ListMemberAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11275 }
11276 }
11277}
11278
11279impl ::std::error::Error for ListMemberAppsError {
11280}
11281
11282impl ::std::fmt::Display for ListMemberAppsError {
11283 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11284 match self {
11285 ListMemberAppsError::MemberNotFound => f.write_str("Member not found."),
11286 _ => write!(f, "{:?}", *self),
11287 }
11288 }
11289}
11290
11291#[derive(Debug, Clone, PartialEq, Eq)]
11292#[non_exhaustive] pub struct ListMemberAppsResult {
11294 pub linked_api_apps: Vec<ApiApp>,
11296}
11297
11298impl ListMemberAppsResult {
11299 pub fn new(linked_api_apps: Vec<ApiApp>) -> Self {
11300 ListMemberAppsResult {
11301 linked_api_apps,
11302 }
11303 }
11304}
11305
11306const LIST_MEMBER_APPS_RESULT_FIELDS: &[&str] = &["linked_api_apps"];
11307impl ListMemberAppsResult {
11308 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11309 map: V,
11310 ) -> Result<ListMemberAppsResult, V::Error> {
11311 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11312 }
11313
11314 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11315 mut map: V,
11316 optional: bool,
11317 ) -> Result<Option<ListMemberAppsResult>, V::Error> {
11318 let mut field_linked_api_apps = None;
11319 let mut nothing = true;
11320 while let Some(key) = map.next_key::<&str>()? {
11321 nothing = false;
11322 match key {
11323 "linked_api_apps" => {
11324 if field_linked_api_apps.is_some() {
11325 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
11326 }
11327 field_linked_api_apps = Some(map.next_value()?);
11328 }
11329 _ => {
11330 map.next_value::<::serde_json::Value>()?;
11332 }
11333 }
11334 }
11335 if optional && nothing {
11336 return Ok(None);
11337 }
11338 let result = ListMemberAppsResult {
11339 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
11340 };
11341 Ok(Some(result))
11342 }
11343
11344 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11345 &self,
11346 s: &mut S::SerializeStruct,
11347 ) -> Result<(), S::Error> {
11348 use serde::ser::SerializeStruct;
11349 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
11350 Ok(())
11351 }
11352}
11353
11354impl<'de> ::serde::de::Deserialize<'de> for ListMemberAppsResult {
11355 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11356 use serde::de::{MapAccess, Visitor};
11358 struct StructVisitor;
11359 impl<'de> Visitor<'de> for StructVisitor {
11360 type Value = ListMemberAppsResult;
11361 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11362 f.write_str("a ListMemberAppsResult struct")
11363 }
11364 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11365 ListMemberAppsResult::internal_deserialize(map)
11366 }
11367 }
11368 deserializer.deserialize_struct("ListMemberAppsResult", LIST_MEMBER_APPS_RESULT_FIELDS, StructVisitor)
11369 }
11370}
11371
11372impl ::serde::ser::Serialize for ListMemberAppsResult {
11373 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11374 use serde::ser::SerializeStruct;
11376 let mut s = serializer.serialize_struct("ListMemberAppsResult", 1)?;
11377 self.internal_serialize::<S>(&mut s)?;
11378 s.end()
11379 }
11380}
11381
11382#[derive(Debug, Clone, PartialEq, Eq)]
11383#[non_exhaustive] pub struct ListMemberDevicesArg {
11385 pub team_member_id: String,
11387 pub include_web_sessions: bool,
11389 pub include_desktop_clients: bool,
11391 pub include_mobile_clients: bool,
11393}
11394
11395impl ListMemberDevicesArg {
11396 pub fn new(team_member_id: String) -> Self {
11397 ListMemberDevicesArg {
11398 team_member_id,
11399 include_web_sessions: true,
11400 include_desktop_clients: true,
11401 include_mobile_clients: true,
11402 }
11403 }
11404
11405 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
11406 self.include_web_sessions = value;
11407 self
11408 }
11409
11410 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
11411 self.include_desktop_clients = value;
11412 self
11413 }
11414
11415 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
11416 self.include_mobile_clients = value;
11417 self
11418 }
11419}
11420
11421const LIST_MEMBER_DEVICES_ARG_FIELDS: &[&str] = &["team_member_id",
11422 "include_web_sessions",
11423 "include_desktop_clients",
11424 "include_mobile_clients"];
11425impl ListMemberDevicesArg {
11426 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11427 map: V,
11428 ) -> Result<ListMemberDevicesArg, V::Error> {
11429 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11430 }
11431
11432 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11433 mut map: V,
11434 optional: bool,
11435 ) -> Result<Option<ListMemberDevicesArg>, V::Error> {
11436 let mut field_team_member_id = None;
11437 let mut field_include_web_sessions = None;
11438 let mut field_include_desktop_clients = None;
11439 let mut field_include_mobile_clients = None;
11440 let mut nothing = true;
11441 while let Some(key) = map.next_key::<&str>()? {
11442 nothing = false;
11443 match key {
11444 "team_member_id" => {
11445 if field_team_member_id.is_some() {
11446 return Err(::serde::de::Error::duplicate_field("team_member_id"));
11447 }
11448 field_team_member_id = Some(map.next_value()?);
11449 }
11450 "include_web_sessions" => {
11451 if field_include_web_sessions.is_some() {
11452 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
11453 }
11454 field_include_web_sessions = Some(map.next_value()?);
11455 }
11456 "include_desktop_clients" => {
11457 if field_include_desktop_clients.is_some() {
11458 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
11459 }
11460 field_include_desktop_clients = Some(map.next_value()?);
11461 }
11462 "include_mobile_clients" => {
11463 if field_include_mobile_clients.is_some() {
11464 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
11465 }
11466 field_include_mobile_clients = Some(map.next_value()?);
11467 }
11468 _ => {
11469 map.next_value::<::serde_json::Value>()?;
11471 }
11472 }
11473 }
11474 if optional && nothing {
11475 return Ok(None);
11476 }
11477 let result = ListMemberDevicesArg {
11478 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
11479 include_web_sessions: field_include_web_sessions.unwrap_or(true),
11480 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
11481 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
11482 };
11483 Ok(Some(result))
11484 }
11485
11486 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11487 &self,
11488 s: &mut S::SerializeStruct,
11489 ) -> Result<(), S::Error> {
11490 use serde::ser::SerializeStruct;
11491 s.serialize_field("team_member_id", &self.team_member_id)?;
11492 if !self.include_web_sessions {
11493 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
11494 }
11495 if !self.include_desktop_clients {
11496 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
11497 }
11498 if !self.include_mobile_clients {
11499 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
11500 }
11501 Ok(())
11502 }
11503}
11504
11505impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesArg {
11506 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11507 use serde::de::{MapAccess, Visitor};
11509 struct StructVisitor;
11510 impl<'de> Visitor<'de> for StructVisitor {
11511 type Value = ListMemberDevicesArg;
11512 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11513 f.write_str("a ListMemberDevicesArg struct")
11514 }
11515 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11516 ListMemberDevicesArg::internal_deserialize(map)
11517 }
11518 }
11519 deserializer.deserialize_struct("ListMemberDevicesArg", LIST_MEMBER_DEVICES_ARG_FIELDS, StructVisitor)
11520 }
11521}
11522
11523impl ::serde::ser::Serialize for ListMemberDevicesArg {
11524 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11525 use serde::ser::SerializeStruct;
11527 let mut s = serializer.serialize_struct("ListMemberDevicesArg", 4)?;
11528 self.internal_serialize::<S>(&mut s)?;
11529 s.end()
11530 }
11531}
11532
11533#[derive(Debug, Clone, PartialEq, Eq)]
11534#[non_exhaustive] pub enum ListMemberDevicesError {
11536 MemberNotFound,
11538 Other,
11541}
11542
11543impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesError {
11544 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11545 use serde::de::{self, MapAccess, Visitor};
11547 struct EnumVisitor;
11548 impl<'de> Visitor<'de> for EnumVisitor {
11549 type Value = ListMemberDevicesError;
11550 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11551 f.write_str("a ListMemberDevicesError structure")
11552 }
11553 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11554 let tag: &str = match map.next_key()? {
11555 Some(".tag") => map.next_value()?,
11556 _ => return Err(de::Error::missing_field(".tag"))
11557 };
11558 let value = match tag {
11559 "member_not_found" => ListMemberDevicesError::MemberNotFound,
11560 _ => ListMemberDevicesError::Other,
11561 };
11562 crate::eat_json_fields(&mut map)?;
11563 Ok(value)
11564 }
11565 }
11566 const VARIANTS: &[&str] = &["member_not_found",
11567 "other"];
11568 deserializer.deserialize_struct("ListMemberDevicesError", VARIANTS, EnumVisitor)
11569 }
11570}
11571
11572impl ::serde::ser::Serialize for ListMemberDevicesError {
11573 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11574 use serde::ser::SerializeStruct;
11576 match self {
11577 ListMemberDevicesError::MemberNotFound => {
11578 let mut s = serializer.serialize_struct("ListMemberDevicesError", 1)?;
11580 s.serialize_field(".tag", "member_not_found")?;
11581 s.end()
11582 }
11583 ListMemberDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11584 }
11585 }
11586}
11587
11588impl ::std::error::Error for ListMemberDevicesError {
11589}
11590
11591impl ::std::fmt::Display for ListMemberDevicesError {
11592 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11593 match self {
11594 ListMemberDevicesError::MemberNotFound => f.write_str("Member not found."),
11595 _ => write!(f, "{:?}", *self),
11596 }
11597 }
11598}
11599
11600#[derive(Debug, Clone, PartialEq, Eq, Default)]
11601#[non_exhaustive] pub struct ListMemberDevicesResult {
11603 pub active_web_sessions: Option<Vec<ActiveWebSession>>,
11605 pub desktop_client_sessions: Option<Vec<DesktopClientSession>>,
11607 pub mobile_client_sessions: Option<Vec<MobileClientSession>>,
11609}
11610
11611impl ListMemberDevicesResult {
11612 pub fn with_active_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
11613 self.active_web_sessions = Some(value);
11614 self
11615 }
11616
11617 pub fn with_desktop_client_sessions(mut self, value: Vec<DesktopClientSession>) -> Self {
11618 self.desktop_client_sessions = Some(value);
11619 self
11620 }
11621
11622 pub fn with_mobile_client_sessions(mut self, value: Vec<MobileClientSession>) -> Self {
11623 self.mobile_client_sessions = Some(value);
11624 self
11625 }
11626}
11627
11628const LIST_MEMBER_DEVICES_RESULT_FIELDS: &[&str] = &["active_web_sessions",
11629 "desktop_client_sessions",
11630 "mobile_client_sessions"];
11631impl ListMemberDevicesResult {
11632 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11634 mut map: V,
11635 ) -> Result<ListMemberDevicesResult, V::Error> {
11636 let mut field_active_web_sessions = None;
11637 let mut field_desktop_client_sessions = None;
11638 let mut field_mobile_client_sessions = None;
11639 while let Some(key) = map.next_key::<&str>()? {
11640 match key {
11641 "active_web_sessions" => {
11642 if field_active_web_sessions.is_some() {
11643 return Err(::serde::de::Error::duplicate_field("active_web_sessions"));
11644 }
11645 field_active_web_sessions = Some(map.next_value()?);
11646 }
11647 "desktop_client_sessions" => {
11648 if field_desktop_client_sessions.is_some() {
11649 return Err(::serde::de::Error::duplicate_field("desktop_client_sessions"));
11650 }
11651 field_desktop_client_sessions = Some(map.next_value()?);
11652 }
11653 "mobile_client_sessions" => {
11654 if field_mobile_client_sessions.is_some() {
11655 return Err(::serde::de::Error::duplicate_field("mobile_client_sessions"));
11656 }
11657 field_mobile_client_sessions = Some(map.next_value()?);
11658 }
11659 _ => {
11660 map.next_value::<::serde_json::Value>()?;
11662 }
11663 }
11664 }
11665 let result = ListMemberDevicesResult {
11666 active_web_sessions: field_active_web_sessions.and_then(Option::flatten),
11667 desktop_client_sessions: field_desktop_client_sessions.and_then(Option::flatten),
11668 mobile_client_sessions: field_mobile_client_sessions.and_then(Option::flatten),
11669 };
11670 Ok(result)
11671 }
11672
11673 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11674 &self,
11675 s: &mut S::SerializeStruct,
11676 ) -> Result<(), S::Error> {
11677 use serde::ser::SerializeStruct;
11678 if let Some(val) = &self.active_web_sessions {
11679 s.serialize_field("active_web_sessions", val)?;
11680 }
11681 if let Some(val) = &self.desktop_client_sessions {
11682 s.serialize_field("desktop_client_sessions", val)?;
11683 }
11684 if let Some(val) = &self.mobile_client_sessions {
11685 s.serialize_field("mobile_client_sessions", val)?;
11686 }
11687 Ok(())
11688 }
11689}
11690
11691impl<'de> ::serde::de::Deserialize<'de> for ListMemberDevicesResult {
11692 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11693 use serde::de::{MapAccess, Visitor};
11695 struct StructVisitor;
11696 impl<'de> Visitor<'de> for StructVisitor {
11697 type Value = ListMemberDevicesResult;
11698 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11699 f.write_str("a ListMemberDevicesResult struct")
11700 }
11701 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11702 ListMemberDevicesResult::internal_deserialize(map)
11703 }
11704 }
11705 deserializer.deserialize_struct("ListMemberDevicesResult", LIST_MEMBER_DEVICES_RESULT_FIELDS, StructVisitor)
11706 }
11707}
11708
11709impl ::serde::ser::Serialize for ListMemberDevicesResult {
11710 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11711 use serde::ser::SerializeStruct;
11713 let mut s = serializer.serialize_struct("ListMemberDevicesResult", 3)?;
11714 self.internal_serialize::<S>(&mut s)?;
11715 s.end()
11716 }
11717}
11718
11719#[derive(Debug, Clone, PartialEq, Eq, Default)]
11722#[non_exhaustive] pub struct ListMembersAppsArg {
11724 pub cursor: Option<String>,
11730}
11731
11732impl ListMembersAppsArg {
11733 pub fn with_cursor(mut self, value: String) -> Self {
11734 self.cursor = Some(value);
11735 self
11736 }
11737}
11738
11739const LIST_MEMBERS_APPS_ARG_FIELDS: &[&str] = &["cursor"];
11740impl ListMembersAppsArg {
11741 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11743 mut map: V,
11744 ) -> Result<ListMembersAppsArg, V::Error> {
11745 let mut field_cursor = None;
11746 while let Some(key) = map.next_key::<&str>()? {
11747 match key {
11748 "cursor" => {
11749 if field_cursor.is_some() {
11750 return Err(::serde::de::Error::duplicate_field("cursor"));
11751 }
11752 field_cursor = Some(map.next_value()?);
11753 }
11754 _ => {
11755 map.next_value::<::serde_json::Value>()?;
11757 }
11758 }
11759 }
11760 let result = ListMembersAppsArg {
11761 cursor: field_cursor.and_then(Option::flatten),
11762 };
11763 Ok(result)
11764 }
11765
11766 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11767 &self,
11768 s: &mut S::SerializeStruct,
11769 ) -> Result<(), S::Error> {
11770 use serde::ser::SerializeStruct;
11771 if let Some(val) = &self.cursor {
11772 s.serialize_field("cursor", val)?;
11773 }
11774 Ok(())
11775 }
11776}
11777
11778impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsArg {
11779 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11780 use serde::de::{MapAccess, Visitor};
11782 struct StructVisitor;
11783 impl<'de> Visitor<'de> for StructVisitor {
11784 type Value = ListMembersAppsArg;
11785 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11786 f.write_str("a ListMembersAppsArg struct")
11787 }
11788 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11789 ListMembersAppsArg::internal_deserialize(map)
11790 }
11791 }
11792 deserializer.deserialize_struct("ListMembersAppsArg", LIST_MEMBERS_APPS_ARG_FIELDS, StructVisitor)
11793 }
11794}
11795
11796impl ::serde::ser::Serialize for ListMembersAppsArg {
11797 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11798 use serde::ser::SerializeStruct;
11800 let mut s = serializer.serialize_struct("ListMembersAppsArg", 1)?;
11801 self.internal_serialize::<S>(&mut s)?;
11802 s.end()
11803 }
11804}
11805
11806#[derive(Debug, Clone, PartialEq, Eq)]
11809#[non_exhaustive] pub enum ListMembersAppsError {
11811 Reset,
11815 Other,
11818}
11819
11820impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsError {
11821 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11822 use serde::de::{self, MapAccess, Visitor};
11824 struct EnumVisitor;
11825 impl<'de> Visitor<'de> for EnumVisitor {
11826 type Value = ListMembersAppsError;
11827 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11828 f.write_str("a ListMembersAppsError structure")
11829 }
11830 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
11831 let tag: &str = match map.next_key()? {
11832 Some(".tag") => map.next_value()?,
11833 _ => return Err(de::Error::missing_field(".tag"))
11834 };
11835 let value = match tag {
11836 "reset" => ListMembersAppsError::Reset,
11837 _ => ListMembersAppsError::Other,
11838 };
11839 crate::eat_json_fields(&mut map)?;
11840 Ok(value)
11841 }
11842 }
11843 const VARIANTS: &[&str] = &["reset",
11844 "other"];
11845 deserializer.deserialize_struct("ListMembersAppsError", VARIANTS, EnumVisitor)
11846 }
11847}
11848
11849impl ::serde::ser::Serialize for ListMembersAppsError {
11850 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11851 use serde::ser::SerializeStruct;
11853 match self {
11854 ListMembersAppsError::Reset => {
11855 let mut s = serializer.serialize_struct("ListMembersAppsError", 1)?;
11857 s.serialize_field(".tag", "reset")?;
11858 s.end()
11859 }
11860 ListMembersAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
11861 }
11862 }
11863}
11864
11865impl ::std::error::Error for ListMembersAppsError {
11866}
11867
11868impl ::std::fmt::Display for ListMembersAppsError {
11869 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11870 write!(f, "{:?}", *self)
11871 }
11872}
11873
11874#[derive(Debug, Clone, PartialEq, Eq)]
11877#[non_exhaustive] pub struct ListMembersAppsResult {
11879 pub apps: Vec<MemberLinkedApps>,
11881 pub has_more: bool,
11885 pub cursor: Option<String>,
11889}
11890
11891impl ListMembersAppsResult {
11892 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
11893 ListMembersAppsResult {
11894 apps,
11895 has_more,
11896 cursor: None,
11897 }
11898 }
11899
11900 pub fn with_cursor(mut self, value: String) -> Self {
11901 self.cursor = Some(value);
11902 self
11903 }
11904}
11905
11906const LIST_MEMBERS_APPS_RESULT_FIELDS: &[&str] = &["apps",
11907 "has_more",
11908 "cursor"];
11909impl ListMembersAppsResult {
11910 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
11911 map: V,
11912 ) -> Result<ListMembersAppsResult, V::Error> {
11913 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
11914 }
11915
11916 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
11917 mut map: V,
11918 optional: bool,
11919 ) -> Result<Option<ListMembersAppsResult>, V::Error> {
11920 let mut field_apps = None;
11921 let mut field_has_more = None;
11922 let mut field_cursor = None;
11923 let mut nothing = true;
11924 while let Some(key) = map.next_key::<&str>()? {
11925 nothing = false;
11926 match key {
11927 "apps" => {
11928 if field_apps.is_some() {
11929 return Err(::serde::de::Error::duplicate_field("apps"));
11930 }
11931 field_apps = Some(map.next_value()?);
11932 }
11933 "has_more" => {
11934 if field_has_more.is_some() {
11935 return Err(::serde::de::Error::duplicate_field("has_more"));
11936 }
11937 field_has_more = Some(map.next_value()?);
11938 }
11939 "cursor" => {
11940 if field_cursor.is_some() {
11941 return Err(::serde::de::Error::duplicate_field("cursor"));
11942 }
11943 field_cursor = Some(map.next_value()?);
11944 }
11945 _ => {
11946 map.next_value::<::serde_json::Value>()?;
11948 }
11949 }
11950 }
11951 if optional && nothing {
11952 return Ok(None);
11953 }
11954 let result = ListMembersAppsResult {
11955 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
11956 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
11957 cursor: field_cursor.and_then(Option::flatten),
11958 };
11959 Ok(Some(result))
11960 }
11961
11962 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
11963 &self,
11964 s: &mut S::SerializeStruct,
11965 ) -> Result<(), S::Error> {
11966 use serde::ser::SerializeStruct;
11967 s.serialize_field("apps", &self.apps)?;
11968 s.serialize_field("has_more", &self.has_more)?;
11969 if let Some(val) = &self.cursor {
11970 s.serialize_field("cursor", val)?;
11971 }
11972 Ok(())
11973 }
11974}
11975
11976impl<'de> ::serde::de::Deserialize<'de> for ListMembersAppsResult {
11977 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11978 use serde::de::{MapAccess, Visitor};
11980 struct StructVisitor;
11981 impl<'de> Visitor<'de> for StructVisitor {
11982 type Value = ListMembersAppsResult;
11983 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11984 f.write_str("a ListMembersAppsResult struct")
11985 }
11986 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
11987 ListMembersAppsResult::internal_deserialize(map)
11988 }
11989 }
11990 deserializer.deserialize_struct("ListMembersAppsResult", LIST_MEMBERS_APPS_RESULT_FIELDS, StructVisitor)
11991 }
11992}
11993
11994impl ::serde::ser::Serialize for ListMembersAppsResult {
11995 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11996 use serde::ser::SerializeStruct;
11998 let mut s = serializer.serialize_struct("ListMembersAppsResult", 3)?;
11999 self.internal_serialize::<S>(&mut s)?;
12000 s.end()
12001 }
12002}
12003
12004#[derive(Debug, Clone, PartialEq, Eq)]
12005#[non_exhaustive] pub struct ListMembersDevicesArg {
12007 pub cursor: Option<String>,
12013 pub include_web_sessions: bool,
12015 pub include_desktop_clients: bool,
12017 pub include_mobile_clients: bool,
12019}
12020
12021impl Default for ListMembersDevicesArg {
12022 fn default() -> Self {
12023 ListMembersDevicesArg {
12024 cursor: None,
12025 include_web_sessions: true,
12026 include_desktop_clients: true,
12027 include_mobile_clients: true,
12028 }
12029 }
12030}
12031
12032impl ListMembersDevicesArg {
12033 pub fn with_cursor(mut self, value: String) -> Self {
12034 self.cursor = Some(value);
12035 self
12036 }
12037
12038 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12039 self.include_web_sessions = value;
12040 self
12041 }
12042
12043 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12044 self.include_desktop_clients = value;
12045 self
12046 }
12047
12048 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12049 self.include_mobile_clients = value;
12050 self
12051 }
12052}
12053
12054const LIST_MEMBERS_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
12055 "include_web_sessions",
12056 "include_desktop_clients",
12057 "include_mobile_clients"];
12058impl ListMembersDevicesArg {
12059 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12061 mut map: V,
12062 ) -> Result<ListMembersDevicesArg, V::Error> {
12063 let mut field_cursor = None;
12064 let mut field_include_web_sessions = None;
12065 let mut field_include_desktop_clients = None;
12066 let mut field_include_mobile_clients = None;
12067 while let Some(key) = map.next_key::<&str>()? {
12068 match key {
12069 "cursor" => {
12070 if field_cursor.is_some() {
12071 return Err(::serde::de::Error::duplicate_field("cursor"));
12072 }
12073 field_cursor = Some(map.next_value()?);
12074 }
12075 "include_web_sessions" => {
12076 if field_include_web_sessions.is_some() {
12077 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12078 }
12079 field_include_web_sessions = Some(map.next_value()?);
12080 }
12081 "include_desktop_clients" => {
12082 if field_include_desktop_clients.is_some() {
12083 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12084 }
12085 field_include_desktop_clients = Some(map.next_value()?);
12086 }
12087 "include_mobile_clients" => {
12088 if field_include_mobile_clients.is_some() {
12089 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12090 }
12091 field_include_mobile_clients = Some(map.next_value()?);
12092 }
12093 _ => {
12094 map.next_value::<::serde_json::Value>()?;
12096 }
12097 }
12098 }
12099 let result = ListMembersDevicesArg {
12100 cursor: field_cursor.and_then(Option::flatten),
12101 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12102 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12103 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12104 };
12105 Ok(result)
12106 }
12107
12108 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12109 &self,
12110 s: &mut S::SerializeStruct,
12111 ) -> Result<(), S::Error> {
12112 use serde::ser::SerializeStruct;
12113 if let Some(val) = &self.cursor {
12114 s.serialize_field("cursor", val)?;
12115 }
12116 if !self.include_web_sessions {
12117 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12118 }
12119 if !self.include_desktop_clients {
12120 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12121 }
12122 if !self.include_mobile_clients {
12123 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12124 }
12125 Ok(())
12126 }
12127}
12128
12129impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesArg {
12130 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12131 use serde::de::{MapAccess, Visitor};
12133 struct StructVisitor;
12134 impl<'de> Visitor<'de> for StructVisitor {
12135 type Value = ListMembersDevicesArg;
12136 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12137 f.write_str("a ListMembersDevicesArg struct")
12138 }
12139 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12140 ListMembersDevicesArg::internal_deserialize(map)
12141 }
12142 }
12143 deserializer.deserialize_struct("ListMembersDevicesArg", LIST_MEMBERS_DEVICES_ARG_FIELDS, StructVisitor)
12144 }
12145}
12146
12147impl ::serde::ser::Serialize for ListMembersDevicesArg {
12148 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12149 use serde::ser::SerializeStruct;
12151 let mut s = serializer.serialize_struct("ListMembersDevicesArg", 4)?;
12152 self.internal_serialize::<S>(&mut s)?;
12153 s.end()
12154 }
12155}
12156
12157#[derive(Debug, Clone, PartialEq, Eq)]
12158#[non_exhaustive] pub enum ListMembersDevicesError {
12160 Reset,
12164 Other,
12167}
12168
12169impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesError {
12170 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12171 use serde::de::{self, MapAccess, Visitor};
12173 struct EnumVisitor;
12174 impl<'de> Visitor<'de> for EnumVisitor {
12175 type Value = ListMembersDevicesError;
12176 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12177 f.write_str("a ListMembersDevicesError structure")
12178 }
12179 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12180 let tag: &str = match map.next_key()? {
12181 Some(".tag") => map.next_value()?,
12182 _ => return Err(de::Error::missing_field(".tag"))
12183 };
12184 let value = match tag {
12185 "reset" => ListMembersDevicesError::Reset,
12186 _ => ListMembersDevicesError::Other,
12187 };
12188 crate::eat_json_fields(&mut map)?;
12189 Ok(value)
12190 }
12191 }
12192 const VARIANTS: &[&str] = &["reset",
12193 "other"];
12194 deserializer.deserialize_struct("ListMembersDevicesError", VARIANTS, EnumVisitor)
12195 }
12196}
12197
12198impl ::serde::ser::Serialize for ListMembersDevicesError {
12199 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12200 use serde::ser::SerializeStruct;
12202 match self {
12203 ListMembersDevicesError::Reset => {
12204 let mut s = serializer.serialize_struct("ListMembersDevicesError", 1)?;
12206 s.serialize_field(".tag", "reset")?;
12207 s.end()
12208 }
12209 ListMembersDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12210 }
12211 }
12212}
12213
12214impl ::std::error::Error for ListMembersDevicesError {
12215}
12216
12217impl ::std::fmt::Display for ListMembersDevicesError {
12218 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12219 write!(f, "{:?}", *self)
12220 }
12221}
12222
12223#[derive(Debug, Clone, PartialEq, Eq)]
12224#[non_exhaustive] pub struct ListMembersDevicesResult {
12226 pub devices: Vec<MemberDevices>,
12228 pub has_more: bool,
12232 pub cursor: Option<String>,
12236}
12237
12238impl ListMembersDevicesResult {
12239 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
12240 ListMembersDevicesResult {
12241 devices,
12242 has_more,
12243 cursor: None,
12244 }
12245 }
12246
12247 pub fn with_cursor(mut self, value: String) -> Self {
12248 self.cursor = Some(value);
12249 self
12250 }
12251}
12252
12253const LIST_MEMBERS_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
12254 "has_more",
12255 "cursor"];
12256impl ListMembersDevicesResult {
12257 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12258 map: V,
12259 ) -> Result<ListMembersDevicesResult, V::Error> {
12260 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12261 }
12262
12263 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12264 mut map: V,
12265 optional: bool,
12266 ) -> Result<Option<ListMembersDevicesResult>, V::Error> {
12267 let mut field_devices = None;
12268 let mut field_has_more = None;
12269 let mut field_cursor = None;
12270 let mut nothing = true;
12271 while let Some(key) = map.next_key::<&str>()? {
12272 nothing = false;
12273 match key {
12274 "devices" => {
12275 if field_devices.is_some() {
12276 return Err(::serde::de::Error::duplicate_field("devices"));
12277 }
12278 field_devices = Some(map.next_value()?);
12279 }
12280 "has_more" => {
12281 if field_has_more.is_some() {
12282 return Err(::serde::de::Error::duplicate_field("has_more"));
12283 }
12284 field_has_more = Some(map.next_value()?);
12285 }
12286 "cursor" => {
12287 if field_cursor.is_some() {
12288 return Err(::serde::de::Error::duplicate_field("cursor"));
12289 }
12290 field_cursor = Some(map.next_value()?);
12291 }
12292 _ => {
12293 map.next_value::<::serde_json::Value>()?;
12295 }
12296 }
12297 }
12298 if optional && nothing {
12299 return Ok(None);
12300 }
12301 let result = ListMembersDevicesResult {
12302 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
12303 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12304 cursor: field_cursor.and_then(Option::flatten),
12305 };
12306 Ok(Some(result))
12307 }
12308
12309 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12310 &self,
12311 s: &mut S::SerializeStruct,
12312 ) -> Result<(), S::Error> {
12313 use serde::ser::SerializeStruct;
12314 s.serialize_field("devices", &self.devices)?;
12315 s.serialize_field("has_more", &self.has_more)?;
12316 if let Some(val) = &self.cursor {
12317 s.serialize_field("cursor", val)?;
12318 }
12319 Ok(())
12320 }
12321}
12322
12323impl<'de> ::serde::de::Deserialize<'de> for ListMembersDevicesResult {
12324 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12325 use serde::de::{MapAccess, Visitor};
12327 struct StructVisitor;
12328 impl<'de> Visitor<'de> for StructVisitor {
12329 type Value = ListMembersDevicesResult;
12330 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12331 f.write_str("a ListMembersDevicesResult struct")
12332 }
12333 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12334 ListMembersDevicesResult::internal_deserialize(map)
12335 }
12336 }
12337 deserializer.deserialize_struct("ListMembersDevicesResult", LIST_MEMBERS_DEVICES_RESULT_FIELDS, StructVisitor)
12338 }
12339}
12340
12341impl ::serde::ser::Serialize for ListMembersDevicesResult {
12342 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12343 use serde::ser::SerializeStruct;
12345 let mut s = serializer.serialize_struct("ListMembersDevicesResult", 3)?;
12346 self.internal_serialize::<S>(&mut s)?;
12347 s.end()
12348 }
12349}
12350
12351#[derive(Debug, Clone, PartialEq, Eq, Default)]
12354#[non_exhaustive] pub struct ListTeamAppsArg {
12356 pub cursor: Option<String>,
12362}
12363
12364impl ListTeamAppsArg {
12365 pub fn with_cursor(mut self, value: String) -> Self {
12366 self.cursor = Some(value);
12367 self
12368 }
12369}
12370
12371const LIST_TEAM_APPS_ARG_FIELDS: &[&str] = &["cursor"];
12372impl ListTeamAppsArg {
12373 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12375 mut map: V,
12376 ) -> Result<ListTeamAppsArg, V::Error> {
12377 let mut field_cursor = None;
12378 while let Some(key) = map.next_key::<&str>()? {
12379 match key {
12380 "cursor" => {
12381 if field_cursor.is_some() {
12382 return Err(::serde::de::Error::duplicate_field("cursor"));
12383 }
12384 field_cursor = Some(map.next_value()?);
12385 }
12386 _ => {
12387 map.next_value::<::serde_json::Value>()?;
12389 }
12390 }
12391 }
12392 let result = ListTeamAppsArg {
12393 cursor: field_cursor.and_then(Option::flatten),
12394 };
12395 Ok(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 if let Some(val) = &self.cursor {
12404 s.serialize_field("cursor", val)?;
12405 }
12406 Ok(())
12407 }
12408}
12409
12410impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsArg {
12411 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12412 use serde::de::{MapAccess, Visitor};
12414 struct StructVisitor;
12415 impl<'de> Visitor<'de> for StructVisitor {
12416 type Value = ListTeamAppsArg;
12417 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12418 f.write_str("a ListTeamAppsArg struct")
12419 }
12420 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12421 ListTeamAppsArg::internal_deserialize(map)
12422 }
12423 }
12424 deserializer.deserialize_struct("ListTeamAppsArg", LIST_TEAM_APPS_ARG_FIELDS, StructVisitor)
12425 }
12426}
12427
12428impl ::serde::ser::Serialize for ListTeamAppsArg {
12429 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12430 use serde::ser::SerializeStruct;
12432 let mut s = serializer.serialize_struct("ListTeamAppsArg", 1)?;
12433 self.internal_serialize::<S>(&mut s)?;
12434 s.end()
12435 }
12436}
12437
12438#[derive(Debug, Clone, PartialEq, Eq)]
12441#[non_exhaustive] pub enum ListTeamAppsError {
12443 Reset,
12447 Other,
12450}
12451
12452impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsError {
12453 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12454 use serde::de::{self, MapAccess, Visitor};
12456 struct EnumVisitor;
12457 impl<'de> Visitor<'de> for EnumVisitor {
12458 type Value = ListTeamAppsError;
12459 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12460 f.write_str("a ListTeamAppsError structure")
12461 }
12462 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12463 let tag: &str = match map.next_key()? {
12464 Some(".tag") => map.next_value()?,
12465 _ => return Err(de::Error::missing_field(".tag"))
12466 };
12467 let value = match tag {
12468 "reset" => ListTeamAppsError::Reset,
12469 _ => ListTeamAppsError::Other,
12470 };
12471 crate::eat_json_fields(&mut map)?;
12472 Ok(value)
12473 }
12474 }
12475 const VARIANTS: &[&str] = &["reset",
12476 "other"];
12477 deserializer.deserialize_struct("ListTeamAppsError", VARIANTS, EnumVisitor)
12478 }
12479}
12480
12481impl ::serde::ser::Serialize for ListTeamAppsError {
12482 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12483 use serde::ser::SerializeStruct;
12485 match self {
12486 ListTeamAppsError::Reset => {
12487 let mut s = serializer.serialize_struct("ListTeamAppsError", 1)?;
12489 s.serialize_field(".tag", "reset")?;
12490 s.end()
12491 }
12492 ListTeamAppsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12493 }
12494 }
12495}
12496
12497impl ::std::error::Error for ListTeamAppsError {
12498}
12499
12500impl ::std::fmt::Display for ListTeamAppsError {
12501 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12502 write!(f, "{:?}", *self)
12503 }
12504}
12505
12506#[derive(Debug, Clone, PartialEq, Eq)]
12509#[non_exhaustive] pub struct ListTeamAppsResult {
12511 pub apps: Vec<MemberLinkedApps>,
12513 pub has_more: bool,
12517 pub cursor: Option<String>,
12521}
12522
12523impl ListTeamAppsResult {
12524 pub fn new(apps: Vec<MemberLinkedApps>, has_more: bool) -> Self {
12525 ListTeamAppsResult {
12526 apps,
12527 has_more,
12528 cursor: None,
12529 }
12530 }
12531
12532 pub fn with_cursor(mut self, value: String) -> Self {
12533 self.cursor = Some(value);
12534 self
12535 }
12536}
12537
12538const LIST_TEAM_APPS_RESULT_FIELDS: &[&str] = &["apps",
12539 "has_more",
12540 "cursor"];
12541impl ListTeamAppsResult {
12542 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12543 map: V,
12544 ) -> Result<ListTeamAppsResult, V::Error> {
12545 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12546 }
12547
12548 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12549 mut map: V,
12550 optional: bool,
12551 ) -> Result<Option<ListTeamAppsResult>, V::Error> {
12552 let mut field_apps = None;
12553 let mut field_has_more = None;
12554 let mut field_cursor = None;
12555 let mut nothing = true;
12556 while let Some(key) = map.next_key::<&str>()? {
12557 nothing = false;
12558 match key {
12559 "apps" => {
12560 if field_apps.is_some() {
12561 return Err(::serde::de::Error::duplicate_field("apps"));
12562 }
12563 field_apps = Some(map.next_value()?);
12564 }
12565 "has_more" => {
12566 if field_has_more.is_some() {
12567 return Err(::serde::de::Error::duplicate_field("has_more"));
12568 }
12569 field_has_more = Some(map.next_value()?);
12570 }
12571 "cursor" => {
12572 if field_cursor.is_some() {
12573 return Err(::serde::de::Error::duplicate_field("cursor"));
12574 }
12575 field_cursor = Some(map.next_value()?);
12576 }
12577 _ => {
12578 map.next_value::<::serde_json::Value>()?;
12580 }
12581 }
12582 }
12583 if optional && nothing {
12584 return Ok(None);
12585 }
12586 let result = ListTeamAppsResult {
12587 apps: field_apps.ok_or_else(|| ::serde::de::Error::missing_field("apps"))?,
12588 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12589 cursor: field_cursor.and_then(Option::flatten),
12590 };
12591 Ok(Some(result))
12592 }
12593
12594 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12595 &self,
12596 s: &mut S::SerializeStruct,
12597 ) -> Result<(), S::Error> {
12598 use serde::ser::SerializeStruct;
12599 s.serialize_field("apps", &self.apps)?;
12600 s.serialize_field("has_more", &self.has_more)?;
12601 if let Some(val) = &self.cursor {
12602 s.serialize_field("cursor", val)?;
12603 }
12604 Ok(())
12605 }
12606}
12607
12608impl<'de> ::serde::de::Deserialize<'de> for ListTeamAppsResult {
12609 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12610 use serde::de::{MapAccess, Visitor};
12612 struct StructVisitor;
12613 impl<'de> Visitor<'de> for StructVisitor {
12614 type Value = ListTeamAppsResult;
12615 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12616 f.write_str("a ListTeamAppsResult struct")
12617 }
12618 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12619 ListTeamAppsResult::internal_deserialize(map)
12620 }
12621 }
12622 deserializer.deserialize_struct("ListTeamAppsResult", LIST_TEAM_APPS_RESULT_FIELDS, StructVisitor)
12623 }
12624}
12625
12626impl ::serde::ser::Serialize for ListTeamAppsResult {
12627 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12628 use serde::ser::SerializeStruct;
12630 let mut s = serializer.serialize_struct("ListTeamAppsResult", 3)?;
12631 self.internal_serialize::<S>(&mut s)?;
12632 s.end()
12633 }
12634}
12635
12636#[derive(Debug, Clone, PartialEq, Eq)]
12637#[non_exhaustive] pub struct ListTeamDevicesArg {
12639 pub cursor: Option<String>,
12644 pub include_web_sessions: bool,
12646 pub include_desktop_clients: bool,
12648 pub include_mobile_clients: bool,
12650}
12651
12652impl Default for ListTeamDevicesArg {
12653 fn default() -> Self {
12654 ListTeamDevicesArg {
12655 cursor: None,
12656 include_web_sessions: true,
12657 include_desktop_clients: true,
12658 include_mobile_clients: true,
12659 }
12660 }
12661}
12662
12663impl ListTeamDevicesArg {
12664 pub fn with_cursor(mut self, value: String) -> Self {
12665 self.cursor = Some(value);
12666 self
12667 }
12668
12669 pub fn with_include_web_sessions(mut self, value: bool) -> Self {
12670 self.include_web_sessions = value;
12671 self
12672 }
12673
12674 pub fn with_include_desktop_clients(mut self, value: bool) -> Self {
12675 self.include_desktop_clients = value;
12676 self
12677 }
12678
12679 pub fn with_include_mobile_clients(mut self, value: bool) -> Self {
12680 self.include_mobile_clients = value;
12681 self
12682 }
12683}
12684
12685const LIST_TEAM_DEVICES_ARG_FIELDS: &[&str] = &["cursor",
12686 "include_web_sessions",
12687 "include_desktop_clients",
12688 "include_mobile_clients"];
12689impl ListTeamDevicesArg {
12690 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12692 mut map: V,
12693 ) -> Result<ListTeamDevicesArg, V::Error> {
12694 let mut field_cursor = None;
12695 let mut field_include_web_sessions = None;
12696 let mut field_include_desktop_clients = None;
12697 let mut field_include_mobile_clients = None;
12698 while let Some(key) = map.next_key::<&str>()? {
12699 match key {
12700 "cursor" => {
12701 if field_cursor.is_some() {
12702 return Err(::serde::de::Error::duplicate_field("cursor"));
12703 }
12704 field_cursor = Some(map.next_value()?);
12705 }
12706 "include_web_sessions" => {
12707 if field_include_web_sessions.is_some() {
12708 return Err(::serde::de::Error::duplicate_field("include_web_sessions"));
12709 }
12710 field_include_web_sessions = Some(map.next_value()?);
12711 }
12712 "include_desktop_clients" => {
12713 if field_include_desktop_clients.is_some() {
12714 return Err(::serde::de::Error::duplicate_field("include_desktop_clients"));
12715 }
12716 field_include_desktop_clients = Some(map.next_value()?);
12717 }
12718 "include_mobile_clients" => {
12719 if field_include_mobile_clients.is_some() {
12720 return Err(::serde::de::Error::duplicate_field("include_mobile_clients"));
12721 }
12722 field_include_mobile_clients = Some(map.next_value()?);
12723 }
12724 _ => {
12725 map.next_value::<::serde_json::Value>()?;
12727 }
12728 }
12729 }
12730 let result = ListTeamDevicesArg {
12731 cursor: field_cursor.and_then(Option::flatten),
12732 include_web_sessions: field_include_web_sessions.unwrap_or(true),
12733 include_desktop_clients: field_include_desktop_clients.unwrap_or(true),
12734 include_mobile_clients: field_include_mobile_clients.unwrap_or(true),
12735 };
12736 Ok(result)
12737 }
12738
12739 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12740 &self,
12741 s: &mut S::SerializeStruct,
12742 ) -> Result<(), S::Error> {
12743 use serde::ser::SerializeStruct;
12744 if let Some(val) = &self.cursor {
12745 s.serialize_field("cursor", val)?;
12746 }
12747 if !self.include_web_sessions {
12748 s.serialize_field("include_web_sessions", &self.include_web_sessions)?;
12749 }
12750 if !self.include_desktop_clients {
12751 s.serialize_field("include_desktop_clients", &self.include_desktop_clients)?;
12752 }
12753 if !self.include_mobile_clients {
12754 s.serialize_field("include_mobile_clients", &self.include_mobile_clients)?;
12755 }
12756 Ok(())
12757 }
12758}
12759
12760impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesArg {
12761 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12762 use serde::de::{MapAccess, Visitor};
12764 struct StructVisitor;
12765 impl<'de> Visitor<'de> for StructVisitor {
12766 type Value = ListTeamDevicesArg;
12767 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12768 f.write_str("a ListTeamDevicesArg struct")
12769 }
12770 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12771 ListTeamDevicesArg::internal_deserialize(map)
12772 }
12773 }
12774 deserializer.deserialize_struct("ListTeamDevicesArg", LIST_TEAM_DEVICES_ARG_FIELDS, StructVisitor)
12775 }
12776}
12777
12778impl ::serde::ser::Serialize for ListTeamDevicesArg {
12779 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12780 use serde::ser::SerializeStruct;
12782 let mut s = serializer.serialize_struct("ListTeamDevicesArg", 4)?;
12783 self.internal_serialize::<S>(&mut s)?;
12784 s.end()
12785 }
12786}
12787
12788#[derive(Debug, Clone, PartialEq, Eq)]
12789#[non_exhaustive] pub enum ListTeamDevicesError {
12791 Reset,
12795 Other,
12798}
12799
12800impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesError {
12801 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12802 use serde::de::{self, MapAccess, Visitor};
12804 struct EnumVisitor;
12805 impl<'de> Visitor<'de> for EnumVisitor {
12806 type Value = ListTeamDevicesError;
12807 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12808 f.write_str("a ListTeamDevicesError structure")
12809 }
12810 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
12811 let tag: &str = match map.next_key()? {
12812 Some(".tag") => map.next_value()?,
12813 _ => return Err(de::Error::missing_field(".tag"))
12814 };
12815 let value = match tag {
12816 "reset" => ListTeamDevicesError::Reset,
12817 _ => ListTeamDevicesError::Other,
12818 };
12819 crate::eat_json_fields(&mut map)?;
12820 Ok(value)
12821 }
12822 }
12823 const VARIANTS: &[&str] = &["reset",
12824 "other"];
12825 deserializer.deserialize_struct("ListTeamDevicesError", VARIANTS, EnumVisitor)
12826 }
12827}
12828
12829impl ::serde::ser::Serialize for ListTeamDevicesError {
12830 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12831 use serde::ser::SerializeStruct;
12833 match self {
12834 ListTeamDevicesError::Reset => {
12835 let mut s = serializer.serialize_struct("ListTeamDevicesError", 1)?;
12837 s.serialize_field(".tag", "reset")?;
12838 s.end()
12839 }
12840 ListTeamDevicesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
12841 }
12842 }
12843}
12844
12845impl ::std::error::Error for ListTeamDevicesError {
12846}
12847
12848impl ::std::fmt::Display for ListTeamDevicesError {
12849 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12850 write!(f, "{:?}", *self)
12851 }
12852}
12853
12854#[derive(Debug, Clone, PartialEq, Eq)]
12855#[non_exhaustive] pub struct ListTeamDevicesResult {
12857 pub devices: Vec<MemberDevices>,
12859 pub has_more: bool,
12863 pub cursor: Option<String>,
12866}
12867
12868impl ListTeamDevicesResult {
12869 pub fn new(devices: Vec<MemberDevices>, has_more: bool) -> Self {
12870 ListTeamDevicesResult {
12871 devices,
12872 has_more,
12873 cursor: None,
12874 }
12875 }
12876
12877 pub fn with_cursor(mut self, value: String) -> Self {
12878 self.cursor = Some(value);
12879 self
12880 }
12881}
12882
12883const LIST_TEAM_DEVICES_RESULT_FIELDS: &[&str] = &["devices",
12884 "has_more",
12885 "cursor"];
12886impl ListTeamDevicesResult {
12887 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
12888 map: V,
12889 ) -> Result<ListTeamDevicesResult, V::Error> {
12890 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
12891 }
12892
12893 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
12894 mut map: V,
12895 optional: bool,
12896 ) -> Result<Option<ListTeamDevicesResult>, V::Error> {
12897 let mut field_devices = None;
12898 let mut field_has_more = None;
12899 let mut field_cursor = None;
12900 let mut nothing = true;
12901 while let Some(key) = map.next_key::<&str>()? {
12902 nothing = false;
12903 match key {
12904 "devices" => {
12905 if field_devices.is_some() {
12906 return Err(::serde::de::Error::duplicate_field("devices"));
12907 }
12908 field_devices = Some(map.next_value()?);
12909 }
12910 "has_more" => {
12911 if field_has_more.is_some() {
12912 return Err(::serde::de::Error::duplicate_field("has_more"));
12913 }
12914 field_has_more = Some(map.next_value()?);
12915 }
12916 "cursor" => {
12917 if field_cursor.is_some() {
12918 return Err(::serde::de::Error::duplicate_field("cursor"));
12919 }
12920 field_cursor = Some(map.next_value()?);
12921 }
12922 _ => {
12923 map.next_value::<::serde_json::Value>()?;
12925 }
12926 }
12927 }
12928 if optional && nothing {
12929 return Ok(None);
12930 }
12931 let result = ListTeamDevicesResult {
12932 devices: field_devices.ok_or_else(|| ::serde::de::Error::missing_field("devices"))?,
12933 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
12934 cursor: field_cursor.and_then(Option::flatten),
12935 };
12936 Ok(Some(result))
12937 }
12938
12939 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
12940 &self,
12941 s: &mut S::SerializeStruct,
12942 ) -> Result<(), S::Error> {
12943 use serde::ser::SerializeStruct;
12944 s.serialize_field("devices", &self.devices)?;
12945 s.serialize_field("has_more", &self.has_more)?;
12946 if let Some(val) = &self.cursor {
12947 s.serialize_field("cursor", val)?;
12948 }
12949 Ok(())
12950 }
12951}
12952
12953impl<'de> ::serde::de::Deserialize<'de> for ListTeamDevicesResult {
12954 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12955 use serde::de::{MapAccess, Visitor};
12957 struct StructVisitor;
12958 impl<'de> Visitor<'de> for StructVisitor {
12959 type Value = ListTeamDevicesResult;
12960 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
12961 f.write_str("a ListTeamDevicesResult struct")
12962 }
12963 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
12964 ListTeamDevicesResult::internal_deserialize(map)
12965 }
12966 }
12967 deserializer.deserialize_struct("ListTeamDevicesResult", LIST_TEAM_DEVICES_RESULT_FIELDS, StructVisitor)
12968 }
12969}
12970
12971impl ::serde::ser::Serialize for ListTeamDevicesResult {
12972 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12973 use serde::ser::SerializeStruct;
12975 let mut s = serializer.serialize_struct("ListTeamDevicesResult", 3)?;
12976 self.internal_serialize::<S>(&mut s)?;
12977 s.end()
12978 }
12979}
12980
12981#[derive(Debug, Clone, PartialEq, Eq)]
12983#[non_exhaustive] pub struct MemberAccess {
12985 pub user: UserSelectorArg,
12987 pub access_type: GroupAccessType,
12989}
12990
12991impl MemberAccess {
12992 pub fn new(user: UserSelectorArg, access_type: GroupAccessType) -> Self {
12993 MemberAccess {
12994 user,
12995 access_type,
12996 }
12997 }
12998}
12999
13000const MEMBER_ACCESS_FIELDS: &[&str] = &["user",
13001 "access_type"];
13002impl MemberAccess {
13003 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13004 map: V,
13005 ) -> Result<MemberAccess, V::Error> {
13006 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13007 }
13008
13009 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13010 mut map: V,
13011 optional: bool,
13012 ) -> Result<Option<MemberAccess>, V::Error> {
13013 let mut field_user = None;
13014 let mut field_access_type = None;
13015 let mut nothing = true;
13016 while let Some(key) = map.next_key::<&str>()? {
13017 nothing = false;
13018 match key {
13019 "user" => {
13020 if field_user.is_some() {
13021 return Err(::serde::de::Error::duplicate_field("user"));
13022 }
13023 field_user = Some(map.next_value()?);
13024 }
13025 "access_type" => {
13026 if field_access_type.is_some() {
13027 return Err(::serde::de::Error::duplicate_field("access_type"));
13028 }
13029 field_access_type = Some(map.next_value()?);
13030 }
13031 _ => {
13032 map.next_value::<::serde_json::Value>()?;
13034 }
13035 }
13036 }
13037 if optional && nothing {
13038 return Ok(None);
13039 }
13040 let result = MemberAccess {
13041 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
13042 access_type: field_access_type.ok_or_else(|| ::serde::de::Error::missing_field("access_type"))?,
13043 };
13044 Ok(Some(result))
13045 }
13046
13047 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13048 &self,
13049 s: &mut S::SerializeStruct,
13050 ) -> Result<(), S::Error> {
13051 use serde::ser::SerializeStruct;
13052 s.serialize_field("user", &self.user)?;
13053 s.serialize_field("access_type", &self.access_type)?;
13054 Ok(())
13055 }
13056}
13057
13058impl<'de> ::serde::de::Deserialize<'de> for MemberAccess {
13059 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13060 use serde::de::{MapAccess, Visitor};
13062 struct StructVisitor;
13063 impl<'de> Visitor<'de> for StructVisitor {
13064 type Value = MemberAccess;
13065 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13066 f.write_str("a MemberAccess struct")
13067 }
13068 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13069 MemberAccess::internal_deserialize(map)
13070 }
13071 }
13072 deserializer.deserialize_struct("MemberAccess", MEMBER_ACCESS_FIELDS, StructVisitor)
13073 }
13074}
13075
13076impl ::serde::ser::Serialize for MemberAccess {
13077 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13078 use serde::ser::SerializeStruct;
13080 let mut s = serializer.serialize_struct("MemberAccess", 2)?;
13081 self.internal_serialize::<S>(&mut s)?;
13082 s.end()
13083 }
13084}
13085
13086#[derive(Debug, Clone, PartialEq, Eq)]
13087#[non_exhaustive] pub struct MemberAddArg {
13089 pub member_email: crate::types::common::EmailAddress,
13090 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
13092 pub member_surname: Option<crate::types::common::OptionalNamePart>,
13094 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
13096 pub member_persistent_id: Option<String>,
13099 pub send_welcome_email: bool,
13103 pub is_directory_restricted: Option<bool>,
13105 pub role: AdminTier,
13106}
13107
13108impl MemberAddArg {
13109 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
13110 MemberAddArg {
13111 member_email,
13112 member_given_name: None,
13113 member_surname: None,
13114 member_external_id: None,
13115 member_persistent_id: None,
13116 send_welcome_email: true,
13117 is_directory_restricted: None,
13118 role: AdminTier::MemberOnly,
13119 }
13120 }
13121
13122 pub fn with_member_given_name(
13123 mut self,
13124 value: crate::types::common::OptionalNamePart,
13125 ) -> Self {
13126 self.member_given_name = Some(value);
13127 self
13128 }
13129
13130 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
13131 self.member_surname = Some(value);
13132 self
13133 }
13134
13135 pub fn with_member_external_id(
13136 mut self,
13137 value: crate::types::team_common::MemberExternalId,
13138 ) -> Self {
13139 self.member_external_id = Some(value);
13140 self
13141 }
13142
13143 pub fn with_member_persistent_id(mut self, value: String) -> Self {
13144 self.member_persistent_id = Some(value);
13145 self
13146 }
13147
13148 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
13149 self.send_welcome_email = value;
13150 self
13151 }
13152
13153 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
13154 self.is_directory_restricted = Some(value);
13155 self
13156 }
13157
13158 pub fn with_role(mut self, value: AdminTier) -> Self {
13159 self.role = value;
13160 self
13161 }
13162}
13163
13164const MEMBER_ADD_ARG_FIELDS: &[&str] = &["member_email",
13165 "member_given_name",
13166 "member_surname",
13167 "member_external_id",
13168 "member_persistent_id",
13169 "send_welcome_email",
13170 "is_directory_restricted",
13171 "role"];
13172impl MemberAddArg {
13173 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13174 map: V,
13175 ) -> Result<MemberAddArg, V::Error> {
13176 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13177 }
13178
13179 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13180 mut map: V,
13181 optional: bool,
13182 ) -> Result<Option<MemberAddArg>, V::Error> {
13183 let mut field_member_email = None;
13184 let mut field_member_given_name = None;
13185 let mut field_member_surname = None;
13186 let mut field_member_external_id = None;
13187 let mut field_member_persistent_id = None;
13188 let mut field_send_welcome_email = None;
13189 let mut field_is_directory_restricted = None;
13190 let mut field_role = None;
13191 let mut nothing = true;
13192 while let Some(key) = map.next_key::<&str>()? {
13193 nothing = false;
13194 match key {
13195 "member_email" => {
13196 if field_member_email.is_some() {
13197 return Err(::serde::de::Error::duplicate_field("member_email"));
13198 }
13199 field_member_email = Some(map.next_value()?);
13200 }
13201 "member_given_name" => {
13202 if field_member_given_name.is_some() {
13203 return Err(::serde::de::Error::duplicate_field("member_given_name"));
13204 }
13205 field_member_given_name = Some(map.next_value()?);
13206 }
13207 "member_surname" => {
13208 if field_member_surname.is_some() {
13209 return Err(::serde::de::Error::duplicate_field("member_surname"));
13210 }
13211 field_member_surname = Some(map.next_value()?);
13212 }
13213 "member_external_id" => {
13214 if field_member_external_id.is_some() {
13215 return Err(::serde::de::Error::duplicate_field("member_external_id"));
13216 }
13217 field_member_external_id = Some(map.next_value()?);
13218 }
13219 "member_persistent_id" => {
13220 if field_member_persistent_id.is_some() {
13221 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
13222 }
13223 field_member_persistent_id = Some(map.next_value()?);
13224 }
13225 "send_welcome_email" => {
13226 if field_send_welcome_email.is_some() {
13227 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
13228 }
13229 field_send_welcome_email = Some(map.next_value()?);
13230 }
13231 "is_directory_restricted" => {
13232 if field_is_directory_restricted.is_some() {
13233 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
13234 }
13235 field_is_directory_restricted = Some(map.next_value()?);
13236 }
13237 "role" => {
13238 if field_role.is_some() {
13239 return Err(::serde::de::Error::duplicate_field("role"));
13240 }
13241 field_role = Some(map.next_value()?);
13242 }
13243 _ => {
13244 map.next_value::<::serde_json::Value>()?;
13246 }
13247 }
13248 }
13249 if optional && nothing {
13250 return Ok(None);
13251 }
13252 let result = MemberAddArg {
13253 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
13254 member_given_name: field_member_given_name.and_then(Option::flatten),
13255 member_surname: field_member_surname.and_then(Option::flatten),
13256 member_external_id: field_member_external_id.and_then(Option::flatten),
13257 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
13258 send_welcome_email: field_send_welcome_email.unwrap_or(true),
13259 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
13260 role: field_role.unwrap_or(AdminTier::MemberOnly),
13261 };
13262 Ok(Some(result))
13263 }
13264
13265 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13266 &self,
13267 s: &mut S::SerializeStruct,
13268 ) -> Result<(), S::Error> {
13269 use serde::ser::SerializeStruct;
13270 s.serialize_field("member_email", &self.member_email)?;
13271 if let Some(val) = &self.member_given_name {
13272 s.serialize_field("member_given_name", val)?;
13273 }
13274 if let Some(val) = &self.member_surname {
13275 s.serialize_field("member_surname", val)?;
13276 }
13277 if let Some(val) = &self.member_external_id {
13278 s.serialize_field("member_external_id", val)?;
13279 }
13280 if let Some(val) = &self.member_persistent_id {
13281 s.serialize_field("member_persistent_id", val)?;
13282 }
13283 if !self.send_welcome_email {
13284 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
13285 }
13286 if let Some(val) = &self.is_directory_restricted {
13287 s.serialize_field("is_directory_restricted", val)?;
13288 }
13289 if self.role != AdminTier::MemberOnly {
13290 s.serialize_field("role", &self.role)?;
13291 }
13292 Ok(())
13293 }
13294}
13295
13296impl<'de> ::serde::de::Deserialize<'de> for MemberAddArg {
13297 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13298 use serde::de::{MapAccess, Visitor};
13300 struct StructVisitor;
13301 impl<'de> Visitor<'de> for StructVisitor {
13302 type Value = MemberAddArg;
13303 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13304 f.write_str("a MemberAddArg struct")
13305 }
13306 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13307 MemberAddArg::internal_deserialize(map)
13308 }
13309 }
13310 deserializer.deserialize_struct("MemberAddArg", MEMBER_ADD_ARG_FIELDS, StructVisitor)
13311 }
13312}
13313
13314impl ::serde::ser::Serialize for MemberAddArg {
13315 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13316 use serde::ser::SerializeStruct;
13318 let mut s = serializer.serialize_struct("MemberAddArg", 8)?;
13319 self.internal_serialize::<S>(&mut s)?;
13320 s.end()
13321 }
13322}
13323
13324impl From<MemberAddArg> for MemberAddArgBase {
13326 fn from(subtype: MemberAddArg) -> Self {
13327 Self {
13328 member_email: subtype.member_email,
13329 member_given_name: subtype.member_given_name,
13330 member_surname: subtype.member_surname,
13331 member_external_id: subtype.member_external_id,
13332 member_persistent_id: subtype.member_persistent_id,
13333 send_welcome_email: subtype.send_welcome_email,
13334 is_directory_restricted: subtype.is_directory_restricted,
13335 }
13336 }
13337}
13338#[derive(Debug, Clone, PartialEq, Eq)]
13339#[non_exhaustive] pub struct MemberAddArgBase {
13341 pub member_email: crate::types::common::EmailAddress,
13342 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
13344 pub member_surname: Option<crate::types::common::OptionalNamePart>,
13346 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
13348 pub member_persistent_id: Option<String>,
13351 pub send_welcome_email: bool,
13355 pub is_directory_restricted: Option<bool>,
13357}
13358
13359impl MemberAddArgBase {
13360 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
13361 MemberAddArgBase {
13362 member_email,
13363 member_given_name: None,
13364 member_surname: None,
13365 member_external_id: None,
13366 member_persistent_id: None,
13367 send_welcome_email: true,
13368 is_directory_restricted: None,
13369 }
13370 }
13371
13372 pub fn with_member_given_name(
13373 mut self,
13374 value: crate::types::common::OptionalNamePart,
13375 ) -> Self {
13376 self.member_given_name = Some(value);
13377 self
13378 }
13379
13380 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
13381 self.member_surname = Some(value);
13382 self
13383 }
13384
13385 pub fn with_member_external_id(
13386 mut self,
13387 value: crate::types::team_common::MemberExternalId,
13388 ) -> Self {
13389 self.member_external_id = Some(value);
13390 self
13391 }
13392
13393 pub fn with_member_persistent_id(mut self, value: String) -> Self {
13394 self.member_persistent_id = Some(value);
13395 self
13396 }
13397
13398 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
13399 self.send_welcome_email = value;
13400 self
13401 }
13402
13403 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
13404 self.is_directory_restricted = Some(value);
13405 self
13406 }
13407}
13408
13409const MEMBER_ADD_ARG_BASE_FIELDS: &[&str] = &["member_email",
13410 "member_given_name",
13411 "member_surname",
13412 "member_external_id",
13413 "member_persistent_id",
13414 "send_welcome_email",
13415 "is_directory_restricted"];
13416impl MemberAddArgBase {
13417 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
13418 map: V,
13419 ) -> Result<MemberAddArgBase, V::Error> {
13420 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
13421 }
13422
13423 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
13424 mut map: V,
13425 optional: bool,
13426 ) -> Result<Option<MemberAddArgBase>, V::Error> {
13427 let mut field_member_email = None;
13428 let mut field_member_given_name = None;
13429 let mut field_member_surname = None;
13430 let mut field_member_external_id = None;
13431 let mut field_member_persistent_id = None;
13432 let mut field_send_welcome_email = None;
13433 let mut field_is_directory_restricted = None;
13434 let mut nothing = true;
13435 while let Some(key) = map.next_key::<&str>()? {
13436 nothing = false;
13437 match key {
13438 "member_email" => {
13439 if field_member_email.is_some() {
13440 return Err(::serde::de::Error::duplicate_field("member_email"));
13441 }
13442 field_member_email = Some(map.next_value()?);
13443 }
13444 "member_given_name" => {
13445 if field_member_given_name.is_some() {
13446 return Err(::serde::de::Error::duplicate_field("member_given_name"));
13447 }
13448 field_member_given_name = Some(map.next_value()?);
13449 }
13450 "member_surname" => {
13451 if field_member_surname.is_some() {
13452 return Err(::serde::de::Error::duplicate_field("member_surname"));
13453 }
13454 field_member_surname = Some(map.next_value()?);
13455 }
13456 "member_external_id" => {
13457 if field_member_external_id.is_some() {
13458 return Err(::serde::de::Error::duplicate_field("member_external_id"));
13459 }
13460 field_member_external_id = Some(map.next_value()?);
13461 }
13462 "member_persistent_id" => {
13463 if field_member_persistent_id.is_some() {
13464 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
13465 }
13466 field_member_persistent_id = Some(map.next_value()?);
13467 }
13468 "send_welcome_email" => {
13469 if field_send_welcome_email.is_some() {
13470 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
13471 }
13472 field_send_welcome_email = Some(map.next_value()?);
13473 }
13474 "is_directory_restricted" => {
13475 if field_is_directory_restricted.is_some() {
13476 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
13477 }
13478 field_is_directory_restricted = Some(map.next_value()?);
13479 }
13480 _ => {
13481 map.next_value::<::serde_json::Value>()?;
13483 }
13484 }
13485 }
13486 if optional && nothing {
13487 return Ok(None);
13488 }
13489 let result = MemberAddArgBase {
13490 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
13491 member_given_name: field_member_given_name.and_then(Option::flatten),
13492 member_surname: field_member_surname.and_then(Option::flatten),
13493 member_external_id: field_member_external_id.and_then(Option::flatten),
13494 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
13495 send_welcome_email: field_send_welcome_email.unwrap_or(true),
13496 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
13497 };
13498 Ok(Some(result))
13499 }
13500
13501 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
13502 &self,
13503 s: &mut S::SerializeStruct,
13504 ) -> Result<(), S::Error> {
13505 use serde::ser::SerializeStruct;
13506 s.serialize_field("member_email", &self.member_email)?;
13507 if let Some(val) = &self.member_given_name {
13508 s.serialize_field("member_given_name", val)?;
13509 }
13510 if let Some(val) = &self.member_surname {
13511 s.serialize_field("member_surname", val)?;
13512 }
13513 if let Some(val) = &self.member_external_id {
13514 s.serialize_field("member_external_id", val)?;
13515 }
13516 if let Some(val) = &self.member_persistent_id {
13517 s.serialize_field("member_persistent_id", val)?;
13518 }
13519 if !self.send_welcome_email {
13520 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
13521 }
13522 if let Some(val) = &self.is_directory_restricted {
13523 s.serialize_field("is_directory_restricted", val)?;
13524 }
13525 Ok(())
13526 }
13527}
13528
13529impl<'de> ::serde::de::Deserialize<'de> for MemberAddArgBase {
13530 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13531 use serde::de::{MapAccess, Visitor};
13533 struct StructVisitor;
13534 impl<'de> Visitor<'de> for StructVisitor {
13535 type Value = MemberAddArgBase;
13536 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13537 f.write_str("a MemberAddArgBase struct")
13538 }
13539 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
13540 MemberAddArgBase::internal_deserialize(map)
13541 }
13542 }
13543 deserializer.deserialize_struct("MemberAddArgBase", MEMBER_ADD_ARG_BASE_FIELDS, StructVisitor)
13544 }
13545}
13546
13547impl ::serde::ser::Serialize for MemberAddArgBase {
13548 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13549 use serde::ser::SerializeStruct;
13551 let mut s = serializer.serialize_struct("MemberAddArgBase", 7)?;
13552 self.internal_serialize::<S>(&mut s)?;
13553 s.end()
13554 }
13555}
13556
13557#[derive(Debug, Clone, PartialEq, Eq)]
13561pub enum MemberAddResult {
13562 TeamLicenseLimit(crate::types::common::EmailAddress),
13564 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
13566 UserAlreadyOnTeam(crate::types::common::EmailAddress),
13569 UserOnAnotherTeam(crate::types::common::EmailAddress),
13572 UserAlreadyPaired(crate::types::common::EmailAddress),
13574 UserMigrationFailed(crate::types::common::EmailAddress),
13576 DuplicateExternalMemberId(crate::types::common::EmailAddress),
13579 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
13582 PersistentIdDisabled(crate::types::common::EmailAddress),
13585 UserCreationFailed(crate::types::common::EmailAddress),
13587 Success(TeamMemberInfo),
13589}
13590
13591impl<'de> ::serde::de::Deserialize<'de> for MemberAddResult {
13592 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13593 use serde::de::{self, MapAccess, Visitor};
13595 struct EnumVisitor;
13596 impl<'de> Visitor<'de> for EnumVisitor {
13597 type Value = MemberAddResult;
13598 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13599 f.write_str("a MemberAddResult structure")
13600 }
13601 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13602 let tag: &str = match map.next_key()? {
13603 Some(".tag") => map.next_value()?,
13604 _ => return Err(de::Error::missing_field(".tag"))
13605 };
13606 let value = match tag {
13607 "team_license_limit" => {
13608 match map.next_key()? {
13609 Some("team_license_limit") => MemberAddResult::TeamLicenseLimit(map.next_value()?),
13610 None => return Err(de::Error::missing_field("team_license_limit")),
13611 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13612 }
13613 }
13614 "free_team_member_limit_reached" => {
13615 match map.next_key()? {
13616 Some("free_team_member_limit_reached") => MemberAddResult::FreeTeamMemberLimitReached(map.next_value()?),
13617 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
13618 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13619 }
13620 }
13621 "user_already_on_team" => {
13622 match map.next_key()? {
13623 Some("user_already_on_team") => MemberAddResult::UserAlreadyOnTeam(map.next_value()?),
13624 None => return Err(de::Error::missing_field("user_already_on_team")),
13625 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13626 }
13627 }
13628 "user_on_another_team" => {
13629 match map.next_key()? {
13630 Some("user_on_another_team") => MemberAddResult::UserOnAnotherTeam(map.next_value()?),
13631 None => return Err(de::Error::missing_field("user_on_another_team")),
13632 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13633 }
13634 }
13635 "user_already_paired" => {
13636 match map.next_key()? {
13637 Some("user_already_paired") => MemberAddResult::UserAlreadyPaired(map.next_value()?),
13638 None => return Err(de::Error::missing_field("user_already_paired")),
13639 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13640 }
13641 }
13642 "user_migration_failed" => {
13643 match map.next_key()? {
13644 Some("user_migration_failed") => MemberAddResult::UserMigrationFailed(map.next_value()?),
13645 None => return Err(de::Error::missing_field("user_migration_failed")),
13646 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13647 }
13648 }
13649 "duplicate_external_member_id" => {
13650 match map.next_key()? {
13651 Some("duplicate_external_member_id") => MemberAddResult::DuplicateExternalMemberId(map.next_value()?),
13652 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
13653 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13654 }
13655 }
13656 "duplicate_member_persistent_id" => {
13657 match map.next_key()? {
13658 Some("duplicate_member_persistent_id") => MemberAddResult::DuplicateMemberPersistentId(map.next_value()?),
13659 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
13660 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13661 }
13662 }
13663 "persistent_id_disabled" => {
13664 match map.next_key()? {
13665 Some("persistent_id_disabled") => MemberAddResult::PersistentIdDisabled(map.next_value()?),
13666 None => return Err(de::Error::missing_field("persistent_id_disabled")),
13667 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13668 }
13669 }
13670 "user_creation_failed" => {
13671 match map.next_key()? {
13672 Some("user_creation_failed") => MemberAddResult::UserCreationFailed(map.next_value()?),
13673 None => return Err(de::Error::missing_field("user_creation_failed")),
13674 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13675 }
13676 }
13677 "success" => MemberAddResult::Success(TeamMemberInfo::internal_deserialize(&mut map)?),
13678 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
13679 };
13680 crate::eat_json_fields(&mut map)?;
13681 Ok(value)
13682 }
13683 }
13684 const VARIANTS: &[&str] = &["team_license_limit",
13685 "free_team_member_limit_reached",
13686 "user_already_on_team",
13687 "user_on_another_team",
13688 "user_already_paired",
13689 "user_migration_failed",
13690 "duplicate_external_member_id",
13691 "duplicate_member_persistent_id",
13692 "persistent_id_disabled",
13693 "user_creation_failed",
13694 "success"];
13695 deserializer.deserialize_struct("MemberAddResult", VARIANTS, EnumVisitor)
13696 }
13697}
13698
13699impl ::serde::ser::Serialize for MemberAddResult {
13700 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13701 use serde::ser::SerializeStruct;
13703 match self {
13704 MemberAddResult::TeamLicenseLimit(x) => {
13705 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13707 s.serialize_field(".tag", "team_license_limit")?;
13708 s.serialize_field("team_license_limit", x)?;
13709 s.end()
13710 }
13711 MemberAddResult::FreeTeamMemberLimitReached(x) => {
13712 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13714 s.serialize_field(".tag", "free_team_member_limit_reached")?;
13715 s.serialize_field("free_team_member_limit_reached", x)?;
13716 s.end()
13717 }
13718 MemberAddResult::UserAlreadyOnTeam(x) => {
13719 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13721 s.serialize_field(".tag", "user_already_on_team")?;
13722 s.serialize_field("user_already_on_team", x)?;
13723 s.end()
13724 }
13725 MemberAddResult::UserOnAnotherTeam(x) => {
13726 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13728 s.serialize_field(".tag", "user_on_another_team")?;
13729 s.serialize_field("user_on_another_team", x)?;
13730 s.end()
13731 }
13732 MemberAddResult::UserAlreadyPaired(x) => {
13733 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13735 s.serialize_field(".tag", "user_already_paired")?;
13736 s.serialize_field("user_already_paired", x)?;
13737 s.end()
13738 }
13739 MemberAddResult::UserMigrationFailed(x) => {
13740 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13742 s.serialize_field(".tag", "user_migration_failed")?;
13743 s.serialize_field("user_migration_failed", x)?;
13744 s.end()
13745 }
13746 MemberAddResult::DuplicateExternalMemberId(x) => {
13747 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13749 s.serialize_field(".tag", "duplicate_external_member_id")?;
13750 s.serialize_field("duplicate_external_member_id", x)?;
13751 s.end()
13752 }
13753 MemberAddResult::DuplicateMemberPersistentId(x) => {
13754 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13756 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
13757 s.serialize_field("duplicate_member_persistent_id", x)?;
13758 s.end()
13759 }
13760 MemberAddResult::PersistentIdDisabled(x) => {
13761 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13763 s.serialize_field(".tag", "persistent_id_disabled")?;
13764 s.serialize_field("persistent_id_disabled", x)?;
13765 s.end()
13766 }
13767 MemberAddResult::UserCreationFailed(x) => {
13768 let mut s = serializer.serialize_struct("MemberAddResult", 2)?;
13770 s.serialize_field(".tag", "user_creation_failed")?;
13771 s.serialize_field("user_creation_failed", x)?;
13772 s.end()
13773 }
13774 MemberAddResult::Success(x) => {
13775 let mut s = serializer.serialize_struct("MemberAddResult", 3)?;
13777 s.serialize_field(".tag", "success")?;
13778 x.internal_serialize::<S>(&mut s)?;
13779 s.end()
13780 }
13781 }
13782 }
13783}
13784
13785impl From<MemberAddResultBase> for MemberAddResult {
13787 fn from(parent: MemberAddResultBase) -> Self {
13788 match parent {
13789 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddResult::TeamLicenseLimit(x),
13790 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddResult::FreeTeamMemberLimitReached(x),
13791 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddResult::UserAlreadyOnTeam(x),
13792 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddResult::UserOnAnotherTeam(x),
13793 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddResult::UserAlreadyPaired(x),
13794 MemberAddResultBase::UserMigrationFailed(x) => MemberAddResult::UserMigrationFailed(x),
13795 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddResult::DuplicateExternalMemberId(x),
13796 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddResult::DuplicateMemberPersistentId(x),
13797 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddResult::PersistentIdDisabled(x),
13798 MemberAddResultBase::UserCreationFailed(x) => MemberAddResult::UserCreationFailed(x),
13799 }
13800 }
13801}
13802#[derive(Debug, Clone, PartialEq, Eq)]
13803pub enum MemberAddResultBase {
13804 TeamLicenseLimit(crate::types::common::EmailAddress),
13806 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
13808 UserAlreadyOnTeam(crate::types::common::EmailAddress),
13811 UserOnAnotherTeam(crate::types::common::EmailAddress),
13814 UserAlreadyPaired(crate::types::common::EmailAddress),
13816 UserMigrationFailed(crate::types::common::EmailAddress),
13818 DuplicateExternalMemberId(crate::types::common::EmailAddress),
13821 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
13824 PersistentIdDisabled(crate::types::common::EmailAddress),
13827 UserCreationFailed(crate::types::common::EmailAddress),
13829}
13830
13831impl<'de> ::serde::de::Deserialize<'de> for MemberAddResultBase {
13832 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
13833 use serde::de::{self, MapAccess, Visitor};
13835 struct EnumVisitor;
13836 impl<'de> Visitor<'de> for EnumVisitor {
13837 type Value = MemberAddResultBase;
13838 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13839 f.write_str("a MemberAddResultBase structure")
13840 }
13841 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
13842 let tag: &str = match map.next_key()? {
13843 Some(".tag") => map.next_value()?,
13844 _ => return Err(de::Error::missing_field(".tag"))
13845 };
13846 let value = match tag {
13847 "team_license_limit" => {
13848 match map.next_key()? {
13849 Some("team_license_limit") => MemberAddResultBase::TeamLicenseLimit(map.next_value()?),
13850 None => return Err(de::Error::missing_field("team_license_limit")),
13851 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13852 }
13853 }
13854 "free_team_member_limit_reached" => {
13855 match map.next_key()? {
13856 Some("free_team_member_limit_reached") => MemberAddResultBase::FreeTeamMemberLimitReached(map.next_value()?),
13857 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
13858 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13859 }
13860 }
13861 "user_already_on_team" => {
13862 match map.next_key()? {
13863 Some("user_already_on_team") => MemberAddResultBase::UserAlreadyOnTeam(map.next_value()?),
13864 None => return Err(de::Error::missing_field("user_already_on_team")),
13865 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13866 }
13867 }
13868 "user_on_another_team" => {
13869 match map.next_key()? {
13870 Some("user_on_another_team") => MemberAddResultBase::UserOnAnotherTeam(map.next_value()?),
13871 None => return Err(de::Error::missing_field("user_on_another_team")),
13872 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13873 }
13874 }
13875 "user_already_paired" => {
13876 match map.next_key()? {
13877 Some("user_already_paired") => MemberAddResultBase::UserAlreadyPaired(map.next_value()?),
13878 None => return Err(de::Error::missing_field("user_already_paired")),
13879 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13880 }
13881 }
13882 "user_migration_failed" => {
13883 match map.next_key()? {
13884 Some("user_migration_failed") => MemberAddResultBase::UserMigrationFailed(map.next_value()?),
13885 None => return Err(de::Error::missing_field("user_migration_failed")),
13886 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13887 }
13888 }
13889 "duplicate_external_member_id" => {
13890 match map.next_key()? {
13891 Some("duplicate_external_member_id") => MemberAddResultBase::DuplicateExternalMemberId(map.next_value()?),
13892 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
13893 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13894 }
13895 }
13896 "duplicate_member_persistent_id" => {
13897 match map.next_key()? {
13898 Some("duplicate_member_persistent_id") => MemberAddResultBase::DuplicateMemberPersistentId(map.next_value()?),
13899 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
13900 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13901 }
13902 }
13903 "persistent_id_disabled" => {
13904 match map.next_key()? {
13905 Some("persistent_id_disabled") => MemberAddResultBase::PersistentIdDisabled(map.next_value()?),
13906 None => return Err(de::Error::missing_field("persistent_id_disabled")),
13907 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13908 }
13909 }
13910 "user_creation_failed" => {
13911 match map.next_key()? {
13912 Some("user_creation_failed") => MemberAddResultBase::UserCreationFailed(map.next_value()?),
13913 None => return Err(de::Error::missing_field("user_creation_failed")),
13914 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
13915 }
13916 }
13917 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
13918 };
13919 crate::eat_json_fields(&mut map)?;
13920 Ok(value)
13921 }
13922 }
13923 const VARIANTS: &[&str] = &["team_license_limit",
13924 "free_team_member_limit_reached",
13925 "user_already_on_team",
13926 "user_on_another_team",
13927 "user_already_paired",
13928 "user_migration_failed",
13929 "duplicate_external_member_id",
13930 "duplicate_member_persistent_id",
13931 "persistent_id_disabled",
13932 "user_creation_failed"];
13933 deserializer.deserialize_struct("MemberAddResultBase", VARIANTS, EnumVisitor)
13934 }
13935}
13936
13937impl ::serde::ser::Serialize for MemberAddResultBase {
13938 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
13939 use serde::ser::SerializeStruct;
13941 match self {
13942 MemberAddResultBase::TeamLicenseLimit(x) => {
13943 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13945 s.serialize_field(".tag", "team_license_limit")?;
13946 s.serialize_field("team_license_limit", x)?;
13947 s.end()
13948 }
13949 MemberAddResultBase::FreeTeamMemberLimitReached(x) => {
13950 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13952 s.serialize_field(".tag", "free_team_member_limit_reached")?;
13953 s.serialize_field("free_team_member_limit_reached", x)?;
13954 s.end()
13955 }
13956 MemberAddResultBase::UserAlreadyOnTeam(x) => {
13957 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13959 s.serialize_field(".tag", "user_already_on_team")?;
13960 s.serialize_field("user_already_on_team", x)?;
13961 s.end()
13962 }
13963 MemberAddResultBase::UserOnAnotherTeam(x) => {
13964 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13966 s.serialize_field(".tag", "user_on_another_team")?;
13967 s.serialize_field("user_on_another_team", x)?;
13968 s.end()
13969 }
13970 MemberAddResultBase::UserAlreadyPaired(x) => {
13971 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13973 s.serialize_field(".tag", "user_already_paired")?;
13974 s.serialize_field("user_already_paired", x)?;
13975 s.end()
13976 }
13977 MemberAddResultBase::UserMigrationFailed(x) => {
13978 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13980 s.serialize_field(".tag", "user_migration_failed")?;
13981 s.serialize_field("user_migration_failed", x)?;
13982 s.end()
13983 }
13984 MemberAddResultBase::DuplicateExternalMemberId(x) => {
13985 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13987 s.serialize_field(".tag", "duplicate_external_member_id")?;
13988 s.serialize_field("duplicate_external_member_id", x)?;
13989 s.end()
13990 }
13991 MemberAddResultBase::DuplicateMemberPersistentId(x) => {
13992 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
13994 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
13995 s.serialize_field("duplicate_member_persistent_id", x)?;
13996 s.end()
13997 }
13998 MemberAddResultBase::PersistentIdDisabled(x) => {
13999 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14001 s.serialize_field(".tag", "persistent_id_disabled")?;
14002 s.serialize_field("persistent_id_disabled", x)?;
14003 s.end()
14004 }
14005 MemberAddResultBase::UserCreationFailed(x) => {
14006 let mut s = serializer.serialize_struct("MemberAddResultBase", 2)?;
14008 s.serialize_field(".tag", "user_creation_failed")?;
14009 s.serialize_field("user_creation_failed", x)?;
14010 s.end()
14011 }
14012 }
14013 }
14014}
14015
14016#[derive(Debug, Clone, PartialEq, Eq)]
14017#[non_exhaustive] pub struct MemberAddV2Arg {
14019 pub member_email: crate::types::common::EmailAddress,
14020 pub member_given_name: Option<crate::types::common::OptionalNamePart>,
14022 pub member_surname: Option<crate::types::common::OptionalNamePart>,
14024 pub member_external_id: Option<crate::types::team_common::MemberExternalId>,
14026 pub member_persistent_id: Option<String>,
14029 pub send_welcome_email: bool,
14033 pub is_directory_restricted: Option<bool>,
14035 pub role_ids: Option<Vec<TeamMemberRoleId>>,
14036}
14037
14038impl MemberAddV2Arg {
14039 pub fn new(member_email: crate::types::common::EmailAddress) -> Self {
14040 MemberAddV2Arg {
14041 member_email,
14042 member_given_name: None,
14043 member_surname: None,
14044 member_external_id: None,
14045 member_persistent_id: None,
14046 send_welcome_email: true,
14047 is_directory_restricted: None,
14048 role_ids: None,
14049 }
14050 }
14051
14052 pub fn with_member_given_name(
14053 mut self,
14054 value: crate::types::common::OptionalNamePart,
14055 ) -> Self {
14056 self.member_given_name = Some(value);
14057 self
14058 }
14059
14060 pub fn with_member_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
14061 self.member_surname = Some(value);
14062 self
14063 }
14064
14065 pub fn with_member_external_id(
14066 mut self,
14067 value: crate::types::team_common::MemberExternalId,
14068 ) -> Self {
14069 self.member_external_id = Some(value);
14070 self
14071 }
14072
14073 pub fn with_member_persistent_id(mut self, value: String) -> Self {
14074 self.member_persistent_id = Some(value);
14075 self
14076 }
14077
14078 pub fn with_send_welcome_email(mut self, value: bool) -> Self {
14079 self.send_welcome_email = value;
14080 self
14081 }
14082
14083 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14084 self.is_directory_restricted = Some(value);
14085 self
14086 }
14087
14088 pub fn with_role_ids(mut self, value: Vec<TeamMemberRoleId>) -> Self {
14089 self.role_ids = Some(value);
14090 self
14091 }
14092}
14093
14094const MEMBER_ADD_V2_ARG_FIELDS: &[&str] = &["member_email",
14095 "member_given_name",
14096 "member_surname",
14097 "member_external_id",
14098 "member_persistent_id",
14099 "send_welcome_email",
14100 "is_directory_restricted",
14101 "role_ids"];
14102impl MemberAddV2Arg {
14103 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14104 map: V,
14105 ) -> Result<MemberAddV2Arg, V::Error> {
14106 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14107 }
14108
14109 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14110 mut map: V,
14111 optional: bool,
14112 ) -> Result<Option<MemberAddV2Arg>, V::Error> {
14113 let mut field_member_email = None;
14114 let mut field_member_given_name = None;
14115 let mut field_member_surname = None;
14116 let mut field_member_external_id = None;
14117 let mut field_member_persistent_id = None;
14118 let mut field_send_welcome_email = None;
14119 let mut field_is_directory_restricted = None;
14120 let mut field_role_ids = None;
14121 let mut nothing = true;
14122 while let Some(key) = map.next_key::<&str>()? {
14123 nothing = false;
14124 match key {
14125 "member_email" => {
14126 if field_member_email.is_some() {
14127 return Err(::serde::de::Error::duplicate_field("member_email"));
14128 }
14129 field_member_email = Some(map.next_value()?);
14130 }
14131 "member_given_name" => {
14132 if field_member_given_name.is_some() {
14133 return Err(::serde::de::Error::duplicate_field("member_given_name"));
14134 }
14135 field_member_given_name = Some(map.next_value()?);
14136 }
14137 "member_surname" => {
14138 if field_member_surname.is_some() {
14139 return Err(::serde::de::Error::duplicate_field("member_surname"));
14140 }
14141 field_member_surname = Some(map.next_value()?);
14142 }
14143 "member_external_id" => {
14144 if field_member_external_id.is_some() {
14145 return Err(::serde::de::Error::duplicate_field("member_external_id"));
14146 }
14147 field_member_external_id = Some(map.next_value()?);
14148 }
14149 "member_persistent_id" => {
14150 if field_member_persistent_id.is_some() {
14151 return Err(::serde::de::Error::duplicate_field("member_persistent_id"));
14152 }
14153 field_member_persistent_id = Some(map.next_value()?);
14154 }
14155 "send_welcome_email" => {
14156 if field_send_welcome_email.is_some() {
14157 return Err(::serde::de::Error::duplicate_field("send_welcome_email"));
14158 }
14159 field_send_welcome_email = Some(map.next_value()?);
14160 }
14161 "is_directory_restricted" => {
14162 if field_is_directory_restricted.is_some() {
14163 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
14164 }
14165 field_is_directory_restricted = Some(map.next_value()?);
14166 }
14167 "role_ids" => {
14168 if field_role_ids.is_some() {
14169 return Err(::serde::de::Error::duplicate_field("role_ids"));
14170 }
14171 field_role_ids = Some(map.next_value()?);
14172 }
14173 _ => {
14174 map.next_value::<::serde_json::Value>()?;
14176 }
14177 }
14178 }
14179 if optional && nothing {
14180 return Ok(None);
14181 }
14182 let result = MemberAddV2Arg {
14183 member_email: field_member_email.ok_or_else(|| ::serde::de::Error::missing_field("member_email"))?,
14184 member_given_name: field_member_given_name.and_then(Option::flatten),
14185 member_surname: field_member_surname.and_then(Option::flatten),
14186 member_external_id: field_member_external_id.and_then(Option::flatten),
14187 member_persistent_id: field_member_persistent_id.and_then(Option::flatten),
14188 send_welcome_email: field_send_welcome_email.unwrap_or(true),
14189 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
14190 role_ids: field_role_ids.and_then(Option::flatten),
14191 };
14192 Ok(Some(result))
14193 }
14194
14195 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14196 &self,
14197 s: &mut S::SerializeStruct,
14198 ) -> Result<(), S::Error> {
14199 use serde::ser::SerializeStruct;
14200 s.serialize_field("member_email", &self.member_email)?;
14201 if let Some(val) = &self.member_given_name {
14202 s.serialize_field("member_given_name", val)?;
14203 }
14204 if let Some(val) = &self.member_surname {
14205 s.serialize_field("member_surname", val)?;
14206 }
14207 if let Some(val) = &self.member_external_id {
14208 s.serialize_field("member_external_id", val)?;
14209 }
14210 if let Some(val) = &self.member_persistent_id {
14211 s.serialize_field("member_persistent_id", val)?;
14212 }
14213 if !self.send_welcome_email {
14214 s.serialize_field("send_welcome_email", &self.send_welcome_email)?;
14215 }
14216 if let Some(val) = &self.is_directory_restricted {
14217 s.serialize_field("is_directory_restricted", val)?;
14218 }
14219 if let Some(val) = &self.role_ids {
14220 s.serialize_field("role_ids", val)?;
14221 }
14222 Ok(())
14223 }
14224}
14225
14226impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Arg {
14227 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14228 use serde::de::{MapAccess, Visitor};
14230 struct StructVisitor;
14231 impl<'de> Visitor<'de> for StructVisitor {
14232 type Value = MemberAddV2Arg;
14233 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14234 f.write_str("a MemberAddV2Arg struct")
14235 }
14236 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14237 MemberAddV2Arg::internal_deserialize(map)
14238 }
14239 }
14240 deserializer.deserialize_struct("MemberAddV2Arg", MEMBER_ADD_V2_ARG_FIELDS, StructVisitor)
14241 }
14242}
14243
14244impl ::serde::ser::Serialize for MemberAddV2Arg {
14245 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14246 use serde::ser::SerializeStruct;
14248 let mut s = serializer.serialize_struct("MemberAddV2Arg", 8)?;
14249 self.internal_serialize::<S>(&mut s)?;
14250 s.end()
14251 }
14252}
14253
14254impl From<MemberAddV2Arg> for MemberAddArgBase {
14256 fn from(subtype: MemberAddV2Arg) -> Self {
14257 Self {
14258 member_email: subtype.member_email,
14259 member_given_name: subtype.member_given_name,
14260 member_surname: subtype.member_surname,
14261 member_external_id: subtype.member_external_id,
14262 member_persistent_id: subtype.member_persistent_id,
14263 send_welcome_email: subtype.send_welcome_email,
14264 is_directory_restricted: subtype.is_directory_restricted,
14265 }
14266 }
14267}
14268#[derive(Debug, Clone, PartialEq, Eq)]
14272#[non_exhaustive] pub enum MemberAddV2Result {
14274 TeamLicenseLimit(crate::types::common::EmailAddress),
14276 FreeTeamMemberLimitReached(crate::types::common::EmailAddress),
14278 UserAlreadyOnTeam(crate::types::common::EmailAddress),
14281 UserOnAnotherTeam(crate::types::common::EmailAddress),
14284 UserAlreadyPaired(crate::types::common::EmailAddress),
14286 UserMigrationFailed(crate::types::common::EmailAddress),
14288 DuplicateExternalMemberId(crate::types::common::EmailAddress),
14291 DuplicateMemberPersistentId(crate::types::common::EmailAddress),
14294 PersistentIdDisabled(crate::types::common::EmailAddress),
14297 UserCreationFailed(crate::types::common::EmailAddress),
14299 Success(TeamMemberInfoV2),
14301 Other,
14304}
14305
14306impl<'de> ::serde::de::Deserialize<'de> for MemberAddV2Result {
14307 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14308 use serde::de::{self, MapAccess, Visitor};
14310 struct EnumVisitor;
14311 impl<'de> Visitor<'de> for EnumVisitor {
14312 type Value = MemberAddV2Result;
14313 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14314 f.write_str("a MemberAddV2Result structure")
14315 }
14316 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
14317 let tag: &str = match map.next_key()? {
14318 Some(".tag") => map.next_value()?,
14319 _ => return Err(de::Error::missing_field(".tag"))
14320 };
14321 let value = match tag {
14322 "team_license_limit" => {
14323 match map.next_key()? {
14324 Some("team_license_limit") => MemberAddV2Result::TeamLicenseLimit(map.next_value()?),
14325 None => return Err(de::Error::missing_field("team_license_limit")),
14326 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14327 }
14328 }
14329 "free_team_member_limit_reached" => {
14330 match map.next_key()? {
14331 Some("free_team_member_limit_reached") => MemberAddV2Result::FreeTeamMemberLimitReached(map.next_value()?),
14332 None => return Err(de::Error::missing_field("free_team_member_limit_reached")),
14333 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14334 }
14335 }
14336 "user_already_on_team" => {
14337 match map.next_key()? {
14338 Some("user_already_on_team") => MemberAddV2Result::UserAlreadyOnTeam(map.next_value()?),
14339 None => return Err(de::Error::missing_field("user_already_on_team")),
14340 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14341 }
14342 }
14343 "user_on_another_team" => {
14344 match map.next_key()? {
14345 Some("user_on_another_team") => MemberAddV2Result::UserOnAnotherTeam(map.next_value()?),
14346 None => return Err(de::Error::missing_field("user_on_another_team")),
14347 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14348 }
14349 }
14350 "user_already_paired" => {
14351 match map.next_key()? {
14352 Some("user_already_paired") => MemberAddV2Result::UserAlreadyPaired(map.next_value()?),
14353 None => return Err(de::Error::missing_field("user_already_paired")),
14354 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14355 }
14356 }
14357 "user_migration_failed" => {
14358 match map.next_key()? {
14359 Some("user_migration_failed") => MemberAddV2Result::UserMigrationFailed(map.next_value()?),
14360 None => return Err(de::Error::missing_field("user_migration_failed")),
14361 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14362 }
14363 }
14364 "duplicate_external_member_id" => {
14365 match map.next_key()? {
14366 Some("duplicate_external_member_id") => MemberAddV2Result::DuplicateExternalMemberId(map.next_value()?),
14367 None => return Err(de::Error::missing_field("duplicate_external_member_id")),
14368 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14369 }
14370 }
14371 "duplicate_member_persistent_id" => {
14372 match map.next_key()? {
14373 Some("duplicate_member_persistent_id") => MemberAddV2Result::DuplicateMemberPersistentId(map.next_value()?),
14374 None => return Err(de::Error::missing_field("duplicate_member_persistent_id")),
14375 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14376 }
14377 }
14378 "persistent_id_disabled" => {
14379 match map.next_key()? {
14380 Some("persistent_id_disabled") => MemberAddV2Result::PersistentIdDisabled(map.next_value()?),
14381 None => return Err(de::Error::missing_field("persistent_id_disabled")),
14382 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14383 }
14384 }
14385 "user_creation_failed" => {
14386 match map.next_key()? {
14387 Some("user_creation_failed") => MemberAddV2Result::UserCreationFailed(map.next_value()?),
14388 None => return Err(de::Error::missing_field("user_creation_failed")),
14389 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
14390 }
14391 }
14392 "success" => MemberAddV2Result::Success(TeamMemberInfoV2::internal_deserialize(&mut map)?),
14393 _ => MemberAddV2Result::Other,
14394 };
14395 crate::eat_json_fields(&mut map)?;
14396 Ok(value)
14397 }
14398 }
14399 const VARIANTS: &[&str] = &["team_license_limit",
14400 "free_team_member_limit_reached",
14401 "user_already_on_team",
14402 "user_on_another_team",
14403 "user_already_paired",
14404 "user_migration_failed",
14405 "duplicate_external_member_id",
14406 "duplicate_member_persistent_id",
14407 "persistent_id_disabled",
14408 "user_creation_failed",
14409 "success",
14410 "other"];
14411 deserializer.deserialize_struct("MemberAddV2Result", VARIANTS, EnumVisitor)
14412 }
14413}
14414
14415impl ::serde::ser::Serialize for MemberAddV2Result {
14416 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14417 use serde::ser::SerializeStruct;
14419 match self {
14420 MemberAddV2Result::TeamLicenseLimit(x) => {
14421 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14423 s.serialize_field(".tag", "team_license_limit")?;
14424 s.serialize_field("team_license_limit", x)?;
14425 s.end()
14426 }
14427 MemberAddV2Result::FreeTeamMemberLimitReached(x) => {
14428 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14430 s.serialize_field(".tag", "free_team_member_limit_reached")?;
14431 s.serialize_field("free_team_member_limit_reached", x)?;
14432 s.end()
14433 }
14434 MemberAddV2Result::UserAlreadyOnTeam(x) => {
14435 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14437 s.serialize_field(".tag", "user_already_on_team")?;
14438 s.serialize_field("user_already_on_team", x)?;
14439 s.end()
14440 }
14441 MemberAddV2Result::UserOnAnotherTeam(x) => {
14442 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14444 s.serialize_field(".tag", "user_on_another_team")?;
14445 s.serialize_field("user_on_another_team", x)?;
14446 s.end()
14447 }
14448 MemberAddV2Result::UserAlreadyPaired(x) => {
14449 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14451 s.serialize_field(".tag", "user_already_paired")?;
14452 s.serialize_field("user_already_paired", x)?;
14453 s.end()
14454 }
14455 MemberAddV2Result::UserMigrationFailed(x) => {
14456 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14458 s.serialize_field(".tag", "user_migration_failed")?;
14459 s.serialize_field("user_migration_failed", x)?;
14460 s.end()
14461 }
14462 MemberAddV2Result::DuplicateExternalMemberId(x) => {
14463 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14465 s.serialize_field(".tag", "duplicate_external_member_id")?;
14466 s.serialize_field("duplicate_external_member_id", x)?;
14467 s.end()
14468 }
14469 MemberAddV2Result::DuplicateMemberPersistentId(x) => {
14470 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14472 s.serialize_field(".tag", "duplicate_member_persistent_id")?;
14473 s.serialize_field("duplicate_member_persistent_id", x)?;
14474 s.end()
14475 }
14476 MemberAddV2Result::PersistentIdDisabled(x) => {
14477 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14479 s.serialize_field(".tag", "persistent_id_disabled")?;
14480 s.serialize_field("persistent_id_disabled", x)?;
14481 s.end()
14482 }
14483 MemberAddV2Result::UserCreationFailed(x) => {
14484 let mut s = serializer.serialize_struct("MemberAddV2Result", 2)?;
14486 s.serialize_field(".tag", "user_creation_failed")?;
14487 s.serialize_field("user_creation_failed", x)?;
14488 s.end()
14489 }
14490 MemberAddV2Result::Success(x) => {
14491 let mut s = serializer.serialize_struct("MemberAddV2Result", 3)?;
14493 s.serialize_field(".tag", "success")?;
14494 x.internal_serialize::<S>(&mut s)?;
14495 s.end()
14496 }
14497 MemberAddV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
14498 }
14499 }
14500}
14501
14502impl From<MemberAddResultBase> for MemberAddV2Result {
14504 fn from(parent: MemberAddResultBase) -> Self {
14505 match parent {
14506 MemberAddResultBase::TeamLicenseLimit(x) => MemberAddV2Result::TeamLicenseLimit(x),
14507 MemberAddResultBase::FreeTeamMemberLimitReached(x) => MemberAddV2Result::FreeTeamMemberLimitReached(x),
14508 MemberAddResultBase::UserAlreadyOnTeam(x) => MemberAddV2Result::UserAlreadyOnTeam(x),
14509 MemberAddResultBase::UserOnAnotherTeam(x) => MemberAddV2Result::UserOnAnotherTeam(x),
14510 MemberAddResultBase::UserAlreadyPaired(x) => MemberAddV2Result::UserAlreadyPaired(x),
14511 MemberAddResultBase::UserMigrationFailed(x) => MemberAddV2Result::UserMigrationFailed(x),
14512 MemberAddResultBase::DuplicateExternalMemberId(x) => MemberAddV2Result::DuplicateExternalMemberId(x),
14513 MemberAddResultBase::DuplicateMemberPersistentId(x) => MemberAddV2Result::DuplicateMemberPersistentId(x),
14514 MemberAddResultBase::PersistentIdDisabled(x) => MemberAddV2Result::PersistentIdDisabled(x),
14515 MemberAddResultBase::UserCreationFailed(x) => MemberAddV2Result::UserCreationFailed(x),
14516 }
14517 }
14518}
14519#[derive(Debug, Clone, PartialEq, Eq)]
14521#[non_exhaustive] pub struct MemberDevices {
14523 pub team_member_id: String,
14525 pub web_sessions: Option<Vec<ActiveWebSession>>,
14527 pub desktop_clients: Option<Vec<DesktopClientSession>>,
14529 pub mobile_clients: Option<Vec<MobileClientSession>>,
14531}
14532
14533impl MemberDevices {
14534 pub fn new(team_member_id: String) -> Self {
14535 MemberDevices {
14536 team_member_id,
14537 web_sessions: None,
14538 desktop_clients: None,
14539 mobile_clients: None,
14540 }
14541 }
14542
14543 pub fn with_web_sessions(mut self, value: Vec<ActiveWebSession>) -> Self {
14544 self.web_sessions = Some(value);
14545 self
14546 }
14547
14548 pub fn with_desktop_clients(mut self, value: Vec<DesktopClientSession>) -> Self {
14549 self.desktop_clients = Some(value);
14550 self
14551 }
14552
14553 pub fn with_mobile_clients(mut self, value: Vec<MobileClientSession>) -> Self {
14554 self.mobile_clients = Some(value);
14555 self
14556 }
14557}
14558
14559const MEMBER_DEVICES_FIELDS: &[&str] = &["team_member_id",
14560 "web_sessions",
14561 "desktop_clients",
14562 "mobile_clients"];
14563impl MemberDevices {
14564 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14565 map: V,
14566 ) -> Result<MemberDevices, V::Error> {
14567 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14568 }
14569
14570 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14571 mut map: V,
14572 optional: bool,
14573 ) -> Result<Option<MemberDevices>, V::Error> {
14574 let mut field_team_member_id = None;
14575 let mut field_web_sessions = None;
14576 let mut field_desktop_clients = None;
14577 let mut field_mobile_clients = None;
14578 let mut nothing = true;
14579 while let Some(key) = map.next_key::<&str>()? {
14580 nothing = false;
14581 match key {
14582 "team_member_id" => {
14583 if field_team_member_id.is_some() {
14584 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14585 }
14586 field_team_member_id = Some(map.next_value()?);
14587 }
14588 "web_sessions" => {
14589 if field_web_sessions.is_some() {
14590 return Err(::serde::de::Error::duplicate_field("web_sessions"));
14591 }
14592 field_web_sessions = Some(map.next_value()?);
14593 }
14594 "desktop_clients" => {
14595 if field_desktop_clients.is_some() {
14596 return Err(::serde::de::Error::duplicate_field("desktop_clients"));
14597 }
14598 field_desktop_clients = Some(map.next_value()?);
14599 }
14600 "mobile_clients" => {
14601 if field_mobile_clients.is_some() {
14602 return Err(::serde::de::Error::duplicate_field("mobile_clients"));
14603 }
14604 field_mobile_clients = Some(map.next_value()?);
14605 }
14606 _ => {
14607 map.next_value::<::serde_json::Value>()?;
14609 }
14610 }
14611 }
14612 if optional && nothing {
14613 return Ok(None);
14614 }
14615 let result = MemberDevices {
14616 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
14617 web_sessions: field_web_sessions.and_then(Option::flatten),
14618 desktop_clients: field_desktop_clients.and_then(Option::flatten),
14619 mobile_clients: field_mobile_clients.and_then(Option::flatten),
14620 };
14621 Ok(Some(result))
14622 }
14623
14624 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14625 &self,
14626 s: &mut S::SerializeStruct,
14627 ) -> Result<(), S::Error> {
14628 use serde::ser::SerializeStruct;
14629 s.serialize_field("team_member_id", &self.team_member_id)?;
14630 if let Some(val) = &self.web_sessions {
14631 s.serialize_field("web_sessions", val)?;
14632 }
14633 if let Some(val) = &self.desktop_clients {
14634 s.serialize_field("desktop_clients", val)?;
14635 }
14636 if let Some(val) = &self.mobile_clients {
14637 s.serialize_field("mobile_clients", val)?;
14638 }
14639 Ok(())
14640 }
14641}
14642
14643impl<'de> ::serde::de::Deserialize<'de> for MemberDevices {
14644 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14645 use serde::de::{MapAccess, Visitor};
14647 struct StructVisitor;
14648 impl<'de> Visitor<'de> for StructVisitor {
14649 type Value = MemberDevices;
14650 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14651 f.write_str("a MemberDevices struct")
14652 }
14653 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14654 MemberDevices::internal_deserialize(map)
14655 }
14656 }
14657 deserializer.deserialize_struct("MemberDevices", MEMBER_DEVICES_FIELDS, StructVisitor)
14658 }
14659}
14660
14661impl ::serde::ser::Serialize for MemberDevices {
14662 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14663 use serde::ser::SerializeStruct;
14665 let mut s = serializer.serialize_struct("MemberDevices", 4)?;
14666 self.internal_serialize::<S>(&mut s)?;
14667 s.end()
14668 }
14669}
14670
14671#[derive(Debug, Clone, PartialEq, Eq)]
14673#[non_exhaustive] pub struct MemberLinkedApps {
14675 pub team_member_id: String,
14677 pub linked_api_apps: Vec<ApiApp>,
14679}
14680
14681impl MemberLinkedApps {
14682 pub fn new(team_member_id: String, linked_api_apps: Vec<ApiApp>) -> Self {
14683 MemberLinkedApps {
14684 team_member_id,
14685 linked_api_apps,
14686 }
14687 }
14688}
14689
14690const MEMBER_LINKED_APPS_FIELDS: &[&str] = &["team_member_id",
14691 "linked_api_apps"];
14692impl MemberLinkedApps {
14693 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14694 map: V,
14695 ) -> Result<MemberLinkedApps, V::Error> {
14696 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14697 }
14698
14699 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14700 mut map: V,
14701 optional: bool,
14702 ) -> Result<Option<MemberLinkedApps>, V::Error> {
14703 let mut field_team_member_id = None;
14704 let mut field_linked_api_apps = None;
14705 let mut nothing = true;
14706 while let Some(key) = map.next_key::<&str>()? {
14707 nothing = false;
14708 match key {
14709 "team_member_id" => {
14710 if field_team_member_id.is_some() {
14711 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14712 }
14713 field_team_member_id = Some(map.next_value()?);
14714 }
14715 "linked_api_apps" => {
14716 if field_linked_api_apps.is_some() {
14717 return Err(::serde::de::Error::duplicate_field("linked_api_apps"));
14718 }
14719 field_linked_api_apps = Some(map.next_value()?);
14720 }
14721 _ => {
14722 map.next_value::<::serde_json::Value>()?;
14724 }
14725 }
14726 }
14727 if optional && nothing {
14728 return Ok(None);
14729 }
14730 let result = MemberLinkedApps {
14731 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
14732 linked_api_apps: field_linked_api_apps.ok_or_else(|| ::serde::de::Error::missing_field("linked_api_apps"))?,
14733 };
14734 Ok(Some(result))
14735 }
14736
14737 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
14738 &self,
14739 s: &mut S::SerializeStruct,
14740 ) -> Result<(), S::Error> {
14741 use serde::ser::SerializeStruct;
14742 s.serialize_field("team_member_id", &self.team_member_id)?;
14743 s.serialize_field("linked_api_apps", &self.linked_api_apps)?;
14744 Ok(())
14745 }
14746}
14747
14748impl<'de> ::serde::de::Deserialize<'de> for MemberLinkedApps {
14749 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
14750 use serde::de::{MapAccess, Visitor};
14752 struct StructVisitor;
14753 impl<'de> Visitor<'de> for StructVisitor {
14754 type Value = MemberLinkedApps;
14755 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
14756 f.write_str("a MemberLinkedApps struct")
14757 }
14758 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
14759 MemberLinkedApps::internal_deserialize(map)
14760 }
14761 }
14762 deserializer.deserialize_struct("MemberLinkedApps", MEMBER_LINKED_APPS_FIELDS, StructVisitor)
14763 }
14764}
14765
14766impl ::serde::ser::Serialize for MemberLinkedApps {
14767 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
14768 use serde::ser::SerializeStruct;
14770 let mut s = serializer.serialize_struct("MemberLinkedApps", 2)?;
14771 self.internal_serialize::<S>(&mut s)?;
14772 s.end()
14773 }
14774}
14775
14776#[derive(Debug, Clone, PartialEq, Eq)]
14778#[non_exhaustive] pub struct MemberProfile {
14780 pub team_member_id: crate::types::team_common::TeamMemberId,
14782 pub email: String,
14784 pub email_verified: bool,
14786 pub status: TeamMemberStatus,
14788 pub name: crate::types::users::Name,
14790 pub membership_type: TeamMembershipType,
14793 pub external_id: Option<String>,
14796 pub account_id: Option<crate::types::users_common::AccountId>,
14798 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
14800 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
14803 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
14805 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
14808 pub persistent_id: Option<String>,
14811 pub is_directory_restricted: Option<bool>,
14813 pub profile_photo_url: Option<String>,
14815}
14816
14817impl MemberProfile {
14818 pub fn new(
14819 team_member_id: crate::types::team_common::TeamMemberId,
14820 email: String,
14821 email_verified: bool,
14822 status: TeamMemberStatus,
14823 name: crate::types::users::Name,
14824 membership_type: TeamMembershipType,
14825 ) -> Self {
14826 MemberProfile {
14827 team_member_id,
14828 email,
14829 email_verified,
14830 status,
14831 name,
14832 membership_type,
14833 external_id: None,
14834 account_id: None,
14835 secondary_emails: None,
14836 invited_on: None,
14837 joined_on: None,
14838 suspended_on: None,
14839 persistent_id: None,
14840 is_directory_restricted: None,
14841 profile_photo_url: None,
14842 }
14843 }
14844
14845 pub fn with_external_id(mut self, value: String) -> Self {
14846 self.external_id = Some(value);
14847 self
14848 }
14849
14850 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
14851 self.account_id = Some(value);
14852 self
14853 }
14854
14855 pub fn with_secondary_emails(
14856 mut self,
14857 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
14858 ) -> Self {
14859 self.secondary_emails = Some(value);
14860 self
14861 }
14862
14863 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14864 self.invited_on = Some(value);
14865 self
14866 }
14867
14868 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14869 self.joined_on = Some(value);
14870 self
14871 }
14872
14873 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
14874 self.suspended_on = Some(value);
14875 self
14876 }
14877
14878 pub fn with_persistent_id(mut self, value: String) -> Self {
14879 self.persistent_id = Some(value);
14880 self
14881 }
14882
14883 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
14884 self.is_directory_restricted = Some(value);
14885 self
14886 }
14887
14888 pub fn with_profile_photo_url(mut self, value: String) -> Self {
14889 self.profile_photo_url = Some(value);
14890 self
14891 }
14892}
14893
14894const MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
14895 "email",
14896 "email_verified",
14897 "status",
14898 "name",
14899 "membership_type",
14900 "external_id",
14901 "account_id",
14902 "secondary_emails",
14903 "invited_on",
14904 "joined_on",
14905 "suspended_on",
14906 "persistent_id",
14907 "is_directory_restricted",
14908 "profile_photo_url"];
14909impl MemberProfile {
14910 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
14911 map: V,
14912 ) -> Result<MemberProfile, V::Error> {
14913 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
14914 }
14915
14916 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
14917 mut map: V,
14918 optional: bool,
14919 ) -> Result<Option<MemberProfile>, V::Error> {
14920 let mut field_team_member_id = None;
14921 let mut field_email = None;
14922 let mut field_email_verified = None;
14923 let mut field_status = None;
14924 let mut field_name = None;
14925 let mut field_membership_type = None;
14926 let mut field_external_id = None;
14927 let mut field_account_id = None;
14928 let mut field_secondary_emails = None;
14929 let mut field_invited_on = None;
14930 let mut field_joined_on = None;
14931 let mut field_suspended_on = None;
14932 let mut field_persistent_id = None;
14933 let mut field_is_directory_restricted = None;
14934 let mut field_profile_photo_url = None;
14935 let mut nothing = true;
14936 while let Some(key) = map.next_key::<&str>()? {
14937 nothing = false;
14938 match key {
14939 "team_member_id" => {
14940 if field_team_member_id.is_some() {
14941 return Err(::serde::de::Error::duplicate_field("team_member_id"));
14942 }
14943 field_team_member_id = Some(map.next_value()?);
14944 }
14945 "email" => {
14946 if field_email.is_some() {
14947 return Err(::serde::de::Error::duplicate_field("email"));
14948 }
14949 field_email = Some(map.next_value()?);
14950 }
14951 "email_verified" => {
14952 if field_email_verified.is_some() {
14953 return Err(::serde::de::Error::duplicate_field("email_verified"));
14954 }
14955 field_email_verified = Some(map.next_value()?);
14956 }
14957 "status" => {
14958 if field_status.is_some() {
14959 return Err(::serde::de::Error::duplicate_field("status"));
14960 }
14961 field_status = Some(map.next_value()?);
14962 }
14963 "name" => {
14964 if field_name.is_some() {
14965 return Err(::serde::de::Error::duplicate_field("name"));
14966 }
14967 field_name = Some(map.next_value()?);
14968 }
14969 "membership_type" => {
14970 if field_membership_type.is_some() {
14971 return Err(::serde::de::Error::duplicate_field("membership_type"));
14972 }
14973 field_membership_type = Some(map.next_value()?);
14974 }
14975 "external_id" => {
14976 if field_external_id.is_some() {
14977 return Err(::serde::de::Error::duplicate_field("external_id"));
14978 }
14979 field_external_id = Some(map.next_value()?);
14980 }
14981 "account_id" => {
14982 if field_account_id.is_some() {
14983 return Err(::serde::de::Error::duplicate_field("account_id"));
14984 }
14985 field_account_id = Some(map.next_value()?);
14986 }
14987 "secondary_emails" => {
14988 if field_secondary_emails.is_some() {
14989 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
14990 }
14991 field_secondary_emails = Some(map.next_value()?);
14992 }
14993 "invited_on" => {
14994 if field_invited_on.is_some() {
14995 return Err(::serde::de::Error::duplicate_field("invited_on"));
14996 }
14997 field_invited_on = Some(map.next_value()?);
14998 }
14999 "joined_on" => {
15000 if field_joined_on.is_some() {
15001 return Err(::serde::de::Error::duplicate_field("joined_on"));
15002 }
15003 field_joined_on = Some(map.next_value()?);
15004 }
15005 "suspended_on" => {
15006 if field_suspended_on.is_some() {
15007 return Err(::serde::de::Error::duplicate_field("suspended_on"));
15008 }
15009 field_suspended_on = Some(map.next_value()?);
15010 }
15011 "persistent_id" => {
15012 if field_persistent_id.is_some() {
15013 return Err(::serde::de::Error::duplicate_field("persistent_id"));
15014 }
15015 field_persistent_id = Some(map.next_value()?);
15016 }
15017 "is_directory_restricted" => {
15018 if field_is_directory_restricted.is_some() {
15019 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
15020 }
15021 field_is_directory_restricted = Some(map.next_value()?);
15022 }
15023 "profile_photo_url" => {
15024 if field_profile_photo_url.is_some() {
15025 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
15026 }
15027 field_profile_photo_url = Some(map.next_value()?);
15028 }
15029 _ => {
15030 map.next_value::<::serde_json::Value>()?;
15032 }
15033 }
15034 }
15035 if optional && nothing {
15036 return Ok(None);
15037 }
15038 let result = MemberProfile {
15039 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
15040 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
15041 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
15042 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
15043 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
15044 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
15045 external_id: field_external_id.and_then(Option::flatten),
15046 account_id: field_account_id.and_then(Option::flatten),
15047 secondary_emails: field_secondary_emails.and_then(Option::flatten),
15048 invited_on: field_invited_on.and_then(Option::flatten),
15049 joined_on: field_joined_on.and_then(Option::flatten),
15050 suspended_on: field_suspended_on.and_then(Option::flatten),
15051 persistent_id: field_persistent_id.and_then(Option::flatten),
15052 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
15053 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
15054 };
15055 Ok(Some(result))
15056 }
15057
15058 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15059 &self,
15060 s: &mut S::SerializeStruct,
15061 ) -> Result<(), S::Error> {
15062 use serde::ser::SerializeStruct;
15063 s.serialize_field("team_member_id", &self.team_member_id)?;
15064 s.serialize_field("email", &self.email)?;
15065 s.serialize_field("email_verified", &self.email_verified)?;
15066 s.serialize_field("status", &self.status)?;
15067 s.serialize_field("name", &self.name)?;
15068 s.serialize_field("membership_type", &self.membership_type)?;
15069 if let Some(val) = &self.external_id {
15070 s.serialize_field("external_id", val)?;
15071 }
15072 if let Some(val) = &self.account_id {
15073 s.serialize_field("account_id", val)?;
15074 }
15075 if let Some(val) = &self.secondary_emails {
15076 s.serialize_field("secondary_emails", val)?;
15077 }
15078 if let Some(val) = &self.invited_on {
15079 s.serialize_field("invited_on", val)?;
15080 }
15081 if let Some(val) = &self.joined_on {
15082 s.serialize_field("joined_on", val)?;
15083 }
15084 if let Some(val) = &self.suspended_on {
15085 s.serialize_field("suspended_on", val)?;
15086 }
15087 if let Some(val) = &self.persistent_id {
15088 s.serialize_field("persistent_id", val)?;
15089 }
15090 if let Some(val) = &self.is_directory_restricted {
15091 s.serialize_field("is_directory_restricted", val)?;
15092 }
15093 if let Some(val) = &self.profile_photo_url {
15094 s.serialize_field("profile_photo_url", val)?;
15095 }
15096 Ok(())
15097 }
15098}
15099
15100impl<'de> ::serde::de::Deserialize<'de> for MemberProfile {
15101 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15102 use serde::de::{MapAccess, Visitor};
15104 struct StructVisitor;
15105 impl<'de> Visitor<'de> for StructVisitor {
15106 type Value = MemberProfile;
15107 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15108 f.write_str("a MemberProfile struct")
15109 }
15110 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15111 MemberProfile::internal_deserialize(map)
15112 }
15113 }
15114 deserializer.deserialize_struct("MemberProfile", MEMBER_PROFILE_FIELDS, StructVisitor)
15115 }
15116}
15117
15118impl ::serde::ser::Serialize for MemberProfile {
15119 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15120 use serde::ser::SerializeStruct;
15122 let mut s = serializer.serialize_struct("MemberProfile", 15)?;
15123 self.internal_serialize::<S>(&mut s)?;
15124 s.end()
15125 }
15126}
15127
15128#[derive(Debug, Clone, PartialEq, Eq)]
15129pub enum MemberSelectorError {
15130 UserNotFound,
15133 UserNotInTeam,
15135}
15136
15137impl<'de> ::serde::de::Deserialize<'de> for MemberSelectorError {
15138 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15139 use serde::de::{self, MapAccess, Visitor};
15141 struct EnumVisitor;
15142 impl<'de> Visitor<'de> for EnumVisitor {
15143 type Value = MemberSelectorError;
15144 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15145 f.write_str("a MemberSelectorError structure")
15146 }
15147 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15148 let tag: &str = match map.next_key()? {
15149 Some(".tag") => map.next_value()?,
15150 _ => return Err(de::Error::missing_field(".tag"))
15151 };
15152 let value = match tag {
15153 "user_not_found" => MemberSelectorError::UserNotFound,
15154 "user_not_in_team" => MemberSelectorError::UserNotInTeam,
15155 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15156 };
15157 crate::eat_json_fields(&mut map)?;
15158 Ok(value)
15159 }
15160 }
15161 const VARIANTS: &[&str] = &["user_not_found",
15162 "user_not_in_team"];
15163 deserializer.deserialize_struct("MemberSelectorError", VARIANTS, EnumVisitor)
15164 }
15165}
15166
15167impl ::serde::ser::Serialize for MemberSelectorError {
15168 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15169 use serde::ser::SerializeStruct;
15171 match self {
15172 MemberSelectorError::UserNotFound => {
15173 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
15175 s.serialize_field(".tag", "user_not_found")?;
15176 s.end()
15177 }
15178 MemberSelectorError::UserNotInTeam => {
15179 let mut s = serializer.serialize_struct("MemberSelectorError", 1)?;
15181 s.serialize_field(".tag", "user_not_in_team")?;
15182 s.end()
15183 }
15184 }
15185 }
15186}
15187
15188impl ::std::error::Error for MemberSelectorError {
15189}
15190
15191impl ::std::fmt::Display for MemberSelectorError {
15192 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15193 match self {
15194 MemberSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
15195 MemberSelectorError::UserNotInTeam => f.write_str("The user is not a member of the team."),
15196 }
15197 }
15198}
15199
15200impl From<UserSelectorError> for MemberSelectorError {
15202 fn from(parent: UserSelectorError) -> Self {
15203 match parent {
15204 UserSelectorError::UserNotFound => MemberSelectorError::UserNotFound,
15205 }
15206 }
15207}
15208#[derive(Debug, Clone, PartialEq, Eq)]
15209#[non_exhaustive] pub struct MembersAddArg {
15211 pub new_members: Vec<MemberAddArg>,
15213 pub force_async: bool,
15215}
15216
15217impl MembersAddArg {
15218 pub fn new(new_members: Vec<MemberAddArg>) -> Self {
15219 MembersAddArg {
15220 new_members,
15221 force_async: false,
15222 }
15223 }
15224
15225 pub fn with_force_async(mut self, value: bool) -> Self {
15226 self.force_async = value;
15227 self
15228 }
15229}
15230
15231const MEMBERS_ADD_ARG_FIELDS: &[&str] = &["new_members",
15232 "force_async"];
15233impl MembersAddArg {
15234 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15235 map: V,
15236 ) -> Result<MembersAddArg, V::Error> {
15237 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15238 }
15239
15240 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15241 mut map: V,
15242 optional: bool,
15243 ) -> Result<Option<MembersAddArg>, V::Error> {
15244 let mut field_new_members = None;
15245 let mut field_force_async = None;
15246 let mut nothing = true;
15247 while let Some(key) = map.next_key::<&str>()? {
15248 nothing = false;
15249 match key {
15250 "new_members" => {
15251 if field_new_members.is_some() {
15252 return Err(::serde::de::Error::duplicate_field("new_members"));
15253 }
15254 field_new_members = Some(map.next_value()?);
15255 }
15256 "force_async" => {
15257 if field_force_async.is_some() {
15258 return Err(::serde::de::Error::duplicate_field("force_async"));
15259 }
15260 field_force_async = Some(map.next_value()?);
15261 }
15262 _ => {
15263 map.next_value::<::serde_json::Value>()?;
15265 }
15266 }
15267 }
15268 if optional && nothing {
15269 return Ok(None);
15270 }
15271 let result = MembersAddArg {
15272 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
15273 force_async: field_force_async.unwrap_or(false),
15274 };
15275 Ok(Some(result))
15276 }
15277
15278 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15279 &self,
15280 s: &mut S::SerializeStruct,
15281 ) -> Result<(), S::Error> {
15282 use serde::ser::SerializeStruct;
15283 s.serialize_field("new_members", &self.new_members)?;
15284 if self.force_async {
15285 s.serialize_field("force_async", &self.force_async)?;
15286 }
15287 Ok(())
15288 }
15289}
15290
15291impl<'de> ::serde::de::Deserialize<'de> for MembersAddArg {
15292 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15293 use serde::de::{MapAccess, Visitor};
15295 struct StructVisitor;
15296 impl<'de> Visitor<'de> for StructVisitor {
15297 type Value = MembersAddArg;
15298 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15299 f.write_str("a MembersAddArg struct")
15300 }
15301 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15302 MembersAddArg::internal_deserialize(map)
15303 }
15304 }
15305 deserializer.deserialize_struct("MembersAddArg", MEMBERS_ADD_ARG_FIELDS, StructVisitor)
15306 }
15307}
15308
15309impl ::serde::ser::Serialize for MembersAddArg {
15310 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15311 use serde::ser::SerializeStruct;
15313 let mut s = serializer.serialize_struct("MembersAddArg", 2)?;
15314 self.internal_serialize::<S>(&mut s)?;
15315 s.end()
15316 }
15317}
15318
15319impl From<MembersAddArg> for MembersAddArgBase {
15321 fn from(subtype: MembersAddArg) -> Self {
15322 Self {
15323 force_async: subtype.force_async,
15324 }
15325 }
15326}
15327#[derive(Debug, Clone, PartialEq, Eq, Default)]
15328#[non_exhaustive] pub struct MembersAddArgBase {
15330 pub force_async: bool,
15332}
15333
15334impl MembersAddArgBase {
15335 pub fn with_force_async(mut self, value: bool) -> Self {
15336 self.force_async = value;
15337 self
15338 }
15339}
15340
15341const MEMBERS_ADD_ARG_BASE_FIELDS: &[&str] = &["force_async"];
15342impl MembersAddArgBase {
15343 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15345 mut map: V,
15346 ) -> Result<MembersAddArgBase, V::Error> {
15347 let mut field_force_async = None;
15348 while let Some(key) = map.next_key::<&str>()? {
15349 match key {
15350 "force_async" => {
15351 if field_force_async.is_some() {
15352 return Err(::serde::de::Error::duplicate_field("force_async"));
15353 }
15354 field_force_async = Some(map.next_value()?);
15355 }
15356 _ => {
15357 map.next_value::<::serde_json::Value>()?;
15359 }
15360 }
15361 }
15362 let result = MembersAddArgBase {
15363 force_async: field_force_async.unwrap_or(false),
15364 };
15365 Ok(result)
15366 }
15367
15368 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15369 &self,
15370 s: &mut S::SerializeStruct,
15371 ) -> Result<(), S::Error> {
15372 use serde::ser::SerializeStruct;
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 MembersAddArgBase {
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 = MembersAddArgBase;
15387 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15388 f.write_str("a MembersAddArgBase struct")
15389 }
15390 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15391 MembersAddArgBase::internal_deserialize(map)
15392 }
15393 }
15394 deserializer.deserialize_struct("MembersAddArgBase", MEMBERS_ADD_ARG_BASE_FIELDS, StructVisitor)
15395 }
15396}
15397
15398impl ::serde::ser::Serialize for MembersAddArgBase {
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("MembersAddArgBase", 1)?;
15403 self.internal_serialize::<S>(&mut s)?;
15404 s.end()
15405 }
15406}
15407
15408#[derive(Debug, Clone, PartialEq, Eq)]
15409pub enum MembersAddJobStatus {
15410 InProgress,
15412 Complete(Vec<MemberAddResult>),
15416 Failed(String),
15418}
15419
15420impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatus {
15421 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15422 use serde::de::{self, MapAccess, Visitor};
15424 struct EnumVisitor;
15425 impl<'de> Visitor<'de> for EnumVisitor {
15426 type Value = MembersAddJobStatus;
15427 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15428 f.write_str("a MembersAddJobStatus structure")
15429 }
15430 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15431 let tag: &str = match map.next_key()? {
15432 Some(".tag") => map.next_value()?,
15433 _ => return Err(de::Error::missing_field(".tag"))
15434 };
15435 let value = match tag {
15436 "in_progress" => MembersAddJobStatus::InProgress,
15437 "complete" => {
15438 match map.next_key()? {
15439 Some("complete") => MembersAddJobStatus::Complete(map.next_value()?),
15440 None => return Err(de::Error::missing_field("complete")),
15441 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15442 }
15443 }
15444 "failed" => {
15445 match map.next_key()? {
15446 Some("failed") => MembersAddJobStatus::Failed(map.next_value()?),
15447 None => return Err(de::Error::missing_field("failed")),
15448 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15449 }
15450 }
15451 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15452 };
15453 crate::eat_json_fields(&mut map)?;
15454 Ok(value)
15455 }
15456 }
15457 const VARIANTS: &[&str] = &["in_progress",
15458 "complete",
15459 "failed"];
15460 deserializer.deserialize_struct("MembersAddJobStatus", VARIANTS, EnumVisitor)
15461 }
15462}
15463
15464impl ::serde::ser::Serialize for MembersAddJobStatus {
15465 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15466 use serde::ser::SerializeStruct;
15468 match self {
15469 MembersAddJobStatus::InProgress => {
15470 let mut s = serializer.serialize_struct("MembersAddJobStatus", 1)?;
15472 s.serialize_field(".tag", "in_progress")?;
15473 s.end()
15474 }
15475 MembersAddJobStatus::Complete(x) => {
15476 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
15478 s.serialize_field(".tag", "complete")?;
15479 s.serialize_field("complete", x)?;
15480 s.end()
15481 }
15482 MembersAddJobStatus::Failed(x) => {
15483 let mut s = serializer.serialize_struct("MembersAddJobStatus", 2)?;
15485 s.serialize_field(".tag", "failed")?;
15486 s.serialize_field("failed", x)?;
15487 s.end()
15488 }
15489 }
15490 }
15491}
15492
15493impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatus {
15495 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
15496 match parent {
15497 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatus::InProgress,
15498 }
15499 }
15500}
15501#[derive(Debug, Clone, PartialEq, Eq)]
15502#[non_exhaustive] pub enum MembersAddJobStatusV2Result {
15504 InProgress,
15506 Complete(Vec<MemberAddV2Result>),
15510 Failed(String),
15512 Other,
15515}
15516
15517impl<'de> ::serde::de::Deserialize<'de> for MembersAddJobStatusV2Result {
15518 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15519 use serde::de::{self, MapAccess, Visitor};
15521 struct EnumVisitor;
15522 impl<'de> Visitor<'de> for EnumVisitor {
15523 type Value = MembersAddJobStatusV2Result;
15524 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15525 f.write_str("a MembersAddJobStatusV2Result structure")
15526 }
15527 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15528 let tag: &str = match map.next_key()? {
15529 Some(".tag") => map.next_value()?,
15530 _ => return Err(de::Error::missing_field(".tag"))
15531 };
15532 let value = match tag {
15533 "in_progress" => MembersAddJobStatusV2Result::InProgress,
15534 "complete" => {
15535 match map.next_key()? {
15536 Some("complete") => MembersAddJobStatusV2Result::Complete(map.next_value()?),
15537 None => return Err(de::Error::missing_field("complete")),
15538 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15539 }
15540 }
15541 "failed" => {
15542 match map.next_key()? {
15543 Some("failed") => MembersAddJobStatusV2Result::Failed(map.next_value()?),
15544 None => return Err(de::Error::missing_field("failed")),
15545 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15546 }
15547 }
15548 _ => MembersAddJobStatusV2Result::Other,
15549 };
15550 crate::eat_json_fields(&mut map)?;
15551 Ok(value)
15552 }
15553 }
15554 const VARIANTS: &[&str] = &["in_progress",
15555 "complete",
15556 "failed",
15557 "other"];
15558 deserializer.deserialize_struct("MembersAddJobStatusV2Result", VARIANTS, EnumVisitor)
15559 }
15560}
15561
15562impl ::serde::ser::Serialize for MembersAddJobStatusV2Result {
15563 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15564 use serde::ser::SerializeStruct;
15566 match self {
15567 MembersAddJobStatusV2Result::InProgress => {
15568 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 1)?;
15570 s.serialize_field(".tag", "in_progress")?;
15571 s.end()
15572 }
15573 MembersAddJobStatusV2Result::Complete(x) => {
15574 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
15576 s.serialize_field(".tag", "complete")?;
15577 s.serialize_field("complete", x)?;
15578 s.end()
15579 }
15580 MembersAddJobStatusV2Result::Failed(x) => {
15581 let mut s = serializer.serialize_struct("MembersAddJobStatusV2Result", 2)?;
15583 s.serialize_field(".tag", "failed")?;
15584 s.serialize_field("failed", x)?;
15585 s.end()
15586 }
15587 MembersAddJobStatusV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15588 }
15589 }
15590}
15591
15592impl From<crate::types::dbx_async::PollResultBase> for MembersAddJobStatusV2Result {
15594 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
15595 match parent {
15596 crate::types::dbx_async::PollResultBase::InProgress => MembersAddJobStatusV2Result::InProgress,
15597 }
15598 }
15599}
15600#[derive(Debug, Clone, PartialEq, Eq)]
15601pub enum MembersAddLaunch {
15602 AsyncJobId(crate::types::dbx_async::AsyncJobId),
15605 Complete(Vec<MemberAddResult>),
15606}
15607
15608impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunch {
15609 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15610 use serde::de::{self, MapAccess, Visitor};
15612 struct EnumVisitor;
15613 impl<'de> Visitor<'de> for EnumVisitor {
15614 type Value = MembersAddLaunch;
15615 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15616 f.write_str("a MembersAddLaunch structure")
15617 }
15618 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15619 let tag: &str = match map.next_key()? {
15620 Some(".tag") => map.next_value()?,
15621 _ => return Err(de::Error::missing_field(".tag"))
15622 };
15623 let value = match tag {
15624 "async_job_id" => {
15625 match map.next_key()? {
15626 Some("async_job_id") => MembersAddLaunch::AsyncJobId(map.next_value()?),
15627 None => return Err(de::Error::missing_field("async_job_id")),
15628 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15629 }
15630 }
15631 "complete" => {
15632 match map.next_key()? {
15633 Some("complete") => MembersAddLaunch::Complete(map.next_value()?),
15634 None => return Err(de::Error::missing_field("complete")),
15635 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15636 }
15637 }
15638 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
15639 };
15640 crate::eat_json_fields(&mut map)?;
15641 Ok(value)
15642 }
15643 }
15644 const VARIANTS: &[&str] = &["async_job_id",
15645 "complete"];
15646 deserializer.deserialize_struct("MembersAddLaunch", VARIANTS, EnumVisitor)
15647 }
15648}
15649
15650impl ::serde::ser::Serialize for MembersAddLaunch {
15651 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15652 use serde::ser::SerializeStruct;
15654 match self {
15655 MembersAddLaunch::AsyncJobId(x) => {
15656 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
15658 s.serialize_field(".tag", "async_job_id")?;
15659 s.serialize_field("async_job_id", x)?;
15660 s.end()
15661 }
15662 MembersAddLaunch::Complete(x) => {
15663 let mut s = serializer.serialize_struct("MembersAddLaunch", 2)?;
15665 s.serialize_field(".tag", "complete")?;
15666 s.serialize_field("complete", x)?;
15667 s.end()
15668 }
15669 }
15670 }
15671}
15672
15673impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunch {
15675 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
15676 match parent {
15677 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunch::AsyncJobId(x),
15678 }
15679 }
15680}
15681#[derive(Debug, Clone, PartialEq, Eq)]
15682#[non_exhaustive] pub enum MembersAddLaunchV2Result {
15684 AsyncJobId(crate::types::dbx_async::AsyncJobId),
15687 Complete(Vec<MemberAddV2Result>),
15688 Other,
15691}
15692
15693impl<'de> ::serde::de::Deserialize<'de> for MembersAddLaunchV2Result {
15694 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15695 use serde::de::{self, MapAccess, Visitor};
15697 struct EnumVisitor;
15698 impl<'de> Visitor<'de> for EnumVisitor {
15699 type Value = MembersAddLaunchV2Result;
15700 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15701 f.write_str("a MembersAddLaunchV2Result structure")
15702 }
15703 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
15704 let tag: &str = match map.next_key()? {
15705 Some(".tag") => map.next_value()?,
15706 _ => return Err(de::Error::missing_field(".tag"))
15707 };
15708 let value = match tag {
15709 "async_job_id" => {
15710 match map.next_key()? {
15711 Some("async_job_id") => MembersAddLaunchV2Result::AsyncJobId(map.next_value()?),
15712 None => return Err(de::Error::missing_field("async_job_id")),
15713 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15714 }
15715 }
15716 "complete" => {
15717 match map.next_key()? {
15718 Some("complete") => MembersAddLaunchV2Result::Complete(map.next_value()?),
15719 None => return Err(de::Error::missing_field("complete")),
15720 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
15721 }
15722 }
15723 _ => MembersAddLaunchV2Result::Other,
15724 };
15725 crate::eat_json_fields(&mut map)?;
15726 Ok(value)
15727 }
15728 }
15729 const VARIANTS: &[&str] = &["async_job_id",
15730 "complete",
15731 "other"];
15732 deserializer.deserialize_struct("MembersAddLaunchV2Result", VARIANTS, EnumVisitor)
15733 }
15734}
15735
15736impl ::serde::ser::Serialize for MembersAddLaunchV2Result {
15737 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15738 use serde::ser::SerializeStruct;
15740 match self {
15741 MembersAddLaunchV2Result::AsyncJobId(x) => {
15742 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
15744 s.serialize_field(".tag", "async_job_id")?;
15745 s.serialize_field("async_job_id", x)?;
15746 s.end()
15747 }
15748 MembersAddLaunchV2Result::Complete(x) => {
15749 let mut s = serializer.serialize_struct("MembersAddLaunchV2Result", 2)?;
15751 s.serialize_field(".tag", "complete")?;
15752 s.serialize_field("complete", x)?;
15753 s.end()
15754 }
15755 MembersAddLaunchV2Result::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
15756 }
15757 }
15758}
15759
15760impl From<crate::types::dbx_async::LaunchResultBase> for MembersAddLaunchV2Result {
15762 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
15763 match parent {
15764 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => MembersAddLaunchV2Result::AsyncJobId(x),
15765 }
15766 }
15767}
15768#[derive(Debug, Clone, PartialEq, Eq)]
15769#[non_exhaustive] pub struct MembersAddV2Arg {
15771 pub new_members: Vec<MemberAddV2Arg>,
15773 pub force_async: bool,
15775}
15776
15777impl MembersAddV2Arg {
15778 pub fn new(new_members: Vec<MemberAddV2Arg>) -> Self {
15779 MembersAddV2Arg {
15780 new_members,
15781 force_async: false,
15782 }
15783 }
15784
15785 pub fn with_force_async(mut self, value: bool) -> Self {
15786 self.force_async = value;
15787 self
15788 }
15789}
15790
15791const MEMBERS_ADD_V2_ARG_FIELDS: &[&str] = &["new_members",
15792 "force_async"];
15793impl MembersAddV2Arg {
15794 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15795 map: V,
15796 ) -> Result<MembersAddV2Arg, V::Error> {
15797 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15798 }
15799
15800 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15801 mut map: V,
15802 optional: bool,
15803 ) -> Result<Option<MembersAddV2Arg>, V::Error> {
15804 let mut field_new_members = None;
15805 let mut field_force_async = None;
15806 let mut nothing = true;
15807 while let Some(key) = map.next_key::<&str>()? {
15808 nothing = false;
15809 match key {
15810 "new_members" => {
15811 if field_new_members.is_some() {
15812 return Err(::serde::de::Error::duplicate_field("new_members"));
15813 }
15814 field_new_members = Some(map.next_value()?);
15815 }
15816 "force_async" => {
15817 if field_force_async.is_some() {
15818 return Err(::serde::de::Error::duplicate_field("force_async"));
15819 }
15820 field_force_async = Some(map.next_value()?);
15821 }
15822 _ => {
15823 map.next_value::<::serde_json::Value>()?;
15825 }
15826 }
15827 }
15828 if optional && nothing {
15829 return Ok(None);
15830 }
15831 let result = MembersAddV2Arg {
15832 new_members: field_new_members.ok_or_else(|| ::serde::de::Error::missing_field("new_members"))?,
15833 force_async: field_force_async.unwrap_or(false),
15834 };
15835 Ok(Some(result))
15836 }
15837
15838 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15839 &self,
15840 s: &mut S::SerializeStruct,
15841 ) -> Result<(), S::Error> {
15842 use serde::ser::SerializeStruct;
15843 s.serialize_field("new_members", &self.new_members)?;
15844 if self.force_async {
15845 s.serialize_field("force_async", &self.force_async)?;
15846 }
15847 Ok(())
15848 }
15849}
15850
15851impl<'de> ::serde::de::Deserialize<'de> for MembersAddV2Arg {
15852 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15853 use serde::de::{MapAccess, Visitor};
15855 struct StructVisitor;
15856 impl<'de> Visitor<'de> for StructVisitor {
15857 type Value = MembersAddV2Arg;
15858 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15859 f.write_str("a MembersAddV2Arg struct")
15860 }
15861 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15862 MembersAddV2Arg::internal_deserialize(map)
15863 }
15864 }
15865 deserializer.deserialize_struct("MembersAddV2Arg", MEMBERS_ADD_V2_ARG_FIELDS, StructVisitor)
15866 }
15867}
15868
15869impl ::serde::ser::Serialize for MembersAddV2Arg {
15870 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
15871 use serde::ser::SerializeStruct;
15873 let mut s = serializer.serialize_struct("MembersAddV2Arg", 2)?;
15874 self.internal_serialize::<S>(&mut s)?;
15875 s.end()
15876 }
15877}
15878
15879impl From<MembersAddV2Arg> for MembersAddArgBase {
15881 fn from(subtype: MembersAddV2Arg) -> Self {
15882 Self {
15883 force_async: subtype.force_async,
15884 }
15885 }
15886}
15887#[derive(Debug, Clone, PartialEq, Eq)]
15888#[non_exhaustive] pub struct MembersDataTransferArg {
15890 pub user: UserSelectorArg,
15892 pub transfer_dest_id: UserSelectorArg,
15894 pub transfer_admin_id: UserSelectorArg,
15896}
15897
15898impl MembersDataTransferArg {
15899 pub fn new(
15900 user: UserSelectorArg,
15901 transfer_dest_id: UserSelectorArg,
15902 transfer_admin_id: UserSelectorArg,
15903 ) -> Self {
15904 MembersDataTransferArg {
15905 user,
15906 transfer_dest_id,
15907 transfer_admin_id,
15908 }
15909 }
15910}
15911
15912const MEMBERS_DATA_TRANSFER_ARG_FIELDS: &[&str] = &["user",
15913 "transfer_dest_id",
15914 "transfer_admin_id"];
15915impl MembersDataTransferArg {
15916 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
15917 map: V,
15918 ) -> Result<MembersDataTransferArg, V::Error> {
15919 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
15920 }
15921
15922 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
15923 mut map: V,
15924 optional: bool,
15925 ) -> Result<Option<MembersDataTransferArg>, V::Error> {
15926 let mut field_user = None;
15927 let mut field_transfer_dest_id = None;
15928 let mut field_transfer_admin_id = None;
15929 let mut nothing = true;
15930 while let Some(key) = map.next_key::<&str>()? {
15931 nothing = false;
15932 match key {
15933 "user" => {
15934 if field_user.is_some() {
15935 return Err(::serde::de::Error::duplicate_field("user"));
15936 }
15937 field_user = Some(map.next_value()?);
15938 }
15939 "transfer_dest_id" => {
15940 if field_transfer_dest_id.is_some() {
15941 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
15942 }
15943 field_transfer_dest_id = Some(map.next_value()?);
15944 }
15945 "transfer_admin_id" => {
15946 if field_transfer_admin_id.is_some() {
15947 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
15948 }
15949 field_transfer_admin_id = Some(map.next_value()?);
15950 }
15951 _ => {
15952 map.next_value::<::serde_json::Value>()?;
15954 }
15955 }
15956 }
15957 if optional && nothing {
15958 return Ok(None);
15959 }
15960 let result = MembersDataTransferArg {
15961 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
15962 transfer_dest_id: field_transfer_dest_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_dest_id"))?,
15963 transfer_admin_id: field_transfer_admin_id.ok_or_else(|| ::serde::de::Error::missing_field("transfer_admin_id"))?,
15964 };
15965 Ok(Some(result))
15966 }
15967
15968 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
15969 &self,
15970 s: &mut S::SerializeStruct,
15971 ) -> Result<(), S::Error> {
15972 use serde::ser::SerializeStruct;
15973 s.serialize_field("user", &self.user)?;
15974 s.serialize_field("transfer_dest_id", &self.transfer_dest_id)?;
15975 s.serialize_field("transfer_admin_id", &self.transfer_admin_id)?;
15976 Ok(())
15977 }
15978}
15979
15980impl<'de> ::serde::de::Deserialize<'de> for MembersDataTransferArg {
15981 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
15982 use serde::de::{MapAccess, Visitor};
15984 struct StructVisitor;
15985 impl<'de> Visitor<'de> for StructVisitor {
15986 type Value = MembersDataTransferArg;
15987 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
15988 f.write_str("a MembersDataTransferArg struct")
15989 }
15990 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
15991 MembersDataTransferArg::internal_deserialize(map)
15992 }
15993 }
15994 deserializer.deserialize_struct("MembersDataTransferArg", MEMBERS_DATA_TRANSFER_ARG_FIELDS, StructVisitor)
15995 }
15996}
15997
15998impl ::serde::ser::Serialize for MembersDataTransferArg {
15999 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16000 use serde::ser::SerializeStruct;
16002 let mut s = serializer.serialize_struct("MembersDataTransferArg", 3)?;
16003 self.internal_serialize::<S>(&mut s)?;
16004 s.end()
16005 }
16006}
16007
16008impl From<MembersDataTransferArg> for MembersDeactivateBaseArg {
16010 fn from(subtype: MembersDataTransferArg) -> Self {
16011 Self {
16012 user: subtype.user,
16013 }
16014 }
16015}
16016#[derive(Debug, Clone, PartialEq, Eq)]
16017#[non_exhaustive] pub struct MembersDeactivateArg {
16019 pub user: UserSelectorArg,
16021 pub wipe_data: bool,
16023}
16024
16025impl MembersDeactivateArg {
16026 pub fn new(user: UserSelectorArg) -> Self {
16027 MembersDeactivateArg {
16028 user,
16029 wipe_data: true,
16030 }
16031 }
16032
16033 pub fn with_wipe_data(mut self, value: bool) -> Self {
16034 self.wipe_data = value;
16035 self
16036 }
16037}
16038
16039const MEMBERS_DEACTIVATE_ARG_FIELDS: &[&str] = &["user",
16040 "wipe_data"];
16041impl MembersDeactivateArg {
16042 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16043 map: V,
16044 ) -> Result<MembersDeactivateArg, V::Error> {
16045 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16046 }
16047
16048 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16049 mut map: V,
16050 optional: bool,
16051 ) -> Result<Option<MembersDeactivateArg>, V::Error> {
16052 let mut field_user = None;
16053 let mut field_wipe_data = None;
16054 let mut nothing = true;
16055 while let Some(key) = map.next_key::<&str>()? {
16056 nothing = false;
16057 match key {
16058 "user" => {
16059 if field_user.is_some() {
16060 return Err(::serde::de::Error::duplicate_field("user"));
16061 }
16062 field_user = Some(map.next_value()?);
16063 }
16064 "wipe_data" => {
16065 if field_wipe_data.is_some() {
16066 return Err(::serde::de::Error::duplicate_field("wipe_data"));
16067 }
16068 field_wipe_data = Some(map.next_value()?);
16069 }
16070 _ => {
16071 map.next_value::<::serde_json::Value>()?;
16073 }
16074 }
16075 }
16076 if optional && nothing {
16077 return Ok(None);
16078 }
16079 let result = MembersDeactivateArg {
16080 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16081 wipe_data: field_wipe_data.unwrap_or(true),
16082 };
16083 Ok(Some(result))
16084 }
16085
16086 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16087 &self,
16088 s: &mut S::SerializeStruct,
16089 ) -> Result<(), S::Error> {
16090 use serde::ser::SerializeStruct;
16091 s.serialize_field("user", &self.user)?;
16092 if !self.wipe_data {
16093 s.serialize_field("wipe_data", &self.wipe_data)?;
16094 }
16095 Ok(())
16096 }
16097}
16098
16099impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateArg {
16100 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16101 use serde::de::{MapAccess, Visitor};
16103 struct StructVisitor;
16104 impl<'de> Visitor<'de> for StructVisitor {
16105 type Value = MembersDeactivateArg;
16106 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16107 f.write_str("a MembersDeactivateArg struct")
16108 }
16109 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16110 MembersDeactivateArg::internal_deserialize(map)
16111 }
16112 }
16113 deserializer.deserialize_struct("MembersDeactivateArg", MEMBERS_DEACTIVATE_ARG_FIELDS, StructVisitor)
16114 }
16115}
16116
16117impl ::serde::ser::Serialize for MembersDeactivateArg {
16118 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16119 use serde::ser::SerializeStruct;
16121 let mut s = serializer.serialize_struct("MembersDeactivateArg", 2)?;
16122 self.internal_serialize::<S>(&mut s)?;
16123 s.end()
16124 }
16125}
16126
16127impl From<MembersDeactivateArg> for MembersDeactivateBaseArg {
16129 fn from(subtype: MembersDeactivateArg) -> Self {
16130 Self {
16131 user: subtype.user,
16132 }
16133 }
16134}
16135#[derive(Debug, Clone, PartialEq, Eq)]
16138#[non_exhaustive] pub struct MembersDeactivateBaseArg {
16140 pub user: UserSelectorArg,
16142}
16143
16144impl MembersDeactivateBaseArg {
16145 pub fn new(user: UserSelectorArg) -> Self {
16146 MembersDeactivateBaseArg {
16147 user,
16148 }
16149 }
16150}
16151
16152const MEMBERS_DEACTIVATE_BASE_ARG_FIELDS: &[&str] = &["user"];
16153impl MembersDeactivateBaseArg {
16154 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16155 map: V,
16156 ) -> Result<MembersDeactivateBaseArg, V::Error> {
16157 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16158 }
16159
16160 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16161 mut map: V,
16162 optional: bool,
16163 ) -> Result<Option<MembersDeactivateBaseArg>, V::Error> {
16164 let mut field_user = None;
16165 let mut nothing = true;
16166 while let Some(key) = map.next_key::<&str>()? {
16167 nothing = false;
16168 match key {
16169 "user" => {
16170 if field_user.is_some() {
16171 return Err(::serde::de::Error::duplicate_field("user"));
16172 }
16173 field_user = Some(map.next_value()?);
16174 }
16175 _ => {
16176 map.next_value::<::serde_json::Value>()?;
16178 }
16179 }
16180 }
16181 if optional && nothing {
16182 return Ok(None);
16183 }
16184 let result = MembersDeactivateBaseArg {
16185 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16186 };
16187 Ok(Some(result))
16188 }
16189
16190 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16191 &self,
16192 s: &mut S::SerializeStruct,
16193 ) -> Result<(), S::Error> {
16194 use serde::ser::SerializeStruct;
16195 s.serialize_field("user", &self.user)?;
16196 Ok(())
16197 }
16198}
16199
16200impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateBaseArg {
16201 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16202 use serde::de::{MapAccess, Visitor};
16204 struct StructVisitor;
16205 impl<'de> Visitor<'de> for StructVisitor {
16206 type Value = MembersDeactivateBaseArg;
16207 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16208 f.write_str("a MembersDeactivateBaseArg struct")
16209 }
16210 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16211 MembersDeactivateBaseArg::internal_deserialize(map)
16212 }
16213 }
16214 deserializer.deserialize_struct("MembersDeactivateBaseArg", MEMBERS_DEACTIVATE_BASE_ARG_FIELDS, StructVisitor)
16215 }
16216}
16217
16218impl ::serde::ser::Serialize for MembersDeactivateBaseArg {
16219 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16220 use serde::ser::SerializeStruct;
16222 let mut s = serializer.serialize_struct("MembersDeactivateBaseArg", 1)?;
16223 self.internal_serialize::<S>(&mut s)?;
16224 s.end()
16225 }
16226}
16227
16228#[derive(Debug, Clone, PartialEq, Eq)]
16229#[non_exhaustive] pub enum MembersDeactivateError {
16231 UserNotFound,
16234 UserNotInTeam,
16236 Other,
16239}
16240
16241impl<'de> ::serde::de::Deserialize<'de> for MembersDeactivateError {
16242 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16243 use serde::de::{self, MapAccess, Visitor};
16245 struct EnumVisitor;
16246 impl<'de> Visitor<'de> for EnumVisitor {
16247 type Value = MembersDeactivateError;
16248 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16249 f.write_str("a MembersDeactivateError structure")
16250 }
16251 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16252 let tag: &str = match map.next_key()? {
16253 Some(".tag") => map.next_value()?,
16254 _ => return Err(de::Error::missing_field(".tag"))
16255 };
16256 let value = match tag {
16257 "user_not_found" => MembersDeactivateError::UserNotFound,
16258 "user_not_in_team" => MembersDeactivateError::UserNotInTeam,
16259 _ => MembersDeactivateError::Other,
16260 };
16261 crate::eat_json_fields(&mut map)?;
16262 Ok(value)
16263 }
16264 }
16265 const VARIANTS: &[&str] = &["user_not_found",
16266 "user_not_in_team",
16267 "other"];
16268 deserializer.deserialize_struct("MembersDeactivateError", VARIANTS, EnumVisitor)
16269 }
16270}
16271
16272impl ::serde::ser::Serialize for MembersDeactivateError {
16273 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16274 use serde::ser::SerializeStruct;
16276 match self {
16277 MembersDeactivateError::UserNotFound => {
16278 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
16280 s.serialize_field(".tag", "user_not_found")?;
16281 s.end()
16282 }
16283 MembersDeactivateError::UserNotInTeam => {
16284 let mut s = serializer.serialize_struct("MembersDeactivateError", 1)?;
16286 s.serialize_field(".tag", "user_not_in_team")?;
16287 s.end()
16288 }
16289 MembersDeactivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16290 }
16291 }
16292}
16293
16294impl ::std::error::Error for MembersDeactivateError {
16295}
16296
16297impl ::std::fmt::Display for MembersDeactivateError {
16298 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16299 match self {
16300 MembersDeactivateError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16301 MembersDeactivateError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16302 _ => write!(f, "{:?}", *self),
16303 }
16304 }
16305}
16306
16307impl From<UserSelectorError> for MembersDeactivateError {
16309 fn from(parent: UserSelectorError) -> Self {
16310 match parent {
16311 UserSelectorError::UserNotFound => MembersDeactivateError::UserNotFound,
16312 }
16313 }
16314}
16315#[derive(Debug, Clone, PartialEq, Eq)]
16316#[non_exhaustive] pub struct MembersDeleteProfilePhotoArg {
16318 pub user: UserSelectorArg,
16320}
16321
16322impl MembersDeleteProfilePhotoArg {
16323 pub fn new(user: UserSelectorArg) -> Self {
16324 MembersDeleteProfilePhotoArg {
16325 user,
16326 }
16327 }
16328}
16329
16330const MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user"];
16331impl MembersDeleteProfilePhotoArg {
16332 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16333 map: V,
16334 ) -> Result<MembersDeleteProfilePhotoArg, V::Error> {
16335 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16336 }
16337
16338 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16339 mut map: V,
16340 optional: bool,
16341 ) -> Result<Option<MembersDeleteProfilePhotoArg>, V::Error> {
16342 let mut field_user = None;
16343 let mut nothing = true;
16344 while let Some(key) = map.next_key::<&str>()? {
16345 nothing = false;
16346 match key {
16347 "user" => {
16348 if field_user.is_some() {
16349 return Err(::serde::de::Error::duplicate_field("user"));
16350 }
16351 field_user = Some(map.next_value()?);
16352 }
16353 _ => {
16354 map.next_value::<::serde_json::Value>()?;
16356 }
16357 }
16358 }
16359 if optional && nothing {
16360 return Ok(None);
16361 }
16362 let result = MembersDeleteProfilePhotoArg {
16363 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
16364 };
16365 Ok(Some(result))
16366 }
16367
16368 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16369 &self,
16370 s: &mut S::SerializeStruct,
16371 ) -> Result<(), S::Error> {
16372 use serde::ser::SerializeStruct;
16373 s.serialize_field("user", &self.user)?;
16374 Ok(())
16375 }
16376}
16377
16378impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoArg {
16379 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16380 use serde::de::{MapAccess, Visitor};
16382 struct StructVisitor;
16383 impl<'de> Visitor<'de> for StructVisitor {
16384 type Value = MembersDeleteProfilePhotoArg;
16385 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16386 f.write_str("a MembersDeleteProfilePhotoArg struct")
16387 }
16388 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16389 MembersDeleteProfilePhotoArg::internal_deserialize(map)
16390 }
16391 }
16392 deserializer.deserialize_struct("MembersDeleteProfilePhotoArg", MEMBERS_DELETE_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
16393 }
16394}
16395
16396impl ::serde::ser::Serialize for MembersDeleteProfilePhotoArg {
16397 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16398 use serde::ser::SerializeStruct;
16400 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoArg", 1)?;
16401 self.internal_serialize::<S>(&mut s)?;
16402 s.end()
16403 }
16404}
16405
16406#[derive(Debug, Clone, PartialEq, Eq)]
16407#[non_exhaustive] pub enum MembersDeleteProfilePhotoError {
16409 UserNotFound,
16412 UserNotInTeam,
16414 SetProfileDisallowed,
16416 Other,
16419}
16420
16421impl<'de> ::serde::de::Deserialize<'de> for MembersDeleteProfilePhotoError {
16422 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16423 use serde::de::{self, MapAccess, Visitor};
16425 struct EnumVisitor;
16426 impl<'de> Visitor<'de> for EnumVisitor {
16427 type Value = MembersDeleteProfilePhotoError;
16428 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16429 f.write_str("a MembersDeleteProfilePhotoError structure")
16430 }
16431 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16432 let tag: &str = match map.next_key()? {
16433 Some(".tag") => map.next_value()?,
16434 _ => return Err(de::Error::missing_field(".tag"))
16435 };
16436 let value = match tag {
16437 "user_not_found" => MembersDeleteProfilePhotoError::UserNotFound,
16438 "user_not_in_team" => MembersDeleteProfilePhotoError::UserNotInTeam,
16439 "set_profile_disallowed" => MembersDeleteProfilePhotoError::SetProfileDisallowed,
16440 _ => MembersDeleteProfilePhotoError::Other,
16441 };
16442 crate::eat_json_fields(&mut map)?;
16443 Ok(value)
16444 }
16445 }
16446 const VARIANTS: &[&str] = &["user_not_found",
16447 "user_not_in_team",
16448 "set_profile_disallowed",
16449 "other"];
16450 deserializer.deserialize_struct("MembersDeleteProfilePhotoError", VARIANTS, EnumVisitor)
16451 }
16452}
16453
16454impl ::serde::ser::Serialize for MembersDeleteProfilePhotoError {
16455 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16456 use serde::ser::SerializeStruct;
16458 match self {
16459 MembersDeleteProfilePhotoError::UserNotFound => {
16460 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16462 s.serialize_field(".tag", "user_not_found")?;
16463 s.end()
16464 }
16465 MembersDeleteProfilePhotoError::UserNotInTeam => {
16466 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16468 s.serialize_field(".tag", "user_not_in_team")?;
16469 s.end()
16470 }
16471 MembersDeleteProfilePhotoError::SetProfileDisallowed => {
16472 let mut s = serializer.serialize_struct("MembersDeleteProfilePhotoError", 1)?;
16474 s.serialize_field(".tag", "set_profile_disallowed")?;
16475 s.end()
16476 }
16477 MembersDeleteProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16478 }
16479 }
16480}
16481
16482impl ::std::error::Error for MembersDeleteProfilePhotoError {
16483}
16484
16485impl ::std::fmt::Display for MembersDeleteProfilePhotoError {
16486 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16487 match self {
16488 MembersDeleteProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
16489 MembersDeleteProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
16490 MembersDeleteProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
16491 _ => write!(f, "{:?}", *self),
16492 }
16493 }
16494}
16495
16496impl From<MemberSelectorError> for MembersDeleteProfilePhotoError {
16498 fn from(parent: MemberSelectorError) -> Self {
16499 match parent {
16500 MemberSelectorError::UserNotFound => MembersDeleteProfilePhotoError::UserNotFound,
16501 MemberSelectorError::UserNotInTeam => MembersDeleteProfilePhotoError::UserNotInTeam,
16502 }
16503 }
16504}
16505#[derive(Debug, Clone, PartialEq, Eq)]
16508#[non_exhaustive] pub struct MembersGetAvailableTeamMemberRolesResult {
16510 pub roles: Vec<TeamMemberRole>,
16512}
16513
16514impl MembersGetAvailableTeamMemberRolesResult {
16515 pub fn new(roles: Vec<TeamMemberRole>) -> Self {
16516 MembersGetAvailableTeamMemberRolesResult {
16517 roles,
16518 }
16519 }
16520}
16521
16522const MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS: &[&str] = &["roles"];
16523impl MembersGetAvailableTeamMemberRolesResult {
16524 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16525 map: V,
16526 ) -> Result<MembersGetAvailableTeamMemberRolesResult, V::Error> {
16527 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16528 }
16529
16530 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16531 mut map: V,
16532 optional: bool,
16533 ) -> Result<Option<MembersGetAvailableTeamMemberRolesResult>, V::Error> {
16534 let mut field_roles = None;
16535 let mut nothing = true;
16536 while let Some(key) = map.next_key::<&str>()? {
16537 nothing = false;
16538 match key {
16539 "roles" => {
16540 if field_roles.is_some() {
16541 return Err(::serde::de::Error::duplicate_field("roles"));
16542 }
16543 field_roles = Some(map.next_value()?);
16544 }
16545 _ => {
16546 map.next_value::<::serde_json::Value>()?;
16548 }
16549 }
16550 }
16551 if optional && nothing {
16552 return Ok(None);
16553 }
16554 let result = MembersGetAvailableTeamMemberRolesResult {
16555 roles: field_roles.ok_or_else(|| ::serde::de::Error::missing_field("roles"))?,
16556 };
16557 Ok(Some(result))
16558 }
16559
16560 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16561 &self,
16562 s: &mut S::SerializeStruct,
16563 ) -> Result<(), S::Error> {
16564 use serde::ser::SerializeStruct;
16565 s.serialize_field("roles", &self.roles)?;
16566 Ok(())
16567 }
16568}
16569
16570impl<'de> ::serde::de::Deserialize<'de> for MembersGetAvailableTeamMemberRolesResult {
16571 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16572 use serde::de::{MapAccess, Visitor};
16574 struct StructVisitor;
16575 impl<'de> Visitor<'de> for StructVisitor {
16576 type Value = MembersGetAvailableTeamMemberRolesResult;
16577 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16578 f.write_str("a MembersGetAvailableTeamMemberRolesResult struct")
16579 }
16580 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16581 MembersGetAvailableTeamMemberRolesResult::internal_deserialize(map)
16582 }
16583 }
16584 deserializer.deserialize_struct("MembersGetAvailableTeamMemberRolesResult", MEMBERS_GET_AVAILABLE_TEAM_MEMBER_ROLES_RESULT_FIELDS, StructVisitor)
16585 }
16586}
16587
16588impl ::serde::ser::Serialize for MembersGetAvailableTeamMemberRolesResult {
16589 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16590 use serde::ser::SerializeStruct;
16592 let mut s = serializer.serialize_struct("MembersGetAvailableTeamMemberRolesResult", 1)?;
16593 self.internal_serialize::<S>(&mut s)?;
16594 s.end()
16595 }
16596}
16597
16598#[derive(Debug, Clone, PartialEq, Eq)]
16599#[non_exhaustive] pub struct MembersGetInfoArgs {
16601 pub members: Vec<UserSelectorArg>,
16603}
16604
16605impl MembersGetInfoArgs {
16606 pub fn new(members: Vec<UserSelectorArg>) -> Self {
16607 MembersGetInfoArgs {
16608 members,
16609 }
16610 }
16611}
16612
16613const MEMBERS_GET_INFO_ARGS_FIELDS: &[&str] = &["members"];
16614impl MembersGetInfoArgs {
16615 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16616 map: V,
16617 ) -> Result<MembersGetInfoArgs, V::Error> {
16618 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16619 }
16620
16621 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16622 mut map: V,
16623 optional: bool,
16624 ) -> Result<Option<MembersGetInfoArgs>, V::Error> {
16625 let mut field_members = None;
16626 let mut nothing = true;
16627 while let Some(key) = map.next_key::<&str>()? {
16628 nothing = false;
16629 match key {
16630 "members" => {
16631 if field_members.is_some() {
16632 return Err(::serde::de::Error::duplicate_field("members"));
16633 }
16634 field_members = Some(map.next_value()?);
16635 }
16636 _ => {
16637 map.next_value::<::serde_json::Value>()?;
16639 }
16640 }
16641 }
16642 if optional && nothing {
16643 return Ok(None);
16644 }
16645 let result = MembersGetInfoArgs {
16646 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
16647 };
16648 Ok(Some(result))
16649 }
16650
16651 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
16652 &self,
16653 s: &mut S::SerializeStruct,
16654 ) -> Result<(), S::Error> {
16655 use serde::ser::SerializeStruct;
16656 s.serialize_field("members", &self.members)?;
16657 Ok(())
16658 }
16659}
16660
16661impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoArgs {
16662 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16663 use serde::de::{MapAccess, Visitor};
16665 struct StructVisitor;
16666 impl<'de> Visitor<'de> for StructVisitor {
16667 type Value = MembersGetInfoArgs;
16668 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16669 f.write_str("a MembersGetInfoArgs struct")
16670 }
16671 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
16672 MembersGetInfoArgs::internal_deserialize(map)
16673 }
16674 }
16675 deserializer.deserialize_struct("MembersGetInfoArgs", MEMBERS_GET_INFO_ARGS_FIELDS, StructVisitor)
16676 }
16677}
16678
16679impl ::serde::ser::Serialize for MembersGetInfoArgs {
16680 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16681 use serde::ser::SerializeStruct;
16683 let mut s = serializer.serialize_struct("MembersGetInfoArgs", 1)?;
16684 self.internal_serialize::<S>(&mut s)?;
16685 s.end()
16686 }
16687}
16688
16689
16690#[derive(Debug, Clone, PartialEq, Eq)]
16691#[non_exhaustive] pub enum MembersGetInfoError {
16693 Other,
16696}
16697
16698impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoError {
16699 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16700 use serde::de::{self, MapAccess, Visitor};
16702 struct EnumVisitor;
16703 impl<'de> Visitor<'de> for EnumVisitor {
16704 type Value = MembersGetInfoError;
16705 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16706 f.write_str("a MembersGetInfoError structure")
16707 }
16708 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16709 let tag: &str = match map.next_key()? {
16710 Some(".tag") => map.next_value()?,
16711 _ => return Err(de::Error::missing_field(".tag"))
16712 };
16713 let _ = tag;
16715 crate::eat_json_fields(&mut map)?;
16716 Ok(MembersGetInfoError::Other)
16717 }
16718 }
16719 const VARIANTS: &[&str] = &["other"];
16720 deserializer.deserialize_struct("MembersGetInfoError", VARIANTS, EnumVisitor)
16721 }
16722}
16723
16724impl ::serde::ser::Serialize for MembersGetInfoError {
16725 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16726 #![allow(unused_variables)]
16728 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
16729 }
16730}
16731
16732impl ::std::error::Error for MembersGetInfoError {
16733}
16734
16735impl ::std::fmt::Display for MembersGetInfoError {
16736 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16737 write!(f, "{:?}", *self)
16738 }
16739}
16740
16741#[derive(Debug, Clone, PartialEq, Eq)]
16744pub enum MembersGetInfoItem {
16745 IdNotFound(String),
16751 MemberInfo(TeamMemberInfo),
16753}
16754
16755impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItem {
16756 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16757 use serde::de::{self, MapAccess, Visitor};
16759 struct EnumVisitor;
16760 impl<'de> Visitor<'de> for EnumVisitor {
16761 type Value = MembersGetInfoItem;
16762 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16763 f.write_str("a MembersGetInfoItem structure")
16764 }
16765 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16766 let tag: &str = match map.next_key()? {
16767 Some(".tag") => map.next_value()?,
16768 _ => return Err(de::Error::missing_field(".tag"))
16769 };
16770 let value = match tag {
16771 "id_not_found" => {
16772 match map.next_key()? {
16773 Some("id_not_found") => MembersGetInfoItem::IdNotFound(map.next_value()?),
16774 None => return Err(de::Error::missing_field("id_not_found")),
16775 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16776 }
16777 }
16778 "member_info" => MembersGetInfoItem::MemberInfo(TeamMemberInfo::internal_deserialize(&mut map)?),
16779 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
16780 };
16781 crate::eat_json_fields(&mut map)?;
16782 Ok(value)
16783 }
16784 }
16785 const VARIANTS: &[&str] = &["id_not_found",
16786 "member_info"];
16787 deserializer.deserialize_struct("MembersGetInfoItem", VARIANTS, EnumVisitor)
16788 }
16789}
16790
16791impl ::serde::ser::Serialize for MembersGetInfoItem {
16792 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16793 use serde::ser::SerializeStruct;
16795 match self {
16796 MembersGetInfoItem::IdNotFound(x) => {
16797 let mut s = serializer.serialize_struct("MembersGetInfoItem", 2)?;
16799 s.serialize_field(".tag", "id_not_found")?;
16800 s.serialize_field("id_not_found", x)?;
16801 s.end()
16802 }
16803 MembersGetInfoItem::MemberInfo(x) => {
16804 let mut s = serializer.serialize_struct("MembersGetInfoItem", 3)?;
16806 s.serialize_field(".tag", "member_info")?;
16807 x.internal_serialize::<S>(&mut s)?;
16808 s.end()
16809 }
16810 }
16811 }
16812}
16813
16814impl From<MembersGetInfoItemBase> for MembersGetInfoItem {
16816 fn from(parent: MembersGetInfoItemBase) -> Self {
16817 match parent {
16818 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItem::IdNotFound(x),
16819 }
16820 }
16821}
16822#[derive(Debug, Clone, PartialEq, Eq)]
16823pub enum MembersGetInfoItemBase {
16824 IdNotFound(String),
16830}
16831
16832impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemBase {
16833 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16834 use serde::de::{self, MapAccess, Visitor};
16836 struct EnumVisitor;
16837 impl<'de> Visitor<'de> for EnumVisitor {
16838 type Value = MembersGetInfoItemBase;
16839 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16840 f.write_str("a MembersGetInfoItemBase structure")
16841 }
16842 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16843 let tag: &str = match map.next_key()? {
16844 Some(".tag") => map.next_value()?,
16845 _ => return Err(de::Error::missing_field(".tag"))
16846 };
16847 let value = match tag {
16848 "id_not_found" => {
16849 match map.next_key()? {
16850 Some("id_not_found") => MembersGetInfoItemBase::IdNotFound(map.next_value()?),
16851 None => return Err(de::Error::missing_field("id_not_found")),
16852 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16853 }
16854 }
16855 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
16856 };
16857 crate::eat_json_fields(&mut map)?;
16858 Ok(value)
16859 }
16860 }
16861 const VARIANTS: &[&str] = &["id_not_found"];
16862 deserializer.deserialize_struct("MembersGetInfoItemBase", VARIANTS, EnumVisitor)
16863 }
16864}
16865
16866impl ::serde::ser::Serialize for MembersGetInfoItemBase {
16867 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16868 use serde::ser::SerializeStruct;
16870 match self {
16871 MembersGetInfoItemBase::IdNotFound(x) => {
16872 let mut s = serializer.serialize_struct("MembersGetInfoItemBase", 2)?;
16874 s.serialize_field(".tag", "id_not_found")?;
16875 s.serialize_field("id_not_found", x)?;
16876 s.end()
16877 }
16878 }
16879 }
16880}
16881
16882#[derive(Debug, Clone, PartialEq, Eq)]
16885#[non_exhaustive] pub enum MembersGetInfoItemV2 {
16887 IdNotFound(String),
16893 MemberInfo(TeamMemberInfoV2),
16895 Other,
16898}
16899
16900impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoItemV2 {
16901 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
16902 use serde::de::{self, MapAccess, Visitor};
16904 struct EnumVisitor;
16905 impl<'de> Visitor<'de> for EnumVisitor {
16906 type Value = MembersGetInfoItemV2;
16907 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
16908 f.write_str("a MembersGetInfoItemV2 structure")
16909 }
16910 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
16911 let tag: &str = match map.next_key()? {
16912 Some(".tag") => map.next_value()?,
16913 _ => return Err(de::Error::missing_field(".tag"))
16914 };
16915 let value = match tag {
16916 "id_not_found" => {
16917 match map.next_key()? {
16918 Some("id_not_found") => MembersGetInfoItemV2::IdNotFound(map.next_value()?),
16919 None => return Err(de::Error::missing_field("id_not_found")),
16920 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
16921 }
16922 }
16923 "member_info" => MembersGetInfoItemV2::MemberInfo(TeamMemberInfoV2::internal_deserialize(&mut map)?),
16924 _ => MembersGetInfoItemV2::Other,
16925 };
16926 crate::eat_json_fields(&mut map)?;
16927 Ok(value)
16928 }
16929 }
16930 const VARIANTS: &[&str] = &["id_not_found",
16931 "member_info",
16932 "other"];
16933 deserializer.deserialize_struct("MembersGetInfoItemV2", VARIANTS, EnumVisitor)
16934 }
16935}
16936
16937impl ::serde::ser::Serialize for MembersGetInfoItemV2 {
16938 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
16939 use serde::ser::SerializeStruct;
16941 match self {
16942 MembersGetInfoItemV2::IdNotFound(x) => {
16943 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 2)?;
16945 s.serialize_field(".tag", "id_not_found")?;
16946 s.serialize_field("id_not_found", x)?;
16947 s.end()
16948 }
16949 MembersGetInfoItemV2::MemberInfo(x) => {
16950 let mut s = serializer.serialize_struct("MembersGetInfoItemV2", 3)?;
16952 s.serialize_field(".tag", "member_info")?;
16953 x.internal_serialize::<S>(&mut s)?;
16954 s.end()
16955 }
16956 MembersGetInfoItemV2::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
16957 }
16958 }
16959}
16960
16961impl From<MembersGetInfoItemBase> for MembersGetInfoItemV2 {
16963 fn from(parent: MembersGetInfoItemBase) -> Self {
16964 match parent {
16965 MembersGetInfoItemBase::IdNotFound(x) => MembersGetInfoItemV2::IdNotFound(x),
16966 }
16967 }
16968}
16969#[derive(Debug, Clone, PartialEq, Eq)]
16970#[non_exhaustive] pub struct MembersGetInfoV2Arg {
16972 pub members: Vec<UserSelectorArg>,
16974}
16975
16976impl MembersGetInfoV2Arg {
16977 pub fn new(members: Vec<UserSelectorArg>) -> Self {
16978 MembersGetInfoV2Arg {
16979 members,
16980 }
16981 }
16982}
16983
16984const MEMBERS_GET_INFO_V2_ARG_FIELDS: &[&str] = &["members"];
16985impl MembersGetInfoV2Arg {
16986 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
16987 map: V,
16988 ) -> Result<MembersGetInfoV2Arg, V::Error> {
16989 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
16990 }
16991
16992 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
16993 mut map: V,
16994 optional: bool,
16995 ) -> Result<Option<MembersGetInfoV2Arg>, V::Error> {
16996 let mut field_members = None;
16997 let mut nothing = true;
16998 while let Some(key) = map.next_key::<&str>()? {
16999 nothing = false;
17000 match key {
17001 "members" => {
17002 if field_members.is_some() {
17003 return Err(::serde::de::Error::duplicate_field("members"));
17004 }
17005 field_members = Some(map.next_value()?);
17006 }
17007 _ => {
17008 map.next_value::<::serde_json::Value>()?;
17010 }
17011 }
17012 }
17013 if optional && nothing {
17014 return Ok(None);
17015 }
17016 let result = MembersGetInfoV2Arg {
17017 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17018 };
17019 Ok(Some(result))
17020 }
17021
17022 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17023 &self,
17024 s: &mut S::SerializeStruct,
17025 ) -> Result<(), S::Error> {
17026 use serde::ser::SerializeStruct;
17027 s.serialize_field("members", &self.members)?;
17028 Ok(())
17029 }
17030}
17031
17032impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Arg {
17033 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17034 use serde::de::{MapAccess, Visitor};
17036 struct StructVisitor;
17037 impl<'de> Visitor<'de> for StructVisitor {
17038 type Value = MembersGetInfoV2Arg;
17039 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17040 f.write_str("a MembersGetInfoV2Arg struct")
17041 }
17042 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17043 MembersGetInfoV2Arg::internal_deserialize(map)
17044 }
17045 }
17046 deserializer.deserialize_struct("MembersGetInfoV2Arg", MEMBERS_GET_INFO_V2_ARG_FIELDS, StructVisitor)
17047 }
17048}
17049
17050impl ::serde::ser::Serialize for MembersGetInfoV2Arg {
17051 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17052 use serde::ser::SerializeStruct;
17054 let mut s = serializer.serialize_struct("MembersGetInfoV2Arg", 1)?;
17055 self.internal_serialize::<S>(&mut s)?;
17056 s.end()
17057 }
17058}
17059
17060#[derive(Debug, Clone, PartialEq, Eq)]
17061#[non_exhaustive] pub struct MembersGetInfoV2Result {
17063 pub members_info: Vec<MembersGetInfoItemV2>,
17065}
17066
17067impl MembersGetInfoV2Result {
17068 pub fn new(members_info: Vec<MembersGetInfoItemV2>) -> Self {
17069 MembersGetInfoV2Result {
17070 members_info,
17071 }
17072 }
17073}
17074
17075const MEMBERS_GET_INFO_V2_RESULT_FIELDS: &[&str] = &["members_info"];
17076impl MembersGetInfoV2Result {
17077 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17078 map: V,
17079 ) -> Result<MembersGetInfoV2Result, V::Error> {
17080 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17081 }
17082
17083 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17084 mut map: V,
17085 optional: bool,
17086 ) -> Result<Option<MembersGetInfoV2Result>, V::Error> {
17087 let mut field_members_info = None;
17088 let mut nothing = true;
17089 while let Some(key) = map.next_key::<&str>()? {
17090 nothing = false;
17091 match key {
17092 "members_info" => {
17093 if field_members_info.is_some() {
17094 return Err(::serde::de::Error::duplicate_field("members_info"));
17095 }
17096 field_members_info = Some(map.next_value()?);
17097 }
17098 _ => {
17099 map.next_value::<::serde_json::Value>()?;
17101 }
17102 }
17103 }
17104 if optional && nothing {
17105 return Ok(None);
17106 }
17107 let result = MembersGetInfoV2Result {
17108 members_info: field_members_info.ok_or_else(|| ::serde::de::Error::missing_field("members_info"))?,
17109 };
17110 Ok(Some(result))
17111 }
17112
17113 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17114 &self,
17115 s: &mut S::SerializeStruct,
17116 ) -> Result<(), S::Error> {
17117 use serde::ser::SerializeStruct;
17118 s.serialize_field("members_info", &self.members_info)?;
17119 Ok(())
17120 }
17121}
17122
17123impl<'de> ::serde::de::Deserialize<'de> for MembersGetInfoV2Result {
17124 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17125 use serde::de::{MapAccess, Visitor};
17127 struct StructVisitor;
17128 impl<'de> Visitor<'de> for StructVisitor {
17129 type Value = MembersGetInfoV2Result;
17130 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17131 f.write_str("a MembersGetInfoV2Result struct")
17132 }
17133 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17134 MembersGetInfoV2Result::internal_deserialize(map)
17135 }
17136 }
17137 deserializer.deserialize_struct("MembersGetInfoV2Result", MEMBERS_GET_INFO_V2_RESULT_FIELDS, StructVisitor)
17138 }
17139}
17140
17141impl ::serde::ser::Serialize for MembersGetInfoV2Result {
17142 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17143 use serde::ser::SerializeStruct;
17145 let mut s = serializer.serialize_struct("MembersGetInfoV2Result", 1)?;
17146 self.internal_serialize::<S>(&mut s)?;
17147 s.end()
17148 }
17149}
17150
17151#[derive(Debug, Clone, PartialEq, Eq)]
17152#[non_exhaustive] pub struct MembersInfo {
17154 pub team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
17156 pub permanently_deleted_users: u64,
17158}
17159
17160impl MembersInfo {
17161 pub fn new(
17162 team_member_ids: Vec<crate::types::team_common::TeamMemberId>,
17163 permanently_deleted_users: u64,
17164 ) -> Self {
17165 MembersInfo {
17166 team_member_ids,
17167 permanently_deleted_users,
17168 }
17169 }
17170}
17171
17172const MEMBERS_INFO_FIELDS: &[&str] = &["team_member_ids",
17173 "permanently_deleted_users"];
17174impl MembersInfo {
17175 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17176 map: V,
17177 ) -> Result<MembersInfo, V::Error> {
17178 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17179 }
17180
17181 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17182 mut map: V,
17183 optional: bool,
17184 ) -> Result<Option<MembersInfo>, V::Error> {
17185 let mut field_team_member_ids = None;
17186 let mut field_permanently_deleted_users = None;
17187 let mut nothing = true;
17188 while let Some(key) = map.next_key::<&str>()? {
17189 nothing = false;
17190 match key {
17191 "team_member_ids" => {
17192 if field_team_member_ids.is_some() {
17193 return Err(::serde::de::Error::duplicate_field("team_member_ids"));
17194 }
17195 field_team_member_ids = Some(map.next_value()?);
17196 }
17197 "permanently_deleted_users" => {
17198 if field_permanently_deleted_users.is_some() {
17199 return Err(::serde::de::Error::duplicate_field("permanently_deleted_users"));
17200 }
17201 field_permanently_deleted_users = Some(map.next_value()?);
17202 }
17203 _ => {
17204 map.next_value::<::serde_json::Value>()?;
17206 }
17207 }
17208 }
17209 if optional && nothing {
17210 return Ok(None);
17211 }
17212 let result = MembersInfo {
17213 team_member_ids: field_team_member_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_member_ids"))?,
17214 permanently_deleted_users: field_permanently_deleted_users.ok_or_else(|| ::serde::de::Error::missing_field("permanently_deleted_users"))?,
17215 };
17216 Ok(Some(result))
17217 }
17218
17219 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17220 &self,
17221 s: &mut S::SerializeStruct,
17222 ) -> Result<(), S::Error> {
17223 use serde::ser::SerializeStruct;
17224 s.serialize_field("team_member_ids", &self.team_member_ids)?;
17225 s.serialize_field("permanently_deleted_users", &self.permanently_deleted_users)?;
17226 Ok(())
17227 }
17228}
17229
17230impl<'de> ::serde::de::Deserialize<'de> for MembersInfo {
17231 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17232 use serde::de::{MapAccess, Visitor};
17234 struct StructVisitor;
17235 impl<'de> Visitor<'de> for StructVisitor {
17236 type Value = MembersInfo;
17237 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17238 f.write_str("a MembersInfo struct")
17239 }
17240 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17241 MembersInfo::internal_deserialize(map)
17242 }
17243 }
17244 deserializer.deserialize_struct("MembersInfo", MEMBERS_INFO_FIELDS, StructVisitor)
17245 }
17246}
17247
17248impl ::serde::ser::Serialize for MembersInfo {
17249 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17250 use serde::ser::SerializeStruct;
17252 let mut s = serializer.serialize_struct("MembersInfo", 2)?;
17253 self.internal_serialize::<S>(&mut s)?;
17254 s.end()
17255 }
17256}
17257
17258#[derive(Debug, Clone, PartialEq, Eq)]
17259#[non_exhaustive] pub struct MembersListArg {
17261 pub limit: u32,
17263 pub include_removed: bool,
17265}
17266
17267impl Default for MembersListArg {
17268 fn default() -> Self {
17269 MembersListArg {
17270 limit: 1000,
17271 include_removed: false,
17272 }
17273 }
17274}
17275
17276impl MembersListArg {
17277 pub fn with_limit(mut self, value: u32) -> Self {
17278 self.limit = value;
17279 self
17280 }
17281
17282 pub fn with_include_removed(mut self, value: bool) -> Self {
17283 self.include_removed = value;
17284 self
17285 }
17286}
17287
17288const MEMBERS_LIST_ARG_FIELDS: &[&str] = &["limit",
17289 "include_removed"];
17290impl MembersListArg {
17291 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17293 mut map: V,
17294 ) -> Result<MembersListArg, V::Error> {
17295 let mut field_limit = None;
17296 let mut field_include_removed = None;
17297 while let Some(key) = map.next_key::<&str>()? {
17298 match key {
17299 "limit" => {
17300 if field_limit.is_some() {
17301 return Err(::serde::de::Error::duplicate_field("limit"));
17302 }
17303 field_limit = Some(map.next_value()?);
17304 }
17305 "include_removed" => {
17306 if field_include_removed.is_some() {
17307 return Err(::serde::de::Error::duplicate_field("include_removed"));
17308 }
17309 field_include_removed = Some(map.next_value()?);
17310 }
17311 _ => {
17312 map.next_value::<::serde_json::Value>()?;
17314 }
17315 }
17316 }
17317 let result = MembersListArg {
17318 limit: field_limit.unwrap_or(1000),
17319 include_removed: field_include_removed.unwrap_or(false),
17320 };
17321 Ok(result)
17322 }
17323
17324 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17325 &self,
17326 s: &mut S::SerializeStruct,
17327 ) -> Result<(), S::Error> {
17328 use serde::ser::SerializeStruct;
17329 if self.limit != 1000 {
17330 s.serialize_field("limit", &self.limit)?;
17331 }
17332 if self.include_removed {
17333 s.serialize_field("include_removed", &self.include_removed)?;
17334 }
17335 Ok(())
17336 }
17337}
17338
17339impl<'de> ::serde::de::Deserialize<'de> for MembersListArg {
17340 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17341 use serde::de::{MapAccess, Visitor};
17343 struct StructVisitor;
17344 impl<'de> Visitor<'de> for StructVisitor {
17345 type Value = MembersListArg;
17346 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17347 f.write_str("a MembersListArg struct")
17348 }
17349 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17350 MembersListArg::internal_deserialize(map)
17351 }
17352 }
17353 deserializer.deserialize_struct("MembersListArg", MEMBERS_LIST_ARG_FIELDS, StructVisitor)
17354 }
17355}
17356
17357impl ::serde::ser::Serialize for MembersListArg {
17358 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17359 use serde::ser::SerializeStruct;
17361 let mut s = serializer.serialize_struct("MembersListArg", 2)?;
17362 self.internal_serialize::<S>(&mut s)?;
17363 s.end()
17364 }
17365}
17366
17367#[derive(Debug, Clone, PartialEq, Eq)]
17368#[non_exhaustive] pub struct MembersListContinueArg {
17370 pub cursor: String,
17372}
17373
17374impl MembersListContinueArg {
17375 pub fn new(cursor: String) -> Self {
17376 MembersListContinueArg {
17377 cursor,
17378 }
17379 }
17380}
17381
17382const MEMBERS_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
17383impl MembersListContinueArg {
17384 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17385 map: V,
17386 ) -> Result<MembersListContinueArg, V::Error> {
17387 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17388 }
17389
17390 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17391 mut map: V,
17392 optional: bool,
17393 ) -> Result<Option<MembersListContinueArg>, V::Error> {
17394 let mut field_cursor = None;
17395 let mut nothing = true;
17396 while let Some(key) = map.next_key::<&str>()? {
17397 nothing = false;
17398 match key {
17399 "cursor" => {
17400 if field_cursor.is_some() {
17401 return Err(::serde::de::Error::duplicate_field("cursor"));
17402 }
17403 field_cursor = Some(map.next_value()?);
17404 }
17405 _ => {
17406 map.next_value::<::serde_json::Value>()?;
17408 }
17409 }
17410 }
17411 if optional && nothing {
17412 return Ok(None);
17413 }
17414 let result = MembersListContinueArg {
17415 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17416 };
17417 Ok(Some(result))
17418 }
17419
17420 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17421 &self,
17422 s: &mut S::SerializeStruct,
17423 ) -> Result<(), S::Error> {
17424 use serde::ser::SerializeStruct;
17425 s.serialize_field("cursor", &self.cursor)?;
17426 Ok(())
17427 }
17428}
17429
17430impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueArg {
17431 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17432 use serde::de::{MapAccess, Visitor};
17434 struct StructVisitor;
17435 impl<'de> Visitor<'de> for StructVisitor {
17436 type Value = MembersListContinueArg;
17437 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17438 f.write_str("a MembersListContinueArg struct")
17439 }
17440 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17441 MembersListContinueArg::internal_deserialize(map)
17442 }
17443 }
17444 deserializer.deserialize_struct("MembersListContinueArg", MEMBERS_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
17445 }
17446}
17447
17448impl ::serde::ser::Serialize for MembersListContinueArg {
17449 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17450 use serde::ser::SerializeStruct;
17452 let mut s = serializer.serialize_struct("MembersListContinueArg", 1)?;
17453 self.internal_serialize::<S>(&mut s)?;
17454 s.end()
17455 }
17456}
17457
17458#[derive(Debug, Clone, PartialEq, Eq)]
17459#[non_exhaustive] pub enum MembersListContinueError {
17461 InvalidCursor,
17463 Other,
17466}
17467
17468impl<'de> ::serde::de::Deserialize<'de> for MembersListContinueError {
17469 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17470 use serde::de::{self, MapAccess, Visitor};
17472 struct EnumVisitor;
17473 impl<'de> Visitor<'de> for EnumVisitor {
17474 type Value = MembersListContinueError;
17475 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17476 f.write_str("a MembersListContinueError structure")
17477 }
17478 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17479 let tag: &str = match map.next_key()? {
17480 Some(".tag") => map.next_value()?,
17481 _ => return Err(de::Error::missing_field(".tag"))
17482 };
17483 let value = match tag {
17484 "invalid_cursor" => MembersListContinueError::InvalidCursor,
17485 _ => MembersListContinueError::Other,
17486 };
17487 crate::eat_json_fields(&mut map)?;
17488 Ok(value)
17489 }
17490 }
17491 const VARIANTS: &[&str] = &["invalid_cursor",
17492 "other"];
17493 deserializer.deserialize_struct("MembersListContinueError", VARIANTS, EnumVisitor)
17494 }
17495}
17496
17497impl ::serde::ser::Serialize for MembersListContinueError {
17498 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17499 use serde::ser::SerializeStruct;
17501 match self {
17502 MembersListContinueError::InvalidCursor => {
17503 let mut s = serializer.serialize_struct("MembersListContinueError", 1)?;
17505 s.serialize_field(".tag", "invalid_cursor")?;
17506 s.end()
17507 }
17508 MembersListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17509 }
17510 }
17511}
17512
17513impl ::std::error::Error for MembersListContinueError {
17514}
17515
17516impl ::std::fmt::Display for MembersListContinueError {
17517 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17518 match self {
17519 MembersListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
17520 _ => write!(f, "{:?}", *self),
17521 }
17522 }
17523}
17524
17525
17526#[derive(Debug, Clone, PartialEq, Eq)]
17527#[non_exhaustive] pub enum MembersListError {
17529 Other,
17532}
17533
17534impl<'de> ::serde::de::Deserialize<'de> for MembersListError {
17535 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17536 use serde::de::{self, MapAccess, Visitor};
17538 struct EnumVisitor;
17539 impl<'de> Visitor<'de> for EnumVisitor {
17540 type Value = MembersListError;
17541 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17542 f.write_str("a MembersListError structure")
17543 }
17544 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17545 let tag: &str = match map.next_key()? {
17546 Some(".tag") => map.next_value()?,
17547 _ => return Err(de::Error::missing_field(".tag"))
17548 };
17549 let _ = tag;
17551 crate::eat_json_fields(&mut map)?;
17552 Ok(MembersListError::Other)
17553 }
17554 }
17555 const VARIANTS: &[&str] = &["other"];
17556 deserializer.deserialize_struct("MembersListError", VARIANTS, EnumVisitor)
17557 }
17558}
17559
17560impl ::serde::ser::Serialize for MembersListError {
17561 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17562 #![allow(unused_variables)]
17564 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
17565 }
17566}
17567
17568impl ::std::error::Error for MembersListError {
17569}
17570
17571impl ::std::fmt::Display for MembersListError {
17572 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17573 write!(f, "{:?}", *self)
17574 }
17575}
17576
17577#[derive(Debug, Clone, PartialEq, Eq)]
17578#[non_exhaustive] pub struct MembersListResult {
17580 pub members: Vec<TeamMemberInfo>,
17582 pub cursor: String,
17585 pub has_more: bool,
17588}
17589
17590impl MembersListResult {
17591 pub fn new(members: Vec<TeamMemberInfo>, cursor: String, has_more: bool) -> Self {
17592 MembersListResult {
17593 members,
17594 cursor,
17595 has_more,
17596 }
17597 }
17598}
17599
17600const MEMBERS_LIST_RESULT_FIELDS: &[&str] = &["members",
17601 "cursor",
17602 "has_more"];
17603impl MembersListResult {
17604 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17605 map: V,
17606 ) -> Result<MembersListResult, V::Error> {
17607 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17608 }
17609
17610 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17611 mut map: V,
17612 optional: bool,
17613 ) -> Result<Option<MembersListResult>, V::Error> {
17614 let mut field_members = None;
17615 let mut field_cursor = None;
17616 let mut field_has_more = None;
17617 let mut nothing = true;
17618 while let Some(key) = map.next_key::<&str>()? {
17619 nothing = false;
17620 match key {
17621 "members" => {
17622 if field_members.is_some() {
17623 return Err(::serde::de::Error::duplicate_field("members"));
17624 }
17625 field_members = Some(map.next_value()?);
17626 }
17627 "cursor" => {
17628 if field_cursor.is_some() {
17629 return Err(::serde::de::Error::duplicate_field("cursor"));
17630 }
17631 field_cursor = Some(map.next_value()?);
17632 }
17633 "has_more" => {
17634 if field_has_more.is_some() {
17635 return Err(::serde::de::Error::duplicate_field("has_more"));
17636 }
17637 field_has_more = Some(map.next_value()?);
17638 }
17639 _ => {
17640 map.next_value::<::serde_json::Value>()?;
17642 }
17643 }
17644 }
17645 if optional && nothing {
17646 return Ok(None);
17647 }
17648 let result = MembersListResult {
17649 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17650 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17651 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
17652 };
17653 Ok(Some(result))
17654 }
17655
17656 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17657 &self,
17658 s: &mut S::SerializeStruct,
17659 ) -> Result<(), S::Error> {
17660 use serde::ser::SerializeStruct;
17661 s.serialize_field("members", &self.members)?;
17662 s.serialize_field("cursor", &self.cursor)?;
17663 s.serialize_field("has_more", &self.has_more)?;
17664 Ok(())
17665 }
17666}
17667
17668impl<'de> ::serde::de::Deserialize<'de> for MembersListResult {
17669 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17670 use serde::de::{MapAccess, Visitor};
17672 struct StructVisitor;
17673 impl<'de> Visitor<'de> for StructVisitor {
17674 type Value = MembersListResult;
17675 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17676 f.write_str("a MembersListResult struct")
17677 }
17678 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17679 MembersListResult::internal_deserialize(map)
17680 }
17681 }
17682 deserializer.deserialize_struct("MembersListResult", MEMBERS_LIST_RESULT_FIELDS, StructVisitor)
17683 }
17684}
17685
17686impl ::serde::ser::Serialize for MembersListResult {
17687 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17688 use serde::ser::SerializeStruct;
17690 let mut s = serializer.serialize_struct("MembersListResult", 3)?;
17691 self.internal_serialize::<S>(&mut s)?;
17692 s.end()
17693 }
17694}
17695
17696#[derive(Debug, Clone, PartialEq, Eq)]
17697#[non_exhaustive] pub struct MembersListV2Result {
17699 pub members: Vec<TeamMemberInfoV2>,
17701 pub cursor: String,
17704 pub has_more: bool,
17708}
17709
17710impl MembersListV2Result {
17711 pub fn new(members: Vec<TeamMemberInfoV2>, cursor: String, has_more: bool) -> Self {
17712 MembersListV2Result {
17713 members,
17714 cursor,
17715 has_more,
17716 }
17717 }
17718}
17719
17720const MEMBERS_LIST_V2_RESULT_FIELDS: &[&str] = &["members",
17721 "cursor",
17722 "has_more"];
17723impl MembersListV2Result {
17724 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17725 map: V,
17726 ) -> Result<MembersListV2Result, V::Error> {
17727 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17728 }
17729
17730 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17731 mut map: V,
17732 optional: bool,
17733 ) -> Result<Option<MembersListV2Result>, V::Error> {
17734 let mut field_members = None;
17735 let mut field_cursor = None;
17736 let mut field_has_more = None;
17737 let mut nothing = true;
17738 while let Some(key) = map.next_key::<&str>()? {
17739 nothing = false;
17740 match key {
17741 "members" => {
17742 if field_members.is_some() {
17743 return Err(::serde::de::Error::duplicate_field("members"));
17744 }
17745 field_members = Some(map.next_value()?);
17746 }
17747 "cursor" => {
17748 if field_cursor.is_some() {
17749 return Err(::serde::de::Error::duplicate_field("cursor"));
17750 }
17751 field_cursor = Some(map.next_value()?);
17752 }
17753 "has_more" => {
17754 if field_has_more.is_some() {
17755 return Err(::serde::de::Error::duplicate_field("has_more"));
17756 }
17757 field_has_more = Some(map.next_value()?);
17758 }
17759 _ => {
17760 map.next_value::<::serde_json::Value>()?;
17762 }
17763 }
17764 }
17765 if optional && nothing {
17766 return Ok(None);
17767 }
17768 let result = MembersListV2Result {
17769 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
17770 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
17771 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
17772 };
17773 Ok(Some(result))
17774 }
17775
17776 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17777 &self,
17778 s: &mut S::SerializeStruct,
17779 ) -> Result<(), S::Error> {
17780 use serde::ser::SerializeStruct;
17781 s.serialize_field("members", &self.members)?;
17782 s.serialize_field("cursor", &self.cursor)?;
17783 s.serialize_field("has_more", &self.has_more)?;
17784 Ok(())
17785 }
17786}
17787
17788impl<'de> ::serde::de::Deserialize<'de> for MembersListV2Result {
17789 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17790 use serde::de::{MapAccess, Visitor};
17792 struct StructVisitor;
17793 impl<'de> Visitor<'de> for StructVisitor {
17794 type Value = MembersListV2Result;
17795 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17796 f.write_str("a MembersListV2Result struct")
17797 }
17798 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17799 MembersListV2Result::internal_deserialize(map)
17800 }
17801 }
17802 deserializer.deserialize_struct("MembersListV2Result", MEMBERS_LIST_V2_RESULT_FIELDS, StructVisitor)
17803 }
17804}
17805
17806impl ::serde::ser::Serialize for MembersListV2Result {
17807 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17808 use serde::ser::SerializeStruct;
17810 let mut s = serializer.serialize_struct("MembersListV2Result", 3)?;
17811 self.internal_serialize::<S>(&mut s)?;
17812 s.end()
17813 }
17814}
17815
17816#[derive(Debug, Clone, PartialEq, Eq)]
17819#[non_exhaustive] pub struct MembersRecoverArg {
17821 pub user: UserSelectorArg,
17823}
17824
17825impl MembersRecoverArg {
17826 pub fn new(user: UserSelectorArg) -> Self {
17827 MembersRecoverArg {
17828 user,
17829 }
17830 }
17831}
17832
17833const MEMBERS_RECOVER_ARG_FIELDS: &[&str] = &["user"];
17834impl MembersRecoverArg {
17835 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
17836 map: V,
17837 ) -> Result<MembersRecoverArg, V::Error> {
17838 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
17839 }
17840
17841 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
17842 mut map: V,
17843 optional: bool,
17844 ) -> Result<Option<MembersRecoverArg>, V::Error> {
17845 let mut field_user = None;
17846 let mut nothing = true;
17847 while let Some(key) = map.next_key::<&str>()? {
17848 nothing = false;
17849 match key {
17850 "user" => {
17851 if field_user.is_some() {
17852 return Err(::serde::de::Error::duplicate_field("user"));
17853 }
17854 field_user = Some(map.next_value()?);
17855 }
17856 _ => {
17857 map.next_value::<::serde_json::Value>()?;
17859 }
17860 }
17861 }
17862 if optional && nothing {
17863 return Ok(None);
17864 }
17865 let result = MembersRecoverArg {
17866 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
17867 };
17868 Ok(Some(result))
17869 }
17870
17871 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
17872 &self,
17873 s: &mut S::SerializeStruct,
17874 ) -> Result<(), S::Error> {
17875 use serde::ser::SerializeStruct;
17876 s.serialize_field("user", &self.user)?;
17877 Ok(())
17878 }
17879}
17880
17881impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverArg {
17882 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17883 use serde::de::{MapAccess, Visitor};
17885 struct StructVisitor;
17886 impl<'de> Visitor<'de> for StructVisitor {
17887 type Value = MembersRecoverArg;
17888 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17889 f.write_str("a MembersRecoverArg struct")
17890 }
17891 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
17892 MembersRecoverArg::internal_deserialize(map)
17893 }
17894 }
17895 deserializer.deserialize_struct("MembersRecoverArg", MEMBERS_RECOVER_ARG_FIELDS, StructVisitor)
17896 }
17897}
17898
17899impl ::serde::ser::Serialize for MembersRecoverArg {
17900 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17901 use serde::ser::SerializeStruct;
17903 let mut s = serializer.serialize_struct("MembersRecoverArg", 1)?;
17904 self.internal_serialize::<S>(&mut s)?;
17905 s.end()
17906 }
17907}
17908
17909#[derive(Debug, Clone, PartialEq, Eq)]
17910#[non_exhaustive] pub enum MembersRecoverError {
17912 UserNotFound,
17915 UserUnrecoverable,
17917 UserNotInTeam,
17919 TeamLicenseLimit,
17921 Other,
17924}
17925
17926impl<'de> ::serde::de::Deserialize<'de> for MembersRecoverError {
17927 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
17928 use serde::de::{self, MapAccess, Visitor};
17930 struct EnumVisitor;
17931 impl<'de> Visitor<'de> for EnumVisitor {
17932 type Value = MembersRecoverError;
17933 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
17934 f.write_str("a MembersRecoverError structure")
17935 }
17936 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
17937 let tag: &str = match map.next_key()? {
17938 Some(".tag") => map.next_value()?,
17939 _ => return Err(de::Error::missing_field(".tag"))
17940 };
17941 let value = match tag {
17942 "user_not_found" => MembersRecoverError::UserNotFound,
17943 "user_unrecoverable" => MembersRecoverError::UserUnrecoverable,
17944 "user_not_in_team" => MembersRecoverError::UserNotInTeam,
17945 "team_license_limit" => MembersRecoverError::TeamLicenseLimit,
17946 _ => MembersRecoverError::Other,
17947 };
17948 crate::eat_json_fields(&mut map)?;
17949 Ok(value)
17950 }
17951 }
17952 const VARIANTS: &[&str] = &["user_not_found",
17953 "user_unrecoverable",
17954 "user_not_in_team",
17955 "team_license_limit",
17956 "other"];
17957 deserializer.deserialize_struct("MembersRecoverError", VARIANTS, EnumVisitor)
17958 }
17959}
17960
17961impl ::serde::ser::Serialize for MembersRecoverError {
17962 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
17963 use serde::ser::SerializeStruct;
17965 match self {
17966 MembersRecoverError::UserNotFound => {
17967 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
17969 s.serialize_field(".tag", "user_not_found")?;
17970 s.end()
17971 }
17972 MembersRecoverError::UserUnrecoverable => {
17973 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
17975 s.serialize_field(".tag", "user_unrecoverable")?;
17976 s.end()
17977 }
17978 MembersRecoverError::UserNotInTeam => {
17979 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
17981 s.serialize_field(".tag", "user_not_in_team")?;
17982 s.end()
17983 }
17984 MembersRecoverError::TeamLicenseLimit => {
17985 let mut s = serializer.serialize_struct("MembersRecoverError", 1)?;
17987 s.serialize_field(".tag", "team_license_limit")?;
17988 s.end()
17989 }
17990 MembersRecoverError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
17991 }
17992 }
17993}
17994
17995impl ::std::error::Error for MembersRecoverError {
17996}
17997
17998impl ::std::fmt::Display for MembersRecoverError {
17999 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18000 match self {
18001 MembersRecoverError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18002 MembersRecoverError::UserUnrecoverable => f.write_str("The user is not recoverable."),
18003 MembersRecoverError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18004 MembersRecoverError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
18005 _ => write!(f, "{:?}", *self),
18006 }
18007 }
18008}
18009
18010impl From<UserSelectorError> for MembersRecoverError {
18012 fn from(parent: UserSelectorError) -> Self {
18013 match parent {
18014 UserSelectorError::UserNotFound => MembersRecoverError::UserNotFound,
18015 }
18016 }
18017}
18018#[derive(Debug, Clone, PartialEq, Eq)]
18019#[non_exhaustive] pub struct MembersRemoveArg {
18021 pub user: UserSelectorArg,
18023 pub wipe_data: bool,
18025 pub transfer_dest_id: Option<UserSelectorArg>,
18027 pub transfer_admin_id: Option<UserSelectorArg>,
18030 pub keep_account: bool,
18034 pub retain_team_shares: bool,
18040}
18041
18042impl MembersRemoveArg {
18043 pub fn new(user: UserSelectorArg) -> Self {
18044 MembersRemoveArg {
18045 user,
18046 wipe_data: true,
18047 transfer_dest_id: None,
18048 transfer_admin_id: None,
18049 keep_account: false,
18050 retain_team_shares: false,
18051 }
18052 }
18053
18054 pub fn with_wipe_data(mut self, value: bool) -> Self {
18055 self.wipe_data = value;
18056 self
18057 }
18058
18059 pub fn with_transfer_dest_id(mut self, value: UserSelectorArg) -> Self {
18060 self.transfer_dest_id = Some(value);
18061 self
18062 }
18063
18064 pub fn with_transfer_admin_id(mut self, value: UserSelectorArg) -> Self {
18065 self.transfer_admin_id = Some(value);
18066 self
18067 }
18068
18069 pub fn with_keep_account(mut self, value: bool) -> Self {
18070 self.keep_account = value;
18071 self
18072 }
18073
18074 pub fn with_retain_team_shares(mut self, value: bool) -> Self {
18075 self.retain_team_shares = value;
18076 self
18077 }
18078}
18079
18080const MEMBERS_REMOVE_ARG_FIELDS: &[&str] = &["user",
18081 "wipe_data",
18082 "transfer_dest_id",
18083 "transfer_admin_id",
18084 "keep_account",
18085 "retain_team_shares"];
18086impl MembersRemoveArg {
18087 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18088 map: V,
18089 ) -> Result<MembersRemoveArg, V::Error> {
18090 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18091 }
18092
18093 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18094 mut map: V,
18095 optional: bool,
18096 ) -> Result<Option<MembersRemoveArg>, V::Error> {
18097 let mut field_user = None;
18098 let mut field_wipe_data = None;
18099 let mut field_transfer_dest_id = None;
18100 let mut field_transfer_admin_id = None;
18101 let mut field_keep_account = None;
18102 let mut field_retain_team_shares = None;
18103 let mut nothing = true;
18104 while let Some(key) = map.next_key::<&str>()? {
18105 nothing = false;
18106 match key {
18107 "user" => {
18108 if field_user.is_some() {
18109 return Err(::serde::de::Error::duplicate_field("user"));
18110 }
18111 field_user = Some(map.next_value()?);
18112 }
18113 "wipe_data" => {
18114 if field_wipe_data.is_some() {
18115 return Err(::serde::de::Error::duplicate_field("wipe_data"));
18116 }
18117 field_wipe_data = Some(map.next_value()?);
18118 }
18119 "transfer_dest_id" => {
18120 if field_transfer_dest_id.is_some() {
18121 return Err(::serde::de::Error::duplicate_field("transfer_dest_id"));
18122 }
18123 field_transfer_dest_id = Some(map.next_value()?);
18124 }
18125 "transfer_admin_id" => {
18126 if field_transfer_admin_id.is_some() {
18127 return Err(::serde::de::Error::duplicate_field("transfer_admin_id"));
18128 }
18129 field_transfer_admin_id = Some(map.next_value()?);
18130 }
18131 "keep_account" => {
18132 if field_keep_account.is_some() {
18133 return Err(::serde::de::Error::duplicate_field("keep_account"));
18134 }
18135 field_keep_account = Some(map.next_value()?);
18136 }
18137 "retain_team_shares" => {
18138 if field_retain_team_shares.is_some() {
18139 return Err(::serde::de::Error::duplicate_field("retain_team_shares"));
18140 }
18141 field_retain_team_shares = Some(map.next_value()?);
18142 }
18143 _ => {
18144 map.next_value::<::serde_json::Value>()?;
18146 }
18147 }
18148 }
18149 if optional && nothing {
18150 return Ok(None);
18151 }
18152 let result = MembersRemoveArg {
18153 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
18154 wipe_data: field_wipe_data.unwrap_or(true),
18155 transfer_dest_id: field_transfer_dest_id.and_then(Option::flatten),
18156 transfer_admin_id: field_transfer_admin_id.and_then(Option::flatten),
18157 keep_account: field_keep_account.unwrap_or(false),
18158 retain_team_shares: field_retain_team_shares.unwrap_or(false),
18159 };
18160 Ok(Some(result))
18161 }
18162
18163 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18164 &self,
18165 s: &mut S::SerializeStruct,
18166 ) -> Result<(), S::Error> {
18167 use serde::ser::SerializeStruct;
18168 s.serialize_field("user", &self.user)?;
18169 if !self.wipe_data {
18170 s.serialize_field("wipe_data", &self.wipe_data)?;
18171 }
18172 if let Some(val) = &self.transfer_dest_id {
18173 s.serialize_field("transfer_dest_id", val)?;
18174 }
18175 if let Some(val) = &self.transfer_admin_id {
18176 s.serialize_field("transfer_admin_id", val)?;
18177 }
18178 if self.keep_account {
18179 s.serialize_field("keep_account", &self.keep_account)?;
18180 }
18181 if self.retain_team_shares {
18182 s.serialize_field("retain_team_shares", &self.retain_team_shares)?;
18183 }
18184 Ok(())
18185 }
18186}
18187
18188impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveArg {
18189 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18190 use serde::de::{MapAccess, Visitor};
18192 struct StructVisitor;
18193 impl<'de> Visitor<'de> for StructVisitor {
18194 type Value = MembersRemoveArg;
18195 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18196 f.write_str("a MembersRemoveArg struct")
18197 }
18198 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18199 MembersRemoveArg::internal_deserialize(map)
18200 }
18201 }
18202 deserializer.deserialize_struct("MembersRemoveArg", MEMBERS_REMOVE_ARG_FIELDS, StructVisitor)
18203 }
18204}
18205
18206impl ::serde::ser::Serialize for MembersRemoveArg {
18207 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18208 use serde::ser::SerializeStruct;
18210 let mut s = serializer.serialize_struct("MembersRemoveArg", 6)?;
18211 self.internal_serialize::<S>(&mut s)?;
18212 s.end()
18213 }
18214}
18215
18216impl From<MembersRemoveArg> for MembersDeactivateArg {
18218 fn from(subtype: MembersRemoveArg) -> Self {
18219 Self {
18220 user: subtype.user,
18221 wipe_data: subtype.wipe_data,
18222 }
18223 }
18224}
18225#[derive(Debug, Clone, PartialEq, Eq)]
18226#[non_exhaustive] pub enum MembersRemoveError {
18228 UserNotFound,
18231 UserNotInTeam,
18233 RemovedAndTransferDestShouldDiffer,
18235 RemovedAndTransferAdminShouldDiffer,
18237 TransferDestUserNotFound,
18239 TransferDestUserNotInTeam,
18241 TransferAdminUserNotInTeam,
18243 TransferAdminUserNotFound,
18245 UnspecifiedTransferAdminId,
18247 TransferAdminIsNotAdmin,
18249 RecipientNotVerified,
18251 RemoveLastAdmin,
18253 CannotKeepAccountAndTransfer,
18255 CannotKeepAccountAndDeleteData,
18258 EmailAddressTooLongToBeDisabled,
18260 CannotKeepInvitedUserAccount,
18262 CannotRetainSharesWhenDataWiped,
18265 CannotRetainSharesWhenNoAccountKept,
18268 CannotRetainSharesWhenTeamExternalSharingOff,
18271 CannotKeepAccount,
18273 CannotKeepAccountUnderLegalHold,
18276 CannotKeepAccountRequiredToSignTos,
18279 Other,
18282}
18283
18284impl<'de> ::serde::de::Deserialize<'de> for MembersRemoveError {
18285 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18286 use serde::de::{self, MapAccess, Visitor};
18288 struct EnumVisitor;
18289 impl<'de> Visitor<'de> for EnumVisitor {
18290 type Value = MembersRemoveError;
18291 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18292 f.write_str("a MembersRemoveError structure")
18293 }
18294 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18295 let tag: &str = match map.next_key()? {
18296 Some(".tag") => map.next_value()?,
18297 _ => return Err(de::Error::missing_field(".tag"))
18298 };
18299 let value = match tag {
18300 "user_not_found" => MembersRemoveError::UserNotFound,
18301 "user_not_in_team" => MembersRemoveError::UserNotInTeam,
18302 "removed_and_transfer_dest_should_differ" => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
18303 "removed_and_transfer_admin_should_differ" => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
18304 "transfer_dest_user_not_found" => MembersRemoveError::TransferDestUserNotFound,
18305 "transfer_dest_user_not_in_team" => MembersRemoveError::TransferDestUserNotInTeam,
18306 "transfer_admin_user_not_in_team" => MembersRemoveError::TransferAdminUserNotInTeam,
18307 "transfer_admin_user_not_found" => MembersRemoveError::TransferAdminUserNotFound,
18308 "unspecified_transfer_admin_id" => MembersRemoveError::UnspecifiedTransferAdminId,
18309 "transfer_admin_is_not_admin" => MembersRemoveError::TransferAdminIsNotAdmin,
18310 "recipient_not_verified" => MembersRemoveError::RecipientNotVerified,
18311 "remove_last_admin" => MembersRemoveError::RemoveLastAdmin,
18312 "cannot_keep_account_and_transfer" => MembersRemoveError::CannotKeepAccountAndTransfer,
18313 "cannot_keep_account_and_delete_data" => MembersRemoveError::CannotKeepAccountAndDeleteData,
18314 "email_address_too_long_to_be_disabled" => MembersRemoveError::EmailAddressTooLongToBeDisabled,
18315 "cannot_keep_invited_user_account" => MembersRemoveError::CannotKeepInvitedUserAccount,
18316 "cannot_retain_shares_when_data_wiped" => MembersRemoveError::CannotRetainSharesWhenDataWiped,
18317 "cannot_retain_shares_when_no_account_kept" => MembersRemoveError::CannotRetainSharesWhenNoAccountKept,
18318 "cannot_retain_shares_when_team_external_sharing_off" => MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff,
18319 "cannot_keep_account" => MembersRemoveError::CannotKeepAccount,
18320 "cannot_keep_account_under_legal_hold" => MembersRemoveError::CannotKeepAccountUnderLegalHold,
18321 "cannot_keep_account_required_to_sign_tos" => MembersRemoveError::CannotKeepAccountRequiredToSignTos,
18322 _ => MembersRemoveError::Other,
18323 };
18324 crate::eat_json_fields(&mut map)?;
18325 Ok(value)
18326 }
18327 }
18328 const VARIANTS: &[&str] = &["user_not_found",
18329 "user_not_in_team",
18330 "other",
18331 "removed_and_transfer_dest_should_differ",
18332 "removed_and_transfer_admin_should_differ",
18333 "transfer_dest_user_not_found",
18334 "transfer_dest_user_not_in_team",
18335 "transfer_admin_user_not_in_team",
18336 "transfer_admin_user_not_found",
18337 "unspecified_transfer_admin_id",
18338 "transfer_admin_is_not_admin",
18339 "recipient_not_verified",
18340 "remove_last_admin",
18341 "cannot_keep_account_and_transfer",
18342 "cannot_keep_account_and_delete_data",
18343 "email_address_too_long_to_be_disabled",
18344 "cannot_keep_invited_user_account",
18345 "cannot_retain_shares_when_data_wiped",
18346 "cannot_retain_shares_when_no_account_kept",
18347 "cannot_retain_shares_when_team_external_sharing_off",
18348 "cannot_keep_account",
18349 "cannot_keep_account_under_legal_hold",
18350 "cannot_keep_account_required_to_sign_tos"];
18351 deserializer.deserialize_struct("MembersRemoveError", VARIANTS, EnumVisitor)
18352 }
18353}
18354
18355impl ::serde::ser::Serialize for MembersRemoveError {
18356 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18357 use serde::ser::SerializeStruct;
18359 match self {
18360 MembersRemoveError::UserNotFound => {
18361 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18363 s.serialize_field(".tag", "user_not_found")?;
18364 s.end()
18365 }
18366 MembersRemoveError::UserNotInTeam => {
18367 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18369 s.serialize_field(".tag", "user_not_in_team")?;
18370 s.end()
18371 }
18372 MembersRemoveError::RemovedAndTransferDestShouldDiffer => {
18373 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18375 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
18376 s.end()
18377 }
18378 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => {
18379 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18381 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
18382 s.end()
18383 }
18384 MembersRemoveError::TransferDestUserNotFound => {
18385 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18387 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
18388 s.end()
18389 }
18390 MembersRemoveError::TransferDestUserNotInTeam => {
18391 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18393 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
18394 s.end()
18395 }
18396 MembersRemoveError::TransferAdminUserNotInTeam => {
18397 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18399 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
18400 s.end()
18401 }
18402 MembersRemoveError::TransferAdminUserNotFound => {
18403 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18405 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
18406 s.end()
18407 }
18408 MembersRemoveError::UnspecifiedTransferAdminId => {
18409 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18411 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
18412 s.end()
18413 }
18414 MembersRemoveError::TransferAdminIsNotAdmin => {
18415 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18417 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
18418 s.end()
18419 }
18420 MembersRemoveError::RecipientNotVerified => {
18421 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18423 s.serialize_field(".tag", "recipient_not_verified")?;
18424 s.end()
18425 }
18426 MembersRemoveError::RemoveLastAdmin => {
18427 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18429 s.serialize_field(".tag", "remove_last_admin")?;
18430 s.end()
18431 }
18432 MembersRemoveError::CannotKeepAccountAndTransfer => {
18433 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18435 s.serialize_field(".tag", "cannot_keep_account_and_transfer")?;
18436 s.end()
18437 }
18438 MembersRemoveError::CannotKeepAccountAndDeleteData => {
18439 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18441 s.serialize_field(".tag", "cannot_keep_account_and_delete_data")?;
18442 s.end()
18443 }
18444 MembersRemoveError::EmailAddressTooLongToBeDisabled => {
18445 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18447 s.serialize_field(".tag", "email_address_too_long_to_be_disabled")?;
18448 s.end()
18449 }
18450 MembersRemoveError::CannotKeepInvitedUserAccount => {
18451 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18453 s.serialize_field(".tag", "cannot_keep_invited_user_account")?;
18454 s.end()
18455 }
18456 MembersRemoveError::CannotRetainSharesWhenDataWiped => {
18457 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18459 s.serialize_field(".tag", "cannot_retain_shares_when_data_wiped")?;
18460 s.end()
18461 }
18462 MembersRemoveError::CannotRetainSharesWhenNoAccountKept => {
18463 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18465 s.serialize_field(".tag", "cannot_retain_shares_when_no_account_kept")?;
18466 s.end()
18467 }
18468 MembersRemoveError::CannotRetainSharesWhenTeamExternalSharingOff => {
18469 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18471 s.serialize_field(".tag", "cannot_retain_shares_when_team_external_sharing_off")?;
18472 s.end()
18473 }
18474 MembersRemoveError::CannotKeepAccount => {
18475 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18477 s.serialize_field(".tag", "cannot_keep_account")?;
18478 s.end()
18479 }
18480 MembersRemoveError::CannotKeepAccountUnderLegalHold => {
18481 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18483 s.serialize_field(".tag", "cannot_keep_account_under_legal_hold")?;
18484 s.end()
18485 }
18486 MembersRemoveError::CannotKeepAccountRequiredToSignTos => {
18487 let mut s = serializer.serialize_struct("MembersRemoveError", 1)?;
18489 s.serialize_field(".tag", "cannot_keep_account_required_to_sign_tos")?;
18490 s.end()
18491 }
18492 MembersRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18493 }
18494 }
18495}
18496
18497impl ::std::error::Error for MembersRemoveError {
18498}
18499
18500impl ::std::fmt::Display for MembersRemoveError {
18501 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18502 match self {
18503 MembersRemoveError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18504 MembersRemoveError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18505 MembersRemoveError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
18506 MembersRemoveError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
18507 MembersRemoveError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
18508 MembersRemoveError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
18509 MembersRemoveError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
18510 MembersRemoveError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
18511 MembersRemoveError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
18512 MembersRemoveError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
18513 MembersRemoveError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
18514 MembersRemoveError::RemoveLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be removed from it."),
18515 MembersRemoveError::CannotKeepAccountAndTransfer => f.write_str("Cannot keep account and transfer the data to another user at the same time."),
18516 MembersRemoveError::EmailAddressTooLongToBeDisabled => f.write_str("The email address of the user is too long to be disabled."),
18517 MembersRemoveError::CannotKeepInvitedUserAccount => f.write_str("Cannot keep account of an invited user."),
18518 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."),
18519 MembersRemoveError::CannotKeepAccount => f.write_str("Only a team admin, can convert this account to a Basic account."),
18520 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."),
18521 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."),
18522 _ => write!(f, "{:?}", *self),
18523 }
18524 }
18525}
18526
18527impl From<MembersTransferFilesError> for MembersRemoveError {
18529 fn from(parent: MembersTransferFilesError) -> Self {
18530 match parent {
18531 MembersTransferFilesError::UserNotFound => MembersRemoveError::UserNotFound,
18532 MembersTransferFilesError::UserNotInTeam => MembersRemoveError::UserNotInTeam,
18533 MembersTransferFilesError::Other => MembersRemoveError::Other,
18534 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersRemoveError::RemovedAndTransferDestShouldDiffer,
18535 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersRemoveError::RemovedAndTransferAdminShouldDiffer,
18536 MembersTransferFilesError::TransferDestUserNotFound => MembersRemoveError::TransferDestUserNotFound,
18537 MembersTransferFilesError::TransferDestUserNotInTeam => MembersRemoveError::TransferDestUserNotInTeam,
18538 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersRemoveError::TransferAdminUserNotInTeam,
18539 MembersTransferFilesError::TransferAdminUserNotFound => MembersRemoveError::TransferAdminUserNotFound,
18540 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersRemoveError::UnspecifiedTransferAdminId,
18541 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersRemoveError::TransferAdminIsNotAdmin,
18542 MembersTransferFilesError::RecipientNotVerified => MembersRemoveError::RecipientNotVerified,
18543 }
18544 }
18545}
18546
18547#[derive(Debug, Clone, PartialEq, Eq)]
18548#[non_exhaustive] pub enum MembersSendWelcomeError {
18550 UserNotFound,
18553 UserNotInTeam,
18555 Other,
18558}
18559
18560impl<'de> ::serde::de::Deserialize<'de> for MembersSendWelcomeError {
18561 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18562 use serde::de::{self, MapAccess, Visitor};
18564 struct EnumVisitor;
18565 impl<'de> Visitor<'de> for EnumVisitor {
18566 type Value = MembersSendWelcomeError;
18567 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18568 f.write_str("a MembersSendWelcomeError structure")
18569 }
18570 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18571 let tag: &str = match map.next_key()? {
18572 Some(".tag") => map.next_value()?,
18573 _ => return Err(de::Error::missing_field(".tag"))
18574 };
18575 let value = match tag {
18576 "user_not_found" => MembersSendWelcomeError::UserNotFound,
18577 "user_not_in_team" => MembersSendWelcomeError::UserNotInTeam,
18578 _ => MembersSendWelcomeError::Other,
18579 };
18580 crate::eat_json_fields(&mut map)?;
18581 Ok(value)
18582 }
18583 }
18584 const VARIANTS: &[&str] = &["user_not_found",
18585 "user_not_in_team",
18586 "other"];
18587 deserializer.deserialize_struct("MembersSendWelcomeError", VARIANTS, EnumVisitor)
18588 }
18589}
18590
18591impl ::serde::ser::Serialize for MembersSendWelcomeError {
18592 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18593 use serde::ser::SerializeStruct;
18595 match self {
18596 MembersSendWelcomeError::UserNotFound => {
18597 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
18599 s.serialize_field(".tag", "user_not_found")?;
18600 s.end()
18601 }
18602 MembersSendWelcomeError::UserNotInTeam => {
18603 let mut s = serializer.serialize_struct("MembersSendWelcomeError", 1)?;
18605 s.serialize_field(".tag", "user_not_in_team")?;
18606 s.end()
18607 }
18608 MembersSendWelcomeError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18609 }
18610 }
18611}
18612
18613impl ::std::error::Error for MembersSendWelcomeError {
18614}
18615
18616impl ::std::fmt::Display for MembersSendWelcomeError {
18617 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18618 match self {
18619 MembersSendWelcomeError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18620 MembersSendWelcomeError::UserNotInTeam => f.write_str("The user is not a member of the team."),
18621 _ => write!(f, "{:?}", *self),
18622 }
18623 }
18624}
18625
18626impl From<MemberSelectorError> for MembersSendWelcomeError {
18628 fn from(parent: MemberSelectorError) -> Self {
18629 match parent {
18630 MemberSelectorError::UserNotFound => MembersSendWelcomeError::UserNotFound,
18631 MemberSelectorError::UserNotInTeam => MembersSendWelcomeError::UserNotInTeam,
18632 }
18633 }
18634}
18635#[derive(Debug, Clone, PartialEq, Eq)]
18638#[non_exhaustive] pub struct MembersSetPermissions2Arg {
18640 pub user: UserSelectorArg,
18642 pub new_roles: Option<Vec<TeamMemberRoleId>>,
18645}
18646
18647impl MembersSetPermissions2Arg {
18648 pub fn new(user: UserSelectorArg) -> Self {
18649 MembersSetPermissions2Arg {
18650 user,
18651 new_roles: None,
18652 }
18653 }
18654
18655 pub fn with_new_roles(mut self, value: Vec<TeamMemberRoleId>) -> Self {
18656 self.new_roles = Some(value);
18657 self
18658 }
18659}
18660
18661const MEMBERS_SET_PERMISSIONS2_ARG_FIELDS: &[&str] = &["user",
18662 "new_roles"];
18663impl MembersSetPermissions2Arg {
18664 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18665 map: V,
18666 ) -> Result<MembersSetPermissions2Arg, V::Error> {
18667 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18668 }
18669
18670 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18671 mut map: V,
18672 optional: bool,
18673 ) -> Result<Option<MembersSetPermissions2Arg>, V::Error> {
18674 let mut field_user = None;
18675 let mut field_new_roles = None;
18676 let mut nothing = true;
18677 while let Some(key) = map.next_key::<&str>()? {
18678 nothing = false;
18679 match key {
18680 "user" => {
18681 if field_user.is_some() {
18682 return Err(::serde::de::Error::duplicate_field("user"));
18683 }
18684 field_user = Some(map.next_value()?);
18685 }
18686 "new_roles" => {
18687 if field_new_roles.is_some() {
18688 return Err(::serde::de::Error::duplicate_field("new_roles"));
18689 }
18690 field_new_roles = Some(map.next_value()?);
18691 }
18692 _ => {
18693 map.next_value::<::serde_json::Value>()?;
18695 }
18696 }
18697 }
18698 if optional && nothing {
18699 return Ok(None);
18700 }
18701 let result = MembersSetPermissions2Arg {
18702 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
18703 new_roles: field_new_roles.and_then(Option::flatten),
18704 };
18705 Ok(Some(result))
18706 }
18707
18708 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18709 &self,
18710 s: &mut S::SerializeStruct,
18711 ) -> Result<(), S::Error> {
18712 use serde::ser::SerializeStruct;
18713 s.serialize_field("user", &self.user)?;
18714 if let Some(val) = &self.new_roles {
18715 s.serialize_field("new_roles", val)?;
18716 }
18717 Ok(())
18718 }
18719}
18720
18721impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Arg {
18722 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18723 use serde::de::{MapAccess, Visitor};
18725 struct StructVisitor;
18726 impl<'de> Visitor<'de> for StructVisitor {
18727 type Value = MembersSetPermissions2Arg;
18728 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18729 f.write_str("a MembersSetPermissions2Arg struct")
18730 }
18731 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18732 MembersSetPermissions2Arg::internal_deserialize(map)
18733 }
18734 }
18735 deserializer.deserialize_struct("MembersSetPermissions2Arg", MEMBERS_SET_PERMISSIONS2_ARG_FIELDS, StructVisitor)
18736 }
18737}
18738
18739impl ::serde::ser::Serialize for MembersSetPermissions2Arg {
18740 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18741 use serde::ser::SerializeStruct;
18743 let mut s = serializer.serialize_struct("MembersSetPermissions2Arg", 2)?;
18744 self.internal_serialize::<S>(&mut s)?;
18745 s.end()
18746 }
18747}
18748
18749#[derive(Debug, Clone, PartialEq, Eq)]
18750#[non_exhaustive] pub enum MembersSetPermissions2Error {
18752 UserNotFound,
18755 LastAdmin,
18757 UserNotInTeam,
18759 CannotSetPermissions,
18761 RoleNotFound,
18763 Other,
18766}
18767
18768impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Error {
18769 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18770 use serde::de::{self, MapAccess, Visitor};
18772 struct EnumVisitor;
18773 impl<'de> Visitor<'de> for EnumVisitor {
18774 type Value = MembersSetPermissions2Error;
18775 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18776 f.write_str("a MembersSetPermissions2Error structure")
18777 }
18778 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
18779 let tag: &str = match map.next_key()? {
18780 Some(".tag") => map.next_value()?,
18781 _ => return Err(de::Error::missing_field(".tag"))
18782 };
18783 let value = match tag {
18784 "user_not_found" => MembersSetPermissions2Error::UserNotFound,
18785 "last_admin" => MembersSetPermissions2Error::LastAdmin,
18786 "user_not_in_team" => MembersSetPermissions2Error::UserNotInTeam,
18787 "cannot_set_permissions" => MembersSetPermissions2Error::CannotSetPermissions,
18788 "role_not_found" => MembersSetPermissions2Error::RoleNotFound,
18789 _ => MembersSetPermissions2Error::Other,
18790 };
18791 crate::eat_json_fields(&mut map)?;
18792 Ok(value)
18793 }
18794 }
18795 const VARIANTS: &[&str] = &["user_not_found",
18796 "last_admin",
18797 "user_not_in_team",
18798 "cannot_set_permissions",
18799 "role_not_found",
18800 "other"];
18801 deserializer.deserialize_struct("MembersSetPermissions2Error", VARIANTS, EnumVisitor)
18802 }
18803}
18804
18805impl ::serde::ser::Serialize for MembersSetPermissions2Error {
18806 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18807 use serde::ser::SerializeStruct;
18809 match self {
18810 MembersSetPermissions2Error::UserNotFound => {
18811 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
18813 s.serialize_field(".tag", "user_not_found")?;
18814 s.end()
18815 }
18816 MembersSetPermissions2Error::LastAdmin => {
18817 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
18819 s.serialize_field(".tag", "last_admin")?;
18820 s.end()
18821 }
18822 MembersSetPermissions2Error::UserNotInTeam => {
18823 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
18825 s.serialize_field(".tag", "user_not_in_team")?;
18826 s.end()
18827 }
18828 MembersSetPermissions2Error::CannotSetPermissions => {
18829 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
18831 s.serialize_field(".tag", "cannot_set_permissions")?;
18832 s.end()
18833 }
18834 MembersSetPermissions2Error::RoleNotFound => {
18835 let mut s = serializer.serialize_struct("MembersSetPermissions2Error", 1)?;
18837 s.serialize_field(".tag", "role_not_found")?;
18838 s.end()
18839 }
18840 MembersSetPermissions2Error::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
18841 }
18842 }
18843}
18844
18845impl ::std::error::Error for MembersSetPermissions2Error {
18846}
18847
18848impl ::std::fmt::Display for MembersSetPermissions2Error {
18849 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18850 match self {
18851 MembersSetPermissions2Error::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
18852 MembersSetPermissions2Error::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
18853 MembersSetPermissions2Error::UserNotInTeam => f.write_str("The user is not a member of the team."),
18854 MembersSetPermissions2Error::CannotSetPermissions => f.write_str("Cannot remove/grant permissions. This can happen if the team member is suspended."),
18855 MembersSetPermissions2Error::RoleNotFound => f.write_str("No matching role found. At least one of the provided new_roles does not exist on this team."),
18856 _ => write!(f, "{:?}", *self),
18857 }
18858 }
18859}
18860
18861impl From<UserSelectorError> for MembersSetPermissions2Error {
18863 fn from(parent: UserSelectorError) -> Self {
18864 match parent {
18865 UserSelectorError::UserNotFound => MembersSetPermissions2Error::UserNotFound,
18866 }
18867 }
18868}
18869#[derive(Debug, Clone, PartialEq, Eq)]
18870#[non_exhaustive] pub struct MembersSetPermissions2Result {
18872 pub team_member_id: crate::types::team_common::TeamMemberId,
18874 pub roles: Option<Vec<TeamMemberRole>>,
18876}
18877
18878impl MembersSetPermissions2Result {
18879 pub fn new(team_member_id: crate::types::team_common::TeamMemberId) -> Self {
18880 MembersSetPermissions2Result {
18881 team_member_id,
18882 roles: None,
18883 }
18884 }
18885
18886 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
18887 self.roles = Some(value);
18888 self
18889 }
18890}
18891
18892const MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS: &[&str] = &["team_member_id",
18893 "roles"];
18894impl MembersSetPermissions2Result {
18895 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
18896 map: V,
18897 ) -> Result<MembersSetPermissions2Result, V::Error> {
18898 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
18899 }
18900
18901 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
18902 mut map: V,
18903 optional: bool,
18904 ) -> Result<Option<MembersSetPermissions2Result>, V::Error> {
18905 let mut field_team_member_id = None;
18906 let mut field_roles = None;
18907 let mut nothing = true;
18908 while let Some(key) = map.next_key::<&str>()? {
18909 nothing = false;
18910 match key {
18911 "team_member_id" => {
18912 if field_team_member_id.is_some() {
18913 return Err(::serde::de::Error::duplicate_field("team_member_id"));
18914 }
18915 field_team_member_id = Some(map.next_value()?);
18916 }
18917 "roles" => {
18918 if field_roles.is_some() {
18919 return Err(::serde::de::Error::duplicate_field("roles"));
18920 }
18921 field_roles = Some(map.next_value()?);
18922 }
18923 _ => {
18924 map.next_value::<::serde_json::Value>()?;
18926 }
18927 }
18928 }
18929 if optional && nothing {
18930 return Ok(None);
18931 }
18932 let result = MembersSetPermissions2Result {
18933 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
18934 roles: field_roles.and_then(Option::flatten),
18935 };
18936 Ok(Some(result))
18937 }
18938
18939 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
18940 &self,
18941 s: &mut S::SerializeStruct,
18942 ) -> Result<(), S::Error> {
18943 use serde::ser::SerializeStruct;
18944 s.serialize_field("team_member_id", &self.team_member_id)?;
18945 if let Some(val) = &self.roles {
18946 s.serialize_field("roles", val)?;
18947 }
18948 Ok(())
18949 }
18950}
18951
18952impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissions2Result {
18953 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
18954 use serde::de::{MapAccess, Visitor};
18956 struct StructVisitor;
18957 impl<'de> Visitor<'de> for StructVisitor {
18958 type Value = MembersSetPermissions2Result;
18959 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
18960 f.write_str("a MembersSetPermissions2Result struct")
18961 }
18962 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
18963 MembersSetPermissions2Result::internal_deserialize(map)
18964 }
18965 }
18966 deserializer.deserialize_struct("MembersSetPermissions2Result", MEMBERS_SET_PERMISSIONS2_RESULT_FIELDS, StructVisitor)
18967 }
18968}
18969
18970impl ::serde::ser::Serialize for MembersSetPermissions2Result {
18971 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
18972 use serde::ser::SerializeStruct;
18974 let mut s = serializer.serialize_struct("MembersSetPermissions2Result", 2)?;
18975 self.internal_serialize::<S>(&mut s)?;
18976 s.end()
18977 }
18978}
18979
18980#[derive(Debug, Clone, PartialEq, Eq)]
18983#[non_exhaustive] pub struct MembersSetPermissionsArg {
18985 pub user: UserSelectorArg,
18987 pub new_role: AdminTier,
18989}
18990
18991impl MembersSetPermissionsArg {
18992 pub fn new(user: UserSelectorArg, new_role: AdminTier) -> Self {
18993 MembersSetPermissionsArg {
18994 user,
18995 new_role,
18996 }
18997 }
18998}
18999
19000const MEMBERS_SET_PERMISSIONS_ARG_FIELDS: &[&str] = &["user",
19001 "new_role"];
19002impl MembersSetPermissionsArg {
19003 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19004 map: V,
19005 ) -> Result<MembersSetPermissionsArg, V::Error> {
19006 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19007 }
19008
19009 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19010 mut map: V,
19011 optional: bool,
19012 ) -> Result<Option<MembersSetPermissionsArg>, V::Error> {
19013 let mut field_user = None;
19014 let mut field_new_role = None;
19015 let mut nothing = true;
19016 while let Some(key) = map.next_key::<&str>()? {
19017 nothing = false;
19018 match key {
19019 "user" => {
19020 if field_user.is_some() {
19021 return Err(::serde::de::Error::duplicate_field("user"));
19022 }
19023 field_user = Some(map.next_value()?);
19024 }
19025 "new_role" => {
19026 if field_new_role.is_some() {
19027 return Err(::serde::de::Error::duplicate_field("new_role"));
19028 }
19029 field_new_role = Some(map.next_value()?);
19030 }
19031 _ => {
19032 map.next_value::<::serde_json::Value>()?;
19034 }
19035 }
19036 }
19037 if optional && nothing {
19038 return Ok(None);
19039 }
19040 let result = MembersSetPermissionsArg {
19041 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19042 new_role: field_new_role.ok_or_else(|| ::serde::de::Error::missing_field("new_role"))?,
19043 };
19044 Ok(Some(result))
19045 }
19046
19047 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19048 &self,
19049 s: &mut S::SerializeStruct,
19050 ) -> Result<(), S::Error> {
19051 use serde::ser::SerializeStruct;
19052 s.serialize_field("user", &self.user)?;
19053 s.serialize_field("new_role", &self.new_role)?;
19054 Ok(())
19055 }
19056}
19057
19058impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsArg {
19059 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19060 use serde::de::{MapAccess, Visitor};
19062 struct StructVisitor;
19063 impl<'de> Visitor<'de> for StructVisitor {
19064 type Value = MembersSetPermissionsArg;
19065 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19066 f.write_str("a MembersSetPermissionsArg struct")
19067 }
19068 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19069 MembersSetPermissionsArg::internal_deserialize(map)
19070 }
19071 }
19072 deserializer.deserialize_struct("MembersSetPermissionsArg", MEMBERS_SET_PERMISSIONS_ARG_FIELDS, StructVisitor)
19073 }
19074}
19075
19076impl ::serde::ser::Serialize for MembersSetPermissionsArg {
19077 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19078 use serde::ser::SerializeStruct;
19080 let mut s = serializer.serialize_struct("MembersSetPermissionsArg", 2)?;
19081 self.internal_serialize::<S>(&mut s)?;
19082 s.end()
19083 }
19084}
19085
19086#[derive(Debug, Clone, PartialEq, Eq)]
19087#[non_exhaustive] pub enum MembersSetPermissionsError {
19089 UserNotFound,
19092 LastAdmin,
19094 UserNotInTeam,
19096 CannotSetPermissions,
19098 TeamLicenseLimit,
19100 Other,
19103}
19104
19105impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsError {
19106 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19107 use serde::de::{self, MapAccess, Visitor};
19109 struct EnumVisitor;
19110 impl<'de> Visitor<'de> for EnumVisitor {
19111 type Value = MembersSetPermissionsError;
19112 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19113 f.write_str("a MembersSetPermissionsError structure")
19114 }
19115 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19116 let tag: &str = match map.next_key()? {
19117 Some(".tag") => map.next_value()?,
19118 _ => return Err(de::Error::missing_field(".tag"))
19119 };
19120 let value = match tag {
19121 "user_not_found" => MembersSetPermissionsError::UserNotFound,
19122 "last_admin" => MembersSetPermissionsError::LastAdmin,
19123 "user_not_in_team" => MembersSetPermissionsError::UserNotInTeam,
19124 "cannot_set_permissions" => MembersSetPermissionsError::CannotSetPermissions,
19125 "team_license_limit" => MembersSetPermissionsError::TeamLicenseLimit,
19126 _ => MembersSetPermissionsError::Other,
19127 };
19128 crate::eat_json_fields(&mut map)?;
19129 Ok(value)
19130 }
19131 }
19132 const VARIANTS: &[&str] = &["user_not_found",
19133 "last_admin",
19134 "user_not_in_team",
19135 "cannot_set_permissions",
19136 "team_license_limit",
19137 "other"];
19138 deserializer.deserialize_struct("MembersSetPermissionsError", VARIANTS, EnumVisitor)
19139 }
19140}
19141
19142impl ::serde::ser::Serialize for MembersSetPermissionsError {
19143 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19144 use serde::ser::SerializeStruct;
19146 match self {
19147 MembersSetPermissionsError::UserNotFound => {
19148 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19150 s.serialize_field(".tag", "user_not_found")?;
19151 s.end()
19152 }
19153 MembersSetPermissionsError::LastAdmin => {
19154 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19156 s.serialize_field(".tag", "last_admin")?;
19157 s.end()
19158 }
19159 MembersSetPermissionsError::UserNotInTeam => {
19160 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19162 s.serialize_field(".tag", "user_not_in_team")?;
19163 s.end()
19164 }
19165 MembersSetPermissionsError::CannotSetPermissions => {
19166 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19168 s.serialize_field(".tag", "cannot_set_permissions")?;
19169 s.end()
19170 }
19171 MembersSetPermissionsError::TeamLicenseLimit => {
19172 let mut s = serializer.serialize_struct("MembersSetPermissionsError", 1)?;
19174 s.serialize_field(".tag", "team_license_limit")?;
19175 s.end()
19176 }
19177 MembersSetPermissionsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19178 }
19179 }
19180}
19181
19182impl ::std::error::Error for MembersSetPermissionsError {
19183}
19184
19185impl ::std::fmt::Display for MembersSetPermissionsError {
19186 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19187 match self {
19188 MembersSetPermissionsError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19189 MembersSetPermissionsError::LastAdmin => f.write_str("Cannot remove the admin setting of the last admin."),
19190 MembersSetPermissionsError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19191 MembersSetPermissionsError::CannotSetPermissions => f.write_str("Cannot remove/grant permissions."),
19192 MembersSetPermissionsError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
19193 _ => write!(f, "{:?}", *self),
19194 }
19195 }
19196}
19197
19198impl From<UserSelectorError> for MembersSetPermissionsError {
19200 fn from(parent: UserSelectorError) -> Self {
19201 match parent {
19202 UserSelectorError::UserNotFound => MembersSetPermissionsError::UserNotFound,
19203 }
19204 }
19205}
19206#[derive(Debug, Clone, PartialEq, Eq)]
19207#[non_exhaustive] pub struct MembersSetPermissionsResult {
19209 pub team_member_id: crate::types::team_common::TeamMemberId,
19211 pub role: AdminTier,
19213}
19214
19215impl MembersSetPermissionsResult {
19216 pub fn new(team_member_id: crate::types::team_common::TeamMemberId, role: AdminTier) -> Self {
19217 MembersSetPermissionsResult {
19218 team_member_id,
19219 role,
19220 }
19221 }
19222}
19223
19224const MEMBERS_SET_PERMISSIONS_RESULT_FIELDS: &[&str] = &["team_member_id",
19225 "role"];
19226impl MembersSetPermissionsResult {
19227 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19228 map: V,
19229 ) -> Result<MembersSetPermissionsResult, V::Error> {
19230 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19231 }
19232
19233 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19234 mut map: V,
19235 optional: bool,
19236 ) -> Result<Option<MembersSetPermissionsResult>, V::Error> {
19237 let mut field_team_member_id = None;
19238 let mut field_role = None;
19239 let mut nothing = true;
19240 while let Some(key) = map.next_key::<&str>()? {
19241 nothing = false;
19242 match key {
19243 "team_member_id" => {
19244 if field_team_member_id.is_some() {
19245 return Err(::serde::de::Error::duplicate_field("team_member_id"));
19246 }
19247 field_team_member_id = Some(map.next_value()?);
19248 }
19249 "role" => {
19250 if field_role.is_some() {
19251 return Err(::serde::de::Error::duplicate_field("role"));
19252 }
19253 field_role = Some(map.next_value()?);
19254 }
19255 _ => {
19256 map.next_value::<::serde_json::Value>()?;
19258 }
19259 }
19260 }
19261 if optional && nothing {
19262 return Ok(None);
19263 }
19264 let result = MembersSetPermissionsResult {
19265 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
19266 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
19267 };
19268 Ok(Some(result))
19269 }
19270
19271 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19272 &self,
19273 s: &mut S::SerializeStruct,
19274 ) -> Result<(), S::Error> {
19275 use serde::ser::SerializeStruct;
19276 s.serialize_field("team_member_id", &self.team_member_id)?;
19277 s.serialize_field("role", &self.role)?;
19278 Ok(())
19279 }
19280}
19281
19282impl<'de> ::serde::de::Deserialize<'de> for MembersSetPermissionsResult {
19283 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19284 use serde::de::{MapAccess, Visitor};
19286 struct StructVisitor;
19287 impl<'de> Visitor<'de> for StructVisitor {
19288 type Value = MembersSetPermissionsResult;
19289 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19290 f.write_str("a MembersSetPermissionsResult struct")
19291 }
19292 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19293 MembersSetPermissionsResult::internal_deserialize(map)
19294 }
19295 }
19296 deserializer.deserialize_struct("MembersSetPermissionsResult", MEMBERS_SET_PERMISSIONS_RESULT_FIELDS, StructVisitor)
19297 }
19298}
19299
19300impl ::serde::ser::Serialize for MembersSetPermissionsResult {
19301 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19302 use serde::ser::SerializeStruct;
19304 let mut s = serializer.serialize_struct("MembersSetPermissionsResult", 2)?;
19305 self.internal_serialize::<S>(&mut s)?;
19306 s.end()
19307 }
19308}
19309
19310#[derive(Debug, Clone, PartialEq, Eq)]
19314#[non_exhaustive] pub struct MembersSetProfileArg {
19316 pub user: UserSelectorArg,
19318 pub new_email: Option<crate::types::common::EmailAddress>,
19320 pub new_external_id: Option<crate::types::team_common::MemberExternalId>,
19322 pub new_given_name: Option<crate::types::common::OptionalNamePart>,
19324 pub new_surname: Option<crate::types::common::OptionalNamePart>,
19326 pub new_persistent_id: Option<String>,
19329 pub new_is_directory_restricted: Option<bool>,
19331}
19332
19333impl MembersSetProfileArg {
19334 pub fn new(user: UserSelectorArg) -> Self {
19335 MembersSetProfileArg {
19336 user,
19337 new_email: None,
19338 new_external_id: None,
19339 new_given_name: None,
19340 new_surname: None,
19341 new_persistent_id: None,
19342 new_is_directory_restricted: None,
19343 }
19344 }
19345
19346 pub fn with_new_email(mut self, value: crate::types::common::EmailAddress) -> Self {
19347 self.new_email = Some(value);
19348 self
19349 }
19350
19351 pub fn with_new_external_id(
19352 mut self,
19353 value: crate::types::team_common::MemberExternalId,
19354 ) -> Self {
19355 self.new_external_id = Some(value);
19356 self
19357 }
19358
19359 pub fn with_new_given_name(mut self, value: crate::types::common::OptionalNamePart) -> Self {
19360 self.new_given_name = Some(value);
19361 self
19362 }
19363
19364 pub fn with_new_surname(mut self, value: crate::types::common::OptionalNamePart) -> Self {
19365 self.new_surname = Some(value);
19366 self
19367 }
19368
19369 pub fn with_new_persistent_id(mut self, value: String) -> Self {
19370 self.new_persistent_id = Some(value);
19371 self
19372 }
19373
19374 pub fn with_new_is_directory_restricted(mut self, value: bool) -> Self {
19375 self.new_is_directory_restricted = Some(value);
19376 self
19377 }
19378}
19379
19380const MEMBERS_SET_PROFILE_ARG_FIELDS: &[&str] = &["user",
19381 "new_email",
19382 "new_external_id",
19383 "new_given_name",
19384 "new_surname",
19385 "new_persistent_id",
19386 "new_is_directory_restricted"];
19387impl MembersSetProfileArg {
19388 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19389 map: V,
19390 ) -> Result<MembersSetProfileArg, V::Error> {
19391 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19392 }
19393
19394 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19395 mut map: V,
19396 optional: bool,
19397 ) -> Result<Option<MembersSetProfileArg>, V::Error> {
19398 let mut field_user = None;
19399 let mut field_new_email = None;
19400 let mut field_new_external_id = None;
19401 let mut field_new_given_name = None;
19402 let mut field_new_surname = None;
19403 let mut field_new_persistent_id = None;
19404 let mut field_new_is_directory_restricted = None;
19405 let mut nothing = true;
19406 while let Some(key) = map.next_key::<&str>()? {
19407 nothing = false;
19408 match key {
19409 "user" => {
19410 if field_user.is_some() {
19411 return Err(::serde::de::Error::duplicate_field("user"));
19412 }
19413 field_user = Some(map.next_value()?);
19414 }
19415 "new_email" => {
19416 if field_new_email.is_some() {
19417 return Err(::serde::de::Error::duplicate_field("new_email"));
19418 }
19419 field_new_email = Some(map.next_value()?);
19420 }
19421 "new_external_id" => {
19422 if field_new_external_id.is_some() {
19423 return Err(::serde::de::Error::duplicate_field("new_external_id"));
19424 }
19425 field_new_external_id = Some(map.next_value()?);
19426 }
19427 "new_given_name" => {
19428 if field_new_given_name.is_some() {
19429 return Err(::serde::de::Error::duplicate_field("new_given_name"));
19430 }
19431 field_new_given_name = Some(map.next_value()?);
19432 }
19433 "new_surname" => {
19434 if field_new_surname.is_some() {
19435 return Err(::serde::de::Error::duplicate_field("new_surname"));
19436 }
19437 field_new_surname = Some(map.next_value()?);
19438 }
19439 "new_persistent_id" => {
19440 if field_new_persistent_id.is_some() {
19441 return Err(::serde::de::Error::duplicate_field("new_persistent_id"));
19442 }
19443 field_new_persistent_id = Some(map.next_value()?);
19444 }
19445 "new_is_directory_restricted" => {
19446 if field_new_is_directory_restricted.is_some() {
19447 return Err(::serde::de::Error::duplicate_field("new_is_directory_restricted"));
19448 }
19449 field_new_is_directory_restricted = Some(map.next_value()?);
19450 }
19451 _ => {
19452 map.next_value::<::serde_json::Value>()?;
19454 }
19455 }
19456 }
19457 if optional && nothing {
19458 return Ok(None);
19459 }
19460 let result = MembersSetProfileArg {
19461 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19462 new_email: field_new_email.and_then(Option::flatten),
19463 new_external_id: field_new_external_id.and_then(Option::flatten),
19464 new_given_name: field_new_given_name.and_then(Option::flatten),
19465 new_surname: field_new_surname.and_then(Option::flatten),
19466 new_persistent_id: field_new_persistent_id.and_then(Option::flatten),
19467 new_is_directory_restricted: field_new_is_directory_restricted.and_then(Option::flatten),
19468 };
19469 Ok(Some(result))
19470 }
19471
19472 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19473 &self,
19474 s: &mut S::SerializeStruct,
19475 ) -> Result<(), S::Error> {
19476 use serde::ser::SerializeStruct;
19477 s.serialize_field("user", &self.user)?;
19478 if let Some(val) = &self.new_email {
19479 s.serialize_field("new_email", val)?;
19480 }
19481 if let Some(val) = &self.new_external_id {
19482 s.serialize_field("new_external_id", val)?;
19483 }
19484 if let Some(val) = &self.new_given_name {
19485 s.serialize_field("new_given_name", val)?;
19486 }
19487 if let Some(val) = &self.new_surname {
19488 s.serialize_field("new_surname", val)?;
19489 }
19490 if let Some(val) = &self.new_persistent_id {
19491 s.serialize_field("new_persistent_id", val)?;
19492 }
19493 if let Some(val) = &self.new_is_directory_restricted {
19494 s.serialize_field("new_is_directory_restricted", val)?;
19495 }
19496 Ok(())
19497 }
19498}
19499
19500impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileArg {
19501 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19502 use serde::de::{MapAccess, Visitor};
19504 struct StructVisitor;
19505 impl<'de> Visitor<'de> for StructVisitor {
19506 type Value = MembersSetProfileArg;
19507 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19508 f.write_str("a MembersSetProfileArg struct")
19509 }
19510 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19511 MembersSetProfileArg::internal_deserialize(map)
19512 }
19513 }
19514 deserializer.deserialize_struct("MembersSetProfileArg", MEMBERS_SET_PROFILE_ARG_FIELDS, StructVisitor)
19515 }
19516}
19517
19518impl ::serde::ser::Serialize for MembersSetProfileArg {
19519 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19520 use serde::ser::SerializeStruct;
19522 let mut s = serializer.serialize_struct("MembersSetProfileArg", 7)?;
19523 self.internal_serialize::<S>(&mut s)?;
19524 s.end()
19525 }
19526}
19527
19528#[derive(Debug, Clone, PartialEq, Eq)]
19529#[non_exhaustive] pub enum MembersSetProfileError {
19531 UserNotFound,
19534 UserNotInTeam,
19536 ExternalIdAndNewExternalIdUnsafe,
19538 NoNewDataSpecified,
19540 EmailReservedForOtherUser,
19542 ExternalIdUsedByOtherUser,
19544 SetProfileDisallowed,
19546 ParamCannotBeEmpty,
19548 PersistentIdDisabled,
19551 PersistentIdUsedByOtherUser,
19553 DirectoryRestrictedOff,
19555 Other,
19558}
19559
19560impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfileError {
19561 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19562 use serde::de::{self, MapAccess, Visitor};
19564 struct EnumVisitor;
19565 impl<'de> Visitor<'de> for EnumVisitor {
19566 type Value = MembersSetProfileError;
19567 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19568 f.write_str("a MembersSetProfileError structure")
19569 }
19570 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19571 let tag: &str = match map.next_key()? {
19572 Some(".tag") => map.next_value()?,
19573 _ => return Err(de::Error::missing_field(".tag"))
19574 };
19575 let value = match tag {
19576 "user_not_found" => MembersSetProfileError::UserNotFound,
19577 "user_not_in_team" => MembersSetProfileError::UserNotInTeam,
19578 "external_id_and_new_external_id_unsafe" => MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe,
19579 "no_new_data_specified" => MembersSetProfileError::NoNewDataSpecified,
19580 "email_reserved_for_other_user" => MembersSetProfileError::EmailReservedForOtherUser,
19581 "external_id_used_by_other_user" => MembersSetProfileError::ExternalIdUsedByOtherUser,
19582 "set_profile_disallowed" => MembersSetProfileError::SetProfileDisallowed,
19583 "param_cannot_be_empty" => MembersSetProfileError::ParamCannotBeEmpty,
19584 "persistent_id_disabled" => MembersSetProfileError::PersistentIdDisabled,
19585 "persistent_id_used_by_other_user" => MembersSetProfileError::PersistentIdUsedByOtherUser,
19586 "directory_restricted_off" => MembersSetProfileError::DirectoryRestrictedOff,
19587 _ => MembersSetProfileError::Other,
19588 };
19589 crate::eat_json_fields(&mut map)?;
19590 Ok(value)
19591 }
19592 }
19593 const VARIANTS: &[&str] = &["user_not_found",
19594 "user_not_in_team",
19595 "external_id_and_new_external_id_unsafe",
19596 "no_new_data_specified",
19597 "email_reserved_for_other_user",
19598 "external_id_used_by_other_user",
19599 "set_profile_disallowed",
19600 "param_cannot_be_empty",
19601 "persistent_id_disabled",
19602 "persistent_id_used_by_other_user",
19603 "directory_restricted_off",
19604 "other"];
19605 deserializer.deserialize_struct("MembersSetProfileError", VARIANTS, EnumVisitor)
19606 }
19607}
19608
19609impl ::serde::ser::Serialize for MembersSetProfileError {
19610 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19611 use serde::ser::SerializeStruct;
19613 match self {
19614 MembersSetProfileError::UserNotFound => {
19615 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19617 s.serialize_field(".tag", "user_not_found")?;
19618 s.end()
19619 }
19620 MembersSetProfileError::UserNotInTeam => {
19621 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19623 s.serialize_field(".tag", "user_not_in_team")?;
19624 s.end()
19625 }
19626 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => {
19627 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19629 s.serialize_field(".tag", "external_id_and_new_external_id_unsafe")?;
19630 s.end()
19631 }
19632 MembersSetProfileError::NoNewDataSpecified => {
19633 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19635 s.serialize_field(".tag", "no_new_data_specified")?;
19636 s.end()
19637 }
19638 MembersSetProfileError::EmailReservedForOtherUser => {
19639 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19641 s.serialize_field(".tag", "email_reserved_for_other_user")?;
19642 s.end()
19643 }
19644 MembersSetProfileError::ExternalIdUsedByOtherUser => {
19645 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19647 s.serialize_field(".tag", "external_id_used_by_other_user")?;
19648 s.end()
19649 }
19650 MembersSetProfileError::SetProfileDisallowed => {
19651 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19653 s.serialize_field(".tag", "set_profile_disallowed")?;
19654 s.end()
19655 }
19656 MembersSetProfileError::ParamCannotBeEmpty => {
19657 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19659 s.serialize_field(".tag", "param_cannot_be_empty")?;
19660 s.end()
19661 }
19662 MembersSetProfileError::PersistentIdDisabled => {
19663 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19665 s.serialize_field(".tag", "persistent_id_disabled")?;
19666 s.end()
19667 }
19668 MembersSetProfileError::PersistentIdUsedByOtherUser => {
19669 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19671 s.serialize_field(".tag", "persistent_id_used_by_other_user")?;
19672 s.end()
19673 }
19674 MembersSetProfileError::DirectoryRestrictedOff => {
19675 let mut s = serializer.serialize_struct("MembersSetProfileError", 1)?;
19677 s.serialize_field(".tag", "directory_restricted_off")?;
19678 s.end()
19679 }
19680 MembersSetProfileError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19681 }
19682 }
19683}
19684
19685impl ::std::error::Error for MembersSetProfileError {
19686}
19687
19688impl ::std::fmt::Display for MembersSetProfileError {
19689 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19690 match self {
19691 MembersSetProfileError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19692 MembersSetProfileError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19693 MembersSetProfileError::ExternalIdAndNewExternalIdUnsafe => f.write_str("It is unsafe to use both external_id and new_external_id."),
19694 MembersSetProfileError::NoNewDataSpecified => f.write_str("None of new_email, new_given_name, new_surname, or new_external_id are specified."),
19695 MembersSetProfileError::EmailReservedForOtherUser => f.write_str("Email is already reserved for another user."),
19696 MembersSetProfileError::ExternalIdUsedByOtherUser => f.write_str("The external ID is already in use by another team member."),
19697 MembersSetProfileError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
19698 MembersSetProfileError::ParamCannotBeEmpty => f.write_str("Parameter new_email cannot be empty."),
19699 MembersSetProfileError::PersistentIdDisabled => f.write_str("Persistent ID is only available to teams with persistent ID SAML configuration. Please contact Dropbox for more information."),
19700 MembersSetProfileError::PersistentIdUsedByOtherUser => f.write_str("The persistent ID is already in use by another team member."),
19701 MembersSetProfileError::DirectoryRestrictedOff => f.write_str("Directory Restrictions option is not available."),
19702 _ => write!(f, "{:?}", *self),
19703 }
19704 }
19705}
19706
19707impl From<MemberSelectorError> for MembersSetProfileError {
19709 fn from(parent: MemberSelectorError) -> Self {
19710 match parent {
19711 MemberSelectorError::UserNotFound => MembersSetProfileError::UserNotFound,
19712 MemberSelectorError::UserNotInTeam => MembersSetProfileError::UserNotInTeam,
19713 }
19714 }
19715}
19716#[derive(Debug, Clone, PartialEq, Eq)]
19717#[non_exhaustive] pub struct MembersSetProfilePhotoArg {
19719 pub user: UserSelectorArg,
19721 pub photo: crate::types::account::PhotoSourceArg,
19723}
19724
19725impl MembersSetProfilePhotoArg {
19726 pub fn new(user: UserSelectorArg, photo: crate::types::account::PhotoSourceArg) -> Self {
19727 MembersSetProfilePhotoArg {
19728 user,
19729 photo,
19730 }
19731 }
19732}
19733
19734const MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS: &[&str] = &["user",
19735 "photo"];
19736impl MembersSetProfilePhotoArg {
19737 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
19738 map: V,
19739 ) -> Result<MembersSetProfilePhotoArg, V::Error> {
19740 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
19741 }
19742
19743 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
19744 mut map: V,
19745 optional: bool,
19746 ) -> Result<Option<MembersSetProfilePhotoArg>, V::Error> {
19747 let mut field_user = None;
19748 let mut field_photo = None;
19749 let mut nothing = true;
19750 while let Some(key) = map.next_key::<&str>()? {
19751 nothing = false;
19752 match key {
19753 "user" => {
19754 if field_user.is_some() {
19755 return Err(::serde::de::Error::duplicate_field("user"));
19756 }
19757 field_user = Some(map.next_value()?);
19758 }
19759 "photo" => {
19760 if field_photo.is_some() {
19761 return Err(::serde::de::Error::duplicate_field("photo"));
19762 }
19763 field_photo = Some(map.next_value()?);
19764 }
19765 _ => {
19766 map.next_value::<::serde_json::Value>()?;
19768 }
19769 }
19770 }
19771 if optional && nothing {
19772 return Ok(None);
19773 }
19774 let result = MembersSetProfilePhotoArg {
19775 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
19776 photo: field_photo.ok_or_else(|| ::serde::de::Error::missing_field("photo"))?,
19777 };
19778 Ok(Some(result))
19779 }
19780
19781 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
19782 &self,
19783 s: &mut S::SerializeStruct,
19784 ) -> Result<(), S::Error> {
19785 use serde::ser::SerializeStruct;
19786 s.serialize_field("user", &self.user)?;
19787 s.serialize_field("photo", &self.photo)?;
19788 Ok(())
19789 }
19790}
19791
19792impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoArg {
19793 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19794 use serde::de::{MapAccess, Visitor};
19796 struct StructVisitor;
19797 impl<'de> Visitor<'de> for StructVisitor {
19798 type Value = MembersSetProfilePhotoArg;
19799 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19800 f.write_str("a MembersSetProfilePhotoArg struct")
19801 }
19802 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
19803 MembersSetProfilePhotoArg::internal_deserialize(map)
19804 }
19805 }
19806 deserializer.deserialize_struct("MembersSetProfilePhotoArg", MEMBERS_SET_PROFILE_PHOTO_ARG_FIELDS, StructVisitor)
19807 }
19808}
19809
19810impl ::serde::ser::Serialize for MembersSetProfilePhotoArg {
19811 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19812 use serde::ser::SerializeStruct;
19814 let mut s = serializer.serialize_struct("MembersSetProfilePhotoArg", 2)?;
19815 self.internal_serialize::<S>(&mut s)?;
19816 s.end()
19817 }
19818}
19819
19820#[derive(Debug, Clone, PartialEq, Eq)]
19821#[non_exhaustive] pub enum MembersSetProfilePhotoError {
19823 UserNotFound,
19826 UserNotInTeam,
19828 SetProfileDisallowed,
19830 PhotoError(crate::types::account::SetProfilePhotoError),
19831 Other,
19834}
19835
19836impl<'de> ::serde::de::Deserialize<'de> for MembersSetProfilePhotoError {
19837 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19838 use serde::de::{self, MapAccess, Visitor};
19840 struct EnumVisitor;
19841 impl<'de> Visitor<'de> for EnumVisitor {
19842 type Value = MembersSetProfilePhotoError;
19843 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19844 f.write_str("a MembersSetProfilePhotoError structure")
19845 }
19846 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19847 let tag: &str = match map.next_key()? {
19848 Some(".tag") => map.next_value()?,
19849 _ => return Err(de::Error::missing_field(".tag"))
19850 };
19851 let value = match tag {
19852 "user_not_found" => MembersSetProfilePhotoError::UserNotFound,
19853 "user_not_in_team" => MembersSetProfilePhotoError::UserNotInTeam,
19854 "set_profile_disallowed" => MembersSetProfilePhotoError::SetProfileDisallowed,
19855 "photo_error" => {
19856 match map.next_key()? {
19857 Some("photo_error") => MembersSetProfilePhotoError::PhotoError(map.next_value()?),
19858 None => return Err(de::Error::missing_field("photo_error")),
19859 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
19860 }
19861 }
19862 _ => MembersSetProfilePhotoError::Other,
19863 };
19864 crate::eat_json_fields(&mut map)?;
19865 Ok(value)
19866 }
19867 }
19868 const VARIANTS: &[&str] = &["user_not_found",
19869 "user_not_in_team",
19870 "set_profile_disallowed",
19871 "photo_error",
19872 "other"];
19873 deserializer.deserialize_struct("MembersSetProfilePhotoError", VARIANTS, EnumVisitor)
19874 }
19875}
19876
19877impl ::serde::ser::Serialize for MembersSetProfilePhotoError {
19878 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
19879 use serde::ser::SerializeStruct;
19881 match self {
19882 MembersSetProfilePhotoError::UserNotFound => {
19883 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
19885 s.serialize_field(".tag", "user_not_found")?;
19886 s.end()
19887 }
19888 MembersSetProfilePhotoError::UserNotInTeam => {
19889 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
19891 s.serialize_field(".tag", "user_not_in_team")?;
19892 s.end()
19893 }
19894 MembersSetProfilePhotoError::SetProfileDisallowed => {
19895 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 1)?;
19897 s.serialize_field(".tag", "set_profile_disallowed")?;
19898 s.end()
19899 }
19900 MembersSetProfilePhotoError::PhotoError(x) => {
19901 let mut s = serializer.serialize_struct("MembersSetProfilePhotoError", 2)?;
19903 s.serialize_field(".tag", "photo_error")?;
19904 s.serialize_field("photo_error", x)?;
19905 s.end()
19906 }
19907 MembersSetProfilePhotoError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
19908 }
19909 }
19910}
19911
19912impl ::std::error::Error for MembersSetProfilePhotoError {
19913 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
19914 match self {
19915 MembersSetProfilePhotoError::PhotoError(inner) => Some(inner),
19916 _ => None,
19917 }
19918 }
19919}
19920
19921impl ::std::fmt::Display for MembersSetProfilePhotoError {
19922 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19923 match self {
19924 MembersSetProfilePhotoError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
19925 MembersSetProfilePhotoError::UserNotInTeam => f.write_str("The user is not a member of the team."),
19926 MembersSetProfilePhotoError::SetProfileDisallowed => f.write_str("Modifying deleted users is not allowed."),
19927 MembersSetProfilePhotoError::PhotoError(inner) => write!(f, "MembersSetProfilePhotoError: {}", inner),
19928 _ => write!(f, "{:?}", *self),
19929 }
19930 }
19931}
19932
19933impl From<MemberSelectorError> for MembersSetProfilePhotoError {
19935 fn from(parent: MemberSelectorError) -> Self {
19936 match parent {
19937 MemberSelectorError::UserNotFound => MembersSetProfilePhotoError::UserNotFound,
19938 MemberSelectorError::UserNotInTeam => MembersSetProfilePhotoError::UserNotInTeam,
19939 }
19940 }
19941}
19942#[derive(Debug, Clone, PartialEq, Eq)]
19943#[non_exhaustive] pub enum MembersSuspendError {
19945 UserNotFound,
19948 UserNotInTeam,
19950 SuspendInactiveUser,
19952 SuspendLastAdmin,
19954 TeamLicenseLimit,
19956 Other,
19959}
19960
19961impl<'de> ::serde::de::Deserialize<'de> for MembersSuspendError {
19962 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
19963 use serde::de::{self, MapAccess, Visitor};
19965 struct EnumVisitor;
19966 impl<'de> Visitor<'de> for EnumVisitor {
19967 type Value = MembersSuspendError;
19968 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19969 f.write_str("a MembersSuspendError structure")
19970 }
19971 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
19972 let tag: &str = match map.next_key()? {
19973 Some(".tag") => map.next_value()?,
19974 _ => return Err(de::Error::missing_field(".tag"))
19975 };
19976 let value = match tag {
19977 "user_not_found" => MembersSuspendError::UserNotFound,
19978 "user_not_in_team" => MembersSuspendError::UserNotInTeam,
19979 "suspend_inactive_user" => MembersSuspendError::SuspendInactiveUser,
19980 "suspend_last_admin" => MembersSuspendError::SuspendLastAdmin,
19981 "team_license_limit" => MembersSuspendError::TeamLicenseLimit,
19982 _ => MembersSuspendError::Other,
19983 };
19984 crate::eat_json_fields(&mut map)?;
19985 Ok(value)
19986 }
19987 }
19988 const VARIANTS: &[&str] = &["user_not_found",
19989 "user_not_in_team",
19990 "other",
19991 "suspend_inactive_user",
19992 "suspend_last_admin",
19993 "team_license_limit"];
19994 deserializer.deserialize_struct("MembersSuspendError", VARIANTS, EnumVisitor)
19995 }
19996}
19997
19998impl ::serde::ser::Serialize for MembersSuspendError {
19999 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20000 use serde::ser::SerializeStruct;
20002 match self {
20003 MembersSuspendError::UserNotFound => {
20004 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20006 s.serialize_field(".tag", "user_not_found")?;
20007 s.end()
20008 }
20009 MembersSuspendError::UserNotInTeam => {
20010 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20012 s.serialize_field(".tag", "user_not_in_team")?;
20013 s.end()
20014 }
20015 MembersSuspendError::SuspendInactiveUser => {
20016 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20018 s.serialize_field(".tag", "suspend_inactive_user")?;
20019 s.end()
20020 }
20021 MembersSuspendError::SuspendLastAdmin => {
20022 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20024 s.serialize_field(".tag", "suspend_last_admin")?;
20025 s.end()
20026 }
20027 MembersSuspendError::TeamLicenseLimit => {
20028 let mut s = serializer.serialize_struct("MembersSuspendError", 1)?;
20030 s.serialize_field(".tag", "team_license_limit")?;
20031 s.end()
20032 }
20033 MembersSuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20034 }
20035 }
20036}
20037
20038impl ::std::error::Error for MembersSuspendError {
20039}
20040
20041impl ::std::fmt::Display for MembersSuspendError {
20042 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20043 match self {
20044 MembersSuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20045 MembersSuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20046 MembersSuspendError::SuspendInactiveUser => f.write_str("The user is not active, so it cannot be suspended."),
20047 MembersSuspendError::SuspendLastAdmin => f.write_str("The user is the last admin of the team, so it cannot be suspended."),
20048 MembersSuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
20049 _ => write!(f, "{:?}", *self),
20050 }
20051 }
20052}
20053
20054impl From<MembersDeactivateError> for MembersSuspendError {
20056 fn from(parent: MembersDeactivateError) -> Self {
20057 match parent {
20058 MembersDeactivateError::UserNotFound => MembersSuspendError::UserNotFound,
20059 MembersDeactivateError::UserNotInTeam => MembersSuspendError::UserNotInTeam,
20060 MembersDeactivateError::Other => MembersSuspendError::Other,
20061 }
20062 }
20063}
20064#[derive(Debug, Clone, PartialEq, Eq)]
20065#[non_exhaustive] pub enum MembersTransferFilesError {
20067 UserNotFound,
20070 UserNotInTeam,
20072 RemovedAndTransferDestShouldDiffer,
20074 RemovedAndTransferAdminShouldDiffer,
20076 TransferDestUserNotFound,
20078 TransferDestUserNotInTeam,
20080 TransferAdminUserNotInTeam,
20082 TransferAdminUserNotFound,
20084 UnspecifiedTransferAdminId,
20086 TransferAdminIsNotAdmin,
20088 RecipientNotVerified,
20090 Other,
20093}
20094
20095impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFilesError {
20096 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20097 use serde::de::{self, MapAccess, Visitor};
20099 struct EnumVisitor;
20100 impl<'de> Visitor<'de> for EnumVisitor {
20101 type Value = MembersTransferFilesError;
20102 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20103 f.write_str("a MembersTransferFilesError structure")
20104 }
20105 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20106 let tag: &str = match map.next_key()? {
20107 Some(".tag") => map.next_value()?,
20108 _ => return Err(de::Error::missing_field(".tag"))
20109 };
20110 let value = match tag {
20111 "user_not_found" => MembersTransferFilesError::UserNotFound,
20112 "user_not_in_team" => MembersTransferFilesError::UserNotInTeam,
20113 "removed_and_transfer_dest_should_differ" => MembersTransferFilesError::RemovedAndTransferDestShouldDiffer,
20114 "removed_and_transfer_admin_should_differ" => MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer,
20115 "transfer_dest_user_not_found" => MembersTransferFilesError::TransferDestUserNotFound,
20116 "transfer_dest_user_not_in_team" => MembersTransferFilesError::TransferDestUserNotInTeam,
20117 "transfer_admin_user_not_in_team" => MembersTransferFilesError::TransferAdminUserNotInTeam,
20118 "transfer_admin_user_not_found" => MembersTransferFilesError::TransferAdminUserNotFound,
20119 "unspecified_transfer_admin_id" => MembersTransferFilesError::UnspecifiedTransferAdminId,
20120 "transfer_admin_is_not_admin" => MembersTransferFilesError::TransferAdminIsNotAdmin,
20121 "recipient_not_verified" => MembersTransferFilesError::RecipientNotVerified,
20122 _ => MembersTransferFilesError::Other,
20123 };
20124 crate::eat_json_fields(&mut map)?;
20125 Ok(value)
20126 }
20127 }
20128 const VARIANTS: &[&str] = &["user_not_found",
20129 "user_not_in_team",
20130 "other",
20131 "removed_and_transfer_dest_should_differ",
20132 "removed_and_transfer_admin_should_differ",
20133 "transfer_dest_user_not_found",
20134 "transfer_dest_user_not_in_team",
20135 "transfer_admin_user_not_in_team",
20136 "transfer_admin_user_not_found",
20137 "unspecified_transfer_admin_id",
20138 "transfer_admin_is_not_admin",
20139 "recipient_not_verified"];
20140 deserializer.deserialize_struct("MembersTransferFilesError", VARIANTS, EnumVisitor)
20141 }
20142}
20143
20144impl ::serde::ser::Serialize for MembersTransferFilesError {
20145 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20146 use serde::ser::SerializeStruct;
20148 match self {
20149 MembersTransferFilesError::UserNotFound => {
20150 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20152 s.serialize_field(".tag", "user_not_found")?;
20153 s.end()
20154 }
20155 MembersTransferFilesError::UserNotInTeam => {
20156 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20158 s.serialize_field(".tag", "user_not_in_team")?;
20159 s.end()
20160 }
20161 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => {
20162 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20164 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
20165 s.end()
20166 }
20167 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => {
20168 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20170 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
20171 s.end()
20172 }
20173 MembersTransferFilesError::TransferDestUserNotFound => {
20174 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20176 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
20177 s.end()
20178 }
20179 MembersTransferFilesError::TransferDestUserNotInTeam => {
20180 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20182 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
20183 s.end()
20184 }
20185 MembersTransferFilesError::TransferAdminUserNotInTeam => {
20186 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20188 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
20189 s.end()
20190 }
20191 MembersTransferFilesError::TransferAdminUserNotFound => {
20192 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20194 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
20195 s.end()
20196 }
20197 MembersTransferFilesError::UnspecifiedTransferAdminId => {
20198 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20200 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
20201 s.end()
20202 }
20203 MembersTransferFilesError::TransferAdminIsNotAdmin => {
20204 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20206 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
20207 s.end()
20208 }
20209 MembersTransferFilesError::RecipientNotVerified => {
20210 let mut s = serializer.serialize_struct("MembersTransferFilesError", 1)?;
20212 s.serialize_field(".tag", "recipient_not_verified")?;
20213 s.end()
20214 }
20215 MembersTransferFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20216 }
20217 }
20218}
20219
20220impl ::std::error::Error for MembersTransferFilesError {
20221}
20222
20223impl ::std::fmt::Display for MembersTransferFilesError {
20224 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20225 match self {
20226 MembersTransferFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20227 MembersTransferFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20228 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
20229 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
20230 MembersTransferFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
20231 MembersTransferFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
20232 MembersTransferFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
20233 MembersTransferFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
20234 MembersTransferFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
20235 MembersTransferFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
20236 MembersTransferFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
20237 _ => write!(f, "{:?}", *self),
20238 }
20239 }
20240}
20241
20242impl From<MembersDeactivateError> for MembersTransferFilesError {
20244 fn from(parent: MembersDeactivateError) -> Self {
20245 match parent {
20246 MembersDeactivateError::UserNotFound => MembersTransferFilesError::UserNotFound,
20247 MembersDeactivateError::UserNotInTeam => MembersTransferFilesError::UserNotInTeam,
20248 MembersDeactivateError::Other => MembersTransferFilesError::Other,
20249 }
20250 }
20251}
20252#[derive(Debug, Clone, PartialEq, Eq)]
20253#[non_exhaustive] pub enum MembersTransferFormerMembersFilesError {
20255 UserNotFound,
20258 UserNotInTeam,
20260 RemovedAndTransferDestShouldDiffer,
20262 RemovedAndTransferAdminShouldDiffer,
20264 TransferDestUserNotFound,
20266 TransferDestUserNotInTeam,
20268 TransferAdminUserNotInTeam,
20270 TransferAdminUserNotFound,
20272 UnspecifiedTransferAdminId,
20274 TransferAdminIsNotAdmin,
20276 RecipientNotVerified,
20278 UserDataIsBeingTransferred,
20280 UserNotRemoved,
20282 UserDataCannotBeTransferred,
20284 UserDataAlreadyTransferred,
20286 Other,
20289}
20290
20291impl<'de> ::serde::de::Deserialize<'de> for MembersTransferFormerMembersFilesError {
20292 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20293 use serde::de::{self, MapAccess, Visitor};
20295 struct EnumVisitor;
20296 impl<'de> Visitor<'de> for EnumVisitor {
20297 type Value = MembersTransferFormerMembersFilesError;
20298 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20299 f.write_str("a MembersTransferFormerMembersFilesError structure")
20300 }
20301 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20302 let tag: &str = match map.next_key()? {
20303 Some(".tag") => map.next_value()?,
20304 _ => return Err(de::Error::missing_field(".tag"))
20305 };
20306 let value = match tag {
20307 "user_not_found" => MembersTransferFormerMembersFilesError::UserNotFound,
20308 "user_not_in_team" => MembersTransferFormerMembersFilesError::UserNotInTeam,
20309 "removed_and_transfer_dest_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
20310 "removed_and_transfer_admin_should_differ" => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
20311 "transfer_dest_user_not_found" => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
20312 "transfer_dest_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
20313 "transfer_admin_user_not_in_team" => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
20314 "transfer_admin_user_not_found" => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
20315 "unspecified_transfer_admin_id" => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
20316 "transfer_admin_is_not_admin" => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
20317 "recipient_not_verified" => MembersTransferFormerMembersFilesError::RecipientNotVerified,
20318 "user_data_is_being_transferred" => MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred,
20319 "user_not_removed" => MembersTransferFormerMembersFilesError::UserNotRemoved,
20320 "user_data_cannot_be_transferred" => MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred,
20321 "user_data_already_transferred" => MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred,
20322 _ => MembersTransferFormerMembersFilesError::Other,
20323 };
20324 crate::eat_json_fields(&mut map)?;
20325 Ok(value)
20326 }
20327 }
20328 const VARIANTS: &[&str] = &["user_not_found",
20329 "user_not_in_team",
20330 "other",
20331 "removed_and_transfer_dest_should_differ",
20332 "removed_and_transfer_admin_should_differ",
20333 "transfer_dest_user_not_found",
20334 "transfer_dest_user_not_in_team",
20335 "transfer_admin_user_not_in_team",
20336 "transfer_admin_user_not_found",
20337 "unspecified_transfer_admin_id",
20338 "transfer_admin_is_not_admin",
20339 "recipient_not_verified",
20340 "user_data_is_being_transferred",
20341 "user_not_removed",
20342 "user_data_cannot_be_transferred",
20343 "user_data_already_transferred"];
20344 deserializer.deserialize_struct("MembersTransferFormerMembersFilesError", VARIANTS, EnumVisitor)
20345 }
20346}
20347
20348impl ::serde::ser::Serialize for MembersTransferFormerMembersFilesError {
20349 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20350 use serde::ser::SerializeStruct;
20352 match self {
20353 MembersTransferFormerMembersFilesError::UserNotFound => {
20354 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20356 s.serialize_field(".tag", "user_not_found")?;
20357 s.end()
20358 }
20359 MembersTransferFormerMembersFilesError::UserNotInTeam => {
20360 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20362 s.serialize_field(".tag", "user_not_in_team")?;
20363 s.end()
20364 }
20365 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => {
20366 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20368 s.serialize_field(".tag", "removed_and_transfer_dest_should_differ")?;
20369 s.end()
20370 }
20371 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => {
20372 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20374 s.serialize_field(".tag", "removed_and_transfer_admin_should_differ")?;
20375 s.end()
20376 }
20377 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => {
20378 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20380 s.serialize_field(".tag", "transfer_dest_user_not_found")?;
20381 s.end()
20382 }
20383 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => {
20384 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20386 s.serialize_field(".tag", "transfer_dest_user_not_in_team")?;
20387 s.end()
20388 }
20389 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => {
20390 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20392 s.serialize_field(".tag", "transfer_admin_user_not_in_team")?;
20393 s.end()
20394 }
20395 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => {
20396 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20398 s.serialize_field(".tag", "transfer_admin_user_not_found")?;
20399 s.end()
20400 }
20401 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => {
20402 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20404 s.serialize_field(".tag", "unspecified_transfer_admin_id")?;
20405 s.end()
20406 }
20407 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => {
20408 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20410 s.serialize_field(".tag", "transfer_admin_is_not_admin")?;
20411 s.end()
20412 }
20413 MembersTransferFormerMembersFilesError::RecipientNotVerified => {
20414 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20416 s.serialize_field(".tag", "recipient_not_verified")?;
20417 s.end()
20418 }
20419 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => {
20420 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20422 s.serialize_field(".tag", "user_data_is_being_transferred")?;
20423 s.end()
20424 }
20425 MembersTransferFormerMembersFilesError::UserNotRemoved => {
20426 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20428 s.serialize_field(".tag", "user_not_removed")?;
20429 s.end()
20430 }
20431 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => {
20432 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20434 s.serialize_field(".tag", "user_data_cannot_be_transferred")?;
20435 s.end()
20436 }
20437 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => {
20438 let mut s = serializer.serialize_struct("MembersTransferFormerMembersFilesError", 1)?;
20440 s.serialize_field(".tag", "user_data_already_transferred")?;
20441 s.end()
20442 }
20443 MembersTransferFormerMembersFilesError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20444 }
20445 }
20446}
20447
20448impl ::std::error::Error for MembersTransferFormerMembersFilesError {
20449}
20450
20451impl ::std::fmt::Display for MembersTransferFormerMembersFilesError {
20452 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20453 match self {
20454 MembersTransferFormerMembersFilesError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20455 MembersTransferFormerMembersFilesError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20456 MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer => f.write_str("Expected removed user and transfer_dest user to be different."),
20457 MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer => f.write_str("Expected removed user and transfer_admin user to be different."),
20458 MembersTransferFormerMembersFilesError::TransferDestUserNotFound => f.write_str("No matching user found for the argument transfer_dest_id."),
20459 MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam => f.write_str("The provided transfer_dest_id does not exist on this team."),
20460 MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam => f.write_str("The provided transfer_admin_id does not exist on this team."),
20461 MembersTransferFormerMembersFilesError::TransferAdminUserNotFound => f.write_str("No matching user found for the argument transfer_admin_id."),
20462 MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId => f.write_str("The transfer_admin_id argument must be provided when file transfer is requested."),
20463 MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin => f.write_str("Specified transfer_admin user is not a team admin."),
20464 MembersTransferFormerMembersFilesError::RecipientNotVerified => f.write_str("The recipient user's email is not verified."),
20465 MembersTransferFormerMembersFilesError::UserDataIsBeingTransferred => f.write_str("The user's data is being transferred. Please wait some time before retrying."),
20466 MembersTransferFormerMembersFilesError::UserNotRemoved => f.write_str("No matching removed user found for the argument user."),
20467 MembersTransferFormerMembersFilesError::UserDataCannotBeTransferred => f.write_str("User files aren't transferable anymore."),
20468 MembersTransferFormerMembersFilesError::UserDataAlreadyTransferred => f.write_str("User's data has already been transferred to another user."),
20469 _ => write!(f, "{:?}", *self),
20470 }
20471 }
20472}
20473
20474impl From<MembersTransferFilesError> for MembersTransferFormerMembersFilesError {
20476 fn from(parent: MembersTransferFilesError) -> Self {
20477 match parent {
20478 MembersTransferFilesError::UserNotFound => MembersTransferFormerMembersFilesError::UserNotFound,
20479 MembersTransferFilesError::UserNotInTeam => MembersTransferFormerMembersFilesError::UserNotInTeam,
20480 MembersTransferFilesError::Other => MembersTransferFormerMembersFilesError::Other,
20481 MembersTransferFilesError::RemovedAndTransferDestShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferDestShouldDiffer,
20482 MembersTransferFilesError::RemovedAndTransferAdminShouldDiffer => MembersTransferFormerMembersFilesError::RemovedAndTransferAdminShouldDiffer,
20483 MembersTransferFilesError::TransferDestUserNotFound => MembersTransferFormerMembersFilesError::TransferDestUserNotFound,
20484 MembersTransferFilesError::TransferDestUserNotInTeam => MembersTransferFormerMembersFilesError::TransferDestUserNotInTeam,
20485 MembersTransferFilesError::TransferAdminUserNotInTeam => MembersTransferFormerMembersFilesError::TransferAdminUserNotInTeam,
20486 MembersTransferFilesError::TransferAdminUserNotFound => MembersTransferFormerMembersFilesError::TransferAdminUserNotFound,
20487 MembersTransferFilesError::UnspecifiedTransferAdminId => MembersTransferFormerMembersFilesError::UnspecifiedTransferAdminId,
20488 MembersTransferFilesError::TransferAdminIsNotAdmin => MembersTransferFormerMembersFilesError::TransferAdminIsNotAdmin,
20489 MembersTransferFilesError::RecipientNotVerified => MembersTransferFormerMembersFilesError::RecipientNotVerified,
20490 }
20491 }
20492}
20493#[derive(Debug, Clone, PartialEq, Eq)]
20496#[non_exhaustive] pub struct MembersUnsuspendArg {
20498 pub user: UserSelectorArg,
20500}
20501
20502impl MembersUnsuspendArg {
20503 pub fn new(user: UserSelectorArg) -> Self {
20504 MembersUnsuspendArg {
20505 user,
20506 }
20507 }
20508}
20509
20510const MEMBERS_UNSUSPEND_ARG_FIELDS: &[&str] = &["user"];
20511impl MembersUnsuspendArg {
20512 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20513 map: V,
20514 ) -> Result<MembersUnsuspendArg, V::Error> {
20515 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20516 }
20517
20518 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20519 mut map: V,
20520 optional: bool,
20521 ) -> Result<Option<MembersUnsuspendArg>, V::Error> {
20522 let mut field_user = None;
20523 let mut nothing = true;
20524 while let Some(key) = map.next_key::<&str>()? {
20525 nothing = false;
20526 match key {
20527 "user" => {
20528 if field_user.is_some() {
20529 return Err(::serde::de::Error::duplicate_field("user"));
20530 }
20531 field_user = Some(map.next_value()?);
20532 }
20533 _ => {
20534 map.next_value::<::serde_json::Value>()?;
20536 }
20537 }
20538 }
20539 if optional && nothing {
20540 return Ok(None);
20541 }
20542 let result = MembersUnsuspendArg {
20543 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
20544 };
20545 Ok(Some(result))
20546 }
20547
20548 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20549 &self,
20550 s: &mut S::SerializeStruct,
20551 ) -> Result<(), S::Error> {
20552 use serde::ser::SerializeStruct;
20553 s.serialize_field("user", &self.user)?;
20554 Ok(())
20555 }
20556}
20557
20558impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendArg {
20559 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20560 use serde::de::{MapAccess, Visitor};
20562 struct StructVisitor;
20563 impl<'de> Visitor<'de> for StructVisitor {
20564 type Value = MembersUnsuspendArg;
20565 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20566 f.write_str("a MembersUnsuspendArg struct")
20567 }
20568 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
20569 MembersUnsuspendArg::internal_deserialize(map)
20570 }
20571 }
20572 deserializer.deserialize_struct("MembersUnsuspendArg", MEMBERS_UNSUSPEND_ARG_FIELDS, StructVisitor)
20573 }
20574}
20575
20576impl ::serde::ser::Serialize for MembersUnsuspendArg {
20577 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20578 use serde::ser::SerializeStruct;
20580 let mut s = serializer.serialize_struct("MembersUnsuspendArg", 1)?;
20581 self.internal_serialize::<S>(&mut s)?;
20582 s.end()
20583 }
20584}
20585
20586#[derive(Debug, Clone, PartialEq, Eq)]
20587#[non_exhaustive] pub enum MembersUnsuspendError {
20589 UserNotFound,
20592 UserNotInTeam,
20594 UnsuspendNonSuspendedMember,
20596 TeamLicenseLimit,
20598 Other,
20601}
20602
20603impl<'de> ::serde::de::Deserialize<'de> for MembersUnsuspendError {
20604 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20605 use serde::de::{self, MapAccess, Visitor};
20607 struct EnumVisitor;
20608 impl<'de> Visitor<'de> for EnumVisitor {
20609 type Value = MembersUnsuspendError;
20610 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20611 f.write_str("a MembersUnsuspendError structure")
20612 }
20613 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20614 let tag: &str = match map.next_key()? {
20615 Some(".tag") => map.next_value()?,
20616 _ => return Err(de::Error::missing_field(".tag"))
20617 };
20618 let value = match tag {
20619 "user_not_found" => MembersUnsuspendError::UserNotFound,
20620 "user_not_in_team" => MembersUnsuspendError::UserNotInTeam,
20621 "unsuspend_non_suspended_member" => MembersUnsuspendError::UnsuspendNonSuspendedMember,
20622 "team_license_limit" => MembersUnsuspendError::TeamLicenseLimit,
20623 _ => MembersUnsuspendError::Other,
20624 };
20625 crate::eat_json_fields(&mut map)?;
20626 Ok(value)
20627 }
20628 }
20629 const VARIANTS: &[&str] = &["user_not_found",
20630 "user_not_in_team",
20631 "other",
20632 "unsuspend_non_suspended_member",
20633 "team_license_limit"];
20634 deserializer.deserialize_struct("MembersUnsuspendError", VARIANTS, EnumVisitor)
20635 }
20636}
20637
20638impl ::serde::ser::Serialize for MembersUnsuspendError {
20639 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20640 use serde::ser::SerializeStruct;
20642 match self {
20643 MembersUnsuspendError::UserNotFound => {
20644 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
20646 s.serialize_field(".tag", "user_not_found")?;
20647 s.end()
20648 }
20649 MembersUnsuspendError::UserNotInTeam => {
20650 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
20652 s.serialize_field(".tag", "user_not_in_team")?;
20653 s.end()
20654 }
20655 MembersUnsuspendError::UnsuspendNonSuspendedMember => {
20656 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
20658 s.serialize_field(".tag", "unsuspend_non_suspended_member")?;
20659 s.end()
20660 }
20661 MembersUnsuspendError::TeamLicenseLimit => {
20662 let mut s = serializer.serialize_struct("MembersUnsuspendError", 1)?;
20664 s.serialize_field(".tag", "team_license_limit")?;
20665 s.end()
20666 }
20667 MembersUnsuspendError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20668 }
20669 }
20670}
20671
20672impl ::std::error::Error for MembersUnsuspendError {
20673}
20674
20675impl ::std::fmt::Display for MembersUnsuspendError {
20676 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20677 match self {
20678 MembersUnsuspendError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
20679 MembersUnsuspendError::UserNotInTeam => f.write_str("The user is not a member of the team."),
20680 MembersUnsuspendError::UnsuspendNonSuspendedMember => f.write_str("The user is unsuspended, so it cannot be unsuspended again."),
20681 MembersUnsuspendError::TeamLicenseLimit => f.write_str("Team is full. The organization has no available licenses."),
20682 _ => write!(f, "{:?}", *self),
20683 }
20684 }
20685}
20686
20687impl From<MembersDeactivateError> for MembersUnsuspendError {
20689 fn from(parent: MembersDeactivateError) -> Self {
20690 match parent {
20691 MembersDeactivateError::UserNotFound => MembersUnsuspendError::UserNotFound,
20692 MembersDeactivateError::UserNotInTeam => MembersUnsuspendError::UserNotInTeam,
20693 MembersDeactivateError::Other => MembersUnsuspendError::Other,
20694 }
20695 }
20696}
20697#[derive(Debug, Clone, PartialEq, Eq)]
20698#[non_exhaustive] pub enum MobileClientPlatform {
20700 Iphone,
20702 Ipad,
20704 Android,
20706 WindowsPhone,
20708 Blackberry,
20710 Other,
20713}
20714
20715impl<'de> ::serde::de::Deserialize<'de> for MobileClientPlatform {
20716 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
20717 use serde::de::{self, MapAccess, Visitor};
20719 struct EnumVisitor;
20720 impl<'de> Visitor<'de> for EnumVisitor {
20721 type Value = MobileClientPlatform;
20722 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
20723 f.write_str("a MobileClientPlatform structure")
20724 }
20725 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
20726 let tag: &str = match map.next_key()? {
20727 Some(".tag") => map.next_value()?,
20728 _ => return Err(de::Error::missing_field(".tag"))
20729 };
20730 let value = match tag {
20731 "iphone" => MobileClientPlatform::Iphone,
20732 "ipad" => MobileClientPlatform::Ipad,
20733 "android" => MobileClientPlatform::Android,
20734 "windows_phone" => MobileClientPlatform::WindowsPhone,
20735 "blackberry" => MobileClientPlatform::Blackberry,
20736 _ => MobileClientPlatform::Other,
20737 };
20738 crate::eat_json_fields(&mut map)?;
20739 Ok(value)
20740 }
20741 }
20742 const VARIANTS: &[&str] = &["iphone",
20743 "ipad",
20744 "android",
20745 "windows_phone",
20746 "blackberry",
20747 "other"];
20748 deserializer.deserialize_struct("MobileClientPlatform", VARIANTS, EnumVisitor)
20749 }
20750}
20751
20752impl ::serde::ser::Serialize for MobileClientPlatform {
20753 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
20754 use serde::ser::SerializeStruct;
20756 match self {
20757 MobileClientPlatform::Iphone => {
20758 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
20760 s.serialize_field(".tag", "iphone")?;
20761 s.end()
20762 }
20763 MobileClientPlatform::Ipad => {
20764 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
20766 s.serialize_field(".tag", "ipad")?;
20767 s.end()
20768 }
20769 MobileClientPlatform::Android => {
20770 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
20772 s.serialize_field(".tag", "android")?;
20773 s.end()
20774 }
20775 MobileClientPlatform::WindowsPhone => {
20776 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
20778 s.serialize_field(".tag", "windows_phone")?;
20779 s.end()
20780 }
20781 MobileClientPlatform::Blackberry => {
20782 let mut s = serializer.serialize_struct("MobileClientPlatform", 1)?;
20784 s.serialize_field(".tag", "blackberry")?;
20785 s.end()
20786 }
20787 MobileClientPlatform::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
20788 }
20789 }
20790}
20791
20792#[derive(Debug, Clone, PartialEq, Eq)]
20794#[non_exhaustive] pub struct MobileClientSession {
20796 pub session_id: String,
20798 pub device_name: String,
20800 pub client_type: MobileClientPlatform,
20802 pub ip_address: Option<String>,
20804 pub country: Option<String>,
20806 pub created: Option<crate::types::common::DropboxTimestamp>,
20808 pub updated: Option<crate::types::common::DropboxTimestamp>,
20810 pub client_version: Option<String>,
20812 pub os_version: Option<String>,
20814 pub last_carrier: Option<String>,
20816}
20817
20818impl MobileClientSession {
20819 pub fn new(
20820 session_id: String,
20821 device_name: String,
20822 client_type: MobileClientPlatform,
20823 ) -> Self {
20824 MobileClientSession {
20825 session_id,
20826 device_name,
20827 client_type,
20828 ip_address: None,
20829 country: None,
20830 created: None,
20831 updated: None,
20832 client_version: None,
20833 os_version: None,
20834 last_carrier: None,
20835 }
20836 }
20837
20838 pub fn with_ip_address(mut self, value: String) -> Self {
20839 self.ip_address = Some(value);
20840 self
20841 }
20842
20843 pub fn with_country(mut self, value: String) -> Self {
20844 self.country = Some(value);
20845 self
20846 }
20847
20848 pub fn with_created(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
20849 self.created = Some(value);
20850 self
20851 }
20852
20853 pub fn with_updated(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
20854 self.updated = Some(value);
20855 self
20856 }
20857
20858 pub fn with_client_version(mut self, value: String) -> Self {
20859 self.client_version = Some(value);
20860 self
20861 }
20862
20863 pub fn with_os_version(mut self, value: String) -> Self {
20864 self.os_version = Some(value);
20865 self
20866 }
20867
20868 pub fn with_last_carrier(mut self, value: String) -> Self {
20869 self.last_carrier = Some(value);
20870 self
20871 }
20872}
20873
20874const MOBILE_CLIENT_SESSION_FIELDS: &[&str] = &["session_id",
20875 "device_name",
20876 "client_type",
20877 "ip_address",
20878 "country",
20879 "created",
20880 "updated",
20881 "client_version",
20882 "os_version",
20883 "last_carrier"];
20884impl MobileClientSession {
20885 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
20886 map: V,
20887 ) -> Result<MobileClientSession, V::Error> {
20888 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
20889 }
20890
20891 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
20892 mut map: V,
20893 optional: bool,
20894 ) -> Result<Option<MobileClientSession>, V::Error> {
20895 let mut field_session_id = None;
20896 let mut field_device_name = None;
20897 let mut field_client_type = None;
20898 let mut field_ip_address = None;
20899 let mut field_country = None;
20900 let mut field_created = None;
20901 let mut field_updated = None;
20902 let mut field_client_version = None;
20903 let mut field_os_version = None;
20904 let mut field_last_carrier = None;
20905 let mut nothing = true;
20906 while let Some(key) = map.next_key::<&str>()? {
20907 nothing = false;
20908 match key {
20909 "session_id" => {
20910 if field_session_id.is_some() {
20911 return Err(::serde::de::Error::duplicate_field("session_id"));
20912 }
20913 field_session_id = Some(map.next_value()?);
20914 }
20915 "device_name" => {
20916 if field_device_name.is_some() {
20917 return Err(::serde::de::Error::duplicate_field("device_name"));
20918 }
20919 field_device_name = Some(map.next_value()?);
20920 }
20921 "client_type" => {
20922 if field_client_type.is_some() {
20923 return Err(::serde::de::Error::duplicate_field("client_type"));
20924 }
20925 field_client_type = Some(map.next_value()?);
20926 }
20927 "ip_address" => {
20928 if field_ip_address.is_some() {
20929 return Err(::serde::de::Error::duplicate_field("ip_address"));
20930 }
20931 field_ip_address = Some(map.next_value()?);
20932 }
20933 "country" => {
20934 if field_country.is_some() {
20935 return Err(::serde::de::Error::duplicate_field("country"));
20936 }
20937 field_country = Some(map.next_value()?);
20938 }
20939 "created" => {
20940 if field_created.is_some() {
20941 return Err(::serde::de::Error::duplicate_field("created"));
20942 }
20943 field_created = Some(map.next_value()?);
20944 }
20945 "updated" => {
20946 if field_updated.is_some() {
20947 return Err(::serde::de::Error::duplicate_field("updated"));
20948 }
20949 field_updated = Some(map.next_value()?);
20950 }
20951 "client_version" => {
20952 if field_client_version.is_some() {
20953 return Err(::serde::de::Error::duplicate_field("client_version"));
20954 }
20955 field_client_version = Some(map.next_value()?);
20956 }
20957 "os_version" => {
20958 if field_os_version.is_some() {
20959 return Err(::serde::de::Error::duplicate_field("os_version"));
20960 }
20961 field_os_version = Some(map.next_value()?);
20962 }
20963 "last_carrier" => {
20964 if field_last_carrier.is_some() {
20965 return Err(::serde::de::Error::duplicate_field("last_carrier"));
20966 }
20967 field_last_carrier = Some(map.next_value()?);
20968 }
20969 _ => {
20970 map.next_value::<::serde_json::Value>()?;
20972 }
20973 }
20974 }
20975 if optional && nothing {
20976 return Ok(None);
20977 }
20978 let result = MobileClientSession {
20979 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
20980 device_name: field_device_name.ok_or_else(|| ::serde::de::Error::missing_field("device_name"))?,
20981 client_type: field_client_type.ok_or_else(|| ::serde::de::Error::missing_field("client_type"))?,
20982 ip_address: field_ip_address.and_then(Option::flatten),
20983 country: field_country.and_then(Option::flatten),
20984 created: field_created.and_then(Option::flatten),
20985 updated: field_updated.and_then(Option::flatten),
20986 client_version: field_client_version.and_then(Option::flatten),
20987 os_version: field_os_version.and_then(Option::flatten),
20988 last_carrier: field_last_carrier.and_then(Option::flatten),
20989 };
20990 Ok(Some(result))
20991 }
20992
20993 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
20994 &self,
20995 s: &mut S::SerializeStruct,
20996 ) -> Result<(), S::Error> {
20997 use serde::ser::SerializeStruct;
20998 s.serialize_field("session_id", &self.session_id)?;
20999 s.serialize_field("device_name", &self.device_name)?;
21000 s.serialize_field("client_type", &self.client_type)?;
21001 if let Some(val) = &self.ip_address {
21002 s.serialize_field("ip_address", val)?;
21003 }
21004 if let Some(val) = &self.country {
21005 s.serialize_field("country", val)?;
21006 }
21007 if let Some(val) = &self.created {
21008 s.serialize_field("created", val)?;
21009 }
21010 if let Some(val) = &self.updated {
21011 s.serialize_field("updated", val)?;
21012 }
21013 if let Some(val) = &self.client_version {
21014 s.serialize_field("client_version", val)?;
21015 }
21016 if let Some(val) = &self.os_version {
21017 s.serialize_field("os_version", val)?;
21018 }
21019 if let Some(val) = &self.last_carrier {
21020 s.serialize_field("last_carrier", val)?;
21021 }
21022 Ok(())
21023 }
21024}
21025
21026impl<'de> ::serde::de::Deserialize<'de> for MobileClientSession {
21027 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21028 use serde::de::{MapAccess, Visitor};
21030 struct StructVisitor;
21031 impl<'de> Visitor<'de> for StructVisitor {
21032 type Value = MobileClientSession;
21033 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21034 f.write_str("a MobileClientSession struct")
21035 }
21036 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21037 MobileClientSession::internal_deserialize(map)
21038 }
21039 }
21040 deserializer.deserialize_struct("MobileClientSession", MOBILE_CLIENT_SESSION_FIELDS, StructVisitor)
21041 }
21042}
21043
21044impl ::serde::ser::Serialize for MobileClientSession {
21045 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21046 use serde::ser::SerializeStruct;
21048 let mut s = serializer.serialize_struct("MobileClientSession", 10)?;
21049 self.internal_serialize::<S>(&mut s)?;
21050 s.end()
21051 }
21052}
21053
21054impl From<MobileClientSession> for DeviceSession {
21056 fn from(subtype: MobileClientSession) -> Self {
21057 Self {
21058 session_id: subtype.session_id,
21059 ip_address: subtype.ip_address,
21060 country: subtype.country,
21061 created: subtype.created,
21062 updated: subtype.updated,
21063 }
21064 }
21065}
21066#[derive(Debug, Clone, PartialEq, Eq)]
21068#[non_exhaustive] pub struct NamespaceMetadata {
21070 pub name: String,
21072 pub namespace_id: crate::types::common::SharedFolderId,
21074 pub namespace_type: NamespaceType,
21076 pub team_member_id: Option<crate::types::team_common::TeamMemberId>,
21079}
21080
21081impl NamespaceMetadata {
21082 pub fn new(
21083 name: String,
21084 namespace_id: crate::types::common::SharedFolderId,
21085 namespace_type: NamespaceType,
21086 ) -> Self {
21087 NamespaceMetadata {
21088 name,
21089 namespace_id,
21090 namespace_type,
21091 team_member_id: None,
21092 }
21093 }
21094
21095 pub fn with_team_member_id(mut self, value: crate::types::team_common::TeamMemberId) -> Self {
21096 self.team_member_id = Some(value);
21097 self
21098 }
21099}
21100
21101const NAMESPACE_METADATA_FIELDS: &[&str] = &["name",
21102 "namespace_id",
21103 "namespace_type",
21104 "team_member_id"];
21105impl NamespaceMetadata {
21106 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21107 map: V,
21108 ) -> Result<NamespaceMetadata, V::Error> {
21109 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21110 }
21111
21112 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21113 mut map: V,
21114 optional: bool,
21115 ) -> Result<Option<NamespaceMetadata>, V::Error> {
21116 let mut field_name = None;
21117 let mut field_namespace_id = None;
21118 let mut field_namespace_type = None;
21119 let mut field_team_member_id = None;
21120 let mut nothing = true;
21121 while let Some(key) = map.next_key::<&str>()? {
21122 nothing = false;
21123 match key {
21124 "name" => {
21125 if field_name.is_some() {
21126 return Err(::serde::de::Error::duplicate_field("name"));
21127 }
21128 field_name = Some(map.next_value()?);
21129 }
21130 "namespace_id" => {
21131 if field_namespace_id.is_some() {
21132 return Err(::serde::de::Error::duplicate_field("namespace_id"));
21133 }
21134 field_namespace_id = Some(map.next_value()?);
21135 }
21136 "namespace_type" => {
21137 if field_namespace_type.is_some() {
21138 return Err(::serde::de::Error::duplicate_field("namespace_type"));
21139 }
21140 field_namespace_type = Some(map.next_value()?);
21141 }
21142 "team_member_id" => {
21143 if field_team_member_id.is_some() {
21144 return Err(::serde::de::Error::duplicate_field("team_member_id"));
21145 }
21146 field_team_member_id = Some(map.next_value()?);
21147 }
21148 _ => {
21149 map.next_value::<::serde_json::Value>()?;
21151 }
21152 }
21153 }
21154 if optional && nothing {
21155 return Ok(None);
21156 }
21157 let result = NamespaceMetadata {
21158 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
21159 namespace_id: field_namespace_id.ok_or_else(|| ::serde::de::Error::missing_field("namespace_id"))?,
21160 namespace_type: field_namespace_type.ok_or_else(|| ::serde::de::Error::missing_field("namespace_type"))?,
21161 team_member_id: field_team_member_id.and_then(Option::flatten),
21162 };
21163 Ok(Some(result))
21164 }
21165
21166 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21167 &self,
21168 s: &mut S::SerializeStruct,
21169 ) -> Result<(), S::Error> {
21170 use serde::ser::SerializeStruct;
21171 s.serialize_field("name", &self.name)?;
21172 s.serialize_field("namespace_id", &self.namespace_id)?;
21173 s.serialize_field("namespace_type", &self.namespace_type)?;
21174 if let Some(val) = &self.team_member_id {
21175 s.serialize_field("team_member_id", val)?;
21176 }
21177 Ok(())
21178 }
21179}
21180
21181impl<'de> ::serde::de::Deserialize<'de> for NamespaceMetadata {
21182 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21183 use serde::de::{MapAccess, Visitor};
21185 struct StructVisitor;
21186 impl<'de> Visitor<'de> for StructVisitor {
21187 type Value = NamespaceMetadata;
21188 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21189 f.write_str("a NamespaceMetadata struct")
21190 }
21191 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21192 NamespaceMetadata::internal_deserialize(map)
21193 }
21194 }
21195 deserializer.deserialize_struct("NamespaceMetadata", NAMESPACE_METADATA_FIELDS, StructVisitor)
21196 }
21197}
21198
21199impl ::serde::ser::Serialize for NamespaceMetadata {
21200 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21201 use serde::ser::SerializeStruct;
21203 let mut s = serializer.serialize_struct("NamespaceMetadata", 4)?;
21204 self.internal_serialize::<S>(&mut s)?;
21205 s.end()
21206 }
21207}
21208
21209#[derive(Debug, Clone, PartialEq, Eq)]
21210#[non_exhaustive] pub enum NamespaceType {
21212 AppFolder,
21214 SharedFolder,
21216 TeamFolder,
21218 TeamMemberFolder,
21220 Other,
21223}
21224
21225impl<'de> ::serde::de::Deserialize<'de> for NamespaceType {
21226 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21227 use serde::de::{self, MapAccess, Visitor};
21229 struct EnumVisitor;
21230 impl<'de> Visitor<'de> for EnumVisitor {
21231 type Value = NamespaceType;
21232 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21233 f.write_str("a NamespaceType structure")
21234 }
21235 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21236 let tag: &str = match map.next_key()? {
21237 Some(".tag") => map.next_value()?,
21238 _ => return Err(de::Error::missing_field(".tag"))
21239 };
21240 let value = match tag {
21241 "app_folder" => NamespaceType::AppFolder,
21242 "shared_folder" => NamespaceType::SharedFolder,
21243 "team_folder" => NamespaceType::TeamFolder,
21244 "team_member_folder" => NamespaceType::TeamMemberFolder,
21245 _ => NamespaceType::Other,
21246 };
21247 crate::eat_json_fields(&mut map)?;
21248 Ok(value)
21249 }
21250 }
21251 const VARIANTS: &[&str] = &["app_folder",
21252 "shared_folder",
21253 "team_folder",
21254 "team_member_folder",
21255 "other"];
21256 deserializer.deserialize_struct("NamespaceType", VARIANTS, EnumVisitor)
21257 }
21258}
21259
21260impl ::serde::ser::Serialize for NamespaceType {
21261 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21262 use serde::ser::SerializeStruct;
21264 match self {
21265 NamespaceType::AppFolder => {
21266 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21268 s.serialize_field(".tag", "app_folder")?;
21269 s.end()
21270 }
21271 NamespaceType::SharedFolder => {
21272 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21274 s.serialize_field(".tag", "shared_folder")?;
21275 s.end()
21276 }
21277 NamespaceType::TeamFolder => {
21278 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21280 s.serialize_field(".tag", "team_folder")?;
21281 s.end()
21282 }
21283 NamespaceType::TeamMemberFolder => {
21284 let mut s = serializer.serialize_struct("NamespaceType", 1)?;
21286 s.serialize_field(".tag", "team_member_folder")?;
21287 s.end()
21288 }
21289 NamespaceType::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21290 }
21291 }
21292}
21293
21294#[derive(Debug, Clone, PartialEq, Eq)]
21296#[non_exhaustive] pub enum RemoveCustomQuotaResult {
21298 Success(UserSelectorArg),
21300 InvalidUser(UserSelectorArg),
21302 Other,
21305}
21306
21307impl<'de> ::serde::de::Deserialize<'de> for RemoveCustomQuotaResult {
21308 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21309 use serde::de::{self, MapAccess, Visitor};
21311 struct EnumVisitor;
21312 impl<'de> Visitor<'de> for EnumVisitor {
21313 type Value = RemoveCustomQuotaResult;
21314 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21315 f.write_str("a RemoveCustomQuotaResult structure")
21316 }
21317 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21318 let tag: &str = match map.next_key()? {
21319 Some(".tag") => map.next_value()?,
21320 _ => return Err(de::Error::missing_field(".tag"))
21321 };
21322 let value = match tag {
21323 "success" => {
21324 match map.next_key()? {
21325 Some("success") => RemoveCustomQuotaResult::Success(map.next_value()?),
21326 None => return Err(de::Error::missing_field("success")),
21327 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21328 }
21329 }
21330 "invalid_user" => {
21331 match map.next_key()? {
21332 Some("invalid_user") => RemoveCustomQuotaResult::InvalidUser(map.next_value()?),
21333 None => return Err(de::Error::missing_field("invalid_user")),
21334 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21335 }
21336 }
21337 _ => RemoveCustomQuotaResult::Other,
21338 };
21339 crate::eat_json_fields(&mut map)?;
21340 Ok(value)
21341 }
21342 }
21343 const VARIANTS: &[&str] = &["success",
21344 "invalid_user",
21345 "other"];
21346 deserializer.deserialize_struct("RemoveCustomQuotaResult", VARIANTS, EnumVisitor)
21347 }
21348}
21349
21350impl ::serde::ser::Serialize for RemoveCustomQuotaResult {
21351 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21352 use serde::ser::SerializeStruct;
21354 match self {
21355 RemoveCustomQuotaResult::Success(x) => {
21356 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
21358 s.serialize_field(".tag", "success")?;
21359 s.serialize_field("success", x)?;
21360 s.end()
21361 }
21362 RemoveCustomQuotaResult::InvalidUser(x) => {
21363 let mut s = serializer.serialize_struct("RemoveCustomQuotaResult", 2)?;
21365 s.serialize_field(".tag", "invalid_user")?;
21366 s.serialize_field("invalid_user", x)?;
21367 s.end()
21368 }
21369 RemoveCustomQuotaResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21370 }
21371 }
21372}
21373
21374#[derive(Debug, Clone, PartialEq, Eq)]
21375#[non_exhaustive] pub struct RemovedStatus {
21377 pub is_recoverable: bool,
21379 pub is_disconnected: bool,
21381}
21382
21383impl RemovedStatus {
21384 pub fn new(is_recoverable: bool, is_disconnected: bool) -> Self {
21385 RemovedStatus {
21386 is_recoverable,
21387 is_disconnected,
21388 }
21389 }
21390}
21391
21392const REMOVED_STATUS_FIELDS: &[&str] = &["is_recoverable",
21393 "is_disconnected"];
21394impl RemovedStatus {
21395 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21396 map: V,
21397 ) -> Result<RemovedStatus, V::Error> {
21398 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21399 }
21400
21401 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21402 mut map: V,
21403 optional: bool,
21404 ) -> Result<Option<RemovedStatus>, V::Error> {
21405 let mut field_is_recoverable = None;
21406 let mut field_is_disconnected = None;
21407 let mut nothing = true;
21408 while let Some(key) = map.next_key::<&str>()? {
21409 nothing = false;
21410 match key {
21411 "is_recoverable" => {
21412 if field_is_recoverable.is_some() {
21413 return Err(::serde::de::Error::duplicate_field("is_recoverable"));
21414 }
21415 field_is_recoverable = Some(map.next_value()?);
21416 }
21417 "is_disconnected" => {
21418 if field_is_disconnected.is_some() {
21419 return Err(::serde::de::Error::duplicate_field("is_disconnected"));
21420 }
21421 field_is_disconnected = Some(map.next_value()?);
21422 }
21423 _ => {
21424 map.next_value::<::serde_json::Value>()?;
21426 }
21427 }
21428 }
21429 if optional && nothing {
21430 return Ok(None);
21431 }
21432 let result = RemovedStatus {
21433 is_recoverable: field_is_recoverable.ok_or_else(|| ::serde::de::Error::missing_field("is_recoverable"))?,
21434 is_disconnected: field_is_disconnected.ok_or_else(|| ::serde::de::Error::missing_field("is_disconnected"))?,
21435 };
21436 Ok(Some(result))
21437 }
21438
21439 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21440 &self,
21441 s: &mut S::SerializeStruct,
21442 ) -> Result<(), S::Error> {
21443 use serde::ser::SerializeStruct;
21444 s.serialize_field("is_recoverable", &self.is_recoverable)?;
21445 s.serialize_field("is_disconnected", &self.is_disconnected)?;
21446 Ok(())
21447 }
21448}
21449
21450impl<'de> ::serde::de::Deserialize<'de> for RemovedStatus {
21451 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21452 use serde::de::{MapAccess, Visitor};
21454 struct StructVisitor;
21455 impl<'de> Visitor<'de> for StructVisitor {
21456 type Value = RemovedStatus;
21457 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21458 f.write_str("a RemovedStatus struct")
21459 }
21460 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21461 RemovedStatus::internal_deserialize(map)
21462 }
21463 }
21464 deserializer.deserialize_struct("RemovedStatus", REMOVED_STATUS_FIELDS, StructVisitor)
21465 }
21466}
21467
21468impl ::serde::ser::Serialize for RemovedStatus {
21469 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21470 use serde::ser::SerializeStruct;
21472 let mut s = serializer.serialize_struct("RemovedStatus", 2)?;
21473 self.internal_serialize::<S>(&mut s)?;
21474 s.end()
21475 }
21476}
21477
21478#[derive(Debug, Clone, PartialEq, Eq)]
21482#[non_exhaustive] pub enum ResendSecondaryEmailResult {
21484 Success(crate::types::common::EmailAddress),
21486 NotPending(crate::types::common::EmailAddress),
21488 RateLimited(crate::types::common::EmailAddress),
21490 Other,
21493}
21494
21495impl<'de> ::serde::de::Deserialize<'de> for ResendSecondaryEmailResult {
21496 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21497 use serde::de::{self, MapAccess, Visitor};
21499 struct EnumVisitor;
21500 impl<'de> Visitor<'de> for EnumVisitor {
21501 type Value = ResendSecondaryEmailResult;
21502 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21503 f.write_str("a ResendSecondaryEmailResult structure")
21504 }
21505 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21506 let tag: &str = match map.next_key()? {
21507 Some(".tag") => map.next_value()?,
21508 _ => return Err(de::Error::missing_field(".tag"))
21509 };
21510 let value = match tag {
21511 "success" => {
21512 match map.next_key()? {
21513 Some("success") => ResendSecondaryEmailResult::Success(map.next_value()?),
21514 None => return Err(de::Error::missing_field("success")),
21515 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21516 }
21517 }
21518 "not_pending" => {
21519 match map.next_key()? {
21520 Some("not_pending") => ResendSecondaryEmailResult::NotPending(map.next_value()?),
21521 None => return Err(de::Error::missing_field("not_pending")),
21522 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21523 }
21524 }
21525 "rate_limited" => {
21526 match map.next_key()? {
21527 Some("rate_limited") => ResendSecondaryEmailResult::RateLimited(map.next_value()?),
21528 None => return Err(de::Error::missing_field("rate_limited")),
21529 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
21530 }
21531 }
21532 _ => ResendSecondaryEmailResult::Other,
21533 };
21534 crate::eat_json_fields(&mut map)?;
21535 Ok(value)
21536 }
21537 }
21538 const VARIANTS: &[&str] = &["success",
21539 "not_pending",
21540 "rate_limited",
21541 "other"];
21542 deserializer.deserialize_struct("ResendSecondaryEmailResult", VARIANTS, EnumVisitor)
21543 }
21544}
21545
21546impl ::serde::ser::Serialize for ResendSecondaryEmailResult {
21547 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21548 use serde::ser::SerializeStruct;
21550 match self {
21551 ResendSecondaryEmailResult::Success(x) => {
21552 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
21554 s.serialize_field(".tag", "success")?;
21555 s.serialize_field("success", x)?;
21556 s.end()
21557 }
21558 ResendSecondaryEmailResult::NotPending(x) => {
21559 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
21561 s.serialize_field(".tag", "not_pending")?;
21562 s.serialize_field("not_pending", x)?;
21563 s.end()
21564 }
21565 ResendSecondaryEmailResult::RateLimited(x) => {
21566 let mut s = serializer.serialize_struct("ResendSecondaryEmailResult", 2)?;
21568 s.serialize_field(".tag", "rate_limited")?;
21569 s.serialize_field("rate_limited", x)?;
21570 s.end()
21571 }
21572 ResendSecondaryEmailResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
21573 }
21574 }
21575}
21576
21577#[derive(Debug, Clone, PartialEq, Eq)]
21578#[non_exhaustive] pub struct ResendVerificationEmailArg {
21580 pub emails_to_resend: Vec<UserSecondaryEmailsArg>,
21582}
21583
21584impl ResendVerificationEmailArg {
21585 pub fn new(emails_to_resend: Vec<UserSecondaryEmailsArg>) -> Self {
21586 ResendVerificationEmailArg {
21587 emails_to_resend,
21588 }
21589 }
21590}
21591
21592const RESEND_VERIFICATION_EMAIL_ARG_FIELDS: &[&str] = &["emails_to_resend"];
21593impl ResendVerificationEmailArg {
21594 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21595 map: V,
21596 ) -> Result<ResendVerificationEmailArg, V::Error> {
21597 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21598 }
21599
21600 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21601 mut map: V,
21602 optional: bool,
21603 ) -> Result<Option<ResendVerificationEmailArg>, V::Error> {
21604 let mut field_emails_to_resend = None;
21605 let mut nothing = true;
21606 while let Some(key) = map.next_key::<&str>()? {
21607 nothing = false;
21608 match key {
21609 "emails_to_resend" => {
21610 if field_emails_to_resend.is_some() {
21611 return Err(::serde::de::Error::duplicate_field("emails_to_resend"));
21612 }
21613 field_emails_to_resend = Some(map.next_value()?);
21614 }
21615 _ => {
21616 map.next_value::<::serde_json::Value>()?;
21618 }
21619 }
21620 }
21621 if optional && nothing {
21622 return Ok(None);
21623 }
21624 let result = ResendVerificationEmailArg {
21625 emails_to_resend: field_emails_to_resend.ok_or_else(|| ::serde::de::Error::missing_field("emails_to_resend"))?,
21626 };
21627 Ok(Some(result))
21628 }
21629
21630 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21631 &self,
21632 s: &mut S::SerializeStruct,
21633 ) -> Result<(), S::Error> {
21634 use serde::ser::SerializeStruct;
21635 s.serialize_field("emails_to_resend", &self.emails_to_resend)?;
21636 Ok(())
21637 }
21638}
21639
21640impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailArg {
21641 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21642 use serde::de::{MapAccess, Visitor};
21644 struct StructVisitor;
21645 impl<'de> Visitor<'de> for StructVisitor {
21646 type Value = ResendVerificationEmailArg;
21647 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21648 f.write_str("a ResendVerificationEmailArg struct")
21649 }
21650 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21651 ResendVerificationEmailArg::internal_deserialize(map)
21652 }
21653 }
21654 deserializer.deserialize_struct("ResendVerificationEmailArg", RESEND_VERIFICATION_EMAIL_ARG_FIELDS, StructVisitor)
21655 }
21656}
21657
21658impl ::serde::ser::Serialize for ResendVerificationEmailArg {
21659 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21660 use serde::ser::SerializeStruct;
21662 let mut s = serializer.serialize_struct("ResendVerificationEmailArg", 1)?;
21663 self.internal_serialize::<S>(&mut s)?;
21664 s.end()
21665 }
21666}
21667
21668#[derive(Debug, Clone, PartialEq, Eq)]
21670#[non_exhaustive] pub struct ResendVerificationEmailResult {
21672 pub results: Vec<UserResendResult>,
21673}
21674
21675impl ResendVerificationEmailResult {
21676 pub fn new(results: Vec<UserResendResult>) -> Self {
21677 ResendVerificationEmailResult {
21678 results,
21679 }
21680 }
21681}
21682
21683const RESEND_VERIFICATION_EMAIL_RESULT_FIELDS: &[&str] = &["results"];
21684impl ResendVerificationEmailResult {
21685 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21686 map: V,
21687 ) -> Result<ResendVerificationEmailResult, V::Error> {
21688 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21689 }
21690
21691 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21692 mut map: V,
21693 optional: bool,
21694 ) -> Result<Option<ResendVerificationEmailResult>, V::Error> {
21695 let mut field_results = None;
21696 let mut nothing = true;
21697 while let Some(key) = map.next_key::<&str>()? {
21698 nothing = false;
21699 match key {
21700 "results" => {
21701 if field_results.is_some() {
21702 return Err(::serde::de::Error::duplicate_field("results"));
21703 }
21704 field_results = Some(map.next_value()?);
21705 }
21706 _ => {
21707 map.next_value::<::serde_json::Value>()?;
21709 }
21710 }
21711 }
21712 if optional && nothing {
21713 return Ok(None);
21714 }
21715 let result = ResendVerificationEmailResult {
21716 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
21717 };
21718 Ok(Some(result))
21719 }
21720
21721 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21722 &self,
21723 s: &mut S::SerializeStruct,
21724 ) -> Result<(), S::Error> {
21725 use serde::ser::SerializeStruct;
21726 s.serialize_field("results", &self.results)?;
21727 Ok(())
21728 }
21729}
21730
21731impl<'de> ::serde::de::Deserialize<'de> for ResendVerificationEmailResult {
21732 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21733 use serde::de::{MapAccess, Visitor};
21735 struct StructVisitor;
21736 impl<'de> Visitor<'de> for StructVisitor {
21737 type Value = ResendVerificationEmailResult;
21738 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21739 f.write_str("a ResendVerificationEmailResult struct")
21740 }
21741 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21742 ResendVerificationEmailResult::internal_deserialize(map)
21743 }
21744 }
21745 deserializer.deserialize_struct("ResendVerificationEmailResult", RESEND_VERIFICATION_EMAIL_RESULT_FIELDS, StructVisitor)
21746 }
21747}
21748
21749impl ::serde::ser::Serialize for ResendVerificationEmailResult {
21750 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21751 use serde::ser::SerializeStruct;
21753 let mut s = serializer.serialize_struct("ResendVerificationEmailResult", 1)?;
21754 self.internal_serialize::<S>(&mut s)?;
21755 s.end()
21756 }
21757}
21758
21759#[derive(Debug, Clone, PartialEq, Eq)]
21760#[non_exhaustive] pub struct RevokeDesktopClientArg {
21762 pub session_id: String,
21764 pub team_member_id: String,
21766 pub delete_on_unlink: bool,
21769}
21770
21771impl RevokeDesktopClientArg {
21772 pub fn new(session_id: String, team_member_id: String) -> Self {
21773 RevokeDesktopClientArg {
21774 session_id,
21775 team_member_id,
21776 delete_on_unlink: false,
21777 }
21778 }
21779
21780 pub fn with_delete_on_unlink(mut self, value: bool) -> Self {
21781 self.delete_on_unlink = value;
21782 self
21783 }
21784}
21785
21786const REVOKE_DESKTOP_CLIENT_ARG_FIELDS: &[&str] = &["session_id",
21787 "team_member_id",
21788 "delete_on_unlink"];
21789impl RevokeDesktopClientArg {
21790 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21791 map: V,
21792 ) -> Result<RevokeDesktopClientArg, V::Error> {
21793 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21794 }
21795
21796 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21797 mut map: V,
21798 optional: bool,
21799 ) -> Result<Option<RevokeDesktopClientArg>, V::Error> {
21800 let mut field_session_id = None;
21801 let mut field_team_member_id = None;
21802 let mut field_delete_on_unlink = None;
21803 let mut nothing = true;
21804 while let Some(key) = map.next_key::<&str>()? {
21805 nothing = false;
21806 match key {
21807 "session_id" => {
21808 if field_session_id.is_some() {
21809 return Err(::serde::de::Error::duplicate_field("session_id"));
21810 }
21811 field_session_id = Some(map.next_value()?);
21812 }
21813 "team_member_id" => {
21814 if field_team_member_id.is_some() {
21815 return Err(::serde::de::Error::duplicate_field("team_member_id"));
21816 }
21817 field_team_member_id = Some(map.next_value()?);
21818 }
21819 "delete_on_unlink" => {
21820 if field_delete_on_unlink.is_some() {
21821 return Err(::serde::de::Error::duplicate_field("delete_on_unlink"));
21822 }
21823 field_delete_on_unlink = Some(map.next_value()?);
21824 }
21825 _ => {
21826 map.next_value::<::serde_json::Value>()?;
21828 }
21829 }
21830 }
21831 if optional && nothing {
21832 return Ok(None);
21833 }
21834 let result = RevokeDesktopClientArg {
21835 session_id: field_session_id.ok_or_else(|| ::serde::de::Error::missing_field("session_id"))?,
21836 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
21837 delete_on_unlink: field_delete_on_unlink.unwrap_or(false),
21838 };
21839 Ok(Some(result))
21840 }
21841
21842 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
21843 &self,
21844 s: &mut S::SerializeStruct,
21845 ) -> Result<(), S::Error> {
21846 use serde::ser::SerializeStruct;
21847 s.serialize_field("session_id", &self.session_id)?;
21848 s.serialize_field("team_member_id", &self.team_member_id)?;
21849 if self.delete_on_unlink {
21850 s.serialize_field("delete_on_unlink", &self.delete_on_unlink)?;
21851 }
21852 Ok(())
21853 }
21854}
21855
21856impl<'de> ::serde::de::Deserialize<'de> for RevokeDesktopClientArg {
21857 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21858 use serde::de::{MapAccess, Visitor};
21860 struct StructVisitor;
21861 impl<'de> Visitor<'de> for StructVisitor {
21862 type Value = RevokeDesktopClientArg;
21863 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21864 f.write_str("a RevokeDesktopClientArg struct")
21865 }
21866 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
21867 RevokeDesktopClientArg::internal_deserialize(map)
21868 }
21869 }
21870 deserializer.deserialize_struct("RevokeDesktopClientArg", REVOKE_DESKTOP_CLIENT_ARG_FIELDS, StructVisitor)
21871 }
21872}
21873
21874impl ::serde::ser::Serialize for RevokeDesktopClientArg {
21875 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21876 use serde::ser::SerializeStruct;
21878 let mut s = serializer.serialize_struct("RevokeDesktopClientArg", 3)?;
21879 self.internal_serialize::<S>(&mut s)?;
21880 s.end()
21881 }
21882}
21883
21884impl From<RevokeDesktopClientArg> for DeviceSessionArg {
21886 fn from(subtype: RevokeDesktopClientArg) -> Self {
21887 Self {
21888 session_id: subtype.session_id,
21889 team_member_id: subtype.team_member_id,
21890 }
21891 }
21892}
21893#[derive(Debug, Clone, PartialEq, Eq)]
21894pub enum RevokeDeviceSessionArg {
21895 WebSession(DeviceSessionArg),
21897 DesktopClient(RevokeDesktopClientArg),
21899 MobileClient(DeviceSessionArg),
21901}
21902
21903impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionArg {
21904 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
21905 use serde::de::{self, MapAccess, Visitor};
21907 struct EnumVisitor;
21908 impl<'de> Visitor<'de> for EnumVisitor {
21909 type Value = RevokeDeviceSessionArg;
21910 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
21911 f.write_str("a RevokeDeviceSessionArg structure")
21912 }
21913 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
21914 let tag: &str = match map.next_key()? {
21915 Some(".tag") => map.next_value()?,
21916 _ => return Err(de::Error::missing_field(".tag"))
21917 };
21918 let value = match tag {
21919 "web_session" => RevokeDeviceSessionArg::WebSession(DeviceSessionArg::internal_deserialize(&mut map)?),
21920 "desktop_client" => RevokeDeviceSessionArg::DesktopClient(RevokeDesktopClientArg::internal_deserialize(&mut map)?),
21921 "mobile_client" => RevokeDeviceSessionArg::MobileClient(DeviceSessionArg::internal_deserialize(&mut map)?),
21922 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
21923 };
21924 crate::eat_json_fields(&mut map)?;
21925 Ok(value)
21926 }
21927 }
21928 const VARIANTS: &[&str] = &["web_session",
21929 "desktop_client",
21930 "mobile_client"];
21931 deserializer.deserialize_struct("RevokeDeviceSessionArg", VARIANTS, EnumVisitor)
21932 }
21933}
21934
21935impl ::serde::ser::Serialize for RevokeDeviceSessionArg {
21936 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
21937 use serde::ser::SerializeStruct;
21939 match self {
21940 RevokeDeviceSessionArg::WebSession(x) => {
21941 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
21943 s.serialize_field(".tag", "web_session")?;
21944 x.internal_serialize::<S>(&mut s)?;
21945 s.end()
21946 }
21947 RevokeDeviceSessionArg::DesktopClient(x) => {
21948 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 4)?;
21950 s.serialize_field(".tag", "desktop_client")?;
21951 x.internal_serialize::<S>(&mut s)?;
21952 s.end()
21953 }
21954 RevokeDeviceSessionArg::MobileClient(x) => {
21955 let mut s = serializer.serialize_struct("RevokeDeviceSessionArg", 3)?;
21957 s.serialize_field(".tag", "mobile_client")?;
21958 x.internal_serialize::<S>(&mut s)?;
21959 s.end()
21960 }
21961 }
21962 }
21963}
21964
21965#[derive(Debug, Clone, PartialEq, Eq)]
21966#[non_exhaustive] pub struct RevokeDeviceSessionBatchArg {
21968 pub revoke_devices: Vec<RevokeDeviceSessionArg>,
21969}
21970
21971impl RevokeDeviceSessionBatchArg {
21972 pub fn new(revoke_devices: Vec<RevokeDeviceSessionArg>) -> Self {
21973 RevokeDeviceSessionBatchArg {
21974 revoke_devices,
21975 }
21976 }
21977}
21978
21979const REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS: &[&str] = &["revoke_devices"];
21980impl RevokeDeviceSessionBatchArg {
21981 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
21982 map: V,
21983 ) -> Result<RevokeDeviceSessionBatchArg, V::Error> {
21984 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
21985 }
21986
21987 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
21988 mut map: V,
21989 optional: bool,
21990 ) -> Result<Option<RevokeDeviceSessionBatchArg>, V::Error> {
21991 let mut field_revoke_devices = None;
21992 let mut nothing = true;
21993 while let Some(key) = map.next_key::<&str>()? {
21994 nothing = false;
21995 match key {
21996 "revoke_devices" => {
21997 if field_revoke_devices.is_some() {
21998 return Err(::serde::de::Error::duplicate_field("revoke_devices"));
21999 }
22000 field_revoke_devices = Some(map.next_value()?);
22001 }
22002 _ => {
22003 map.next_value::<::serde_json::Value>()?;
22005 }
22006 }
22007 }
22008 if optional && nothing {
22009 return Ok(None);
22010 }
22011 let result = RevokeDeviceSessionBatchArg {
22012 revoke_devices: field_revoke_devices.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices"))?,
22013 };
22014 Ok(Some(result))
22015 }
22016
22017 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22018 &self,
22019 s: &mut S::SerializeStruct,
22020 ) -> Result<(), S::Error> {
22021 use serde::ser::SerializeStruct;
22022 s.serialize_field("revoke_devices", &self.revoke_devices)?;
22023 Ok(())
22024 }
22025}
22026
22027impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchArg {
22028 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22029 use serde::de::{MapAccess, Visitor};
22031 struct StructVisitor;
22032 impl<'de> Visitor<'de> for StructVisitor {
22033 type Value = RevokeDeviceSessionBatchArg;
22034 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22035 f.write_str("a RevokeDeviceSessionBatchArg struct")
22036 }
22037 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22038 RevokeDeviceSessionBatchArg::internal_deserialize(map)
22039 }
22040 }
22041 deserializer.deserialize_struct("RevokeDeviceSessionBatchArg", REVOKE_DEVICE_SESSION_BATCH_ARG_FIELDS, StructVisitor)
22042 }
22043}
22044
22045impl ::serde::ser::Serialize for RevokeDeviceSessionBatchArg {
22046 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22047 use serde::ser::SerializeStruct;
22049 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchArg", 1)?;
22050 self.internal_serialize::<S>(&mut s)?;
22051 s.end()
22052 }
22053}
22054
22055
22056#[derive(Debug, Clone, PartialEq, Eq)]
22057#[non_exhaustive] pub enum RevokeDeviceSessionBatchError {
22059 Other,
22062}
22063
22064impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchError {
22065 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22066 use serde::de::{self, MapAccess, Visitor};
22068 struct EnumVisitor;
22069 impl<'de> Visitor<'de> for EnumVisitor {
22070 type Value = RevokeDeviceSessionBatchError;
22071 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22072 f.write_str("a RevokeDeviceSessionBatchError structure")
22073 }
22074 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22075 let tag: &str = match map.next_key()? {
22076 Some(".tag") => map.next_value()?,
22077 _ => return Err(de::Error::missing_field(".tag"))
22078 };
22079 let _ = tag;
22081 crate::eat_json_fields(&mut map)?;
22082 Ok(RevokeDeviceSessionBatchError::Other)
22083 }
22084 }
22085 const VARIANTS: &[&str] = &["other"];
22086 deserializer.deserialize_struct("RevokeDeviceSessionBatchError", VARIANTS, EnumVisitor)
22087 }
22088}
22089
22090impl ::serde::ser::Serialize for RevokeDeviceSessionBatchError {
22091 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22092 #![allow(unused_variables)]
22094 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
22095 }
22096}
22097
22098impl ::std::error::Error for RevokeDeviceSessionBatchError {
22099}
22100
22101impl ::std::fmt::Display for RevokeDeviceSessionBatchError {
22102 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22103 write!(f, "{:?}", *self)
22104 }
22105}
22106
22107#[derive(Debug, Clone, PartialEq, Eq)]
22108#[non_exhaustive] pub struct RevokeDeviceSessionBatchResult {
22110 pub revoke_devices_status: Vec<RevokeDeviceSessionStatus>,
22111}
22112
22113impl RevokeDeviceSessionBatchResult {
22114 pub fn new(revoke_devices_status: Vec<RevokeDeviceSessionStatus>) -> Self {
22115 RevokeDeviceSessionBatchResult {
22116 revoke_devices_status,
22117 }
22118 }
22119}
22120
22121const REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS: &[&str] = &["revoke_devices_status"];
22122impl RevokeDeviceSessionBatchResult {
22123 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22124 map: V,
22125 ) -> Result<RevokeDeviceSessionBatchResult, V::Error> {
22126 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22127 }
22128
22129 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22130 mut map: V,
22131 optional: bool,
22132 ) -> Result<Option<RevokeDeviceSessionBatchResult>, V::Error> {
22133 let mut field_revoke_devices_status = None;
22134 let mut nothing = true;
22135 while let Some(key) = map.next_key::<&str>()? {
22136 nothing = false;
22137 match key {
22138 "revoke_devices_status" => {
22139 if field_revoke_devices_status.is_some() {
22140 return Err(::serde::de::Error::duplicate_field("revoke_devices_status"));
22141 }
22142 field_revoke_devices_status = Some(map.next_value()?);
22143 }
22144 _ => {
22145 map.next_value::<::serde_json::Value>()?;
22147 }
22148 }
22149 }
22150 if optional && nothing {
22151 return Ok(None);
22152 }
22153 let result = RevokeDeviceSessionBatchResult {
22154 revoke_devices_status: field_revoke_devices_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_devices_status"))?,
22155 };
22156 Ok(Some(result))
22157 }
22158
22159 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22160 &self,
22161 s: &mut S::SerializeStruct,
22162 ) -> Result<(), S::Error> {
22163 use serde::ser::SerializeStruct;
22164 s.serialize_field("revoke_devices_status", &self.revoke_devices_status)?;
22165 Ok(())
22166 }
22167}
22168
22169impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionBatchResult {
22170 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22171 use serde::de::{MapAccess, Visitor};
22173 struct StructVisitor;
22174 impl<'de> Visitor<'de> for StructVisitor {
22175 type Value = RevokeDeviceSessionBatchResult;
22176 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22177 f.write_str("a RevokeDeviceSessionBatchResult struct")
22178 }
22179 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22180 RevokeDeviceSessionBatchResult::internal_deserialize(map)
22181 }
22182 }
22183 deserializer.deserialize_struct("RevokeDeviceSessionBatchResult", REVOKE_DEVICE_SESSION_BATCH_RESULT_FIELDS, StructVisitor)
22184 }
22185}
22186
22187impl ::serde::ser::Serialize for RevokeDeviceSessionBatchResult {
22188 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22189 use serde::ser::SerializeStruct;
22191 let mut s = serializer.serialize_struct("RevokeDeviceSessionBatchResult", 1)?;
22192 self.internal_serialize::<S>(&mut s)?;
22193 s.end()
22194 }
22195}
22196
22197#[derive(Debug, Clone, PartialEq, Eq)]
22198#[non_exhaustive] pub enum RevokeDeviceSessionError {
22200 DeviceSessionNotFound,
22202 MemberNotFound,
22204 Other,
22207}
22208
22209impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionError {
22210 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22211 use serde::de::{self, MapAccess, Visitor};
22213 struct EnumVisitor;
22214 impl<'de> Visitor<'de> for EnumVisitor {
22215 type Value = RevokeDeviceSessionError;
22216 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22217 f.write_str("a RevokeDeviceSessionError structure")
22218 }
22219 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22220 let tag: &str = match map.next_key()? {
22221 Some(".tag") => map.next_value()?,
22222 _ => return Err(de::Error::missing_field(".tag"))
22223 };
22224 let value = match tag {
22225 "device_session_not_found" => RevokeDeviceSessionError::DeviceSessionNotFound,
22226 "member_not_found" => RevokeDeviceSessionError::MemberNotFound,
22227 _ => RevokeDeviceSessionError::Other,
22228 };
22229 crate::eat_json_fields(&mut map)?;
22230 Ok(value)
22231 }
22232 }
22233 const VARIANTS: &[&str] = &["device_session_not_found",
22234 "member_not_found",
22235 "other"];
22236 deserializer.deserialize_struct("RevokeDeviceSessionError", VARIANTS, EnumVisitor)
22237 }
22238}
22239
22240impl ::serde::ser::Serialize for RevokeDeviceSessionError {
22241 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22242 use serde::ser::SerializeStruct;
22244 match self {
22245 RevokeDeviceSessionError::DeviceSessionNotFound => {
22246 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
22248 s.serialize_field(".tag", "device_session_not_found")?;
22249 s.end()
22250 }
22251 RevokeDeviceSessionError::MemberNotFound => {
22252 let mut s = serializer.serialize_struct("RevokeDeviceSessionError", 1)?;
22254 s.serialize_field(".tag", "member_not_found")?;
22255 s.end()
22256 }
22257 RevokeDeviceSessionError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22258 }
22259 }
22260}
22261
22262impl ::std::error::Error for RevokeDeviceSessionError {
22263}
22264
22265impl ::std::fmt::Display for RevokeDeviceSessionError {
22266 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22267 match self {
22268 RevokeDeviceSessionError::DeviceSessionNotFound => f.write_str("Device session not found."),
22269 RevokeDeviceSessionError::MemberNotFound => f.write_str("Member not found."),
22270 _ => write!(f, "{:?}", *self),
22271 }
22272 }
22273}
22274
22275#[derive(Debug, Clone, PartialEq, Eq)]
22276#[non_exhaustive] pub struct RevokeDeviceSessionStatus {
22278 pub success: bool,
22280 pub error_type: Option<RevokeDeviceSessionError>,
22282}
22283
22284impl RevokeDeviceSessionStatus {
22285 pub fn new(success: bool) -> Self {
22286 RevokeDeviceSessionStatus {
22287 success,
22288 error_type: None,
22289 }
22290 }
22291
22292 pub fn with_error_type(mut self, value: RevokeDeviceSessionError) -> Self {
22293 self.error_type = Some(value);
22294 self
22295 }
22296}
22297
22298const REVOKE_DEVICE_SESSION_STATUS_FIELDS: &[&str] = &["success",
22299 "error_type"];
22300impl RevokeDeviceSessionStatus {
22301 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22302 map: V,
22303 ) -> Result<RevokeDeviceSessionStatus, V::Error> {
22304 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22305 }
22306
22307 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22308 mut map: V,
22309 optional: bool,
22310 ) -> Result<Option<RevokeDeviceSessionStatus>, V::Error> {
22311 let mut field_success = None;
22312 let mut field_error_type = None;
22313 let mut nothing = true;
22314 while let Some(key) = map.next_key::<&str>()? {
22315 nothing = false;
22316 match key {
22317 "success" => {
22318 if field_success.is_some() {
22319 return Err(::serde::de::Error::duplicate_field("success"));
22320 }
22321 field_success = Some(map.next_value()?);
22322 }
22323 "error_type" => {
22324 if field_error_type.is_some() {
22325 return Err(::serde::de::Error::duplicate_field("error_type"));
22326 }
22327 field_error_type = Some(map.next_value()?);
22328 }
22329 _ => {
22330 map.next_value::<::serde_json::Value>()?;
22332 }
22333 }
22334 }
22335 if optional && nothing {
22336 return Ok(None);
22337 }
22338 let result = RevokeDeviceSessionStatus {
22339 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
22340 error_type: field_error_type.and_then(Option::flatten),
22341 };
22342 Ok(Some(result))
22343 }
22344
22345 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22346 &self,
22347 s: &mut S::SerializeStruct,
22348 ) -> Result<(), S::Error> {
22349 use serde::ser::SerializeStruct;
22350 s.serialize_field("success", &self.success)?;
22351 if let Some(val) = &self.error_type {
22352 s.serialize_field("error_type", val)?;
22353 }
22354 Ok(())
22355 }
22356}
22357
22358impl<'de> ::serde::de::Deserialize<'de> for RevokeDeviceSessionStatus {
22359 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22360 use serde::de::{MapAccess, Visitor};
22362 struct StructVisitor;
22363 impl<'de> Visitor<'de> for StructVisitor {
22364 type Value = RevokeDeviceSessionStatus;
22365 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22366 f.write_str("a RevokeDeviceSessionStatus struct")
22367 }
22368 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22369 RevokeDeviceSessionStatus::internal_deserialize(map)
22370 }
22371 }
22372 deserializer.deserialize_struct("RevokeDeviceSessionStatus", REVOKE_DEVICE_SESSION_STATUS_FIELDS, StructVisitor)
22373 }
22374}
22375
22376impl ::serde::ser::Serialize for RevokeDeviceSessionStatus {
22377 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22378 use serde::ser::SerializeStruct;
22380 let mut s = serializer.serialize_struct("RevokeDeviceSessionStatus", 2)?;
22381 self.internal_serialize::<S>(&mut s)?;
22382 s.end()
22383 }
22384}
22385
22386#[derive(Debug, Clone, PartialEq, Eq)]
22387#[non_exhaustive] pub struct RevokeLinkedApiAppArg {
22389 pub app_id: String,
22391 pub team_member_id: String,
22393 pub keep_app_folder: bool,
22396}
22397
22398impl RevokeLinkedApiAppArg {
22399 pub fn new(app_id: String, team_member_id: String) -> Self {
22400 RevokeLinkedApiAppArg {
22401 app_id,
22402 team_member_id,
22403 keep_app_folder: true,
22404 }
22405 }
22406
22407 pub fn with_keep_app_folder(mut self, value: bool) -> Self {
22408 self.keep_app_folder = value;
22409 self
22410 }
22411}
22412
22413const REVOKE_LINKED_API_APP_ARG_FIELDS: &[&str] = &["app_id",
22414 "team_member_id",
22415 "keep_app_folder"];
22416impl RevokeLinkedApiAppArg {
22417 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22418 map: V,
22419 ) -> Result<RevokeLinkedApiAppArg, V::Error> {
22420 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22421 }
22422
22423 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22424 mut map: V,
22425 optional: bool,
22426 ) -> Result<Option<RevokeLinkedApiAppArg>, V::Error> {
22427 let mut field_app_id = None;
22428 let mut field_team_member_id = None;
22429 let mut field_keep_app_folder = None;
22430 let mut nothing = true;
22431 while let Some(key) = map.next_key::<&str>()? {
22432 nothing = false;
22433 match key {
22434 "app_id" => {
22435 if field_app_id.is_some() {
22436 return Err(::serde::de::Error::duplicate_field("app_id"));
22437 }
22438 field_app_id = Some(map.next_value()?);
22439 }
22440 "team_member_id" => {
22441 if field_team_member_id.is_some() {
22442 return Err(::serde::de::Error::duplicate_field("team_member_id"));
22443 }
22444 field_team_member_id = Some(map.next_value()?);
22445 }
22446 "keep_app_folder" => {
22447 if field_keep_app_folder.is_some() {
22448 return Err(::serde::de::Error::duplicate_field("keep_app_folder"));
22449 }
22450 field_keep_app_folder = Some(map.next_value()?);
22451 }
22452 _ => {
22453 map.next_value::<::serde_json::Value>()?;
22455 }
22456 }
22457 }
22458 if optional && nothing {
22459 return Ok(None);
22460 }
22461 let result = RevokeLinkedApiAppArg {
22462 app_id: field_app_id.ok_or_else(|| ::serde::de::Error::missing_field("app_id"))?,
22463 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
22464 keep_app_folder: field_keep_app_folder.unwrap_or(true),
22465 };
22466 Ok(Some(result))
22467 }
22468
22469 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22470 &self,
22471 s: &mut S::SerializeStruct,
22472 ) -> Result<(), S::Error> {
22473 use serde::ser::SerializeStruct;
22474 s.serialize_field("app_id", &self.app_id)?;
22475 s.serialize_field("team_member_id", &self.team_member_id)?;
22476 if !self.keep_app_folder {
22477 s.serialize_field("keep_app_folder", &self.keep_app_folder)?;
22478 }
22479 Ok(())
22480 }
22481}
22482
22483impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppArg {
22484 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22485 use serde::de::{MapAccess, Visitor};
22487 struct StructVisitor;
22488 impl<'de> Visitor<'de> for StructVisitor {
22489 type Value = RevokeLinkedApiAppArg;
22490 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22491 f.write_str("a RevokeLinkedApiAppArg struct")
22492 }
22493 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22494 RevokeLinkedApiAppArg::internal_deserialize(map)
22495 }
22496 }
22497 deserializer.deserialize_struct("RevokeLinkedApiAppArg", REVOKE_LINKED_API_APP_ARG_FIELDS, StructVisitor)
22498 }
22499}
22500
22501impl ::serde::ser::Serialize for RevokeLinkedApiAppArg {
22502 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22503 use serde::ser::SerializeStruct;
22505 let mut s = serializer.serialize_struct("RevokeLinkedApiAppArg", 3)?;
22506 self.internal_serialize::<S>(&mut s)?;
22507 s.end()
22508 }
22509}
22510
22511#[derive(Debug, Clone, PartialEq, Eq)]
22512#[non_exhaustive] pub struct RevokeLinkedApiAppBatchArg {
22514 pub revoke_linked_app: Vec<RevokeLinkedApiAppArg>,
22515}
22516
22517impl RevokeLinkedApiAppBatchArg {
22518 pub fn new(revoke_linked_app: Vec<RevokeLinkedApiAppArg>) -> Self {
22519 RevokeLinkedApiAppBatchArg {
22520 revoke_linked_app,
22521 }
22522 }
22523}
22524
22525const REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS: &[&str] = &["revoke_linked_app"];
22526impl RevokeLinkedApiAppBatchArg {
22527 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22528 map: V,
22529 ) -> Result<RevokeLinkedApiAppBatchArg, V::Error> {
22530 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22531 }
22532
22533 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22534 mut map: V,
22535 optional: bool,
22536 ) -> Result<Option<RevokeLinkedApiAppBatchArg>, V::Error> {
22537 let mut field_revoke_linked_app = None;
22538 let mut nothing = true;
22539 while let Some(key) = map.next_key::<&str>()? {
22540 nothing = false;
22541 match key {
22542 "revoke_linked_app" => {
22543 if field_revoke_linked_app.is_some() {
22544 return Err(::serde::de::Error::duplicate_field("revoke_linked_app"));
22545 }
22546 field_revoke_linked_app = Some(map.next_value()?);
22547 }
22548 _ => {
22549 map.next_value::<::serde_json::Value>()?;
22551 }
22552 }
22553 }
22554 if optional && nothing {
22555 return Ok(None);
22556 }
22557 let result = RevokeLinkedApiAppBatchArg {
22558 revoke_linked_app: field_revoke_linked_app.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app"))?,
22559 };
22560 Ok(Some(result))
22561 }
22562
22563 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22564 &self,
22565 s: &mut S::SerializeStruct,
22566 ) -> Result<(), S::Error> {
22567 use serde::ser::SerializeStruct;
22568 s.serialize_field("revoke_linked_app", &self.revoke_linked_app)?;
22569 Ok(())
22570 }
22571}
22572
22573impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedApiAppBatchArg {
22574 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22575 use serde::de::{MapAccess, Visitor};
22577 struct StructVisitor;
22578 impl<'de> Visitor<'de> for StructVisitor {
22579 type Value = RevokeLinkedApiAppBatchArg;
22580 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22581 f.write_str("a RevokeLinkedApiAppBatchArg struct")
22582 }
22583 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22584 RevokeLinkedApiAppBatchArg::internal_deserialize(map)
22585 }
22586 }
22587 deserializer.deserialize_struct("RevokeLinkedApiAppBatchArg", REVOKE_LINKED_API_APP_BATCH_ARG_FIELDS, StructVisitor)
22588 }
22589}
22590
22591impl ::serde::ser::Serialize for RevokeLinkedApiAppBatchArg {
22592 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22593 use serde::ser::SerializeStruct;
22595 let mut s = serializer.serialize_struct("RevokeLinkedApiAppBatchArg", 1)?;
22596 self.internal_serialize::<S>(&mut s)?;
22597 s.end()
22598 }
22599}
22600
22601#[derive(Debug, Clone, PartialEq, Eq)]
22604#[non_exhaustive] pub enum RevokeLinkedAppBatchError {
22606 Other,
22609}
22610
22611impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchError {
22612 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22613 use serde::de::{self, MapAccess, Visitor};
22615 struct EnumVisitor;
22616 impl<'de> Visitor<'de> for EnumVisitor {
22617 type Value = RevokeLinkedAppBatchError;
22618 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22619 f.write_str("a RevokeLinkedAppBatchError structure")
22620 }
22621 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22622 let tag: &str = match map.next_key()? {
22623 Some(".tag") => map.next_value()?,
22624 _ => return Err(de::Error::missing_field(".tag"))
22625 };
22626 let _ = tag;
22628 crate::eat_json_fields(&mut map)?;
22629 Ok(RevokeLinkedAppBatchError::Other)
22630 }
22631 }
22632 const VARIANTS: &[&str] = &["other"];
22633 deserializer.deserialize_struct("RevokeLinkedAppBatchError", VARIANTS, EnumVisitor)
22634 }
22635}
22636
22637impl ::serde::ser::Serialize for RevokeLinkedAppBatchError {
22638 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22639 #![allow(unused_variables)]
22641 Err(::serde::ser::Error::custom("cannot serialize an open union with no defined variants"))
22642 }
22643}
22644
22645impl ::std::error::Error for RevokeLinkedAppBatchError {
22646}
22647
22648impl ::std::fmt::Display for RevokeLinkedAppBatchError {
22649 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22650 write!(f, "{:?}", *self)
22651 }
22652}
22653
22654#[derive(Debug, Clone, PartialEq, Eq)]
22655#[non_exhaustive] pub struct RevokeLinkedAppBatchResult {
22657 pub revoke_linked_app_status: Vec<RevokeLinkedAppStatus>,
22658}
22659
22660impl RevokeLinkedAppBatchResult {
22661 pub fn new(revoke_linked_app_status: Vec<RevokeLinkedAppStatus>) -> Self {
22662 RevokeLinkedAppBatchResult {
22663 revoke_linked_app_status,
22664 }
22665 }
22666}
22667
22668const REVOKE_LINKED_APP_BATCH_RESULT_FIELDS: &[&str] = &["revoke_linked_app_status"];
22669impl RevokeLinkedAppBatchResult {
22670 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22671 map: V,
22672 ) -> Result<RevokeLinkedAppBatchResult, V::Error> {
22673 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22674 }
22675
22676 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22677 mut map: V,
22678 optional: bool,
22679 ) -> Result<Option<RevokeLinkedAppBatchResult>, V::Error> {
22680 let mut field_revoke_linked_app_status = None;
22681 let mut nothing = true;
22682 while let Some(key) = map.next_key::<&str>()? {
22683 nothing = false;
22684 match key {
22685 "revoke_linked_app_status" => {
22686 if field_revoke_linked_app_status.is_some() {
22687 return Err(::serde::de::Error::duplicate_field("revoke_linked_app_status"));
22688 }
22689 field_revoke_linked_app_status = Some(map.next_value()?);
22690 }
22691 _ => {
22692 map.next_value::<::serde_json::Value>()?;
22694 }
22695 }
22696 }
22697 if optional && nothing {
22698 return Ok(None);
22699 }
22700 let result = RevokeLinkedAppBatchResult {
22701 revoke_linked_app_status: field_revoke_linked_app_status.ok_or_else(|| ::serde::de::Error::missing_field("revoke_linked_app_status"))?,
22702 };
22703 Ok(Some(result))
22704 }
22705
22706 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22707 &self,
22708 s: &mut S::SerializeStruct,
22709 ) -> Result<(), S::Error> {
22710 use serde::ser::SerializeStruct;
22711 s.serialize_field("revoke_linked_app_status", &self.revoke_linked_app_status)?;
22712 Ok(())
22713 }
22714}
22715
22716impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppBatchResult {
22717 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22718 use serde::de::{MapAccess, Visitor};
22720 struct StructVisitor;
22721 impl<'de> Visitor<'de> for StructVisitor {
22722 type Value = RevokeLinkedAppBatchResult;
22723 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22724 f.write_str("a RevokeLinkedAppBatchResult struct")
22725 }
22726 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22727 RevokeLinkedAppBatchResult::internal_deserialize(map)
22728 }
22729 }
22730 deserializer.deserialize_struct("RevokeLinkedAppBatchResult", REVOKE_LINKED_APP_BATCH_RESULT_FIELDS, StructVisitor)
22731 }
22732}
22733
22734impl ::serde::ser::Serialize for RevokeLinkedAppBatchResult {
22735 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22736 use serde::ser::SerializeStruct;
22738 let mut s = serializer.serialize_struct("RevokeLinkedAppBatchResult", 1)?;
22739 self.internal_serialize::<S>(&mut s)?;
22740 s.end()
22741 }
22742}
22743
22744#[derive(Debug, Clone, PartialEq, Eq)]
22747#[non_exhaustive] pub enum RevokeLinkedAppError {
22749 AppNotFound,
22751 MemberNotFound,
22753 AppFolderRemovalNotSupported,
22755 Other,
22758}
22759
22760impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppError {
22761 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22762 use serde::de::{self, MapAccess, Visitor};
22764 struct EnumVisitor;
22765 impl<'de> Visitor<'de> for EnumVisitor {
22766 type Value = RevokeLinkedAppError;
22767 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22768 f.write_str("a RevokeLinkedAppError structure")
22769 }
22770 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
22771 let tag: &str = match map.next_key()? {
22772 Some(".tag") => map.next_value()?,
22773 _ => return Err(de::Error::missing_field(".tag"))
22774 };
22775 let value = match tag {
22776 "app_not_found" => RevokeLinkedAppError::AppNotFound,
22777 "member_not_found" => RevokeLinkedAppError::MemberNotFound,
22778 "app_folder_removal_not_supported" => RevokeLinkedAppError::AppFolderRemovalNotSupported,
22779 _ => RevokeLinkedAppError::Other,
22780 };
22781 crate::eat_json_fields(&mut map)?;
22782 Ok(value)
22783 }
22784 }
22785 const VARIANTS: &[&str] = &["app_not_found",
22786 "member_not_found",
22787 "app_folder_removal_not_supported",
22788 "other"];
22789 deserializer.deserialize_struct("RevokeLinkedAppError", VARIANTS, EnumVisitor)
22790 }
22791}
22792
22793impl ::serde::ser::Serialize for RevokeLinkedAppError {
22794 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22795 use serde::ser::SerializeStruct;
22797 match self {
22798 RevokeLinkedAppError::AppNotFound => {
22799 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
22801 s.serialize_field(".tag", "app_not_found")?;
22802 s.end()
22803 }
22804 RevokeLinkedAppError::MemberNotFound => {
22805 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
22807 s.serialize_field(".tag", "member_not_found")?;
22808 s.end()
22809 }
22810 RevokeLinkedAppError::AppFolderRemovalNotSupported => {
22811 let mut s = serializer.serialize_struct("RevokeLinkedAppError", 1)?;
22813 s.serialize_field(".tag", "app_folder_removal_not_supported")?;
22814 s.end()
22815 }
22816 RevokeLinkedAppError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
22817 }
22818 }
22819}
22820
22821impl ::std::error::Error for RevokeLinkedAppError {
22822}
22823
22824impl ::std::fmt::Display for RevokeLinkedAppError {
22825 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22826 match self {
22827 RevokeLinkedAppError::AppNotFound => f.write_str("Application not found."),
22828 RevokeLinkedAppError::MemberNotFound => f.write_str("Member not found."),
22829 RevokeLinkedAppError::AppFolderRemovalNotSupported => f.write_str("App folder removal is not supported."),
22830 _ => write!(f, "{:?}", *self),
22831 }
22832 }
22833}
22834
22835#[derive(Debug, Clone, PartialEq, Eq)]
22836#[non_exhaustive] pub struct RevokeLinkedAppStatus {
22838 pub success: bool,
22840 pub error_type: Option<RevokeLinkedAppError>,
22842}
22843
22844impl RevokeLinkedAppStatus {
22845 pub fn new(success: bool) -> Self {
22846 RevokeLinkedAppStatus {
22847 success,
22848 error_type: None,
22849 }
22850 }
22851
22852 pub fn with_error_type(mut self, value: RevokeLinkedAppError) -> Self {
22853 self.error_type = Some(value);
22854 self
22855 }
22856}
22857
22858const REVOKE_LINKED_APP_STATUS_FIELDS: &[&str] = &["success",
22859 "error_type"];
22860impl RevokeLinkedAppStatus {
22861 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22862 map: V,
22863 ) -> Result<RevokeLinkedAppStatus, V::Error> {
22864 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22865 }
22866
22867 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22868 mut map: V,
22869 optional: bool,
22870 ) -> Result<Option<RevokeLinkedAppStatus>, V::Error> {
22871 let mut field_success = None;
22872 let mut field_error_type = None;
22873 let mut nothing = true;
22874 while let Some(key) = map.next_key::<&str>()? {
22875 nothing = false;
22876 match key {
22877 "success" => {
22878 if field_success.is_some() {
22879 return Err(::serde::de::Error::duplicate_field("success"));
22880 }
22881 field_success = Some(map.next_value()?);
22882 }
22883 "error_type" => {
22884 if field_error_type.is_some() {
22885 return Err(::serde::de::Error::duplicate_field("error_type"));
22886 }
22887 field_error_type = Some(map.next_value()?);
22888 }
22889 _ => {
22890 map.next_value::<::serde_json::Value>()?;
22892 }
22893 }
22894 }
22895 if optional && nothing {
22896 return Ok(None);
22897 }
22898 let result = RevokeLinkedAppStatus {
22899 success: field_success.ok_or_else(|| ::serde::de::Error::missing_field("success"))?,
22900 error_type: field_error_type.and_then(Option::flatten),
22901 };
22902 Ok(Some(result))
22903 }
22904
22905 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
22906 &self,
22907 s: &mut S::SerializeStruct,
22908 ) -> Result<(), S::Error> {
22909 use serde::ser::SerializeStruct;
22910 s.serialize_field("success", &self.success)?;
22911 if let Some(val) = &self.error_type {
22912 s.serialize_field("error_type", val)?;
22913 }
22914 Ok(())
22915 }
22916}
22917
22918impl<'de> ::serde::de::Deserialize<'de> for RevokeLinkedAppStatus {
22919 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
22920 use serde::de::{MapAccess, Visitor};
22922 struct StructVisitor;
22923 impl<'de> Visitor<'de> for StructVisitor {
22924 type Value = RevokeLinkedAppStatus;
22925 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
22926 f.write_str("a RevokeLinkedAppStatus struct")
22927 }
22928 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
22929 RevokeLinkedAppStatus::internal_deserialize(map)
22930 }
22931 }
22932 deserializer.deserialize_struct("RevokeLinkedAppStatus", REVOKE_LINKED_APP_STATUS_FIELDS, StructVisitor)
22933 }
22934}
22935
22936impl ::serde::ser::Serialize for RevokeLinkedAppStatus {
22937 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
22938 use serde::ser::SerializeStruct;
22940 let mut s = serializer.serialize_struct("RevokeLinkedAppStatus", 2)?;
22941 self.internal_serialize::<S>(&mut s)?;
22942 s.end()
22943 }
22944}
22945
22946#[derive(Debug, Clone, PartialEq, Eq)]
22947#[non_exhaustive] pub struct SetCustomQuotaArg {
22949 pub users_and_quotas: Vec<UserCustomQuotaArg>,
22951}
22952
22953impl SetCustomQuotaArg {
22954 pub fn new(users_and_quotas: Vec<UserCustomQuotaArg>) -> Self {
22955 SetCustomQuotaArg {
22956 users_and_quotas,
22957 }
22958 }
22959}
22960
22961const SET_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["users_and_quotas"];
22962impl SetCustomQuotaArg {
22963 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
22964 map: V,
22965 ) -> Result<SetCustomQuotaArg, V::Error> {
22966 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
22967 }
22968
22969 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
22970 mut map: V,
22971 optional: bool,
22972 ) -> Result<Option<SetCustomQuotaArg>, V::Error> {
22973 let mut field_users_and_quotas = None;
22974 let mut nothing = true;
22975 while let Some(key) = map.next_key::<&str>()? {
22976 nothing = false;
22977 match key {
22978 "users_and_quotas" => {
22979 if field_users_and_quotas.is_some() {
22980 return Err(::serde::de::Error::duplicate_field("users_and_quotas"));
22981 }
22982 field_users_and_quotas = Some(map.next_value()?);
22983 }
22984 _ => {
22985 map.next_value::<::serde_json::Value>()?;
22987 }
22988 }
22989 }
22990 if optional && nothing {
22991 return Ok(None);
22992 }
22993 let result = SetCustomQuotaArg {
22994 users_and_quotas: field_users_and_quotas.ok_or_else(|| ::serde::de::Error::missing_field("users_and_quotas"))?,
22995 };
22996 Ok(Some(result))
22997 }
22998
22999 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23000 &self,
23001 s: &mut S::SerializeStruct,
23002 ) -> Result<(), S::Error> {
23003 use serde::ser::SerializeStruct;
23004 s.serialize_field("users_and_quotas", &self.users_and_quotas)?;
23005 Ok(())
23006 }
23007}
23008
23009impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaArg {
23010 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23011 use serde::de::{MapAccess, Visitor};
23013 struct StructVisitor;
23014 impl<'de> Visitor<'de> for StructVisitor {
23015 type Value = SetCustomQuotaArg;
23016 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23017 f.write_str("a SetCustomQuotaArg struct")
23018 }
23019 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23020 SetCustomQuotaArg::internal_deserialize(map)
23021 }
23022 }
23023 deserializer.deserialize_struct("SetCustomQuotaArg", SET_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
23024 }
23025}
23026
23027impl ::serde::ser::Serialize for SetCustomQuotaArg {
23028 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23029 use serde::ser::SerializeStruct;
23031 let mut s = serializer.serialize_struct("SetCustomQuotaArg", 1)?;
23032 self.internal_serialize::<S>(&mut s)?;
23033 s.end()
23034 }
23035}
23036
23037#[derive(Debug, Clone, PartialEq, Eq)]
23039#[non_exhaustive] pub enum SetCustomQuotaError {
23041 TooManyUsers,
23043 SomeUsersAreExcluded,
23045 Other,
23048}
23049
23050impl<'de> ::serde::de::Deserialize<'de> for SetCustomQuotaError {
23051 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23052 use serde::de::{self, MapAccess, Visitor};
23054 struct EnumVisitor;
23055 impl<'de> Visitor<'de> for EnumVisitor {
23056 type Value = SetCustomQuotaError;
23057 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23058 f.write_str("a SetCustomQuotaError structure")
23059 }
23060 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23061 let tag: &str = match map.next_key()? {
23062 Some(".tag") => map.next_value()?,
23063 _ => return Err(de::Error::missing_field(".tag"))
23064 };
23065 let value = match tag {
23066 "too_many_users" => SetCustomQuotaError::TooManyUsers,
23067 "some_users_are_excluded" => SetCustomQuotaError::SomeUsersAreExcluded,
23068 _ => SetCustomQuotaError::Other,
23069 };
23070 crate::eat_json_fields(&mut map)?;
23071 Ok(value)
23072 }
23073 }
23074 const VARIANTS: &[&str] = &["too_many_users",
23075 "other",
23076 "some_users_are_excluded"];
23077 deserializer.deserialize_struct("SetCustomQuotaError", VARIANTS, EnumVisitor)
23078 }
23079}
23080
23081impl ::serde::ser::Serialize for SetCustomQuotaError {
23082 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23083 use serde::ser::SerializeStruct;
23085 match self {
23086 SetCustomQuotaError::TooManyUsers => {
23087 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
23089 s.serialize_field(".tag", "too_many_users")?;
23090 s.end()
23091 }
23092 SetCustomQuotaError::SomeUsersAreExcluded => {
23093 let mut s = serializer.serialize_struct("SetCustomQuotaError", 1)?;
23095 s.serialize_field(".tag", "some_users_are_excluded")?;
23096 s.end()
23097 }
23098 SetCustomQuotaError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23099 }
23100 }
23101}
23102
23103impl ::std::error::Error for SetCustomQuotaError {
23104}
23105
23106impl ::std::fmt::Display for SetCustomQuotaError {
23107 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23108 match self {
23109 SetCustomQuotaError::TooManyUsers => f.write_str("A maximum of 1000 users can be set for a single call."),
23110 SetCustomQuotaError::SomeUsersAreExcluded => f.write_str("Some of the users are on the excluded users list and can't have custom quota set."),
23111 _ => write!(f, "{:?}", *self),
23112 }
23113 }
23114}
23115
23116impl From<CustomQuotaError> for SetCustomQuotaError {
23118 fn from(parent: CustomQuotaError) -> Self {
23119 match parent {
23120 CustomQuotaError::TooManyUsers => SetCustomQuotaError::TooManyUsers,
23121 CustomQuotaError::Other => SetCustomQuotaError::Other,
23122 }
23123 }
23124}
23125#[derive(Debug, Clone, PartialEq, Eq, Default)]
23128#[non_exhaustive] pub struct SharingAllowlistAddArgs {
23130 pub domains: Option<Vec<String>>,
23132 pub emails: Option<Vec<String>>,
23134}
23135
23136impl SharingAllowlistAddArgs {
23137 pub fn with_domains(mut self, value: Vec<String>) -> Self {
23138 self.domains = Some(value);
23139 self
23140 }
23141
23142 pub fn with_emails(mut self, value: Vec<String>) -> Self {
23143 self.emails = Some(value);
23144 self
23145 }
23146}
23147
23148const SHARING_ALLOWLIST_ADD_ARGS_FIELDS: &[&str] = &["domains",
23149 "emails"];
23150impl SharingAllowlistAddArgs {
23151 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23153 mut map: V,
23154 ) -> Result<SharingAllowlistAddArgs, V::Error> {
23155 let mut field_domains = None;
23156 let mut field_emails = None;
23157 while let Some(key) = map.next_key::<&str>()? {
23158 match key {
23159 "domains" => {
23160 if field_domains.is_some() {
23161 return Err(::serde::de::Error::duplicate_field("domains"));
23162 }
23163 field_domains = Some(map.next_value()?);
23164 }
23165 "emails" => {
23166 if field_emails.is_some() {
23167 return Err(::serde::de::Error::duplicate_field("emails"));
23168 }
23169 field_emails = Some(map.next_value()?);
23170 }
23171 _ => {
23172 map.next_value::<::serde_json::Value>()?;
23174 }
23175 }
23176 }
23177 let result = SharingAllowlistAddArgs {
23178 domains: field_domains.and_then(Option::flatten),
23179 emails: field_emails.and_then(Option::flatten),
23180 };
23181 Ok(result)
23182 }
23183
23184 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23185 &self,
23186 s: &mut S::SerializeStruct,
23187 ) -> Result<(), S::Error> {
23188 use serde::ser::SerializeStruct;
23189 if let Some(val) = &self.domains {
23190 s.serialize_field("domains", val)?;
23191 }
23192 if let Some(val) = &self.emails {
23193 s.serialize_field("emails", val)?;
23194 }
23195 Ok(())
23196 }
23197}
23198
23199impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddArgs {
23200 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23201 use serde::de::{MapAccess, Visitor};
23203 struct StructVisitor;
23204 impl<'de> Visitor<'de> for StructVisitor {
23205 type Value = SharingAllowlistAddArgs;
23206 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23207 f.write_str("a SharingAllowlistAddArgs struct")
23208 }
23209 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23210 SharingAllowlistAddArgs::internal_deserialize(map)
23211 }
23212 }
23213 deserializer.deserialize_struct("SharingAllowlistAddArgs", SHARING_ALLOWLIST_ADD_ARGS_FIELDS, StructVisitor)
23214 }
23215}
23216
23217impl ::serde::ser::Serialize for SharingAllowlistAddArgs {
23218 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23219 use serde::ser::SerializeStruct;
23221 let mut s = serializer.serialize_struct("SharingAllowlistAddArgs", 2)?;
23222 self.internal_serialize::<S>(&mut s)?;
23223 s.end()
23224 }
23225}
23226
23227#[derive(Debug, Clone, PartialEq, Eq)]
23228#[non_exhaustive] pub enum SharingAllowlistAddError {
23230 MalformedEntry(String),
23232 NoEntriesProvided,
23234 TooManyEntriesProvided,
23236 TeamLimitReached,
23238 UnknownError,
23240 EntriesAlreadyExist(String),
23242 Other,
23245}
23246
23247impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddError {
23248 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23249 use serde::de::{self, MapAccess, Visitor};
23251 struct EnumVisitor;
23252 impl<'de> Visitor<'de> for EnumVisitor {
23253 type Value = SharingAllowlistAddError;
23254 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23255 f.write_str("a SharingAllowlistAddError structure")
23256 }
23257 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23258 let tag: &str = match map.next_key()? {
23259 Some(".tag") => map.next_value()?,
23260 _ => return Err(de::Error::missing_field(".tag"))
23261 };
23262 let value = match tag {
23263 "malformed_entry" => {
23264 match map.next_key()? {
23265 Some("malformed_entry") => SharingAllowlistAddError::MalformedEntry(map.next_value()?),
23266 None => return Err(de::Error::missing_field("malformed_entry")),
23267 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23268 }
23269 }
23270 "no_entries_provided" => SharingAllowlistAddError::NoEntriesProvided,
23271 "too_many_entries_provided" => SharingAllowlistAddError::TooManyEntriesProvided,
23272 "team_limit_reached" => SharingAllowlistAddError::TeamLimitReached,
23273 "unknown_error" => SharingAllowlistAddError::UnknownError,
23274 "entries_already_exist" => {
23275 match map.next_key()? {
23276 Some("entries_already_exist") => SharingAllowlistAddError::EntriesAlreadyExist(map.next_value()?),
23277 None => return Err(de::Error::missing_field("entries_already_exist")),
23278 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23279 }
23280 }
23281 _ => SharingAllowlistAddError::Other,
23282 };
23283 crate::eat_json_fields(&mut map)?;
23284 Ok(value)
23285 }
23286 }
23287 const VARIANTS: &[&str] = &["malformed_entry",
23288 "no_entries_provided",
23289 "too_many_entries_provided",
23290 "team_limit_reached",
23291 "unknown_error",
23292 "entries_already_exist",
23293 "other"];
23294 deserializer.deserialize_struct("SharingAllowlistAddError", VARIANTS, EnumVisitor)
23295 }
23296}
23297
23298impl ::serde::ser::Serialize for SharingAllowlistAddError {
23299 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23300 use serde::ser::SerializeStruct;
23302 match self {
23303 SharingAllowlistAddError::MalformedEntry(x) => {
23304 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
23306 s.serialize_field(".tag", "malformed_entry")?;
23307 s.serialize_field("malformed_entry", x)?;
23308 s.end()
23309 }
23310 SharingAllowlistAddError::NoEntriesProvided => {
23311 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23313 s.serialize_field(".tag", "no_entries_provided")?;
23314 s.end()
23315 }
23316 SharingAllowlistAddError::TooManyEntriesProvided => {
23317 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23319 s.serialize_field(".tag", "too_many_entries_provided")?;
23320 s.end()
23321 }
23322 SharingAllowlistAddError::TeamLimitReached => {
23323 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23325 s.serialize_field(".tag", "team_limit_reached")?;
23326 s.end()
23327 }
23328 SharingAllowlistAddError::UnknownError => {
23329 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 1)?;
23331 s.serialize_field(".tag", "unknown_error")?;
23332 s.end()
23333 }
23334 SharingAllowlistAddError::EntriesAlreadyExist(x) => {
23335 let mut s = serializer.serialize_struct("SharingAllowlistAddError", 2)?;
23337 s.serialize_field(".tag", "entries_already_exist")?;
23338 s.serialize_field("entries_already_exist", x)?;
23339 s.end()
23340 }
23341 SharingAllowlistAddError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23342 }
23343 }
23344}
23345
23346impl ::std::error::Error for SharingAllowlistAddError {
23347}
23348
23349impl ::std::fmt::Display for SharingAllowlistAddError {
23350 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23351 match self {
23352 SharingAllowlistAddError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
23353 SharingAllowlistAddError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
23354 SharingAllowlistAddError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
23355 SharingAllowlistAddError::TeamLimitReached => f.write_str("Team entries limit reached."),
23356 SharingAllowlistAddError::UnknownError => f.write_str("Unknown error."),
23357 SharingAllowlistAddError::EntriesAlreadyExist(inner) => write!(f, "Entries already exists: {:?}", inner),
23358 _ => write!(f, "{:?}", *self),
23359 }
23360 }
23361}
23362
23363#[derive(Debug, Clone, PartialEq, Eq, Default)]
23366#[non_exhaustive] pub struct SharingAllowlistAddResponse {
23368}
23369
23370const SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS: &[&str] = &[];
23371impl SharingAllowlistAddResponse {
23372 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23374 mut map: V,
23375 ) -> Result<SharingAllowlistAddResponse, V::Error> {
23376 crate::eat_json_fields(&mut map)?;
23378 Ok(SharingAllowlistAddResponse {})
23379 }
23380}
23381
23382impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistAddResponse {
23383 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23384 use serde::de::{MapAccess, Visitor};
23386 struct StructVisitor;
23387 impl<'de> Visitor<'de> for StructVisitor {
23388 type Value = SharingAllowlistAddResponse;
23389 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23390 f.write_str("a SharingAllowlistAddResponse struct")
23391 }
23392 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23393 SharingAllowlistAddResponse::internal_deserialize(map)
23394 }
23395 }
23396 deserializer.deserialize_struct("SharingAllowlistAddResponse", SHARING_ALLOWLIST_ADD_RESPONSE_FIELDS, StructVisitor)
23397 }
23398}
23399
23400impl ::serde::ser::Serialize for SharingAllowlistAddResponse {
23401 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23402 use serde::ser::SerializeStruct;
23404 serializer.serialize_struct("SharingAllowlistAddResponse", 0)?.end()
23405 }
23406}
23407
23408#[derive(Debug, Clone, PartialEq, Eq)]
23409#[non_exhaustive] pub struct SharingAllowlistListArg {
23411 pub limit: u32,
23413}
23414
23415impl Default for SharingAllowlistListArg {
23416 fn default() -> Self {
23417 SharingAllowlistListArg {
23418 limit: 1000,
23419 }
23420 }
23421}
23422
23423impl SharingAllowlistListArg {
23424 pub fn with_limit(mut self, value: u32) -> Self {
23425 self.limit = value;
23426 self
23427 }
23428}
23429
23430const SHARING_ALLOWLIST_LIST_ARG_FIELDS: &[&str] = &["limit"];
23431impl SharingAllowlistListArg {
23432 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23434 mut map: V,
23435 ) -> Result<SharingAllowlistListArg, V::Error> {
23436 let mut field_limit = None;
23437 while let Some(key) = map.next_key::<&str>()? {
23438 match key {
23439 "limit" => {
23440 if field_limit.is_some() {
23441 return Err(::serde::de::Error::duplicate_field("limit"));
23442 }
23443 field_limit = Some(map.next_value()?);
23444 }
23445 _ => {
23446 map.next_value::<::serde_json::Value>()?;
23448 }
23449 }
23450 }
23451 let result = SharingAllowlistListArg {
23452 limit: field_limit.unwrap_or(1000),
23453 };
23454 Ok(result)
23455 }
23456
23457 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23458 &self,
23459 s: &mut S::SerializeStruct,
23460 ) -> Result<(), S::Error> {
23461 use serde::ser::SerializeStruct;
23462 if self.limit != 1000 {
23463 s.serialize_field("limit", &self.limit)?;
23464 }
23465 Ok(())
23466 }
23467}
23468
23469impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListArg {
23470 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23471 use serde::de::{MapAccess, Visitor};
23473 struct StructVisitor;
23474 impl<'de> Visitor<'de> for StructVisitor {
23475 type Value = SharingAllowlistListArg;
23476 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23477 f.write_str("a SharingAllowlistListArg struct")
23478 }
23479 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23480 SharingAllowlistListArg::internal_deserialize(map)
23481 }
23482 }
23483 deserializer.deserialize_struct("SharingAllowlistListArg", SHARING_ALLOWLIST_LIST_ARG_FIELDS, StructVisitor)
23484 }
23485}
23486
23487impl ::serde::ser::Serialize for SharingAllowlistListArg {
23488 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23489 use serde::ser::SerializeStruct;
23491 let mut s = serializer.serialize_struct("SharingAllowlistListArg", 1)?;
23492 self.internal_serialize::<S>(&mut s)?;
23493 s.end()
23494 }
23495}
23496
23497#[derive(Debug, Clone, PartialEq, Eq)]
23498#[non_exhaustive] pub struct SharingAllowlistListContinueArg {
23500 pub cursor: String,
23504}
23505
23506impl SharingAllowlistListContinueArg {
23507 pub fn new(cursor: String) -> Self {
23508 SharingAllowlistListContinueArg {
23509 cursor,
23510 }
23511 }
23512}
23513
23514const SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
23515impl SharingAllowlistListContinueArg {
23516 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23517 map: V,
23518 ) -> Result<SharingAllowlistListContinueArg, V::Error> {
23519 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23520 }
23521
23522 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23523 mut map: V,
23524 optional: bool,
23525 ) -> Result<Option<SharingAllowlistListContinueArg>, V::Error> {
23526 let mut field_cursor = None;
23527 let mut nothing = true;
23528 while let Some(key) = map.next_key::<&str>()? {
23529 nothing = false;
23530 match key {
23531 "cursor" => {
23532 if field_cursor.is_some() {
23533 return Err(::serde::de::Error::duplicate_field("cursor"));
23534 }
23535 field_cursor = Some(map.next_value()?);
23536 }
23537 _ => {
23538 map.next_value::<::serde_json::Value>()?;
23540 }
23541 }
23542 }
23543 if optional && nothing {
23544 return Ok(None);
23545 }
23546 let result = SharingAllowlistListContinueArg {
23547 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
23548 };
23549 Ok(Some(result))
23550 }
23551
23552 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23553 &self,
23554 s: &mut S::SerializeStruct,
23555 ) -> Result<(), S::Error> {
23556 use serde::ser::SerializeStruct;
23557 s.serialize_field("cursor", &self.cursor)?;
23558 Ok(())
23559 }
23560}
23561
23562impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueArg {
23563 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23564 use serde::de::{MapAccess, Visitor};
23566 struct StructVisitor;
23567 impl<'de> Visitor<'de> for StructVisitor {
23568 type Value = SharingAllowlistListContinueArg;
23569 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23570 f.write_str("a SharingAllowlistListContinueArg struct")
23571 }
23572 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23573 SharingAllowlistListContinueArg::internal_deserialize(map)
23574 }
23575 }
23576 deserializer.deserialize_struct("SharingAllowlistListContinueArg", SHARING_ALLOWLIST_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
23577 }
23578}
23579
23580impl ::serde::ser::Serialize for SharingAllowlistListContinueArg {
23581 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23582 use serde::ser::SerializeStruct;
23584 let mut s = serializer.serialize_struct("SharingAllowlistListContinueArg", 1)?;
23585 self.internal_serialize::<S>(&mut s)?;
23586 s.end()
23587 }
23588}
23589
23590#[derive(Debug, Clone, PartialEq, Eq)]
23591#[non_exhaustive] pub enum SharingAllowlistListContinueError {
23593 InvalidCursor,
23595 Other,
23598}
23599
23600impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListContinueError {
23601 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23602 use serde::de::{self, MapAccess, Visitor};
23604 struct EnumVisitor;
23605 impl<'de> Visitor<'de> for EnumVisitor {
23606 type Value = SharingAllowlistListContinueError;
23607 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23608 f.write_str("a SharingAllowlistListContinueError structure")
23609 }
23610 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23611 let tag: &str = match map.next_key()? {
23612 Some(".tag") => map.next_value()?,
23613 _ => return Err(de::Error::missing_field(".tag"))
23614 };
23615 let value = match tag {
23616 "invalid_cursor" => SharingAllowlistListContinueError::InvalidCursor,
23617 _ => SharingAllowlistListContinueError::Other,
23618 };
23619 crate::eat_json_fields(&mut map)?;
23620 Ok(value)
23621 }
23622 }
23623 const VARIANTS: &[&str] = &["invalid_cursor",
23624 "other"];
23625 deserializer.deserialize_struct("SharingAllowlistListContinueError", VARIANTS, EnumVisitor)
23626 }
23627}
23628
23629impl ::serde::ser::Serialize for SharingAllowlistListContinueError {
23630 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23631 use serde::ser::SerializeStruct;
23633 match self {
23634 SharingAllowlistListContinueError::InvalidCursor => {
23635 let mut s = serializer.serialize_struct("SharingAllowlistListContinueError", 1)?;
23637 s.serialize_field(".tag", "invalid_cursor")?;
23638 s.end()
23639 }
23640 SharingAllowlistListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
23641 }
23642 }
23643}
23644
23645impl ::std::error::Error for SharingAllowlistListContinueError {
23646}
23647
23648impl ::std::fmt::Display for SharingAllowlistListContinueError {
23649 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23650 match self {
23651 SharingAllowlistListContinueError::InvalidCursor => f.write_str("Provided cursor is not valid."),
23652 _ => write!(f, "{:?}", *self),
23653 }
23654 }
23655}
23656
23657#[derive(Debug, Clone, PartialEq, Eq, Default)]
23660#[non_exhaustive] pub struct SharingAllowlistListError {
23662}
23663
23664const SHARING_ALLOWLIST_LIST_ERROR_FIELDS: &[&str] = &[];
23665impl SharingAllowlistListError {
23666 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23668 mut map: V,
23669 ) -> Result<SharingAllowlistListError, V::Error> {
23670 crate::eat_json_fields(&mut map)?;
23672 Ok(SharingAllowlistListError {})
23673 }
23674}
23675
23676impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListError {
23677 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23678 use serde::de::{MapAccess, Visitor};
23680 struct StructVisitor;
23681 impl<'de> Visitor<'de> for StructVisitor {
23682 type Value = SharingAllowlistListError;
23683 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23684 f.write_str("a SharingAllowlistListError struct")
23685 }
23686 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23687 SharingAllowlistListError::internal_deserialize(map)
23688 }
23689 }
23690 deserializer.deserialize_struct("SharingAllowlistListError", SHARING_ALLOWLIST_LIST_ERROR_FIELDS, StructVisitor)
23691 }
23692}
23693
23694impl ::serde::ser::Serialize for SharingAllowlistListError {
23695 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23696 use serde::ser::SerializeStruct;
23698 serializer.serialize_struct("SharingAllowlistListError", 0)?.end()
23699 }
23700}
23701
23702impl ::std::error::Error for SharingAllowlistListError {
23703}
23704
23705impl ::std::fmt::Display for SharingAllowlistListError {
23706 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23707 write!(f, "{:?}", *self)
23708 }
23709}
23710
23711#[derive(Debug, Clone, PartialEq, Eq)]
23712#[non_exhaustive] pub struct SharingAllowlistListResponse {
23714 pub domains: Vec<String>,
23716 pub emails: Vec<String>,
23718 pub cursor: String,
23721 pub has_more: bool,
23724}
23725
23726impl SharingAllowlistListResponse {
23727 pub fn new(domains: Vec<String>, emails: Vec<String>) -> Self {
23728 SharingAllowlistListResponse {
23729 domains,
23730 emails,
23731 cursor: String::new(),
23732 has_more: false,
23733 }
23734 }
23735
23736 pub fn with_cursor(mut self, value: String) -> Self {
23737 self.cursor = value;
23738 self
23739 }
23740
23741 pub fn with_has_more(mut self, value: bool) -> Self {
23742 self.has_more = value;
23743 self
23744 }
23745}
23746
23747const SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS: &[&str] = &["domains",
23748 "emails",
23749 "cursor",
23750 "has_more"];
23751impl SharingAllowlistListResponse {
23752 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23753 map: V,
23754 ) -> Result<SharingAllowlistListResponse, V::Error> {
23755 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
23756 }
23757
23758 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
23759 mut map: V,
23760 optional: bool,
23761 ) -> Result<Option<SharingAllowlistListResponse>, V::Error> {
23762 let mut field_domains = None;
23763 let mut field_emails = None;
23764 let mut field_cursor = None;
23765 let mut field_has_more = None;
23766 let mut nothing = true;
23767 while let Some(key) = map.next_key::<&str>()? {
23768 nothing = false;
23769 match key {
23770 "domains" => {
23771 if field_domains.is_some() {
23772 return Err(::serde::de::Error::duplicate_field("domains"));
23773 }
23774 field_domains = Some(map.next_value()?);
23775 }
23776 "emails" => {
23777 if field_emails.is_some() {
23778 return Err(::serde::de::Error::duplicate_field("emails"));
23779 }
23780 field_emails = Some(map.next_value()?);
23781 }
23782 "cursor" => {
23783 if field_cursor.is_some() {
23784 return Err(::serde::de::Error::duplicate_field("cursor"));
23785 }
23786 field_cursor = Some(map.next_value()?);
23787 }
23788 "has_more" => {
23789 if field_has_more.is_some() {
23790 return Err(::serde::de::Error::duplicate_field("has_more"));
23791 }
23792 field_has_more = Some(map.next_value()?);
23793 }
23794 _ => {
23795 map.next_value::<::serde_json::Value>()?;
23797 }
23798 }
23799 }
23800 if optional && nothing {
23801 return Ok(None);
23802 }
23803 let result = SharingAllowlistListResponse {
23804 domains: field_domains.ok_or_else(|| ::serde::de::Error::missing_field("domains"))?,
23805 emails: field_emails.ok_or_else(|| ::serde::de::Error::missing_field("emails"))?,
23806 cursor: field_cursor.unwrap_or_default(),
23807 has_more: field_has_more.unwrap_or(false),
23808 };
23809 Ok(Some(result))
23810 }
23811
23812 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23813 &self,
23814 s: &mut S::SerializeStruct,
23815 ) -> Result<(), S::Error> {
23816 use serde::ser::SerializeStruct;
23817 s.serialize_field("domains", &self.domains)?;
23818 s.serialize_field("emails", &self.emails)?;
23819 if !self.cursor.is_empty() {
23820 s.serialize_field("cursor", &self.cursor)?;
23821 }
23822 if self.has_more {
23823 s.serialize_field("has_more", &self.has_more)?;
23824 }
23825 Ok(())
23826 }
23827}
23828
23829impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistListResponse {
23830 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23831 use serde::de::{MapAccess, Visitor};
23833 struct StructVisitor;
23834 impl<'de> Visitor<'de> for StructVisitor {
23835 type Value = SharingAllowlistListResponse;
23836 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23837 f.write_str("a SharingAllowlistListResponse struct")
23838 }
23839 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23840 SharingAllowlistListResponse::internal_deserialize(map)
23841 }
23842 }
23843 deserializer.deserialize_struct("SharingAllowlistListResponse", SHARING_ALLOWLIST_LIST_RESPONSE_FIELDS, StructVisitor)
23844 }
23845}
23846
23847impl ::serde::ser::Serialize for SharingAllowlistListResponse {
23848 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23849 use serde::ser::SerializeStruct;
23851 let mut s = serializer.serialize_struct("SharingAllowlistListResponse", 4)?;
23852 self.internal_serialize::<S>(&mut s)?;
23853 s.end()
23854 }
23855}
23856
23857#[derive(Debug, Clone, PartialEq, Eq, Default)]
23858#[non_exhaustive] pub struct SharingAllowlistRemoveArgs {
23860 pub domains: Option<Vec<String>>,
23862 pub emails: Option<Vec<String>>,
23864}
23865
23866impl SharingAllowlistRemoveArgs {
23867 pub fn with_domains(mut self, value: Vec<String>) -> Self {
23868 self.domains = Some(value);
23869 self
23870 }
23871
23872 pub fn with_emails(mut self, value: Vec<String>) -> Self {
23873 self.emails = Some(value);
23874 self
23875 }
23876}
23877
23878const SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS: &[&str] = &["domains",
23879 "emails"];
23880impl SharingAllowlistRemoveArgs {
23881 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
23883 mut map: V,
23884 ) -> Result<SharingAllowlistRemoveArgs, V::Error> {
23885 let mut field_domains = None;
23886 let mut field_emails = None;
23887 while let Some(key) = map.next_key::<&str>()? {
23888 match key {
23889 "domains" => {
23890 if field_domains.is_some() {
23891 return Err(::serde::de::Error::duplicate_field("domains"));
23892 }
23893 field_domains = Some(map.next_value()?);
23894 }
23895 "emails" => {
23896 if field_emails.is_some() {
23897 return Err(::serde::de::Error::duplicate_field("emails"));
23898 }
23899 field_emails = Some(map.next_value()?);
23900 }
23901 _ => {
23902 map.next_value::<::serde_json::Value>()?;
23904 }
23905 }
23906 }
23907 let result = SharingAllowlistRemoveArgs {
23908 domains: field_domains.and_then(Option::flatten),
23909 emails: field_emails.and_then(Option::flatten),
23910 };
23911 Ok(result)
23912 }
23913
23914 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
23915 &self,
23916 s: &mut S::SerializeStruct,
23917 ) -> Result<(), S::Error> {
23918 use serde::ser::SerializeStruct;
23919 if let Some(val) = &self.domains {
23920 s.serialize_field("domains", val)?;
23921 }
23922 if let Some(val) = &self.emails {
23923 s.serialize_field("emails", val)?;
23924 }
23925 Ok(())
23926 }
23927}
23928
23929impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveArgs {
23930 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23931 use serde::de::{MapAccess, Visitor};
23933 struct StructVisitor;
23934 impl<'de> Visitor<'de> for StructVisitor {
23935 type Value = SharingAllowlistRemoveArgs;
23936 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23937 f.write_str("a SharingAllowlistRemoveArgs struct")
23938 }
23939 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
23940 SharingAllowlistRemoveArgs::internal_deserialize(map)
23941 }
23942 }
23943 deserializer.deserialize_struct("SharingAllowlistRemoveArgs", SHARING_ALLOWLIST_REMOVE_ARGS_FIELDS, StructVisitor)
23944 }
23945}
23946
23947impl ::serde::ser::Serialize for SharingAllowlistRemoveArgs {
23948 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
23949 use serde::ser::SerializeStruct;
23951 let mut s = serializer.serialize_struct("SharingAllowlistRemoveArgs", 2)?;
23952 self.internal_serialize::<S>(&mut s)?;
23953 s.end()
23954 }
23955}
23956
23957#[derive(Debug, Clone, PartialEq, Eq)]
23958#[non_exhaustive] pub enum SharingAllowlistRemoveError {
23960 MalformedEntry(String),
23962 EntriesDoNotExist(String),
23964 NoEntriesProvided,
23966 TooManyEntriesProvided,
23968 UnknownError,
23970 Other,
23973}
23974
23975impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveError {
23976 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
23977 use serde::de::{self, MapAccess, Visitor};
23979 struct EnumVisitor;
23980 impl<'de> Visitor<'de> for EnumVisitor {
23981 type Value = SharingAllowlistRemoveError;
23982 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
23983 f.write_str("a SharingAllowlistRemoveError structure")
23984 }
23985 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
23986 let tag: &str = match map.next_key()? {
23987 Some(".tag") => map.next_value()?,
23988 _ => return Err(de::Error::missing_field(".tag"))
23989 };
23990 let value = match tag {
23991 "malformed_entry" => {
23992 match map.next_key()? {
23993 Some("malformed_entry") => SharingAllowlistRemoveError::MalformedEntry(map.next_value()?),
23994 None => return Err(de::Error::missing_field("malformed_entry")),
23995 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
23996 }
23997 }
23998 "entries_do_not_exist" => {
23999 match map.next_key()? {
24000 Some("entries_do_not_exist") => SharingAllowlistRemoveError::EntriesDoNotExist(map.next_value()?),
24001 None => return Err(de::Error::missing_field("entries_do_not_exist")),
24002 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24003 }
24004 }
24005 "no_entries_provided" => SharingAllowlistRemoveError::NoEntriesProvided,
24006 "too_many_entries_provided" => SharingAllowlistRemoveError::TooManyEntriesProvided,
24007 "unknown_error" => SharingAllowlistRemoveError::UnknownError,
24008 _ => SharingAllowlistRemoveError::Other,
24009 };
24010 crate::eat_json_fields(&mut map)?;
24011 Ok(value)
24012 }
24013 }
24014 const VARIANTS: &[&str] = &["malformed_entry",
24015 "entries_do_not_exist",
24016 "no_entries_provided",
24017 "too_many_entries_provided",
24018 "unknown_error",
24019 "other"];
24020 deserializer.deserialize_struct("SharingAllowlistRemoveError", VARIANTS, EnumVisitor)
24021 }
24022}
24023
24024impl ::serde::ser::Serialize for SharingAllowlistRemoveError {
24025 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24026 use serde::ser::SerializeStruct;
24028 match self {
24029 SharingAllowlistRemoveError::MalformedEntry(x) => {
24030 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
24032 s.serialize_field(".tag", "malformed_entry")?;
24033 s.serialize_field("malformed_entry", x)?;
24034 s.end()
24035 }
24036 SharingAllowlistRemoveError::EntriesDoNotExist(x) => {
24037 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 2)?;
24039 s.serialize_field(".tag", "entries_do_not_exist")?;
24040 s.serialize_field("entries_do_not_exist", x)?;
24041 s.end()
24042 }
24043 SharingAllowlistRemoveError::NoEntriesProvided => {
24044 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24046 s.serialize_field(".tag", "no_entries_provided")?;
24047 s.end()
24048 }
24049 SharingAllowlistRemoveError::TooManyEntriesProvided => {
24050 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24052 s.serialize_field(".tag", "too_many_entries_provided")?;
24053 s.end()
24054 }
24055 SharingAllowlistRemoveError::UnknownError => {
24056 let mut s = serializer.serialize_struct("SharingAllowlistRemoveError", 1)?;
24058 s.serialize_field(".tag", "unknown_error")?;
24059 s.end()
24060 }
24061 SharingAllowlistRemoveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24062 }
24063 }
24064}
24065
24066impl ::std::error::Error for SharingAllowlistRemoveError {
24067}
24068
24069impl ::std::fmt::Display for SharingAllowlistRemoveError {
24070 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24071 match self {
24072 SharingAllowlistRemoveError::MalformedEntry(inner) => write!(f, "One of provided values is not valid: {:?}", inner),
24073 SharingAllowlistRemoveError::EntriesDoNotExist(inner) => write!(f, "One or more provided values do not exist: {:?}", inner),
24074 SharingAllowlistRemoveError::NoEntriesProvided => f.write_str("Neither single domain nor email provided."),
24075 SharingAllowlistRemoveError::TooManyEntriesProvided => f.write_str("Too many entries provided within one call."),
24076 SharingAllowlistRemoveError::UnknownError => f.write_str("Unknown error."),
24077 _ => write!(f, "{:?}", *self),
24078 }
24079 }
24080}
24081
24082#[derive(Debug, Clone, PartialEq, Eq, Default)]
24085#[non_exhaustive] pub struct SharingAllowlistRemoveResponse {
24087}
24088
24089const SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS: &[&str] = &[];
24090impl SharingAllowlistRemoveResponse {
24091 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24093 mut map: V,
24094 ) -> Result<SharingAllowlistRemoveResponse, V::Error> {
24095 crate::eat_json_fields(&mut map)?;
24097 Ok(SharingAllowlistRemoveResponse {})
24098 }
24099}
24100
24101impl<'de> ::serde::de::Deserialize<'de> for SharingAllowlistRemoveResponse {
24102 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24103 use serde::de::{MapAccess, Visitor};
24105 struct StructVisitor;
24106 impl<'de> Visitor<'de> for StructVisitor {
24107 type Value = SharingAllowlistRemoveResponse;
24108 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24109 f.write_str("a SharingAllowlistRemoveResponse struct")
24110 }
24111 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24112 SharingAllowlistRemoveResponse::internal_deserialize(map)
24113 }
24114 }
24115 deserializer.deserialize_struct("SharingAllowlistRemoveResponse", SHARING_ALLOWLIST_REMOVE_RESPONSE_FIELDS, StructVisitor)
24116 }
24117}
24118
24119impl ::serde::ser::Serialize for SharingAllowlistRemoveResponse {
24120 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24121 use serde::ser::SerializeStruct;
24123 serializer.serialize_struct("SharingAllowlistRemoveResponse", 0)?.end()
24124 }
24125}
24126
24127#[derive(Debug, Clone, PartialEq, Eq)]
24129#[non_exhaustive] pub struct StorageBucket {
24131 pub bucket: String,
24134 pub users: u64,
24136}
24137
24138impl StorageBucket {
24139 pub fn new(bucket: String, users: u64) -> Self {
24140 StorageBucket {
24141 bucket,
24142 users,
24143 }
24144 }
24145}
24146
24147const STORAGE_BUCKET_FIELDS: &[&str] = &["bucket",
24148 "users"];
24149impl StorageBucket {
24150 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24151 map: V,
24152 ) -> Result<StorageBucket, V::Error> {
24153 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24154 }
24155
24156 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24157 mut map: V,
24158 optional: bool,
24159 ) -> Result<Option<StorageBucket>, V::Error> {
24160 let mut field_bucket = None;
24161 let mut field_users = None;
24162 let mut nothing = true;
24163 while let Some(key) = map.next_key::<&str>()? {
24164 nothing = false;
24165 match key {
24166 "bucket" => {
24167 if field_bucket.is_some() {
24168 return Err(::serde::de::Error::duplicate_field("bucket"));
24169 }
24170 field_bucket = Some(map.next_value()?);
24171 }
24172 "users" => {
24173 if field_users.is_some() {
24174 return Err(::serde::de::Error::duplicate_field("users"));
24175 }
24176 field_users = Some(map.next_value()?);
24177 }
24178 _ => {
24179 map.next_value::<::serde_json::Value>()?;
24181 }
24182 }
24183 }
24184 if optional && nothing {
24185 return Ok(None);
24186 }
24187 let result = StorageBucket {
24188 bucket: field_bucket.ok_or_else(|| ::serde::de::Error::missing_field("bucket"))?,
24189 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
24190 };
24191 Ok(Some(result))
24192 }
24193
24194 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24195 &self,
24196 s: &mut S::SerializeStruct,
24197 ) -> Result<(), S::Error> {
24198 use serde::ser::SerializeStruct;
24199 s.serialize_field("bucket", &self.bucket)?;
24200 s.serialize_field("users", &self.users)?;
24201 Ok(())
24202 }
24203}
24204
24205impl<'de> ::serde::de::Deserialize<'de> for StorageBucket {
24206 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24207 use serde::de::{MapAccess, Visitor};
24209 struct StructVisitor;
24210 impl<'de> Visitor<'de> for StructVisitor {
24211 type Value = StorageBucket;
24212 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24213 f.write_str("a StorageBucket struct")
24214 }
24215 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24216 StorageBucket::internal_deserialize(map)
24217 }
24218 }
24219 deserializer.deserialize_struct("StorageBucket", STORAGE_BUCKET_FIELDS, StructVisitor)
24220 }
24221}
24222
24223impl ::serde::ser::Serialize for StorageBucket {
24224 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24225 use serde::ser::SerializeStruct;
24227 let mut s = serializer.serialize_struct("StorageBucket", 2)?;
24228 self.internal_serialize::<S>(&mut s)?;
24229 s.end()
24230 }
24231}
24232
24233#[derive(Debug, Clone, PartialEq, Eq)]
24234#[non_exhaustive] pub enum TeamFolderAccessError {
24236 InvalidTeamFolderId,
24238 NoAccess,
24240 Other,
24243}
24244
24245impl<'de> ::serde::de::Deserialize<'de> for TeamFolderAccessError {
24246 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24247 use serde::de::{self, MapAccess, Visitor};
24249 struct EnumVisitor;
24250 impl<'de> Visitor<'de> for EnumVisitor {
24251 type Value = TeamFolderAccessError;
24252 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24253 f.write_str("a TeamFolderAccessError structure")
24254 }
24255 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24256 let tag: &str = match map.next_key()? {
24257 Some(".tag") => map.next_value()?,
24258 _ => return Err(de::Error::missing_field(".tag"))
24259 };
24260 let value = match tag {
24261 "invalid_team_folder_id" => TeamFolderAccessError::InvalidTeamFolderId,
24262 "no_access" => TeamFolderAccessError::NoAccess,
24263 _ => TeamFolderAccessError::Other,
24264 };
24265 crate::eat_json_fields(&mut map)?;
24266 Ok(value)
24267 }
24268 }
24269 const VARIANTS: &[&str] = &["invalid_team_folder_id",
24270 "no_access",
24271 "other"];
24272 deserializer.deserialize_struct("TeamFolderAccessError", VARIANTS, EnumVisitor)
24273 }
24274}
24275
24276impl ::serde::ser::Serialize for TeamFolderAccessError {
24277 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24278 use serde::ser::SerializeStruct;
24280 match self {
24281 TeamFolderAccessError::InvalidTeamFolderId => {
24282 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
24284 s.serialize_field(".tag", "invalid_team_folder_id")?;
24285 s.end()
24286 }
24287 TeamFolderAccessError::NoAccess => {
24288 let mut s = serializer.serialize_struct("TeamFolderAccessError", 1)?;
24290 s.serialize_field(".tag", "no_access")?;
24291 s.end()
24292 }
24293 TeamFolderAccessError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24294 }
24295 }
24296}
24297
24298impl ::std::error::Error for TeamFolderAccessError {
24299}
24300
24301impl ::std::fmt::Display for TeamFolderAccessError {
24302 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24303 match self {
24304 TeamFolderAccessError::InvalidTeamFolderId => f.write_str("The team folder ID is invalid."),
24305 TeamFolderAccessError::NoAccess => f.write_str("The authenticated app does not have permission to manage that team folder."),
24306 _ => write!(f, "{:?}", *self),
24307 }
24308 }
24309}
24310
24311
24312#[derive(Debug, Clone, PartialEq, Eq)]
24313#[non_exhaustive] pub enum TeamFolderActivateError {
24315 AccessError(TeamFolderAccessError),
24316 StatusError(TeamFolderInvalidStatusError),
24317 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
24318 Other,
24321}
24322
24323impl<'de> ::serde::de::Deserialize<'de> for TeamFolderActivateError {
24324 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24325 use serde::de::{self, MapAccess, Visitor};
24327 struct EnumVisitor;
24328 impl<'de> Visitor<'de> for EnumVisitor {
24329 type Value = TeamFolderActivateError;
24330 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24331 f.write_str("a TeamFolderActivateError structure")
24332 }
24333 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24334 let tag: &str = match map.next_key()? {
24335 Some(".tag") => map.next_value()?,
24336 _ => return Err(de::Error::missing_field(".tag"))
24337 };
24338 let value = match tag {
24339 "access_error" => {
24340 match map.next_key()? {
24341 Some("access_error") => TeamFolderActivateError::AccessError(map.next_value()?),
24342 None => return Err(de::Error::missing_field("access_error")),
24343 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24344 }
24345 }
24346 "status_error" => {
24347 match map.next_key()? {
24348 Some("status_error") => TeamFolderActivateError::StatusError(map.next_value()?),
24349 None => return Err(de::Error::missing_field("status_error")),
24350 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24351 }
24352 }
24353 "team_shared_dropbox_error" => {
24354 match map.next_key()? {
24355 Some("team_shared_dropbox_error") => TeamFolderActivateError::TeamSharedDropboxError(map.next_value()?),
24356 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
24357 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24358 }
24359 }
24360 _ => TeamFolderActivateError::Other,
24361 };
24362 crate::eat_json_fields(&mut map)?;
24363 Ok(value)
24364 }
24365 }
24366 const VARIANTS: &[&str] = &["access_error",
24367 "status_error",
24368 "team_shared_dropbox_error",
24369 "other"];
24370 deserializer.deserialize_struct("TeamFolderActivateError", VARIANTS, EnumVisitor)
24371 }
24372}
24373
24374impl ::serde::ser::Serialize for TeamFolderActivateError {
24375 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24376 use serde::ser::SerializeStruct;
24378 match self {
24379 TeamFolderActivateError::AccessError(x) => {
24380 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
24382 s.serialize_field(".tag", "access_error")?;
24383 s.serialize_field("access_error", x)?;
24384 s.end()
24385 }
24386 TeamFolderActivateError::StatusError(x) => {
24387 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
24389 s.serialize_field(".tag", "status_error")?;
24390 s.serialize_field("status_error", x)?;
24391 s.end()
24392 }
24393 TeamFolderActivateError::TeamSharedDropboxError(x) => {
24394 let mut s = serializer.serialize_struct("TeamFolderActivateError", 2)?;
24396 s.serialize_field(".tag", "team_shared_dropbox_error")?;
24397 s.serialize_field("team_shared_dropbox_error", x)?;
24398 s.end()
24399 }
24400 TeamFolderActivateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24401 }
24402 }
24403}
24404
24405impl ::std::error::Error for TeamFolderActivateError {
24406 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
24407 match self {
24408 TeamFolderActivateError::AccessError(inner) => Some(inner),
24409 TeamFolderActivateError::StatusError(inner) => Some(inner),
24410 TeamFolderActivateError::TeamSharedDropboxError(inner) => Some(inner),
24411 _ => None,
24412 }
24413 }
24414}
24415
24416impl ::std::fmt::Display for TeamFolderActivateError {
24417 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24418 match self {
24419 TeamFolderActivateError::AccessError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
24420 TeamFolderActivateError::StatusError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
24421 TeamFolderActivateError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderActivateError: {}", inner),
24422 _ => write!(f, "{:?}", *self),
24423 }
24424 }
24425}
24426
24427impl From<BaseTeamFolderError> for TeamFolderActivateError {
24429 fn from(parent: BaseTeamFolderError) -> Self {
24430 match parent {
24431 BaseTeamFolderError::AccessError(x) => TeamFolderActivateError::AccessError(x),
24432 BaseTeamFolderError::StatusError(x) => TeamFolderActivateError::StatusError(x),
24433 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderActivateError::TeamSharedDropboxError(x),
24434 BaseTeamFolderError::Other => TeamFolderActivateError::Other,
24435 }
24436 }
24437}
24438#[derive(Debug, Clone, PartialEq, Eq)]
24439#[non_exhaustive] pub struct TeamFolderArchiveArg {
24441 pub team_folder_id: crate::types::common::SharedFolderId,
24443 pub force_async_off: bool,
24445}
24446
24447impl TeamFolderArchiveArg {
24448 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
24449 TeamFolderArchiveArg {
24450 team_folder_id,
24451 force_async_off: false,
24452 }
24453 }
24454
24455 pub fn with_force_async_off(mut self, value: bool) -> Self {
24456 self.force_async_off = value;
24457 self
24458 }
24459}
24460
24461const TEAM_FOLDER_ARCHIVE_ARG_FIELDS: &[&str] = &["team_folder_id",
24462 "force_async_off"];
24463impl TeamFolderArchiveArg {
24464 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24465 map: V,
24466 ) -> Result<TeamFolderArchiveArg, V::Error> {
24467 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24468 }
24469
24470 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24471 mut map: V,
24472 optional: bool,
24473 ) -> Result<Option<TeamFolderArchiveArg>, V::Error> {
24474 let mut field_team_folder_id = None;
24475 let mut field_force_async_off = None;
24476 let mut nothing = true;
24477 while let Some(key) = map.next_key::<&str>()? {
24478 nothing = false;
24479 match key {
24480 "team_folder_id" => {
24481 if field_team_folder_id.is_some() {
24482 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
24483 }
24484 field_team_folder_id = Some(map.next_value()?);
24485 }
24486 "force_async_off" => {
24487 if field_force_async_off.is_some() {
24488 return Err(::serde::de::Error::duplicate_field("force_async_off"));
24489 }
24490 field_force_async_off = Some(map.next_value()?);
24491 }
24492 _ => {
24493 map.next_value::<::serde_json::Value>()?;
24495 }
24496 }
24497 }
24498 if optional && nothing {
24499 return Ok(None);
24500 }
24501 let result = TeamFolderArchiveArg {
24502 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
24503 force_async_off: field_force_async_off.unwrap_or(false),
24504 };
24505 Ok(Some(result))
24506 }
24507
24508 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24509 &self,
24510 s: &mut S::SerializeStruct,
24511 ) -> Result<(), S::Error> {
24512 use serde::ser::SerializeStruct;
24513 s.serialize_field("team_folder_id", &self.team_folder_id)?;
24514 if self.force_async_off {
24515 s.serialize_field("force_async_off", &self.force_async_off)?;
24516 }
24517 Ok(())
24518 }
24519}
24520
24521impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveArg {
24522 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24523 use serde::de::{MapAccess, Visitor};
24525 struct StructVisitor;
24526 impl<'de> Visitor<'de> for StructVisitor {
24527 type Value = TeamFolderArchiveArg;
24528 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24529 f.write_str("a TeamFolderArchiveArg struct")
24530 }
24531 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24532 TeamFolderArchiveArg::internal_deserialize(map)
24533 }
24534 }
24535 deserializer.deserialize_struct("TeamFolderArchiveArg", TEAM_FOLDER_ARCHIVE_ARG_FIELDS, StructVisitor)
24536 }
24537}
24538
24539impl ::serde::ser::Serialize for TeamFolderArchiveArg {
24540 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24541 use serde::ser::SerializeStruct;
24543 let mut s = serializer.serialize_struct("TeamFolderArchiveArg", 2)?;
24544 self.internal_serialize::<S>(&mut s)?;
24545 s.end()
24546 }
24547}
24548
24549impl From<TeamFolderArchiveArg> for TeamFolderIdArg {
24551 fn from(subtype: TeamFolderArchiveArg) -> Self {
24552 Self {
24553 team_folder_id: subtype.team_folder_id,
24554 }
24555 }
24556}
24557
24558#[derive(Debug, Clone, PartialEq, Eq)]
24559#[non_exhaustive] pub enum TeamFolderArchiveError {
24561 AccessError(TeamFolderAccessError),
24562 StatusError(TeamFolderInvalidStatusError),
24563 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
24564 Other,
24567}
24568
24569impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveError {
24570 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24571 use serde::de::{self, MapAccess, Visitor};
24573 struct EnumVisitor;
24574 impl<'de> Visitor<'de> for EnumVisitor {
24575 type Value = TeamFolderArchiveError;
24576 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24577 f.write_str("a TeamFolderArchiveError structure")
24578 }
24579 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24580 let tag: &str = match map.next_key()? {
24581 Some(".tag") => map.next_value()?,
24582 _ => return Err(de::Error::missing_field(".tag"))
24583 };
24584 let value = match tag {
24585 "access_error" => {
24586 match map.next_key()? {
24587 Some("access_error") => TeamFolderArchiveError::AccessError(map.next_value()?),
24588 None => return Err(de::Error::missing_field("access_error")),
24589 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24590 }
24591 }
24592 "status_error" => {
24593 match map.next_key()? {
24594 Some("status_error") => TeamFolderArchiveError::StatusError(map.next_value()?),
24595 None => return Err(de::Error::missing_field("status_error")),
24596 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24597 }
24598 }
24599 "team_shared_dropbox_error" => {
24600 match map.next_key()? {
24601 Some("team_shared_dropbox_error") => TeamFolderArchiveError::TeamSharedDropboxError(map.next_value()?),
24602 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
24603 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24604 }
24605 }
24606 _ => TeamFolderArchiveError::Other,
24607 };
24608 crate::eat_json_fields(&mut map)?;
24609 Ok(value)
24610 }
24611 }
24612 const VARIANTS: &[&str] = &["access_error",
24613 "status_error",
24614 "team_shared_dropbox_error",
24615 "other"];
24616 deserializer.deserialize_struct("TeamFolderArchiveError", VARIANTS, EnumVisitor)
24617 }
24618}
24619
24620impl ::serde::ser::Serialize for TeamFolderArchiveError {
24621 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24622 use serde::ser::SerializeStruct;
24624 match self {
24625 TeamFolderArchiveError::AccessError(x) => {
24626 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
24628 s.serialize_field(".tag", "access_error")?;
24629 s.serialize_field("access_error", x)?;
24630 s.end()
24631 }
24632 TeamFolderArchiveError::StatusError(x) => {
24633 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
24635 s.serialize_field(".tag", "status_error")?;
24636 s.serialize_field("status_error", x)?;
24637 s.end()
24638 }
24639 TeamFolderArchiveError::TeamSharedDropboxError(x) => {
24640 let mut s = serializer.serialize_struct("TeamFolderArchiveError", 2)?;
24642 s.serialize_field(".tag", "team_shared_dropbox_error")?;
24643 s.serialize_field("team_shared_dropbox_error", x)?;
24644 s.end()
24645 }
24646 TeamFolderArchiveError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
24647 }
24648 }
24649}
24650
24651impl ::std::error::Error for TeamFolderArchiveError {
24652 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
24653 match self {
24654 TeamFolderArchiveError::AccessError(inner) => Some(inner),
24655 TeamFolderArchiveError::StatusError(inner) => Some(inner),
24656 TeamFolderArchiveError::TeamSharedDropboxError(inner) => Some(inner),
24657 _ => None,
24658 }
24659 }
24660}
24661
24662impl ::std::fmt::Display for TeamFolderArchiveError {
24663 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24664 match self {
24665 TeamFolderArchiveError::AccessError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
24666 TeamFolderArchiveError::StatusError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
24667 TeamFolderArchiveError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderArchiveError: {}", inner),
24668 _ => write!(f, "{:?}", *self),
24669 }
24670 }
24671}
24672
24673impl From<BaseTeamFolderError> for TeamFolderArchiveError {
24675 fn from(parent: BaseTeamFolderError) -> Self {
24676 match parent {
24677 BaseTeamFolderError::AccessError(x) => TeamFolderArchiveError::AccessError(x),
24678 BaseTeamFolderError::StatusError(x) => TeamFolderArchiveError::StatusError(x),
24679 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderArchiveError::TeamSharedDropboxError(x),
24680 BaseTeamFolderError::Other => TeamFolderArchiveError::Other,
24681 }
24682 }
24683}
24684#[derive(Debug, Clone, PartialEq, Eq)]
24685pub enum TeamFolderArchiveJobStatus {
24686 InProgress,
24688 Complete(TeamFolderMetadata),
24690 Failed(TeamFolderArchiveError),
24693}
24694
24695impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveJobStatus {
24696 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24697 use serde::de::{self, MapAccess, Visitor};
24699 struct EnumVisitor;
24700 impl<'de> Visitor<'de> for EnumVisitor {
24701 type Value = TeamFolderArchiveJobStatus;
24702 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24703 f.write_str("a TeamFolderArchiveJobStatus structure")
24704 }
24705 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24706 let tag: &str = match map.next_key()? {
24707 Some(".tag") => map.next_value()?,
24708 _ => return Err(de::Error::missing_field(".tag"))
24709 };
24710 let value = match tag {
24711 "in_progress" => TeamFolderArchiveJobStatus::InProgress,
24712 "complete" => TeamFolderArchiveJobStatus::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
24713 "failed" => {
24714 match map.next_key()? {
24715 Some("failed") => TeamFolderArchiveJobStatus::Failed(map.next_value()?),
24716 None => return Err(de::Error::missing_field("failed")),
24717 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24718 }
24719 }
24720 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
24721 };
24722 crate::eat_json_fields(&mut map)?;
24723 Ok(value)
24724 }
24725 }
24726 const VARIANTS: &[&str] = &["in_progress",
24727 "complete",
24728 "failed"];
24729 deserializer.deserialize_struct("TeamFolderArchiveJobStatus", VARIANTS, EnumVisitor)
24730 }
24731}
24732
24733impl ::serde::ser::Serialize for TeamFolderArchiveJobStatus {
24734 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24735 use serde::ser::SerializeStruct;
24737 match self {
24738 TeamFolderArchiveJobStatus::InProgress => {
24739 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 1)?;
24741 s.serialize_field(".tag", "in_progress")?;
24742 s.end()
24743 }
24744 TeamFolderArchiveJobStatus::Complete(x) => {
24745 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 7)?;
24747 s.serialize_field(".tag", "complete")?;
24748 x.internal_serialize::<S>(&mut s)?;
24749 s.end()
24750 }
24751 TeamFolderArchiveJobStatus::Failed(x) => {
24752 let mut s = serializer.serialize_struct("TeamFolderArchiveJobStatus", 2)?;
24754 s.serialize_field(".tag", "failed")?;
24755 s.serialize_field("failed", x)?;
24756 s.end()
24757 }
24758 }
24759 }
24760}
24761
24762impl From<crate::types::dbx_async::PollResultBase> for TeamFolderArchiveJobStatus {
24764 fn from(parent: crate::types::dbx_async::PollResultBase) -> Self {
24765 match parent {
24766 crate::types::dbx_async::PollResultBase::InProgress => TeamFolderArchiveJobStatus::InProgress,
24767 }
24768 }
24769}
24770#[derive(Debug, Clone, PartialEq, Eq)]
24771pub enum TeamFolderArchiveLaunch {
24772 AsyncJobId(crate::types::dbx_async::AsyncJobId),
24775 Complete(TeamFolderMetadata),
24776}
24777
24778impl<'de> ::serde::de::Deserialize<'de> for TeamFolderArchiveLaunch {
24779 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24780 use serde::de::{self, MapAccess, Visitor};
24782 struct EnumVisitor;
24783 impl<'de> Visitor<'de> for EnumVisitor {
24784 type Value = TeamFolderArchiveLaunch;
24785 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24786 f.write_str("a TeamFolderArchiveLaunch structure")
24787 }
24788 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24789 let tag: &str = match map.next_key()? {
24790 Some(".tag") => map.next_value()?,
24791 _ => return Err(de::Error::missing_field(".tag"))
24792 };
24793 let value = match tag {
24794 "async_job_id" => {
24795 match map.next_key()? {
24796 Some("async_job_id") => TeamFolderArchiveLaunch::AsyncJobId(map.next_value()?),
24797 None => return Err(de::Error::missing_field("async_job_id")),
24798 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24799 }
24800 }
24801 "complete" => TeamFolderArchiveLaunch::Complete(TeamFolderMetadata::internal_deserialize(&mut map)?),
24802 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
24803 };
24804 crate::eat_json_fields(&mut map)?;
24805 Ok(value)
24806 }
24807 }
24808 const VARIANTS: &[&str] = &["async_job_id",
24809 "complete"];
24810 deserializer.deserialize_struct("TeamFolderArchiveLaunch", VARIANTS, EnumVisitor)
24811 }
24812}
24813
24814impl ::serde::ser::Serialize for TeamFolderArchiveLaunch {
24815 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24816 use serde::ser::SerializeStruct;
24818 match self {
24819 TeamFolderArchiveLaunch::AsyncJobId(x) => {
24820 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 2)?;
24822 s.serialize_field(".tag", "async_job_id")?;
24823 s.serialize_field("async_job_id", x)?;
24824 s.end()
24825 }
24826 TeamFolderArchiveLaunch::Complete(x) => {
24827 let mut s = serializer.serialize_struct("TeamFolderArchiveLaunch", 7)?;
24829 s.serialize_field(".tag", "complete")?;
24830 x.internal_serialize::<S>(&mut s)?;
24831 s.end()
24832 }
24833 }
24834 }
24835}
24836
24837impl From<crate::types::dbx_async::LaunchResultBase> for TeamFolderArchiveLaunch {
24839 fn from(parent: crate::types::dbx_async::LaunchResultBase) -> Self {
24840 match parent {
24841 crate::types::dbx_async::LaunchResultBase::AsyncJobId(x) => TeamFolderArchiveLaunch::AsyncJobId(x),
24842 }
24843 }
24844}
24845#[derive(Debug, Clone, PartialEq, Eq)]
24846#[non_exhaustive] pub struct TeamFolderCreateArg {
24848 pub name: String,
24850 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
24853}
24854
24855impl TeamFolderCreateArg {
24856 pub fn new(name: String) -> Self {
24857 TeamFolderCreateArg {
24858 name,
24859 sync_setting: None,
24860 }
24861 }
24862
24863 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
24864 self.sync_setting = Some(value);
24865 self
24866 }
24867}
24868
24869const TEAM_FOLDER_CREATE_ARG_FIELDS: &[&str] = &["name",
24870 "sync_setting"];
24871impl TeamFolderCreateArg {
24872 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
24873 map: V,
24874 ) -> Result<TeamFolderCreateArg, V::Error> {
24875 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
24876 }
24877
24878 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
24879 mut map: V,
24880 optional: bool,
24881 ) -> Result<Option<TeamFolderCreateArg>, V::Error> {
24882 let mut field_name = None;
24883 let mut field_sync_setting = None;
24884 let mut nothing = true;
24885 while let Some(key) = map.next_key::<&str>()? {
24886 nothing = false;
24887 match key {
24888 "name" => {
24889 if field_name.is_some() {
24890 return Err(::serde::de::Error::duplicate_field("name"));
24891 }
24892 field_name = Some(map.next_value()?);
24893 }
24894 "sync_setting" => {
24895 if field_sync_setting.is_some() {
24896 return Err(::serde::de::Error::duplicate_field("sync_setting"));
24897 }
24898 field_sync_setting = Some(map.next_value()?);
24899 }
24900 _ => {
24901 map.next_value::<::serde_json::Value>()?;
24903 }
24904 }
24905 }
24906 if optional && nothing {
24907 return Ok(None);
24908 }
24909 let result = TeamFolderCreateArg {
24910 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
24911 sync_setting: field_sync_setting.and_then(Option::flatten),
24912 };
24913 Ok(Some(result))
24914 }
24915
24916 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
24917 &self,
24918 s: &mut S::SerializeStruct,
24919 ) -> Result<(), S::Error> {
24920 use serde::ser::SerializeStruct;
24921 s.serialize_field("name", &self.name)?;
24922 if let Some(val) = &self.sync_setting {
24923 s.serialize_field("sync_setting", val)?;
24924 }
24925 Ok(())
24926 }
24927}
24928
24929impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateArg {
24930 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24931 use serde::de::{MapAccess, Visitor};
24933 struct StructVisitor;
24934 impl<'de> Visitor<'de> for StructVisitor {
24935 type Value = TeamFolderCreateArg;
24936 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24937 f.write_str("a TeamFolderCreateArg struct")
24938 }
24939 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
24940 TeamFolderCreateArg::internal_deserialize(map)
24941 }
24942 }
24943 deserializer.deserialize_struct("TeamFolderCreateArg", TEAM_FOLDER_CREATE_ARG_FIELDS, StructVisitor)
24944 }
24945}
24946
24947impl ::serde::ser::Serialize for TeamFolderCreateArg {
24948 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
24949 use serde::ser::SerializeStruct;
24951 let mut s = serializer.serialize_struct("TeamFolderCreateArg", 2)?;
24952 self.internal_serialize::<S>(&mut s)?;
24953 s.end()
24954 }
24955}
24956
24957#[derive(Debug, Clone, PartialEq, Eq)]
24958#[non_exhaustive] pub enum TeamFolderCreateError {
24960 InvalidFolderName,
24962 FolderNameAlreadyUsed,
24964 FolderNameReserved,
24966 SyncSettingsError(crate::types::files::SyncSettingsError),
24968 Other,
24971}
24972
24973impl<'de> ::serde::de::Deserialize<'de> for TeamFolderCreateError {
24974 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
24975 use serde::de::{self, MapAccess, Visitor};
24977 struct EnumVisitor;
24978 impl<'de> Visitor<'de> for EnumVisitor {
24979 type Value = TeamFolderCreateError;
24980 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
24981 f.write_str("a TeamFolderCreateError structure")
24982 }
24983 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
24984 let tag: &str = match map.next_key()? {
24985 Some(".tag") => map.next_value()?,
24986 _ => return Err(de::Error::missing_field(".tag"))
24987 };
24988 let value = match tag {
24989 "invalid_folder_name" => TeamFolderCreateError::InvalidFolderName,
24990 "folder_name_already_used" => TeamFolderCreateError::FolderNameAlreadyUsed,
24991 "folder_name_reserved" => TeamFolderCreateError::FolderNameReserved,
24992 "sync_settings_error" => {
24993 match map.next_key()? {
24994 Some("sync_settings_error") => TeamFolderCreateError::SyncSettingsError(map.next_value()?),
24995 None => return Err(de::Error::missing_field("sync_settings_error")),
24996 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
24997 }
24998 }
24999 _ => TeamFolderCreateError::Other,
25000 };
25001 crate::eat_json_fields(&mut map)?;
25002 Ok(value)
25003 }
25004 }
25005 const VARIANTS: &[&str] = &["invalid_folder_name",
25006 "folder_name_already_used",
25007 "folder_name_reserved",
25008 "sync_settings_error",
25009 "other"];
25010 deserializer.deserialize_struct("TeamFolderCreateError", VARIANTS, EnumVisitor)
25011 }
25012}
25013
25014impl ::serde::ser::Serialize for TeamFolderCreateError {
25015 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25016 use serde::ser::SerializeStruct;
25018 match self {
25019 TeamFolderCreateError::InvalidFolderName => {
25020 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25022 s.serialize_field(".tag", "invalid_folder_name")?;
25023 s.end()
25024 }
25025 TeamFolderCreateError::FolderNameAlreadyUsed => {
25026 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25028 s.serialize_field(".tag", "folder_name_already_used")?;
25029 s.end()
25030 }
25031 TeamFolderCreateError::FolderNameReserved => {
25032 let mut s = serializer.serialize_struct("TeamFolderCreateError", 1)?;
25034 s.serialize_field(".tag", "folder_name_reserved")?;
25035 s.end()
25036 }
25037 TeamFolderCreateError::SyncSettingsError(x) => {
25038 let mut s = serializer.serialize_struct("TeamFolderCreateError", 2)?;
25040 s.serialize_field(".tag", "sync_settings_error")?;
25041 s.serialize_field("sync_settings_error", x)?;
25042 s.end()
25043 }
25044 TeamFolderCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25045 }
25046 }
25047}
25048
25049impl ::std::error::Error for TeamFolderCreateError {
25050 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
25051 match self {
25052 TeamFolderCreateError::SyncSettingsError(inner) => Some(inner),
25053 _ => None,
25054 }
25055 }
25056}
25057
25058impl ::std::fmt::Display for TeamFolderCreateError {
25059 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25060 match self {
25061 TeamFolderCreateError::InvalidFolderName => f.write_str("The provided name cannot be used."),
25062 TeamFolderCreateError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the provided name."),
25063 TeamFolderCreateError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
25064 TeamFolderCreateError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
25065 _ => write!(f, "{:?}", *self),
25066 }
25067 }
25068}
25069
25070#[derive(Debug, Clone, PartialEq, Eq)]
25071pub enum TeamFolderGetInfoItem {
25072 IdNotFound(String),
25076 TeamFolderMetadata(TeamFolderMetadata),
25078}
25079
25080impl<'de> ::serde::de::Deserialize<'de> for TeamFolderGetInfoItem {
25081 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25082 use serde::de::{self, MapAccess, Visitor};
25084 struct EnumVisitor;
25085 impl<'de> Visitor<'de> for EnumVisitor {
25086 type Value = TeamFolderGetInfoItem;
25087 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25088 f.write_str("a TeamFolderGetInfoItem structure")
25089 }
25090 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25091 let tag: &str = match map.next_key()? {
25092 Some(".tag") => map.next_value()?,
25093 _ => return Err(de::Error::missing_field(".tag"))
25094 };
25095 let value = match tag {
25096 "id_not_found" => {
25097 match map.next_key()? {
25098 Some("id_not_found") => TeamFolderGetInfoItem::IdNotFound(map.next_value()?),
25099 None => return Err(de::Error::missing_field("id_not_found")),
25100 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
25101 }
25102 }
25103 "team_folder_metadata" => TeamFolderGetInfoItem::TeamFolderMetadata(TeamFolderMetadata::internal_deserialize(&mut map)?),
25104 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
25105 };
25106 crate::eat_json_fields(&mut map)?;
25107 Ok(value)
25108 }
25109 }
25110 const VARIANTS: &[&str] = &["id_not_found",
25111 "team_folder_metadata"];
25112 deserializer.deserialize_struct("TeamFolderGetInfoItem", VARIANTS, EnumVisitor)
25113 }
25114}
25115
25116impl ::serde::ser::Serialize for TeamFolderGetInfoItem {
25117 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25118 use serde::ser::SerializeStruct;
25120 match self {
25121 TeamFolderGetInfoItem::IdNotFound(x) => {
25122 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 2)?;
25124 s.serialize_field(".tag", "id_not_found")?;
25125 s.serialize_field("id_not_found", x)?;
25126 s.end()
25127 }
25128 TeamFolderGetInfoItem::TeamFolderMetadata(x) => {
25129 let mut s = serializer.serialize_struct("TeamFolderGetInfoItem", 7)?;
25131 s.serialize_field(".tag", "team_folder_metadata")?;
25132 x.internal_serialize::<S>(&mut s)?;
25133 s.end()
25134 }
25135 }
25136 }
25137}
25138
25139#[derive(Debug, Clone, PartialEq, Eq)]
25140#[non_exhaustive] pub struct TeamFolderIdArg {
25142 pub team_folder_id: crate::types::common::SharedFolderId,
25144}
25145
25146impl TeamFolderIdArg {
25147 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
25148 TeamFolderIdArg {
25149 team_folder_id,
25150 }
25151 }
25152}
25153
25154const TEAM_FOLDER_ID_ARG_FIELDS: &[&str] = &["team_folder_id"];
25155impl TeamFolderIdArg {
25156 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25157 map: V,
25158 ) -> Result<TeamFolderIdArg, V::Error> {
25159 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25160 }
25161
25162 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25163 mut map: V,
25164 optional: bool,
25165 ) -> Result<Option<TeamFolderIdArg>, V::Error> {
25166 let mut field_team_folder_id = None;
25167 let mut nothing = true;
25168 while let Some(key) = map.next_key::<&str>()? {
25169 nothing = false;
25170 match key {
25171 "team_folder_id" => {
25172 if field_team_folder_id.is_some() {
25173 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
25174 }
25175 field_team_folder_id = Some(map.next_value()?);
25176 }
25177 _ => {
25178 map.next_value::<::serde_json::Value>()?;
25180 }
25181 }
25182 }
25183 if optional && nothing {
25184 return Ok(None);
25185 }
25186 let result = TeamFolderIdArg {
25187 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
25188 };
25189 Ok(Some(result))
25190 }
25191
25192 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25193 &self,
25194 s: &mut S::SerializeStruct,
25195 ) -> Result<(), S::Error> {
25196 use serde::ser::SerializeStruct;
25197 s.serialize_field("team_folder_id", &self.team_folder_id)?;
25198 Ok(())
25199 }
25200}
25201
25202impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdArg {
25203 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25204 use serde::de::{MapAccess, Visitor};
25206 struct StructVisitor;
25207 impl<'de> Visitor<'de> for StructVisitor {
25208 type Value = TeamFolderIdArg;
25209 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25210 f.write_str("a TeamFolderIdArg struct")
25211 }
25212 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25213 TeamFolderIdArg::internal_deserialize(map)
25214 }
25215 }
25216 deserializer.deserialize_struct("TeamFolderIdArg", TEAM_FOLDER_ID_ARG_FIELDS, StructVisitor)
25217 }
25218}
25219
25220impl ::serde::ser::Serialize for TeamFolderIdArg {
25221 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25222 use serde::ser::SerializeStruct;
25224 let mut s = serializer.serialize_struct("TeamFolderIdArg", 1)?;
25225 self.internal_serialize::<S>(&mut s)?;
25226 s.end()
25227 }
25228}
25229
25230#[derive(Debug, Clone, PartialEq, Eq)]
25231#[non_exhaustive] pub struct TeamFolderIdListArg {
25233 pub team_folder_ids: Vec<crate::types::common::SharedFolderId>,
25235}
25236
25237impl TeamFolderIdListArg {
25238 pub fn new(team_folder_ids: Vec<crate::types::common::SharedFolderId>) -> Self {
25239 TeamFolderIdListArg {
25240 team_folder_ids,
25241 }
25242 }
25243}
25244
25245const TEAM_FOLDER_ID_LIST_ARG_FIELDS: &[&str] = &["team_folder_ids"];
25246impl TeamFolderIdListArg {
25247 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25248 map: V,
25249 ) -> Result<TeamFolderIdListArg, V::Error> {
25250 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25251 }
25252
25253 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25254 mut map: V,
25255 optional: bool,
25256 ) -> Result<Option<TeamFolderIdListArg>, V::Error> {
25257 let mut field_team_folder_ids = None;
25258 let mut nothing = true;
25259 while let Some(key) = map.next_key::<&str>()? {
25260 nothing = false;
25261 match key {
25262 "team_folder_ids" => {
25263 if field_team_folder_ids.is_some() {
25264 return Err(::serde::de::Error::duplicate_field("team_folder_ids"));
25265 }
25266 field_team_folder_ids = Some(map.next_value()?);
25267 }
25268 _ => {
25269 map.next_value::<::serde_json::Value>()?;
25271 }
25272 }
25273 }
25274 if optional && nothing {
25275 return Ok(None);
25276 }
25277 let result = TeamFolderIdListArg {
25278 team_folder_ids: field_team_folder_ids.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_ids"))?,
25279 };
25280 Ok(Some(result))
25281 }
25282
25283 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25284 &self,
25285 s: &mut S::SerializeStruct,
25286 ) -> Result<(), S::Error> {
25287 use serde::ser::SerializeStruct;
25288 s.serialize_field("team_folder_ids", &self.team_folder_ids)?;
25289 Ok(())
25290 }
25291}
25292
25293impl<'de> ::serde::de::Deserialize<'de> for TeamFolderIdListArg {
25294 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25295 use serde::de::{MapAccess, Visitor};
25297 struct StructVisitor;
25298 impl<'de> Visitor<'de> for StructVisitor {
25299 type Value = TeamFolderIdListArg;
25300 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25301 f.write_str("a TeamFolderIdListArg struct")
25302 }
25303 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25304 TeamFolderIdListArg::internal_deserialize(map)
25305 }
25306 }
25307 deserializer.deserialize_struct("TeamFolderIdListArg", TEAM_FOLDER_ID_LIST_ARG_FIELDS, StructVisitor)
25308 }
25309}
25310
25311impl ::serde::ser::Serialize for TeamFolderIdListArg {
25312 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25313 use serde::ser::SerializeStruct;
25315 let mut s = serializer.serialize_struct("TeamFolderIdListArg", 1)?;
25316 self.internal_serialize::<S>(&mut s)?;
25317 s.end()
25318 }
25319}
25320
25321#[derive(Debug, Clone, PartialEq, Eq)]
25322#[non_exhaustive] pub enum TeamFolderInvalidStatusError {
25324 Active,
25326 Archived,
25328 ArchiveInProgress,
25330 Other,
25333}
25334
25335impl<'de> ::serde::de::Deserialize<'de> for TeamFolderInvalidStatusError {
25336 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25337 use serde::de::{self, MapAccess, Visitor};
25339 struct EnumVisitor;
25340 impl<'de> Visitor<'de> for EnumVisitor {
25341 type Value = TeamFolderInvalidStatusError;
25342 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25343 f.write_str("a TeamFolderInvalidStatusError structure")
25344 }
25345 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25346 let tag: &str = match map.next_key()? {
25347 Some(".tag") => map.next_value()?,
25348 _ => return Err(de::Error::missing_field(".tag"))
25349 };
25350 let value = match tag {
25351 "active" => TeamFolderInvalidStatusError::Active,
25352 "archived" => TeamFolderInvalidStatusError::Archived,
25353 "archive_in_progress" => TeamFolderInvalidStatusError::ArchiveInProgress,
25354 _ => TeamFolderInvalidStatusError::Other,
25355 };
25356 crate::eat_json_fields(&mut map)?;
25357 Ok(value)
25358 }
25359 }
25360 const VARIANTS: &[&str] = &["active",
25361 "archived",
25362 "archive_in_progress",
25363 "other"];
25364 deserializer.deserialize_struct("TeamFolderInvalidStatusError", VARIANTS, EnumVisitor)
25365 }
25366}
25367
25368impl ::serde::ser::Serialize for TeamFolderInvalidStatusError {
25369 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25370 use serde::ser::SerializeStruct;
25372 match self {
25373 TeamFolderInvalidStatusError::Active => {
25374 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
25376 s.serialize_field(".tag", "active")?;
25377 s.end()
25378 }
25379 TeamFolderInvalidStatusError::Archived => {
25380 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
25382 s.serialize_field(".tag", "archived")?;
25383 s.end()
25384 }
25385 TeamFolderInvalidStatusError::ArchiveInProgress => {
25386 let mut s = serializer.serialize_struct("TeamFolderInvalidStatusError", 1)?;
25388 s.serialize_field(".tag", "archive_in_progress")?;
25389 s.end()
25390 }
25391 TeamFolderInvalidStatusError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25392 }
25393 }
25394}
25395
25396impl ::std::error::Error for TeamFolderInvalidStatusError {
25397}
25398
25399impl ::std::fmt::Display for TeamFolderInvalidStatusError {
25400 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25401 match self {
25402 TeamFolderInvalidStatusError::Active => f.write_str("The folder is active and the operation did not succeed."),
25403 TeamFolderInvalidStatusError::Archived => f.write_str("The folder is archived and the operation did not succeed."),
25404 TeamFolderInvalidStatusError::ArchiveInProgress => f.write_str("The folder is being archived and the operation did not succeed."),
25405 _ => write!(f, "{:?}", *self),
25406 }
25407 }
25408}
25409
25410#[derive(Debug, Clone, PartialEq, Eq)]
25411#[non_exhaustive] pub struct TeamFolderListArg {
25413 pub limit: u32,
25415}
25416
25417impl Default for TeamFolderListArg {
25418 fn default() -> Self {
25419 TeamFolderListArg {
25420 limit: 1000,
25421 }
25422 }
25423}
25424
25425impl TeamFolderListArg {
25426 pub fn with_limit(mut self, value: u32) -> Self {
25427 self.limit = value;
25428 self
25429 }
25430}
25431
25432const TEAM_FOLDER_LIST_ARG_FIELDS: &[&str] = &["limit"];
25433impl TeamFolderListArg {
25434 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25436 mut map: V,
25437 ) -> Result<TeamFolderListArg, V::Error> {
25438 let mut field_limit = None;
25439 while let Some(key) = map.next_key::<&str>()? {
25440 match key {
25441 "limit" => {
25442 if field_limit.is_some() {
25443 return Err(::serde::de::Error::duplicate_field("limit"));
25444 }
25445 field_limit = Some(map.next_value()?);
25446 }
25447 _ => {
25448 map.next_value::<::serde_json::Value>()?;
25450 }
25451 }
25452 }
25453 let result = TeamFolderListArg {
25454 limit: field_limit.unwrap_or(1000),
25455 };
25456 Ok(result)
25457 }
25458
25459 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25460 &self,
25461 s: &mut S::SerializeStruct,
25462 ) -> Result<(), S::Error> {
25463 use serde::ser::SerializeStruct;
25464 if self.limit != 1000 {
25465 s.serialize_field("limit", &self.limit)?;
25466 }
25467 Ok(())
25468 }
25469}
25470
25471impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListArg {
25472 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25473 use serde::de::{MapAccess, Visitor};
25475 struct StructVisitor;
25476 impl<'de> Visitor<'de> for StructVisitor {
25477 type Value = TeamFolderListArg;
25478 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25479 f.write_str("a TeamFolderListArg struct")
25480 }
25481 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25482 TeamFolderListArg::internal_deserialize(map)
25483 }
25484 }
25485 deserializer.deserialize_struct("TeamFolderListArg", TEAM_FOLDER_LIST_ARG_FIELDS, StructVisitor)
25486 }
25487}
25488
25489impl ::serde::ser::Serialize for TeamFolderListArg {
25490 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25491 use serde::ser::SerializeStruct;
25493 let mut s = serializer.serialize_struct("TeamFolderListArg", 1)?;
25494 self.internal_serialize::<S>(&mut s)?;
25495 s.end()
25496 }
25497}
25498
25499#[derive(Debug, Clone, PartialEq, Eq)]
25500#[non_exhaustive] pub struct TeamFolderListContinueArg {
25502 pub cursor: String,
25504}
25505
25506impl TeamFolderListContinueArg {
25507 pub fn new(cursor: String) -> Self {
25508 TeamFolderListContinueArg {
25509 cursor,
25510 }
25511 }
25512}
25513
25514const TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
25515impl TeamFolderListContinueArg {
25516 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25517 map: V,
25518 ) -> Result<TeamFolderListContinueArg, V::Error> {
25519 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25520 }
25521
25522 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25523 mut map: V,
25524 optional: bool,
25525 ) -> Result<Option<TeamFolderListContinueArg>, V::Error> {
25526 let mut field_cursor = None;
25527 let mut nothing = true;
25528 while let Some(key) = map.next_key::<&str>()? {
25529 nothing = false;
25530 match key {
25531 "cursor" => {
25532 if field_cursor.is_some() {
25533 return Err(::serde::de::Error::duplicate_field("cursor"));
25534 }
25535 field_cursor = Some(map.next_value()?);
25536 }
25537 _ => {
25538 map.next_value::<::serde_json::Value>()?;
25540 }
25541 }
25542 }
25543 if optional && nothing {
25544 return Ok(None);
25545 }
25546 let result = TeamFolderListContinueArg {
25547 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
25548 };
25549 Ok(Some(result))
25550 }
25551
25552 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25553 &self,
25554 s: &mut S::SerializeStruct,
25555 ) -> Result<(), S::Error> {
25556 use serde::ser::SerializeStruct;
25557 s.serialize_field("cursor", &self.cursor)?;
25558 Ok(())
25559 }
25560}
25561
25562impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueArg {
25563 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25564 use serde::de::{MapAccess, Visitor};
25566 struct StructVisitor;
25567 impl<'de> Visitor<'de> for StructVisitor {
25568 type Value = TeamFolderListContinueArg;
25569 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25570 f.write_str("a TeamFolderListContinueArg struct")
25571 }
25572 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25573 TeamFolderListContinueArg::internal_deserialize(map)
25574 }
25575 }
25576 deserializer.deserialize_struct("TeamFolderListContinueArg", TEAM_FOLDER_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
25577 }
25578}
25579
25580impl ::serde::ser::Serialize for TeamFolderListContinueArg {
25581 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25582 use serde::ser::SerializeStruct;
25584 let mut s = serializer.serialize_struct("TeamFolderListContinueArg", 1)?;
25585 self.internal_serialize::<S>(&mut s)?;
25586 s.end()
25587 }
25588}
25589
25590#[derive(Debug, Clone, PartialEq, Eq)]
25591#[non_exhaustive] pub enum TeamFolderListContinueError {
25593 InvalidCursor,
25595 Other,
25598}
25599
25600impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListContinueError {
25601 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25602 use serde::de::{self, MapAccess, Visitor};
25604 struct EnumVisitor;
25605 impl<'de> Visitor<'de> for EnumVisitor {
25606 type Value = TeamFolderListContinueError;
25607 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25608 f.write_str("a TeamFolderListContinueError structure")
25609 }
25610 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
25611 let tag: &str = match map.next_key()? {
25612 Some(".tag") => map.next_value()?,
25613 _ => return Err(de::Error::missing_field(".tag"))
25614 };
25615 let value = match tag {
25616 "invalid_cursor" => TeamFolderListContinueError::InvalidCursor,
25617 _ => TeamFolderListContinueError::Other,
25618 };
25619 crate::eat_json_fields(&mut map)?;
25620 Ok(value)
25621 }
25622 }
25623 const VARIANTS: &[&str] = &["invalid_cursor",
25624 "other"];
25625 deserializer.deserialize_struct("TeamFolderListContinueError", VARIANTS, EnumVisitor)
25626 }
25627}
25628
25629impl ::serde::ser::Serialize for TeamFolderListContinueError {
25630 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25631 use serde::ser::SerializeStruct;
25633 match self {
25634 TeamFolderListContinueError::InvalidCursor => {
25635 let mut s = serializer.serialize_struct("TeamFolderListContinueError", 1)?;
25637 s.serialize_field(".tag", "invalid_cursor")?;
25638 s.end()
25639 }
25640 TeamFolderListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
25641 }
25642 }
25643}
25644
25645impl ::std::error::Error for TeamFolderListContinueError {
25646}
25647
25648impl ::std::fmt::Display for TeamFolderListContinueError {
25649 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25650 match self {
25651 TeamFolderListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
25652 _ => write!(f, "{:?}", *self),
25653 }
25654 }
25655}
25656
25657#[derive(Debug, Clone, PartialEq, Eq)]
25658#[non_exhaustive] pub struct TeamFolderListError {
25660 pub access_error: TeamFolderAccessError,
25661}
25662
25663impl TeamFolderListError {
25664 pub fn new(access_error: TeamFolderAccessError) -> Self {
25665 TeamFolderListError {
25666 access_error,
25667 }
25668 }
25669}
25670
25671const TEAM_FOLDER_LIST_ERROR_FIELDS: &[&str] = &["access_error"];
25672impl TeamFolderListError {
25673 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25674 map: V,
25675 ) -> Result<TeamFolderListError, V::Error> {
25676 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25677 }
25678
25679 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25680 mut map: V,
25681 optional: bool,
25682 ) -> Result<Option<TeamFolderListError>, V::Error> {
25683 let mut field_access_error = None;
25684 let mut nothing = true;
25685 while let Some(key) = map.next_key::<&str>()? {
25686 nothing = false;
25687 match key {
25688 "access_error" => {
25689 if field_access_error.is_some() {
25690 return Err(::serde::de::Error::duplicate_field("access_error"));
25691 }
25692 field_access_error = Some(map.next_value()?);
25693 }
25694 _ => {
25695 map.next_value::<::serde_json::Value>()?;
25697 }
25698 }
25699 }
25700 if optional && nothing {
25701 return Ok(None);
25702 }
25703 let result = TeamFolderListError {
25704 access_error: field_access_error.ok_or_else(|| ::serde::de::Error::missing_field("access_error"))?,
25705 };
25706 Ok(Some(result))
25707 }
25708
25709 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25710 &self,
25711 s: &mut S::SerializeStruct,
25712 ) -> Result<(), S::Error> {
25713 use serde::ser::SerializeStruct;
25714 s.serialize_field("access_error", &self.access_error)?;
25715 Ok(())
25716 }
25717}
25718
25719impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListError {
25720 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25721 use serde::de::{MapAccess, Visitor};
25723 struct StructVisitor;
25724 impl<'de> Visitor<'de> for StructVisitor {
25725 type Value = TeamFolderListError;
25726 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25727 f.write_str("a TeamFolderListError struct")
25728 }
25729 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25730 TeamFolderListError::internal_deserialize(map)
25731 }
25732 }
25733 deserializer.deserialize_struct("TeamFolderListError", TEAM_FOLDER_LIST_ERROR_FIELDS, StructVisitor)
25734 }
25735}
25736
25737impl ::serde::ser::Serialize for TeamFolderListError {
25738 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25739 use serde::ser::SerializeStruct;
25741 let mut s = serializer.serialize_struct("TeamFolderListError", 1)?;
25742 self.internal_serialize::<S>(&mut s)?;
25743 s.end()
25744 }
25745}
25746
25747impl ::std::error::Error for TeamFolderListError {
25748}
25749
25750impl ::std::fmt::Display for TeamFolderListError {
25751 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25752 write!(f, "{:?}", *self)
25753 }
25754}
25755
25756#[derive(Debug, Clone, PartialEq, Eq)]
25759#[non_exhaustive] pub struct TeamFolderListResult {
25761 pub team_folders: Vec<TeamFolderMetadata>,
25763 pub cursor: String,
25766 pub has_more: bool,
25770}
25771
25772impl TeamFolderListResult {
25773 pub fn new(team_folders: Vec<TeamFolderMetadata>, cursor: String, has_more: bool) -> Self {
25774 TeamFolderListResult {
25775 team_folders,
25776 cursor,
25777 has_more,
25778 }
25779 }
25780}
25781
25782const TEAM_FOLDER_LIST_RESULT_FIELDS: &[&str] = &["team_folders",
25783 "cursor",
25784 "has_more"];
25785impl TeamFolderListResult {
25786 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25787 map: V,
25788 ) -> Result<TeamFolderListResult, V::Error> {
25789 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25790 }
25791
25792 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25793 mut map: V,
25794 optional: bool,
25795 ) -> Result<Option<TeamFolderListResult>, V::Error> {
25796 let mut field_team_folders = None;
25797 let mut field_cursor = None;
25798 let mut field_has_more = None;
25799 let mut nothing = true;
25800 while let Some(key) = map.next_key::<&str>()? {
25801 nothing = false;
25802 match key {
25803 "team_folders" => {
25804 if field_team_folders.is_some() {
25805 return Err(::serde::de::Error::duplicate_field("team_folders"));
25806 }
25807 field_team_folders = Some(map.next_value()?);
25808 }
25809 "cursor" => {
25810 if field_cursor.is_some() {
25811 return Err(::serde::de::Error::duplicate_field("cursor"));
25812 }
25813 field_cursor = Some(map.next_value()?);
25814 }
25815 "has_more" => {
25816 if field_has_more.is_some() {
25817 return Err(::serde::de::Error::duplicate_field("has_more"));
25818 }
25819 field_has_more = Some(map.next_value()?);
25820 }
25821 _ => {
25822 map.next_value::<::serde_json::Value>()?;
25824 }
25825 }
25826 }
25827 if optional && nothing {
25828 return Ok(None);
25829 }
25830 let result = TeamFolderListResult {
25831 team_folders: field_team_folders.ok_or_else(|| ::serde::de::Error::missing_field("team_folders"))?,
25832 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
25833 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
25834 };
25835 Ok(Some(result))
25836 }
25837
25838 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
25839 &self,
25840 s: &mut S::SerializeStruct,
25841 ) -> Result<(), S::Error> {
25842 use serde::ser::SerializeStruct;
25843 s.serialize_field("team_folders", &self.team_folders)?;
25844 s.serialize_field("cursor", &self.cursor)?;
25845 s.serialize_field("has_more", &self.has_more)?;
25846 Ok(())
25847 }
25848}
25849
25850impl<'de> ::serde::de::Deserialize<'de> for TeamFolderListResult {
25851 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
25852 use serde::de::{MapAccess, Visitor};
25854 struct StructVisitor;
25855 impl<'de> Visitor<'de> for StructVisitor {
25856 type Value = TeamFolderListResult;
25857 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
25858 f.write_str("a TeamFolderListResult struct")
25859 }
25860 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
25861 TeamFolderListResult::internal_deserialize(map)
25862 }
25863 }
25864 deserializer.deserialize_struct("TeamFolderListResult", TEAM_FOLDER_LIST_RESULT_FIELDS, StructVisitor)
25865 }
25866}
25867
25868impl ::serde::ser::Serialize for TeamFolderListResult {
25869 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
25870 use serde::ser::SerializeStruct;
25872 let mut s = serializer.serialize_struct("TeamFolderListResult", 3)?;
25873 self.internal_serialize::<S>(&mut s)?;
25874 s.end()
25875 }
25876}
25877
25878#[derive(Debug, Clone, PartialEq, Eq)]
25880#[non_exhaustive] pub struct TeamFolderMetadata {
25882 pub team_folder_id: crate::types::common::SharedFolderId,
25884 pub name: String,
25886 pub status: TeamFolderStatus,
25888 pub is_team_shared_dropbox: bool,
25890 pub sync_setting: crate::types::files::SyncSetting,
25892 pub content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
25894}
25895
25896impl TeamFolderMetadata {
25897 pub fn new(
25898 team_folder_id: crate::types::common::SharedFolderId,
25899 name: String,
25900 status: TeamFolderStatus,
25901 is_team_shared_dropbox: bool,
25902 sync_setting: crate::types::files::SyncSetting,
25903 content_sync_settings: Vec<crate::types::files::ContentSyncSetting>,
25904 ) -> Self {
25905 TeamFolderMetadata {
25906 team_folder_id,
25907 name,
25908 status,
25909 is_team_shared_dropbox,
25910 sync_setting,
25911 content_sync_settings,
25912 }
25913 }
25914}
25915
25916const TEAM_FOLDER_METADATA_FIELDS: &[&str] = &["team_folder_id",
25917 "name",
25918 "status",
25919 "is_team_shared_dropbox",
25920 "sync_setting",
25921 "content_sync_settings"];
25922impl TeamFolderMetadata {
25923 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
25924 map: V,
25925 ) -> Result<TeamFolderMetadata, V::Error> {
25926 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
25927 }
25928
25929 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
25930 mut map: V,
25931 optional: bool,
25932 ) -> Result<Option<TeamFolderMetadata>, V::Error> {
25933 let mut field_team_folder_id = None;
25934 let mut field_name = None;
25935 let mut field_status = None;
25936 let mut field_is_team_shared_dropbox = None;
25937 let mut field_sync_setting = None;
25938 let mut field_content_sync_settings = None;
25939 let mut nothing = true;
25940 while let Some(key) = map.next_key::<&str>()? {
25941 nothing = false;
25942 match key {
25943 "team_folder_id" => {
25944 if field_team_folder_id.is_some() {
25945 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
25946 }
25947 field_team_folder_id = Some(map.next_value()?);
25948 }
25949 "name" => {
25950 if field_name.is_some() {
25951 return Err(::serde::de::Error::duplicate_field("name"));
25952 }
25953 field_name = Some(map.next_value()?);
25954 }
25955 "status" => {
25956 if field_status.is_some() {
25957 return Err(::serde::de::Error::duplicate_field("status"));
25958 }
25959 field_status = Some(map.next_value()?);
25960 }
25961 "is_team_shared_dropbox" => {
25962 if field_is_team_shared_dropbox.is_some() {
25963 return Err(::serde::de::Error::duplicate_field("is_team_shared_dropbox"));
25964 }
25965 field_is_team_shared_dropbox = Some(map.next_value()?);
25966 }
25967 "sync_setting" => {
25968 if field_sync_setting.is_some() {
25969 return Err(::serde::de::Error::duplicate_field("sync_setting"));
25970 }
25971 field_sync_setting = Some(map.next_value()?);
25972 }
25973 "content_sync_settings" => {
25974 if field_content_sync_settings.is_some() {
25975 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
25976 }
25977 field_content_sync_settings = Some(map.next_value()?);
25978 }
25979 _ => {
25980 map.next_value::<::serde_json::Value>()?;
25982 }
25983 }
25984 }
25985 if optional && nothing {
25986 return Ok(None);
25987 }
25988 let result = TeamFolderMetadata {
25989 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
25990 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
25991 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
25992 is_team_shared_dropbox: field_is_team_shared_dropbox.ok_or_else(|| ::serde::de::Error::missing_field("is_team_shared_dropbox"))?,
25993 sync_setting: field_sync_setting.ok_or_else(|| ::serde::de::Error::missing_field("sync_setting"))?,
25994 content_sync_settings: field_content_sync_settings.ok_or_else(|| ::serde::de::Error::missing_field("content_sync_settings"))?,
25995 };
25996 Ok(Some(result))
25997 }
25998
25999 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26000 &self,
26001 s: &mut S::SerializeStruct,
26002 ) -> Result<(), S::Error> {
26003 use serde::ser::SerializeStruct;
26004 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26005 s.serialize_field("name", &self.name)?;
26006 s.serialize_field("status", &self.status)?;
26007 s.serialize_field("is_team_shared_dropbox", &self.is_team_shared_dropbox)?;
26008 s.serialize_field("sync_setting", &self.sync_setting)?;
26009 s.serialize_field("content_sync_settings", &self.content_sync_settings)?;
26010 Ok(())
26011 }
26012}
26013
26014impl<'de> ::serde::de::Deserialize<'de> for TeamFolderMetadata {
26015 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26016 use serde::de::{MapAccess, Visitor};
26018 struct StructVisitor;
26019 impl<'de> Visitor<'de> for StructVisitor {
26020 type Value = TeamFolderMetadata;
26021 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26022 f.write_str("a TeamFolderMetadata struct")
26023 }
26024 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26025 TeamFolderMetadata::internal_deserialize(map)
26026 }
26027 }
26028 deserializer.deserialize_struct("TeamFolderMetadata", TEAM_FOLDER_METADATA_FIELDS, StructVisitor)
26029 }
26030}
26031
26032impl ::serde::ser::Serialize for TeamFolderMetadata {
26033 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26034 use serde::ser::SerializeStruct;
26036 let mut s = serializer.serialize_struct("TeamFolderMetadata", 6)?;
26037 self.internal_serialize::<S>(&mut s)?;
26038 s.end()
26039 }
26040}
26041
26042
26043#[derive(Debug, Clone, PartialEq, Eq)]
26044#[non_exhaustive] pub enum TeamFolderPermanentlyDeleteError {
26046 AccessError(TeamFolderAccessError),
26047 StatusError(TeamFolderInvalidStatusError),
26048 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26049 Other,
26052}
26053
26054impl<'de> ::serde::de::Deserialize<'de> for TeamFolderPermanentlyDeleteError {
26055 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26056 use serde::de::{self, MapAccess, Visitor};
26058 struct EnumVisitor;
26059 impl<'de> Visitor<'de> for EnumVisitor {
26060 type Value = TeamFolderPermanentlyDeleteError;
26061 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26062 f.write_str("a TeamFolderPermanentlyDeleteError structure")
26063 }
26064 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26065 let tag: &str = match map.next_key()? {
26066 Some(".tag") => map.next_value()?,
26067 _ => return Err(de::Error::missing_field(".tag"))
26068 };
26069 let value = match tag {
26070 "access_error" => {
26071 match map.next_key()? {
26072 Some("access_error") => TeamFolderPermanentlyDeleteError::AccessError(map.next_value()?),
26073 None => return Err(de::Error::missing_field("access_error")),
26074 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26075 }
26076 }
26077 "status_error" => {
26078 match map.next_key()? {
26079 Some("status_error") => TeamFolderPermanentlyDeleteError::StatusError(map.next_value()?),
26080 None => return Err(de::Error::missing_field("status_error")),
26081 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26082 }
26083 }
26084 "team_shared_dropbox_error" => {
26085 match map.next_key()? {
26086 Some("team_shared_dropbox_error") => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(map.next_value()?),
26087 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26088 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26089 }
26090 }
26091 _ => TeamFolderPermanentlyDeleteError::Other,
26092 };
26093 crate::eat_json_fields(&mut map)?;
26094 Ok(value)
26095 }
26096 }
26097 const VARIANTS: &[&str] = &["access_error",
26098 "status_error",
26099 "team_shared_dropbox_error",
26100 "other"];
26101 deserializer.deserialize_struct("TeamFolderPermanentlyDeleteError", VARIANTS, EnumVisitor)
26102 }
26103}
26104
26105impl ::serde::ser::Serialize for TeamFolderPermanentlyDeleteError {
26106 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26107 use serde::ser::SerializeStruct;
26109 match self {
26110 TeamFolderPermanentlyDeleteError::AccessError(x) => {
26111 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26113 s.serialize_field(".tag", "access_error")?;
26114 s.serialize_field("access_error", x)?;
26115 s.end()
26116 }
26117 TeamFolderPermanentlyDeleteError::StatusError(x) => {
26118 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26120 s.serialize_field(".tag", "status_error")?;
26121 s.serialize_field("status_error", x)?;
26122 s.end()
26123 }
26124 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x) => {
26125 let mut s = serializer.serialize_struct("TeamFolderPermanentlyDeleteError", 2)?;
26127 s.serialize_field(".tag", "team_shared_dropbox_error")?;
26128 s.serialize_field("team_shared_dropbox_error", x)?;
26129 s.end()
26130 }
26131 TeamFolderPermanentlyDeleteError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26132 }
26133 }
26134}
26135
26136impl ::std::error::Error for TeamFolderPermanentlyDeleteError {
26137 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26138 match self {
26139 TeamFolderPermanentlyDeleteError::AccessError(inner) => Some(inner),
26140 TeamFolderPermanentlyDeleteError::StatusError(inner) => Some(inner),
26141 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => Some(inner),
26142 _ => None,
26143 }
26144 }
26145}
26146
26147impl ::std::fmt::Display for TeamFolderPermanentlyDeleteError {
26148 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26149 match self {
26150 TeamFolderPermanentlyDeleteError::AccessError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26151 TeamFolderPermanentlyDeleteError::StatusError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26152 TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderPermanentlyDeleteError: {}", inner),
26153 _ => write!(f, "{:?}", *self),
26154 }
26155 }
26156}
26157
26158impl From<BaseTeamFolderError> for TeamFolderPermanentlyDeleteError {
26160 fn from(parent: BaseTeamFolderError) -> Self {
26161 match parent {
26162 BaseTeamFolderError::AccessError(x) => TeamFolderPermanentlyDeleteError::AccessError(x),
26163 BaseTeamFolderError::StatusError(x) => TeamFolderPermanentlyDeleteError::StatusError(x),
26164 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderPermanentlyDeleteError::TeamSharedDropboxError(x),
26165 BaseTeamFolderError::Other => TeamFolderPermanentlyDeleteError::Other,
26166 }
26167 }
26168}
26169#[derive(Debug, Clone, PartialEq, Eq)]
26170#[non_exhaustive] pub struct TeamFolderRenameArg {
26172 pub team_folder_id: crate::types::common::SharedFolderId,
26174 pub name: String,
26176}
26177
26178impl TeamFolderRenameArg {
26179 pub fn new(team_folder_id: crate::types::common::SharedFolderId, name: String) -> Self {
26180 TeamFolderRenameArg {
26181 team_folder_id,
26182 name,
26183 }
26184 }
26185}
26186
26187const TEAM_FOLDER_RENAME_ARG_FIELDS: &[&str] = &["team_folder_id",
26188 "name"];
26189impl TeamFolderRenameArg {
26190 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26191 map: V,
26192 ) -> Result<TeamFolderRenameArg, V::Error> {
26193 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26194 }
26195
26196 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26197 mut map: V,
26198 optional: bool,
26199 ) -> Result<Option<TeamFolderRenameArg>, V::Error> {
26200 let mut field_team_folder_id = None;
26201 let mut field_name = None;
26202 let mut nothing = true;
26203 while let Some(key) = map.next_key::<&str>()? {
26204 nothing = false;
26205 match key {
26206 "team_folder_id" => {
26207 if field_team_folder_id.is_some() {
26208 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26209 }
26210 field_team_folder_id = Some(map.next_value()?);
26211 }
26212 "name" => {
26213 if field_name.is_some() {
26214 return Err(::serde::de::Error::duplicate_field("name"));
26215 }
26216 field_name = Some(map.next_value()?);
26217 }
26218 _ => {
26219 map.next_value::<::serde_json::Value>()?;
26221 }
26222 }
26223 }
26224 if optional && nothing {
26225 return Ok(None);
26226 }
26227 let result = TeamFolderRenameArg {
26228 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26229 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26230 };
26231 Ok(Some(result))
26232 }
26233
26234 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26235 &self,
26236 s: &mut S::SerializeStruct,
26237 ) -> Result<(), S::Error> {
26238 use serde::ser::SerializeStruct;
26239 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26240 s.serialize_field("name", &self.name)?;
26241 Ok(())
26242 }
26243}
26244
26245impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameArg {
26246 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26247 use serde::de::{MapAccess, Visitor};
26249 struct StructVisitor;
26250 impl<'de> Visitor<'de> for StructVisitor {
26251 type Value = TeamFolderRenameArg;
26252 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26253 f.write_str("a TeamFolderRenameArg struct")
26254 }
26255 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26256 TeamFolderRenameArg::internal_deserialize(map)
26257 }
26258 }
26259 deserializer.deserialize_struct("TeamFolderRenameArg", TEAM_FOLDER_RENAME_ARG_FIELDS, StructVisitor)
26260 }
26261}
26262
26263impl ::serde::ser::Serialize for TeamFolderRenameArg {
26264 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26265 use serde::ser::SerializeStruct;
26267 let mut s = serializer.serialize_struct("TeamFolderRenameArg", 2)?;
26268 self.internal_serialize::<S>(&mut s)?;
26269 s.end()
26270 }
26271}
26272
26273impl From<TeamFolderRenameArg> for TeamFolderIdArg {
26275 fn from(subtype: TeamFolderRenameArg) -> Self {
26276 Self {
26277 team_folder_id: subtype.team_folder_id,
26278 }
26279 }
26280}
26281#[derive(Debug, Clone, PartialEq, Eq)]
26282#[non_exhaustive] pub enum TeamFolderRenameError {
26284 AccessError(TeamFolderAccessError),
26285 StatusError(TeamFolderInvalidStatusError),
26286 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26287 InvalidFolderName,
26289 FolderNameAlreadyUsed,
26291 FolderNameReserved,
26293 Other,
26296}
26297
26298impl<'de> ::serde::de::Deserialize<'de> for TeamFolderRenameError {
26299 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26300 use serde::de::{self, MapAccess, Visitor};
26302 struct EnumVisitor;
26303 impl<'de> Visitor<'de> for EnumVisitor {
26304 type Value = TeamFolderRenameError;
26305 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26306 f.write_str("a TeamFolderRenameError structure")
26307 }
26308 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26309 let tag: &str = match map.next_key()? {
26310 Some(".tag") => map.next_value()?,
26311 _ => return Err(de::Error::missing_field(".tag"))
26312 };
26313 let value = match tag {
26314 "access_error" => {
26315 match map.next_key()? {
26316 Some("access_error") => TeamFolderRenameError::AccessError(map.next_value()?),
26317 None => return Err(de::Error::missing_field("access_error")),
26318 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26319 }
26320 }
26321 "status_error" => {
26322 match map.next_key()? {
26323 Some("status_error") => TeamFolderRenameError::StatusError(map.next_value()?),
26324 None => return Err(de::Error::missing_field("status_error")),
26325 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26326 }
26327 }
26328 "team_shared_dropbox_error" => {
26329 match map.next_key()? {
26330 Some("team_shared_dropbox_error") => TeamFolderRenameError::TeamSharedDropboxError(map.next_value()?),
26331 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26332 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26333 }
26334 }
26335 "invalid_folder_name" => TeamFolderRenameError::InvalidFolderName,
26336 "folder_name_already_used" => TeamFolderRenameError::FolderNameAlreadyUsed,
26337 "folder_name_reserved" => TeamFolderRenameError::FolderNameReserved,
26338 _ => TeamFolderRenameError::Other,
26339 };
26340 crate::eat_json_fields(&mut map)?;
26341 Ok(value)
26342 }
26343 }
26344 const VARIANTS: &[&str] = &["access_error",
26345 "status_error",
26346 "team_shared_dropbox_error",
26347 "other",
26348 "invalid_folder_name",
26349 "folder_name_already_used",
26350 "folder_name_reserved"];
26351 deserializer.deserialize_struct("TeamFolderRenameError", VARIANTS, EnumVisitor)
26352 }
26353}
26354
26355impl ::serde::ser::Serialize for TeamFolderRenameError {
26356 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26357 use serde::ser::SerializeStruct;
26359 match self {
26360 TeamFolderRenameError::AccessError(x) => {
26361 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
26363 s.serialize_field(".tag", "access_error")?;
26364 s.serialize_field("access_error", x)?;
26365 s.end()
26366 }
26367 TeamFolderRenameError::StatusError(x) => {
26368 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
26370 s.serialize_field(".tag", "status_error")?;
26371 s.serialize_field("status_error", x)?;
26372 s.end()
26373 }
26374 TeamFolderRenameError::TeamSharedDropboxError(x) => {
26375 let mut s = serializer.serialize_struct("TeamFolderRenameError", 2)?;
26377 s.serialize_field(".tag", "team_shared_dropbox_error")?;
26378 s.serialize_field("team_shared_dropbox_error", x)?;
26379 s.end()
26380 }
26381 TeamFolderRenameError::InvalidFolderName => {
26382 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
26384 s.serialize_field(".tag", "invalid_folder_name")?;
26385 s.end()
26386 }
26387 TeamFolderRenameError::FolderNameAlreadyUsed => {
26388 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
26390 s.serialize_field(".tag", "folder_name_already_used")?;
26391 s.end()
26392 }
26393 TeamFolderRenameError::FolderNameReserved => {
26394 let mut s = serializer.serialize_struct("TeamFolderRenameError", 1)?;
26396 s.serialize_field(".tag", "folder_name_reserved")?;
26397 s.end()
26398 }
26399 TeamFolderRenameError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26400 }
26401 }
26402}
26403
26404impl ::std::error::Error for TeamFolderRenameError {
26405 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26406 match self {
26407 TeamFolderRenameError::AccessError(inner) => Some(inner),
26408 TeamFolderRenameError::StatusError(inner) => Some(inner),
26409 TeamFolderRenameError::TeamSharedDropboxError(inner) => Some(inner),
26410 _ => None,
26411 }
26412 }
26413}
26414
26415impl ::std::fmt::Display for TeamFolderRenameError {
26416 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26417 match self {
26418 TeamFolderRenameError::AccessError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
26419 TeamFolderRenameError::StatusError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
26420 TeamFolderRenameError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderRenameError: {}", inner),
26421 TeamFolderRenameError::InvalidFolderName => f.write_str("The provided folder name cannot be used."),
26422 TeamFolderRenameError::FolderNameAlreadyUsed => f.write_str("There is already a team folder with the same name."),
26423 TeamFolderRenameError::FolderNameReserved => f.write_str("The provided name cannot be used because it is reserved."),
26424 _ => write!(f, "{:?}", *self),
26425 }
26426 }
26427}
26428
26429impl From<BaseTeamFolderError> for TeamFolderRenameError {
26431 fn from(parent: BaseTeamFolderError) -> Self {
26432 match parent {
26433 BaseTeamFolderError::AccessError(x) => TeamFolderRenameError::AccessError(x),
26434 BaseTeamFolderError::StatusError(x) => TeamFolderRenameError::StatusError(x),
26435 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderRenameError::TeamSharedDropboxError(x),
26436 BaseTeamFolderError::Other => TeamFolderRenameError::Other,
26437 }
26438 }
26439}
26440#[derive(Debug, Clone, PartialEq, Eq)]
26441#[non_exhaustive] pub enum TeamFolderStatus {
26443 Active,
26445 Archived,
26447 ArchiveInProgress,
26449 Other,
26452}
26453
26454impl<'de> ::serde::de::Deserialize<'de> for TeamFolderStatus {
26455 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26456 use serde::de::{self, MapAccess, Visitor};
26458 struct EnumVisitor;
26459 impl<'de> Visitor<'de> for EnumVisitor {
26460 type Value = TeamFolderStatus;
26461 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26462 f.write_str("a TeamFolderStatus structure")
26463 }
26464 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26465 let tag: &str = match map.next_key()? {
26466 Some(".tag") => map.next_value()?,
26467 _ => return Err(de::Error::missing_field(".tag"))
26468 };
26469 let value = match tag {
26470 "active" => TeamFolderStatus::Active,
26471 "archived" => TeamFolderStatus::Archived,
26472 "archive_in_progress" => TeamFolderStatus::ArchiveInProgress,
26473 _ => TeamFolderStatus::Other,
26474 };
26475 crate::eat_json_fields(&mut map)?;
26476 Ok(value)
26477 }
26478 }
26479 const VARIANTS: &[&str] = &["active",
26480 "archived",
26481 "archive_in_progress",
26482 "other"];
26483 deserializer.deserialize_struct("TeamFolderStatus", VARIANTS, EnumVisitor)
26484 }
26485}
26486
26487impl ::serde::ser::Serialize for TeamFolderStatus {
26488 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26489 use serde::ser::SerializeStruct;
26491 match self {
26492 TeamFolderStatus::Active => {
26493 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
26495 s.serialize_field(".tag", "active")?;
26496 s.end()
26497 }
26498 TeamFolderStatus::Archived => {
26499 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
26501 s.serialize_field(".tag", "archived")?;
26502 s.end()
26503 }
26504 TeamFolderStatus::ArchiveInProgress => {
26505 let mut s = serializer.serialize_struct("TeamFolderStatus", 1)?;
26507 s.serialize_field(".tag", "archive_in_progress")?;
26508 s.end()
26509 }
26510 TeamFolderStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26511 }
26512 }
26513}
26514
26515#[derive(Debug, Clone, PartialEq, Eq)]
26516#[non_exhaustive] pub enum TeamFolderTeamSharedDropboxError {
26518 Disallowed,
26520 Other,
26523}
26524
26525impl<'de> ::serde::de::Deserialize<'de> for TeamFolderTeamSharedDropboxError {
26526 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26527 use serde::de::{self, MapAccess, Visitor};
26529 struct EnumVisitor;
26530 impl<'de> Visitor<'de> for EnumVisitor {
26531 type Value = TeamFolderTeamSharedDropboxError;
26532 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26533 f.write_str("a TeamFolderTeamSharedDropboxError structure")
26534 }
26535 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26536 let tag: &str = match map.next_key()? {
26537 Some(".tag") => map.next_value()?,
26538 _ => return Err(de::Error::missing_field(".tag"))
26539 };
26540 let value = match tag {
26541 "disallowed" => TeamFolderTeamSharedDropboxError::Disallowed,
26542 _ => TeamFolderTeamSharedDropboxError::Other,
26543 };
26544 crate::eat_json_fields(&mut map)?;
26545 Ok(value)
26546 }
26547 }
26548 const VARIANTS: &[&str] = &["disallowed",
26549 "other"];
26550 deserializer.deserialize_struct("TeamFolderTeamSharedDropboxError", VARIANTS, EnumVisitor)
26551 }
26552}
26553
26554impl ::serde::ser::Serialize for TeamFolderTeamSharedDropboxError {
26555 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26556 use serde::ser::SerializeStruct;
26558 match self {
26559 TeamFolderTeamSharedDropboxError::Disallowed => {
26560 let mut s = serializer.serialize_struct("TeamFolderTeamSharedDropboxError", 1)?;
26562 s.serialize_field(".tag", "disallowed")?;
26563 s.end()
26564 }
26565 TeamFolderTeamSharedDropboxError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26566 }
26567 }
26568}
26569
26570impl ::std::error::Error for TeamFolderTeamSharedDropboxError {
26571}
26572
26573impl ::std::fmt::Display for TeamFolderTeamSharedDropboxError {
26574 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26575 match self {
26576 TeamFolderTeamSharedDropboxError::Disallowed => f.write_str("This action is not allowed for a shared team root."),
26577 _ => write!(f, "{:?}", *self),
26578 }
26579 }
26580}
26581
26582#[derive(Debug, Clone, PartialEq, Eq)]
26583#[non_exhaustive] pub struct TeamFolderUpdateSyncSettingsArg {
26585 pub team_folder_id: crate::types::common::SharedFolderId,
26587 pub sync_setting: Option<crate::types::files::SyncSettingArg>,
26590 pub content_sync_settings: Option<Vec<crate::types::files::ContentSyncSettingArg>>,
26592}
26593
26594impl TeamFolderUpdateSyncSettingsArg {
26595 pub fn new(team_folder_id: crate::types::common::SharedFolderId) -> Self {
26596 TeamFolderUpdateSyncSettingsArg {
26597 team_folder_id,
26598 sync_setting: None,
26599 content_sync_settings: None,
26600 }
26601 }
26602
26603 pub fn with_sync_setting(mut self, value: crate::types::files::SyncSettingArg) -> Self {
26604 self.sync_setting = Some(value);
26605 self
26606 }
26607
26608 pub fn with_content_sync_settings(
26609 mut self,
26610 value: Vec<crate::types::files::ContentSyncSettingArg>,
26611 ) -> Self {
26612 self.content_sync_settings = Some(value);
26613 self
26614 }
26615}
26616
26617const TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS: &[&str] = &["team_folder_id",
26618 "sync_setting",
26619 "content_sync_settings"];
26620impl TeamFolderUpdateSyncSettingsArg {
26621 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26622 map: V,
26623 ) -> Result<TeamFolderUpdateSyncSettingsArg, V::Error> {
26624 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26625 }
26626
26627 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26628 mut map: V,
26629 optional: bool,
26630 ) -> Result<Option<TeamFolderUpdateSyncSettingsArg>, V::Error> {
26631 let mut field_team_folder_id = None;
26632 let mut field_sync_setting = None;
26633 let mut field_content_sync_settings = None;
26634 let mut nothing = true;
26635 while let Some(key) = map.next_key::<&str>()? {
26636 nothing = false;
26637 match key {
26638 "team_folder_id" => {
26639 if field_team_folder_id.is_some() {
26640 return Err(::serde::de::Error::duplicate_field("team_folder_id"));
26641 }
26642 field_team_folder_id = Some(map.next_value()?);
26643 }
26644 "sync_setting" => {
26645 if field_sync_setting.is_some() {
26646 return Err(::serde::de::Error::duplicate_field("sync_setting"));
26647 }
26648 field_sync_setting = Some(map.next_value()?);
26649 }
26650 "content_sync_settings" => {
26651 if field_content_sync_settings.is_some() {
26652 return Err(::serde::de::Error::duplicate_field("content_sync_settings"));
26653 }
26654 field_content_sync_settings = Some(map.next_value()?);
26655 }
26656 _ => {
26657 map.next_value::<::serde_json::Value>()?;
26659 }
26660 }
26661 }
26662 if optional && nothing {
26663 return Ok(None);
26664 }
26665 let result = TeamFolderUpdateSyncSettingsArg {
26666 team_folder_id: field_team_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("team_folder_id"))?,
26667 sync_setting: field_sync_setting.and_then(Option::flatten),
26668 content_sync_settings: field_content_sync_settings.and_then(Option::flatten),
26669 };
26670 Ok(Some(result))
26671 }
26672
26673 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26674 &self,
26675 s: &mut S::SerializeStruct,
26676 ) -> Result<(), S::Error> {
26677 use serde::ser::SerializeStruct;
26678 s.serialize_field("team_folder_id", &self.team_folder_id)?;
26679 if let Some(val) = &self.sync_setting {
26680 s.serialize_field("sync_setting", val)?;
26681 }
26682 if let Some(val) = &self.content_sync_settings {
26683 s.serialize_field("content_sync_settings", val)?;
26684 }
26685 Ok(())
26686 }
26687}
26688
26689impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsArg {
26690 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26691 use serde::de::{MapAccess, Visitor};
26693 struct StructVisitor;
26694 impl<'de> Visitor<'de> for StructVisitor {
26695 type Value = TeamFolderUpdateSyncSettingsArg;
26696 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26697 f.write_str("a TeamFolderUpdateSyncSettingsArg struct")
26698 }
26699 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
26700 TeamFolderUpdateSyncSettingsArg::internal_deserialize(map)
26701 }
26702 }
26703 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsArg", TEAM_FOLDER_UPDATE_SYNC_SETTINGS_ARG_FIELDS, StructVisitor)
26704 }
26705}
26706
26707impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsArg {
26708 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26709 use serde::ser::SerializeStruct;
26711 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsArg", 3)?;
26712 self.internal_serialize::<S>(&mut s)?;
26713 s.end()
26714 }
26715}
26716
26717impl From<TeamFolderUpdateSyncSettingsArg> for TeamFolderIdArg {
26719 fn from(subtype: TeamFolderUpdateSyncSettingsArg) -> Self {
26720 Self {
26721 team_folder_id: subtype.team_folder_id,
26722 }
26723 }
26724}
26725#[derive(Debug, Clone, PartialEq, Eq)]
26726#[non_exhaustive] pub enum TeamFolderUpdateSyncSettingsError {
26728 AccessError(TeamFolderAccessError),
26729 StatusError(TeamFolderInvalidStatusError),
26730 TeamSharedDropboxError(TeamFolderTeamSharedDropboxError),
26731 SyncSettingsError(crate::types::files::SyncSettingsError),
26733 Other,
26736}
26737
26738impl<'de> ::serde::de::Deserialize<'de> for TeamFolderUpdateSyncSettingsError {
26739 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
26740 use serde::de::{self, MapAccess, Visitor};
26742 struct EnumVisitor;
26743 impl<'de> Visitor<'de> for EnumVisitor {
26744 type Value = TeamFolderUpdateSyncSettingsError;
26745 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26746 f.write_str("a TeamFolderUpdateSyncSettingsError structure")
26747 }
26748 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
26749 let tag: &str = match map.next_key()? {
26750 Some(".tag") => map.next_value()?,
26751 _ => return Err(de::Error::missing_field(".tag"))
26752 };
26753 let value = match tag {
26754 "access_error" => {
26755 match map.next_key()? {
26756 Some("access_error") => TeamFolderUpdateSyncSettingsError::AccessError(map.next_value()?),
26757 None => return Err(de::Error::missing_field("access_error")),
26758 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26759 }
26760 }
26761 "status_error" => {
26762 match map.next_key()? {
26763 Some("status_error") => TeamFolderUpdateSyncSettingsError::StatusError(map.next_value()?),
26764 None => return Err(de::Error::missing_field("status_error")),
26765 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26766 }
26767 }
26768 "team_shared_dropbox_error" => {
26769 match map.next_key()? {
26770 Some("team_shared_dropbox_error") => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(map.next_value()?),
26771 None => return Err(de::Error::missing_field("team_shared_dropbox_error")),
26772 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26773 }
26774 }
26775 "sync_settings_error" => {
26776 match map.next_key()? {
26777 Some("sync_settings_error") => TeamFolderUpdateSyncSettingsError::SyncSettingsError(map.next_value()?),
26778 None => return Err(de::Error::missing_field("sync_settings_error")),
26779 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
26780 }
26781 }
26782 _ => TeamFolderUpdateSyncSettingsError::Other,
26783 };
26784 crate::eat_json_fields(&mut map)?;
26785 Ok(value)
26786 }
26787 }
26788 const VARIANTS: &[&str] = &["access_error",
26789 "status_error",
26790 "team_shared_dropbox_error",
26791 "other",
26792 "sync_settings_error"];
26793 deserializer.deserialize_struct("TeamFolderUpdateSyncSettingsError", VARIANTS, EnumVisitor)
26794 }
26795}
26796
26797impl ::serde::ser::Serialize for TeamFolderUpdateSyncSettingsError {
26798 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
26799 use serde::ser::SerializeStruct;
26801 match self {
26802 TeamFolderUpdateSyncSettingsError::AccessError(x) => {
26803 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
26805 s.serialize_field(".tag", "access_error")?;
26806 s.serialize_field("access_error", x)?;
26807 s.end()
26808 }
26809 TeamFolderUpdateSyncSettingsError::StatusError(x) => {
26810 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
26812 s.serialize_field(".tag", "status_error")?;
26813 s.serialize_field("status_error", x)?;
26814 s.end()
26815 }
26816 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x) => {
26817 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
26819 s.serialize_field(".tag", "team_shared_dropbox_error")?;
26820 s.serialize_field("team_shared_dropbox_error", x)?;
26821 s.end()
26822 }
26823 TeamFolderUpdateSyncSettingsError::SyncSettingsError(x) => {
26824 let mut s = serializer.serialize_struct("TeamFolderUpdateSyncSettingsError", 2)?;
26826 s.serialize_field(".tag", "sync_settings_error")?;
26827 s.serialize_field("sync_settings_error", x)?;
26828 s.end()
26829 }
26830 TeamFolderUpdateSyncSettingsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
26831 }
26832 }
26833}
26834
26835impl ::std::error::Error for TeamFolderUpdateSyncSettingsError {
26836 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
26837 match self {
26838 TeamFolderUpdateSyncSettingsError::AccessError(inner) => Some(inner),
26839 TeamFolderUpdateSyncSettingsError::StatusError(inner) => Some(inner),
26840 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => Some(inner),
26841 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => Some(inner),
26842 _ => None,
26843 }
26844 }
26845}
26846
26847impl ::std::fmt::Display for TeamFolderUpdateSyncSettingsError {
26848 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
26849 match self {
26850 TeamFolderUpdateSyncSettingsError::AccessError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
26851 TeamFolderUpdateSyncSettingsError::StatusError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
26852 TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(inner) => write!(f, "TeamFolderUpdateSyncSettingsError: {}", inner),
26853 TeamFolderUpdateSyncSettingsError::SyncSettingsError(inner) => write!(f, "An error occurred setting the sync settings: {}", inner),
26854 _ => write!(f, "{:?}", *self),
26855 }
26856 }
26857}
26858
26859impl From<BaseTeamFolderError> for TeamFolderUpdateSyncSettingsError {
26861 fn from(parent: BaseTeamFolderError) -> Self {
26862 match parent {
26863 BaseTeamFolderError::AccessError(x) => TeamFolderUpdateSyncSettingsError::AccessError(x),
26864 BaseTeamFolderError::StatusError(x) => TeamFolderUpdateSyncSettingsError::StatusError(x),
26865 BaseTeamFolderError::TeamSharedDropboxError(x) => TeamFolderUpdateSyncSettingsError::TeamSharedDropboxError(x),
26866 BaseTeamFolderError::Other => TeamFolderUpdateSyncSettingsError::Other,
26867 }
26868 }
26869}
26870#[derive(Debug, Clone, PartialEq, Eq)]
26871#[non_exhaustive] pub struct TeamGetInfoResult {
26873 pub name: String,
26875 pub team_id: String,
26877 pub num_licensed_users: u32,
26879 pub num_provisioned_users: u32,
26881 pub policies: crate::types::team_policies::TeamMemberPolicies,
26882 pub num_used_licenses: u32,
26884}
26885
26886impl TeamGetInfoResult {
26887 pub fn new(
26888 name: String,
26889 team_id: String,
26890 num_licensed_users: u32,
26891 num_provisioned_users: u32,
26892 policies: crate::types::team_policies::TeamMemberPolicies,
26893 ) -> Self {
26894 TeamGetInfoResult {
26895 name,
26896 team_id,
26897 num_licensed_users,
26898 num_provisioned_users,
26899 policies,
26900 num_used_licenses: 0,
26901 }
26902 }
26903
26904 pub fn with_num_used_licenses(mut self, value: u32) -> Self {
26905 self.num_used_licenses = value;
26906 self
26907 }
26908}
26909
26910const TEAM_GET_INFO_RESULT_FIELDS: &[&str] = &["name",
26911 "team_id",
26912 "num_licensed_users",
26913 "num_provisioned_users",
26914 "policies",
26915 "num_used_licenses"];
26916impl TeamGetInfoResult {
26917 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
26918 map: V,
26919 ) -> Result<TeamGetInfoResult, V::Error> {
26920 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
26921 }
26922
26923 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
26924 mut map: V,
26925 optional: bool,
26926 ) -> Result<Option<TeamGetInfoResult>, V::Error> {
26927 let mut field_name = None;
26928 let mut field_team_id = None;
26929 let mut field_num_licensed_users = None;
26930 let mut field_num_provisioned_users = None;
26931 let mut field_policies = None;
26932 let mut field_num_used_licenses = None;
26933 let mut nothing = true;
26934 while let Some(key) = map.next_key::<&str>()? {
26935 nothing = false;
26936 match key {
26937 "name" => {
26938 if field_name.is_some() {
26939 return Err(::serde::de::Error::duplicate_field("name"));
26940 }
26941 field_name = Some(map.next_value()?);
26942 }
26943 "team_id" => {
26944 if field_team_id.is_some() {
26945 return Err(::serde::de::Error::duplicate_field("team_id"));
26946 }
26947 field_team_id = Some(map.next_value()?);
26948 }
26949 "num_licensed_users" => {
26950 if field_num_licensed_users.is_some() {
26951 return Err(::serde::de::Error::duplicate_field("num_licensed_users"));
26952 }
26953 field_num_licensed_users = Some(map.next_value()?);
26954 }
26955 "num_provisioned_users" => {
26956 if field_num_provisioned_users.is_some() {
26957 return Err(::serde::de::Error::duplicate_field("num_provisioned_users"));
26958 }
26959 field_num_provisioned_users = Some(map.next_value()?);
26960 }
26961 "policies" => {
26962 if field_policies.is_some() {
26963 return Err(::serde::de::Error::duplicate_field("policies"));
26964 }
26965 field_policies = Some(map.next_value()?);
26966 }
26967 "num_used_licenses" => {
26968 if field_num_used_licenses.is_some() {
26969 return Err(::serde::de::Error::duplicate_field("num_used_licenses"));
26970 }
26971 field_num_used_licenses = Some(map.next_value()?);
26972 }
26973 _ => {
26974 map.next_value::<::serde_json::Value>()?;
26976 }
26977 }
26978 }
26979 if optional && nothing {
26980 return Ok(None);
26981 }
26982 let result = TeamGetInfoResult {
26983 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
26984 team_id: field_team_id.ok_or_else(|| ::serde::de::Error::missing_field("team_id"))?,
26985 num_licensed_users: field_num_licensed_users.ok_or_else(|| ::serde::de::Error::missing_field("num_licensed_users"))?,
26986 num_provisioned_users: field_num_provisioned_users.ok_or_else(|| ::serde::de::Error::missing_field("num_provisioned_users"))?,
26987 policies: field_policies.ok_or_else(|| ::serde::de::Error::missing_field("policies"))?,
26988 num_used_licenses: field_num_used_licenses.unwrap_or(0),
26989 };
26990 Ok(Some(result))
26991 }
26992
26993 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
26994 &self,
26995 s: &mut S::SerializeStruct,
26996 ) -> Result<(), S::Error> {
26997 use serde::ser::SerializeStruct;
26998 s.serialize_field("name", &self.name)?;
26999 s.serialize_field("team_id", &self.team_id)?;
27000 s.serialize_field("num_licensed_users", &self.num_licensed_users)?;
27001 s.serialize_field("num_provisioned_users", &self.num_provisioned_users)?;
27002 s.serialize_field("policies", &self.policies)?;
27003 if self.num_used_licenses != 0 {
27004 s.serialize_field("num_used_licenses", &self.num_used_licenses)?;
27005 }
27006 Ok(())
27007 }
27008}
27009
27010impl<'de> ::serde::de::Deserialize<'de> for TeamGetInfoResult {
27011 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27012 use serde::de::{MapAccess, Visitor};
27014 struct StructVisitor;
27015 impl<'de> Visitor<'de> for StructVisitor {
27016 type Value = TeamGetInfoResult;
27017 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27018 f.write_str("a TeamGetInfoResult struct")
27019 }
27020 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27021 TeamGetInfoResult::internal_deserialize(map)
27022 }
27023 }
27024 deserializer.deserialize_struct("TeamGetInfoResult", TEAM_GET_INFO_RESULT_FIELDS, StructVisitor)
27025 }
27026}
27027
27028impl ::serde::ser::Serialize for TeamGetInfoResult {
27029 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27030 use serde::ser::SerializeStruct;
27032 let mut s = serializer.serialize_struct("TeamGetInfoResult", 6)?;
27033 self.internal_serialize::<S>(&mut s)?;
27034 s.end()
27035 }
27036}
27037
27038#[derive(Debug, Clone, PartialEq, Eq)]
27040#[non_exhaustive] pub struct TeamMemberInfo {
27042 pub profile: TeamMemberProfile,
27044 pub role: AdminTier,
27046}
27047
27048impl TeamMemberInfo {
27049 pub fn new(profile: TeamMemberProfile, role: AdminTier) -> Self {
27050 TeamMemberInfo {
27051 profile,
27052 role,
27053 }
27054 }
27055}
27056
27057const TEAM_MEMBER_INFO_FIELDS: &[&str] = &["profile",
27058 "role"];
27059impl TeamMemberInfo {
27060 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27061 map: V,
27062 ) -> Result<TeamMemberInfo, V::Error> {
27063 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27064 }
27065
27066 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27067 mut map: V,
27068 optional: bool,
27069 ) -> Result<Option<TeamMemberInfo>, V::Error> {
27070 let mut field_profile = None;
27071 let mut field_role = None;
27072 let mut nothing = true;
27073 while let Some(key) = map.next_key::<&str>()? {
27074 nothing = false;
27075 match key {
27076 "profile" => {
27077 if field_profile.is_some() {
27078 return Err(::serde::de::Error::duplicate_field("profile"));
27079 }
27080 field_profile = Some(map.next_value()?);
27081 }
27082 "role" => {
27083 if field_role.is_some() {
27084 return Err(::serde::de::Error::duplicate_field("role"));
27085 }
27086 field_role = Some(map.next_value()?);
27087 }
27088 _ => {
27089 map.next_value::<::serde_json::Value>()?;
27091 }
27092 }
27093 }
27094 if optional && nothing {
27095 return Ok(None);
27096 }
27097 let result = TeamMemberInfo {
27098 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
27099 role: field_role.ok_or_else(|| ::serde::de::Error::missing_field("role"))?,
27100 };
27101 Ok(Some(result))
27102 }
27103
27104 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27105 &self,
27106 s: &mut S::SerializeStruct,
27107 ) -> Result<(), S::Error> {
27108 use serde::ser::SerializeStruct;
27109 s.serialize_field("profile", &self.profile)?;
27110 s.serialize_field("role", &self.role)?;
27111 Ok(())
27112 }
27113}
27114
27115impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfo {
27116 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27117 use serde::de::{MapAccess, Visitor};
27119 struct StructVisitor;
27120 impl<'de> Visitor<'de> for StructVisitor {
27121 type Value = TeamMemberInfo;
27122 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27123 f.write_str("a TeamMemberInfo struct")
27124 }
27125 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27126 TeamMemberInfo::internal_deserialize(map)
27127 }
27128 }
27129 deserializer.deserialize_struct("TeamMemberInfo", TEAM_MEMBER_INFO_FIELDS, StructVisitor)
27130 }
27131}
27132
27133impl ::serde::ser::Serialize for TeamMemberInfo {
27134 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27135 use serde::ser::SerializeStruct;
27137 let mut s = serializer.serialize_struct("TeamMemberInfo", 2)?;
27138 self.internal_serialize::<S>(&mut s)?;
27139 s.end()
27140 }
27141}
27142
27143#[derive(Debug, Clone, PartialEq, Eq)]
27145#[non_exhaustive] pub struct TeamMemberInfoV2 {
27147 pub profile: TeamMemberProfile,
27149 pub roles: Option<Vec<TeamMemberRole>>,
27151}
27152
27153impl TeamMemberInfoV2 {
27154 pub fn new(profile: TeamMemberProfile) -> Self {
27155 TeamMemberInfoV2 {
27156 profile,
27157 roles: None,
27158 }
27159 }
27160
27161 pub fn with_roles(mut self, value: Vec<TeamMemberRole>) -> Self {
27162 self.roles = Some(value);
27163 self
27164 }
27165}
27166
27167const TEAM_MEMBER_INFO_V2_FIELDS: &[&str] = &["profile",
27168 "roles"];
27169impl TeamMemberInfoV2 {
27170 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27171 map: V,
27172 ) -> Result<TeamMemberInfoV2, V::Error> {
27173 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27174 }
27175
27176 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27177 mut map: V,
27178 optional: bool,
27179 ) -> Result<Option<TeamMemberInfoV2>, V::Error> {
27180 let mut field_profile = None;
27181 let mut field_roles = None;
27182 let mut nothing = true;
27183 while let Some(key) = map.next_key::<&str>()? {
27184 nothing = false;
27185 match key {
27186 "profile" => {
27187 if field_profile.is_some() {
27188 return Err(::serde::de::Error::duplicate_field("profile"));
27189 }
27190 field_profile = Some(map.next_value()?);
27191 }
27192 "roles" => {
27193 if field_roles.is_some() {
27194 return Err(::serde::de::Error::duplicate_field("roles"));
27195 }
27196 field_roles = Some(map.next_value()?);
27197 }
27198 _ => {
27199 map.next_value::<::serde_json::Value>()?;
27201 }
27202 }
27203 }
27204 if optional && nothing {
27205 return Ok(None);
27206 }
27207 let result = TeamMemberInfoV2 {
27208 profile: field_profile.ok_or_else(|| ::serde::de::Error::missing_field("profile"))?,
27209 roles: field_roles.and_then(Option::flatten),
27210 };
27211 Ok(Some(result))
27212 }
27213
27214 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27215 &self,
27216 s: &mut S::SerializeStruct,
27217 ) -> Result<(), S::Error> {
27218 use serde::ser::SerializeStruct;
27219 s.serialize_field("profile", &self.profile)?;
27220 if let Some(val) = &self.roles {
27221 s.serialize_field("roles", val)?;
27222 }
27223 Ok(())
27224 }
27225}
27226
27227impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2 {
27228 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27229 use serde::de::{MapAccess, Visitor};
27231 struct StructVisitor;
27232 impl<'de> Visitor<'de> for StructVisitor {
27233 type Value = TeamMemberInfoV2;
27234 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27235 f.write_str("a TeamMemberInfoV2 struct")
27236 }
27237 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27238 TeamMemberInfoV2::internal_deserialize(map)
27239 }
27240 }
27241 deserializer.deserialize_struct("TeamMemberInfoV2", TEAM_MEMBER_INFO_V2_FIELDS, StructVisitor)
27242 }
27243}
27244
27245impl ::serde::ser::Serialize for TeamMemberInfoV2 {
27246 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27247 use serde::ser::SerializeStruct;
27249 let mut s = serializer.serialize_struct("TeamMemberInfoV2", 2)?;
27250 self.internal_serialize::<S>(&mut s)?;
27251 s.end()
27252 }
27253}
27254
27255#[derive(Debug, Clone, PartialEq, Eq)]
27258#[non_exhaustive] pub struct TeamMemberInfoV2Result {
27260 pub member_info: TeamMemberInfoV2,
27262}
27263
27264impl TeamMemberInfoV2Result {
27265 pub fn new(member_info: TeamMemberInfoV2) -> Self {
27266 TeamMemberInfoV2Result {
27267 member_info,
27268 }
27269 }
27270}
27271
27272const TEAM_MEMBER_INFO_V2_RESULT_FIELDS: &[&str] = &["member_info"];
27273impl TeamMemberInfoV2Result {
27274 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27275 map: V,
27276 ) -> Result<TeamMemberInfoV2Result, V::Error> {
27277 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27278 }
27279
27280 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27281 mut map: V,
27282 optional: bool,
27283 ) -> Result<Option<TeamMemberInfoV2Result>, V::Error> {
27284 let mut field_member_info = None;
27285 let mut nothing = true;
27286 while let Some(key) = map.next_key::<&str>()? {
27287 nothing = false;
27288 match key {
27289 "member_info" => {
27290 if field_member_info.is_some() {
27291 return Err(::serde::de::Error::duplicate_field("member_info"));
27292 }
27293 field_member_info = Some(map.next_value()?);
27294 }
27295 _ => {
27296 map.next_value::<::serde_json::Value>()?;
27298 }
27299 }
27300 }
27301 if optional && nothing {
27302 return Ok(None);
27303 }
27304 let result = TeamMemberInfoV2Result {
27305 member_info: field_member_info.ok_or_else(|| ::serde::de::Error::missing_field("member_info"))?,
27306 };
27307 Ok(Some(result))
27308 }
27309
27310 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27311 &self,
27312 s: &mut S::SerializeStruct,
27313 ) -> Result<(), S::Error> {
27314 use serde::ser::SerializeStruct;
27315 s.serialize_field("member_info", &self.member_info)?;
27316 Ok(())
27317 }
27318}
27319
27320impl<'de> ::serde::de::Deserialize<'de> for TeamMemberInfoV2Result {
27321 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27322 use serde::de::{MapAccess, Visitor};
27324 struct StructVisitor;
27325 impl<'de> Visitor<'de> for StructVisitor {
27326 type Value = TeamMemberInfoV2Result;
27327 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27328 f.write_str("a TeamMemberInfoV2Result struct")
27329 }
27330 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27331 TeamMemberInfoV2Result::internal_deserialize(map)
27332 }
27333 }
27334 deserializer.deserialize_struct("TeamMemberInfoV2Result", TEAM_MEMBER_INFO_V2_RESULT_FIELDS, StructVisitor)
27335 }
27336}
27337
27338impl ::serde::ser::Serialize for TeamMemberInfoV2Result {
27339 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27340 use serde::ser::SerializeStruct;
27342 let mut s = serializer.serialize_struct("TeamMemberInfoV2Result", 1)?;
27343 self.internal_serialize::<S>(&mut s)?;
27344 s.end()
27345 }
27346}
27347
27348#[derive(Debug, Clone, PartialEq, Eq)]
27350#[non_exhaustive] pub struct TeamMemberProfile {
27352 pub team_member_id: crate::types::team_common::TeamMemberId,
27354 pub email: String,
27356 pub email_verified: bool,
27358 pub status: TeamMemberStatus,
27360 pub name: crate::types::users::Name,
27362 pub membership_type: TeamMembershipType,
27365 pub groups: Vec<crate::types::team_common::GroupId>,
27367 pub member_folder_id: crate::types::common::NamespaceId,
27369 pub external_id: Option<String>,
27372 pub account_id: Option<crate::types::users_common::AccountId>,
27374 pub secondary_emails: Option<Vec<crate::types::secondary_emails::SecondaryEmail>>,
27376 pub invited_on: Option<crate::types::common::DropboxTimestamp>,
27379 pub joined_on: Option<crate::types::common::DropboxTimestamp>,
27381 pub suspended_on: Option<crate::types::common::DropboxTimestamp>,
27384 pub persistent_id: Option<String>,
27387 pub is_directory_restricted: Option<bool>,
27389 pub profile_photo_url: Option<String>,
27391}
27392
27393impl TeamMemberProfile {
27394 pub fn new(
27395 team_member_id: crate::types::team_common::TeamMemberId,
27396 email: String,
27397 email_verified: bool,
27398 status: TeamMemberStatus,
27399 name: crate::types::users::Name,
27400 membership_type: TeamMembershipType,
27401 groups: Vec<crate::types::team_common::GroupId>,
27402 member_folder_id: crate::types::common::NamespaceId,
27403 ) -> Self {
27404 TeamMemberProfile {
27405 team_member_id,
27406 email,
27407 email_verified,
27408 status,
27409 name,
27410 membership_type,
27411 groups,
27412 member_folder_id,
27413 external_id: None,
27414 account_id: None,
27415 secondary_emails: None,
27416 invited_on: None,
27417 joined_on: None,
27418 suspended_on: None,
27419 persistent_id: None,
27420 is_directory_restricted: None,
27421 profile_photo_url: None,
27422 }
27423 }
27424
27425 pub fn with_external_id(mut self, value: String) -> Self {
27426 self.external_id = Some(value);
27427 self
27428 }
27429
27430 pub fn with_account_id(mut self, value: crate::types::users_common::AccountId) -> Self {
27431 self.account_id = Some(value);
27432 self
27433 }
27434
27435 pub fn with_secondary_emails(
27436 mut self,
27437 value: Vec<crate::types::secondary_emails::SecondaryEmail>,
27438 ) -> Self {
27439 self.secondary_emails = Some(value);
27440 self
27441 }
27442
27443 pub fn with_invited_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
27444 self.invited_on = Some(value);
27445 self
27446 }
27447
27448 pub fn with_joined_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
27449 self.joined_on = Some(value);
27450 self
27451 }
27452
27453 pub fn with_suspended_on(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
27454 self.suspended_on = Some(value);
27455 self
27456 }
27457
27458 pub fn with_persistent_id(mut self, value: String) -> Self {
27459 self.persistent_id = Some(value);
27460 self
27461 }
27462
27463 pub fn with_is_directory_restricted(mut self, value: bool) -> Self {
27464 self.is_directory_restricted = Some(value);
27465 self
27466 }
27467
27468 pub fn with_profile_photo_url(mut self, value: String) -> Self {
27469 self.profile_photo_url = Some(value);
27470 self
27471 }
27472}
27473
27474const TEAM_MEMBER_PROFILE_FIELDS: &[&str] = &["team_member_id",
27475 "email",
27476 "email_verified",
27477 "status",
27478 "name",
27479 "membership_type",
27480 "groups",
27481 "member_folder_id",
27482 "external_id",
27483 "account_id",
27484 "secondary_emails",
27485 "invited_on",
27486 "joined_on",
27487 "suspended_on",
27488 "persistent_id",
27489 "is_directory_restricted",
27490 "profile_photo_url"];
27491impl TeamMemberProfile {
27492 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27493 map: V,
27494 ) -> Result<TeamMemberProfile, V::Error> {
27495 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27496 }
27497
27498 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27499 mut map: V,
27500 optional: bool,
27501 ) -> Result<Option<TeamMemberProfile>, V::Error> {
27502 let mut field_team_member_id = None;
27503 let mut field_email = None;
27504 let mut field_email_verified = None;
27505 let mut field_status = None;
27506 let mut field_name = None;
27507 let mut field_membership_type = None;
27508 let mut field_groups = None;
27509 let mut field_member_folder_id = None;
27510 let mut field_external_id = None;
27511 let mut field_account_id = None;
27512 let mut field_secondary_emails = None;
27513 let mut field_invited_on = None;
27514 let mut field_joined_on = None;
27515 let mut field_suspended_on = None;
27516 let mut field_persistent_id = None;
27517 let mut field_is_directory_restricted = None;
27518 let mut field_profile_photo_url = None;
27519 let mut nothing = true;
27520 while let Some(key) = map.next_key::<&str>()? {
27521 nothing = false;
27522 match key {
27523 "team_member_id" => {
27524 if field_team_member_id.is_some() {
27525 return Err(::serde::de::Error::duplicate_field("team_member_id"));
27526 }
27527 field_team_member_id = Some(map.next_value()?);
27528 }
27529 "email" => {
27530 if field_email.is_some() {
27531 return Err(::serde::de::Error::duplicate_field("email"));
27532 }
27533 field_email = Some(map.next_value()?);
27534 }
27535 "email_verified" => {
27536 if field_email_verified.is_some() {
27537 return Err(::serde::de::Error::duplicate_field("email_verified"));
27538 }
27539 field_email_verified = Some(map.next_value()?);
27540 }
27541 "status" => {
27542 if field_status.is_some() {
27543 return Err(::serde::de::Error::duplicate_field("status"));
27544 }
27545 field_status = Some(map.next_value()?);
27546 }
27547 "name" => {
27548 if field_name.is_some() {
27549 return Err(::serde::de::Error::duplicate_field("name"));
27550 }
27551 field_name = Some(map.next_value()?);
27552 }
27553 "membership_type" => {
27554 if field_membership_type.is_some() {
27555 return Err(::serde::de::Error::duplicate_field("membership_type"));
27556 }
27557 field_membership_type = Some(map.next_value()?);
27558 }
27559 "groups" => {
27560 if field_groups.is_some() {
27561 return Err(::serde::de::Error::duplicate_field("groups"));
27562 }
27563 field_groups = Some(map.next_value()?);
27564 }
27565 "member_folder_id" => {
27566 if field_member_folder_id.is_some() {
27567 return Err(::serde::de::Error::duplicate_field("member_folder_id"));
27568 }
27569 field_member_folder_id = Some(map.next_value()?);
27570 }
27571 "external_id" => {
27572 if field_external_id.is_some() {
27573 return Err(::serde::de::Error::duplicate_field("external_id"));
27574 }
27575 field_external_id = Some(map.next_value()?);
27576 }
27577 "account_id" => {
27578 if field_account_id.is_some() {
27579 return Err(::serde::de::Error::duplicate_field("account_id"));
27580 }
27581 field_account_id = Some(map.next_value()?);
27582 }
27583 "secondary_emails" => {
27584 if field_secondary_emails.is_some() {
27585 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
27586 }
27587 field_secondary_emails = Some(map.next_value()?);
27588 }
27589 "invited_on" => {
27590 if field_invited_on.is_some() {
27591 return Err(::serde::de::Error::duplicate_field("invited_on"));
27592 }
27593 field_invited_on = Some(map.next_value()?);
27594 }
27595 "joined_on" => {
27596 if field_joined_on.is_some() {
27597 return Err(::serde::de::Error::duplicate_field("joined_on"));
27598 }
27599 field_joined_on = Some(map.next_value()?);
27600 }
27601 "suspended_on" => {
27602 if field_suspended_on.is_some() {
27603 return Err(::serde::de::Error::duplicate_field("suspended_on"));
27604 }
27605 field_suspended_on = Some(map.next_value()?);
27606 }
27607 "persistent_id" => {
27608 if field_persistent_id.is_some() {
27609 return Err(::serde::de::Error::duplicate_field("persistent_id"));
27610 }
27611 field_persistent_id = Some(map.next_value()?);
27612 }
27613 "is_directory_restricted" => {
27614 if field_is_directory_restricted.is_some() {
27615 return Err(::serde::de::Error::duplicate_field("is_directory_restricted"));
27616 }
27617 field_is_directory_restricted = Some(map.next_value()?);
27618 }
27619 "profile_photo_url" => {
27620 if field_profile_photo_url.is_some() {
27621 return Err(::serde::de::Error::duplicate_field("profile_photo_url"));
27622 }
27623 field_profile_photo_url = Some(map.next_value()?);
27624 }
27625 _ => {
27626 map.next_value::<::serde_json::Value>()?;
27628 }
27629 }
27630 }
27631 if optional && nothing {
27632 return Ok(None);
27633 }
27634 let result = TeamMemberProfile {
27635 team_member_id: field_team_member_id.ok_or_else(|| ::serde::de::Error::missing_field("team_member_id"))?,
27636 email: field_email.ok_or_else(|| ::serde::de::Error::missing_field("email"))?,
27637 email_verified: field_email_verified.ok_or_else(|| ::serde::de::Error::missing_field("email_verified"))?,
27638 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
27639 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
27640 membership_type: field_membership_type.ok_or_else(|| ::serde::de::Error::missing_field("membership_type"))?,
27641 groups: field_groups.ok_or_else(|| ::serde::de::Error::missing_field("groups"))?,
27642 member_folder_id: field_member_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("member_folder_id"))?,
27643 external_id: field_external_id.and_then(Option::flatten),
27644 account_id: field_account_id.and_then(Option::flatten),
27645 secondary_emails: field_secondary_emails.and_then(Option::flatten),
27646 invited_on: field_invited_on.and_then(Option::flatten),
27647 joined_on: field_joined_on.and_then(Option::flatten),
27648 suspended_on: field_suspended_on.and_then(Option::flatten),
27649 persistent_id: field_persistent_id.and_then(Option::flatten),
27650 is_directory_restricted: field_is_directory_restricted.and_then(Option::flatten),
27651 profile_photo_url: field_profile_photo_url.and_then(Option::flatten),
27652 };
27653 Ok(Some(result))
27654 }
27655
27656 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27657 &self,
27658 s: &mut S::SerializeStruct,
27659 ) -> Result<(), S::Error> {
27660 use serde::ser::SerializeStruct;
27661 s.serialize_field("team_member_id", &self.team_member_id)?;
27662 s.serialize_field("email", &self.email)?;
27663 s.serialize_field("email_verified", &self.email_verified)?;
27664 s.serialize_field("status", &self.status)?;
27665 s.serialize_field("name", &self.name)?;
27666 s.serialize_field("membership_type", &self.membership_type)?;
27667 s.serialize_field("groups", &self.groups)?;
27668 s.serialize_field("member_folder_id", &self.member_folder_id)?;
27669 if let Some(val) = &self.external_id {
27670 s.serialize_field("external_id", val)?;
27671 }
27672 if let Some(val) = &self.account_id {
27673 s.serialize_field("account_id", val)?;
27674 }
27675 if let Some(val) = &self.secondary_emails {
27676 s.serialize_field("secondary_emails", val)?;
27677 }
27678 if let Some(val) = &self.invited_on {
27679 s.serialize_field("invited_on", val)?;
27680 }
27681 if let Some(val) = &self.joined_on {
27682 s.serialize_field("joined_on", val)?;
27683 }
27684 if let Some(val) = &self.suspended_on {
27685 s.serialize_field("suspended_on", val)?;
27686 }
27687 if let Some(val) = &self.persistent_id {
27688 s.serialize_field("persistent_id", val)?;
27689 }
27690 if let Some(val) = &self.is_directory_restricted {
27691 s.serialize_field("is_directory_restricted", val)?;
27692 }
27693 if let Some(val) = &self.profile_photo_url {
27694 s.serialize_field("profile_photo_url", val)?;
27695 }
27696 Ok(())
27697 }
27698}
27699
27700impl<'de> ::serde::de::Deserialize<'de> for TeamMemberProfile {
27701 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27702 use serde::de::{MapAccess, Visitor};
27704 struct StructVisitor;
27705 impl<'de> Visitor<'de> for StructVisitor {
27706 type Value = TeamMemberProfile;
27707 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27708 f.write_str("a TeamMemberProfile struct")
27709 }
27710 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27711 TeamMemberProfile::internal_deserialize(map)
27712 }
27713 }
27714 deserializer.deserialize_struct("TeamMemberProfile", TEAM_MEMBER_PROFILE_FIELDS, StructVisitor)
27715 }
27716}
27717
27718impl ::serde::ser::Serialize for TeamMemberProfile {
27719 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27720 use serde::ser::SerializeStruct;
27722 let mut s = serializer.serialize_struct("TeamMemberProfile", 17)?;
27723 self.internal_serialize::<S>(&mut s)?;
27724 s.end()
27725 }
27726}
27727
27728impl From<TeamMemberProfile> for MemberProfile {
27730 fn from(subtype: TeamMemberProfile) -> Self {
27731 Self {
27732 team_member_id: subtype.team_member_id,
27733 email: subtype.email,
27734 email_verified: subtype.email_verified,
27735 status: subtype.status,
27736 name: subtype.name,
27737 membership_type: subtype.membership_type,
27738 external_id: subtype.external_id,
27739 account_id: subtype.account_id,
27740 secondary_emails: subtype.secondary_emails,
27741 invited_on: subtype.invited_on,
27742 joined_on: subtype.joined_on,
27743 suspended_on: subtype.suspended_on,
27744 persistent_id: subtype.persistent_id,
27745 is_directory_restricted: subtype.is_directory_restricted,
27746 profile_photo_url: subtype.profile_photo_url,
27747 }
27748 }
27749}
27750#[derive(Debug, Clone, PartialEq, Eq)]
27753#[non_exhaustive] pub struct TeamMemberRole {
27755 pub role_id: TeamMemberRoleId,
27758 pub name: String,
27760 pub description: String,
27762}
27763
27764impl TeamMemberRole {
27765 pub fn new(role_id: TeamMemberRoleId, name: String, description: String) -> Self {
27766 TeamMemberRole {
27767 role_id,
27768 name,
27769 description,
27770 }
27771 }
27772}
27773
27774const TEAM_MEMBER_ROLE_FIELDS: &[&str] = &["role_id",
27775 "name",
27776 "description"];
27777impl TeamMemberRole {
27778 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
27779 map: V,
27780 ) -> Result<TeamMemberRole, V::Error> {
27781 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
27782 }
27783
27784 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
27785 mut map: V,
27786 optional: bool,
27787 ) -> Result<Option<TeamMemberRole>, V::Error> {
27788 let mut field_role_id = None;
27789 let mut field_name = None;
27790 let mut field_description = None;
27791 let mut nothing = true;
27792 while let Some(key) = map.next_key::<&str>()? {
27793 nothing = false;
27794 match key {
27795 "role_id" => {
27796 if field_role_id.is_some() {
27797 return Err(::serde::de::Error::duplicate_field("role_id"));
27798 }
27799 field_role_id = Some(map.next_value()?);
27800 }
27801 "name" => {
27802 if field_name.is_some() {
27803 return Err(::serde::de::Error::duplicate_field("name"));
27804 }
27805 field_name = Some(map.next_value()?);
27806 }
27807 "description" => {
27808 if field_description.is_some() {
27809 return Err(::serde::de::Error::duplicate_field("description"));
27810 }
27811 field_description = Some(map.next_value()?);
27812 }
27813 _ => {
27814 map.next_value::<::serde_json::Value>()?;
27816 }
27817 }
27818 }
27819 if optional && nothing {
27820 return Ok(None);
27821 }
27822 let result = TeamMemberRole {
27823 role_id: field_role_id.ok_or_else(|| ::serde::de::Error::missing_field("role_id"))?,
27824 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
27825 description: field_description.ok_or_else(|| ::serde::de::Error::missing_field("description"))?,
27826 };
27827 Ok(Some(result))
27828 }
27829
27830 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
27831 &self,
27832 s: &mut S::SerializeStruct,
27833 ) -> Result<(), S::Error> {
27834 use serde::ser::SerializeStruct;
27835 s.serialize_field("role_id", &self.role_id)?;
27836 s.serialize_field("name", &self.name)?;
27837 s.serialize_field("description", &self.description)?;
27838 Ok(())
27839 }
27840}
27841
27842impl<'de> ::serde::de::Deserialize<'de> for TeamMemberRole {
27843 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27844 use serde::de::{MapAccess, Visitor};
27846 struct StructVisitor;
27847 impl<'de> Visitor<'de> for StructVisitor {
27848 type Value = TeamMemberRole;
27849 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27850 f.write_str("a TeamMemberRole struct")
27851 }
27852 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
27853 TeamMemberRole::internal_deserialize(map)
27854 }
27855 }
27856 deserializer.deserialize_struct("TeamMemberRole", TEAM_MEMBER_ROLE_FIELDS, StructVisitor)
27857 }
27858}
27859
27860impl ::serde::ser::Serialize for TeamMemberRole {
27861 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27862 use serde::ser::SerializeStruct;
27864 let mut s = serializer.serialize_struct("TeamMemberRole", 3)?;
27865 self.internal_serialize::<S>(&mut s)?;
27866 s.end()
27867 }
27868}
27869
27870#[derive(Debug, Clone, PartialEq, Eq)]
27872pub enum TeamMemberStatus {
27873 Active,
27875 Invited,
27877 Suspended,
27880 Removed(RemovedStatus),
27883}
27884
27885impl<'de> ::serde::de::Deserialize<'de> for TeamMemberStatus {
27886 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27887 use serde::de::{self, MapAccess, Visitor};
27889 struct EnumVisitor;
27890 impl<'de> Visitor<'de> for EnumVisitor {
27891 type Value = TeamMemberStatus;
27892 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27893 f.write_str("a TeamMemberStatus structure")
27894 }
27895 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27896 let tag: &str = match map.next_key()? {
27897 Some(".tag") => map.next_value()?,
27898 _ => return Err(de::Error::missing_field(".tag"))
27899 };
27900 let value = match tag {
27901 "active" => TeamMemberStatus::Active,
27902 "invited" => TeamMemberStatus::Invited,
27903 "suspended" => TeamMemberStatus::Suspended,
27904 "removed" => TeamMemberStatus::Removed(RemovedStatus::internal_deserialize(&mut map)?),
27905 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
27906 };
27907 crate::eat_json_fields(&mut map)?;
27908 Ok(value)
27909 }
27910 }
27911 const VARIANTS: &[&str] = &["active",
27912 "invited",
27913 "suspended",
27914 "removed"];
27915 deserializer.deserialize_struct("TeamMemberStatus", VARIANTS, EnumVisitor)
27916 }
27917}
27918
27919impl ::serde::ser::Serialize for TeamMemberStatus {
27920 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27921 use serde::ser::SerializeStruct;
27923 match self {
27924 TeamMemberStatus::Active => {
27925 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
27927 s.serialize_field(".tag", "active")?;
27928 s.end()
27929 }
27930 TeamMemberStatus::Invited => {
27931 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
27933 s.serialize_field(".tag", "invited")?;
27934 s.end()
27935 }
27936 TeamMemberStatus::Suspended => {
27937 let mut s = serializer.serialize_struct("TeamMemberStatus", 1)?;
27939 s.serialize_field(".tag", "suspended")?;
27940 s.end()
27941 }
27942 TeamMemberStatus::Removed(x) => {
27943 let mut s = serializer.serialize_struct("TeamMemberStatus", 3)?;
27945 s.serialize_field(".tag", "removed")?;
27946 x.internal_serialize::<S>(&mut s)?;
27947 s.end()
27948 }
27949 }
27950 }
27951}
27952
27953#[derive(Debug, Clone, PartialEq, Eq)]
27954pub enum TeamMembershipType {
27955 Full,
27957 Limited,
27960}
27961
27962impl<'de> ::serde::de::Deserialize<'de> for TeamMembershipType {
27963 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
27964 use serde::de::{self, MapAccess, Visitor};
27966 struct EnumVisitor;
27967 impl<'de> Visitor<'de> for EnumVisitor {
27968 type Value = TeamMembershipType;
27969 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
27970 f.write_str("a TeamMembershipType structure")
27971 }
27972 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
27973 let tag: &str = match map.next_key()? {
27974 Some(".tag") => map.next_value()?,
27975 _ => return Err(de::Error::missing_field(".tag"))
27976 };
27977 let value = match tag {
27978 "full" => TeamMembershipType::Full,
27979 "limited" => TeamMembershipType::Limited,
27980 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
27981 };
27982 crate::eat_json_fields(&mut map)?;
27983 Ok(value)
27984 }
27985 }
27986 const VARIANTS: &[&str] = &["full",
27987 "limited"];
27988 deserializer.deserialize_struct("TeamMembershipType", VARIANTS, EnumVisitor)
27989 }
27990}
27991
27992impl ::serde::ser::Serialize for TeamMembershipType {
27993 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
27994 use serde::ser::SerializeStruct;
27996 match self {
27997 TeamMembershipType::Full => {
27998 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
28000 s.serialize_field(".tag", "full")?;
28001 s.end()
28002 }
28003 TeamMembershipType::Limited => {
28004 let mut s = serializer.serialize_struct("TeamMembershipType", 1)?;
28006 s.serialize_field(".tag", "limited")?;
28007 s.end()
28008 }
28009 }
28010 }
28011}
28012
28013#[derive(Debug, Clone, PartialEq, Eq)]
28014#[non_exhaustive] pub struct TeamNamespacesListArg {
28016 pub limit: u32,
28018}
28019
28020impl Default for TeamNamespacesListArg {
28021 fn default() -> Self {
28022 TeamNamespacesListArg {
28023 limit: 1000,
28024 }
28025 }
28026}
28027
28028impl TeamNamespacesListArg {
28029 pub fn with_limit(mut self, value: u32) -> Self {
28030 self.limit = value;
28031 self
28032 }
28033}
28034
28035const TEAM_NAMESPACES_LIST_ARG_FIELDS: &[&str] = &["limit"];
28036impl TeamNamespacesListArg {
28037 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28039 mut map: V,
28040 ) -> Result<TeamNamespacesListArg, V::Error> {
28041 let mut field_limit = None;
28042 while let Some(key) = map.next_key::<&str>()? {
28043 match key {
28044 "limit" => {
28045 if field_limit.is_some() {
28046 return Err(::serde::de::Error::duplicate_field("limit"));
28047 }
28048 field_limit = Some(map.next_value()?);
28049 }
28050 _ => {
28051 map.next_value::<::serde_json::Value>()?;
28053 }
28054 }
28055 }
28056 let result = TeamNamespacesListArg {
28057 limit: field_limit.unwrap_or(1000),
28058 };
28059 Ok(result)
28060 }
28061
28062 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28063 &self,
28064 s: &mut S::SerializeStruct,
28065 ) -> Result<(), S::Error> {
28066 use serde::ser::SerializeStruct;
28067 if self.limit != 1000 {
28068 s.serialize_field("limit", &self.limit)?;
28069 }
28070 Ok(())
28071 }
28072}
28073
28074impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListArg {
28075 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28076 use serde::de::{MapAccess, Visitor};
28078 struct StructVisitor;
28079 impl<'de> Visitor<'de> for StructVisitor {
28080 type Value = TeamNamespacesListArg;
28081 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28082 f.write_str("a TeamNamespacesListArg struct")
28083 }
28084 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28085 TeamNamespacesListArg::internal_deserialize(map)
28086 }
28087 }
28088 deserializer.deserialize_struct("TeamNamespacesListArg", TEAM_NAMESPACES_LIST_ARG_FIELDS, StructVisitor)
28089 }
28090}
28091
28092impl ::serde::ser::Serialize for TeamNamespacesListArg {
28093 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28094 use serde::ser::SerializeStruct;
28096 let mut s = serializer.serialize_struct("TeamNamespacesListArg", 1)?;
28097 self.internal_serialize::<S>(&mut s)?;
28098 s.end()
28099 }
28100}
28101
28102#[derive(Debug, Clone, PartialEq, Eq)]
28103#[non_exhaustive] pub struct TeamNamespacesListContinueArg {
28105 pub cursor: String,
28107}
28108
28109impl TeamNamespacesListContinueArg {
28110 pub fn new(cursor: String) -> Self {
28111 TeamNamespacesListContinueArg {
28112 cursor,
28113 }
28114 }
28115}
28116
28117const TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS: &[&str] = &["cursor"];
28118impl TeamNamespacesListContinueArg {
28119 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28120 map: V,
28121 ) -> Result<TeamNamespacesListContinueArg, V::Error> {
28122 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28123 }
28124
28125 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28126 mut map: V,
28127 optional: bool,
28128 ) -> Result<Option<TeamNamespacesListContinueArg>, V::Error> {
28129 let mut field_cursor = None;
28130 let mut nothing = true;
28131 while let Some(key) = map.next_key::<&str>()? {
28132 nothing = false;
28133 match key {
28134 "cursor" => {
28135 if field_cursor.is_some() {
28136 return Err(::serde::de::Error::duplicate_field("cursor"));
28137 }
28138 field_cursor = Some(map.next_value()?);
28139 }
28140 _ => {
28141 map.next_value::<::serde_json::Value>()?;
28143 }
28144 }
28145 }
28146 if optional && nothing {
28147 return Ok(None);
28148 }
28149 let result = TeamNamespacesListContinueArg {
28150 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
28151 };
28152 Ok(Some(result))
28153 }
28154
28155 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28156 &self,
28157 s: &mut S::SerializeStruct,
28158 ) -> Result<(), S::Error> {
28159 use serde::ser::SerializeStruct;
28160 s.serialize_field("cursor", &self.cursor)?;
28161 Ok(())
28162 }
28163}
28164
28165impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueArg {
28166 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28167 use serde::de::{MapAccess, Visitor};
28169 struct StructVisitor;
28170 impl<'de> Visitor<'de> for StructVisitor {
28171 type Value = TeamNamespacesListContinueArg;
28172 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28173 f.write_str("a TeamNamespacesListContinueArg struct")
28174 }
28175 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28176 TeamNamespacesListContinueArg::internal_deserialize(map)
28177 }
28178 }
28179 deserializer.deserialize_struct("TeamNamespacesListContinueArg", TEAM_NAMESPACES_LIST_CONTINUE_ARG_FIELDS, StructVisitor)
28180 }
28181}
28182
28183impl ::serde::ser::Serialize for TeamNamespacesListContinueArg {
28184 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28185 use serde::ser::SerializeStruct;
28187 let mut s = serializer.serialize_struct("TeamNamespacesListContinueArg", 1)?;
28188 self.internal_serialize::<S>(&mut s)?;
28189 s.end()
28190 }
28191}
28192
28193#[derive(Debug, Clone, PartialEq, Eq)]
28194#[non_exhaustive] pub enum TeamNamespacesListContinueError {
28196 InvalidArg,
28198 InvalidCursor,
28200 Other,
28203}
28204
28205impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListContinueError {
28206 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28207 use serde::de::{self, MapAccess, Visitor};
28209 struct EnumVisitor;
28210 impl<'de> Visitor<'de> for EnumVisitor {
28211 type Value = TeamNamespacesListContinueError;
28212 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28213 f.write_str("a TeamNamespacesListContinueError structure")
28214 }
28215 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28216 let tag: &str = match map.next_key()? {
28217 Some(".tag") => map.next_value()?,
28218 _ => return Err(de::Error::missing_field(".tag"))
28219 };
28220 let value = match tag {
28221 "invalid_arg" => TeamNamespacesListContinueError::InvalidArg,
28222 "invalid_cursor" => TeamNamespacesListContinueError::InvalidCursor,
28223 _ => TeamNamespacesListContinueError::Other,
28224 };
28225 crate::eat_json_fields(&mut map)?;
28226 Ok(value)
28227 }
28228 }
28229 const VARIANTS: &[&str] = &["invalid_arg",
28230 "other",
28231 "invalid_cursor"];
28232 deserializer.deserialize_struct("TeamNamespacesListContinueError", VARIANTS, EnumVisitor)
28233 }
28234}
28235
28236impl ::serde::ser::Serialize for TeamNamespacesListContinueError {
28237 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28238 use serde::ser::SerializeStruct;
28240 match self {
28241 TeamNamespacesListContinueError::InvalidArg => {
28242 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
28244 s.serialize_field(".tag", "invalid_arg")?;
28245 s.end()
28246 }
28247 TeamNamespacesListContinueError::InvalidCursor => {
28248 let mut s = serializer.serialize_struct("TeamNamespacesListContinueError", 1)?;
28250 s.serialize_field(".tag", "invalid_cursor")?;
28251 s.end()
28252 }
28253 TeamNamespacesListContinueError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28254 }
28255 }
28256}
28257
28258impl ::std::error::Error for TeamNamespacesListContinueError {
28259}
28260
28261impl ::std::fmt::Display for TeamNamespacesListContinueError {
28262 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28263 match self {
28264 TeamNamespacesListContinueError::InvalidArg => f.write_str("Argument passed in is invalid."),
28265 TeamNamespacesListContinueError::InvalidCursor => f.write_str("The cursor is invalid."),
28266 _ => write!(f, "{:?}", *self),
28267 }
28268 }
28269}
28270
28271impl From<TeamNamespacesListError> for TeamNamespacesListContinueError {
28273 fn from(parent: TeamNamespacesListError) -> Self {
28274 match parent {
28275 TeamNamespacesListError::InvalidArg => TeamNamespacesListContinueError::InvalidArg,
28276 TeamNamespacesListError::Other => TeamNamespacesListContinueError::Other,
28277 }
28278 }
28279}
28280#[derive(Debug, Clone, PartialEq, Eq)]
28281#[non_exhaustive] pub enum TeamNamespacesListError {
28283 InvalidArg,
28285 Other,
28288}
28289
28290impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListError {
28291 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28292 use serde::de::{self, MapAccess, Visitor};
28294 struct EnumVisitor;
28295 impl<'de> Visitor<'de> for EnumVisitor {
28296 type Value = TeamNamespacesListError;
28297 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28298 f.write_str("a TeamNamespacesListError structure")
28299 }
28300 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28301 let tag: &str = match map.next_key()? {
28302 Some(".tag") => map.next_value()?,
28303 _ => return Err(de::Error::missing_field(".tag"))
28304 };
28305 let value = match tag {
28306 "invalid_arg" => TeamNamespacesListError::InvalidArg,
28307 _ => TeamNamespacesListError::Other,
28308 };
28309 crate::eat_json_fields(&mut map)?;
28310 Ok(value)
28311 }
28312 }
28313 const VARIANTS: &[&str] = &["invalid_arg",
28314 "other"];
28315 deserializer.deserialize_struct("TeamNamespacesListError", VARIANTS, EnumVisitor)
28316 }
28317}
28318
28319impl ::serde::ser::Serialize for TeamNamespacesListError {
28320 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28321 use serde::ser::SerializeStruct;
28323 match self {
28324 TeamNamespacesListError::InvalidArg => {
28325 let mut s = serializer.serialize_struct("TeamNamespacesListError", 1)?;
28327 s.serialize_field(".tag", "invalid_arg")?;
28328 s.end()
28329 }
28330 TeamNamespacesListError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28331 }
28332 }
28333}
28334
28335impl ::std::error::Error for TeamNamespacesListError {
28336}
28337
28338impl ::std::fmt::Display for TeamNamespacesListError {
28339 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28340 match self {
28341 TeamNamespacesListError::InvalidArg => f.write_str("Argument passed in is invalid."),
28342 _ => write!(f, "{:?}", *self),
28343 }
28344 }
28345}
28346
28347#[derive(Debug, Clone, PartialEq, Eq)]
28349#[non_exhaustive] pub struct TeamNamespacesListResult {
28351 pub namespaces: Vec<NamespaceMetadata>,
28353 pub cursor: String,
28356 pub has_more: bool,
28358}
28359
28360impl TeamNamespacesListResult {
28361 pub fn new(namespaces: Vec<NamespaceMetadata>, cursor: String, has_more: bool) -> Self {
28362 TeamNamespacesListResult {
28363 namespaces,
28364 cursor,
28365 has_more,
28366 }
28367 }
28368}
28369
28370const TEAM_NAMESPACES_LIST_RESULT_FIELDS: &[&str] = &["namespaces",
28371 "cursor",
28372 "has_more"];
28373impl TeamNamespacesListResult {
28374 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28375 map: V,
28376 ) -> Result<TeamNamespacesListResult, V::Error> {
28377 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28378 }
28379
28380 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28381 mut map: V,
28382 optional: bool,
28383 ) -> Result<Option<TeamNamespacesListResult>, V::Error> {
28384 let mut field_namespaces = None;
28385 let mut field_cursor = None;
28386 let mut field_has_more = None;
28387 let mut nothing = true;
28388 while let Some(key) = map.next_key::<&str>()? {
28389 nothing = false;
28390 match key {
28391 "namespaces" => {
28392 if field_namespaces.is_some() {
28393 return Err(::serde::de::Error::duplicate_field("namespaces"));
28394 }
28395 field_namespaces = Some(map.next_value()?);
28396 }
28397 "cursor" => {
28398 if field_cursor.is_some() {
28399 return Err(::serde::de::Error::duplicate_field("cursor"));
28400 }
28401 field_cursor = Some(map.next_value()?);
28402 }
28403 "has_more" => {
28404 if field_has_more.is_some() {
28405 return Err(::serde::de::Error::duplicate_field("has_more"));
28406 }
28407 field_has_more = Some(map.next_value()?);
28408 }
28409 _ => {
28410 map.next_value::<::serde_json::Value>()?;
28412 }
28413 }
28414 }
28415 if optional && nothing {
28416 return Ok(None);
28417 }
28418 let result = TeamNamespacesListResult {
28419 namespaces: field_namespaces.ok_or_else(|| ::serde::de::Error::missing_field("namespaces"))?,
28420 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
28421 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
28422 };
28423 Ok(Some(result))
28424 }
28425
28426 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28427 &self,
28428 s: &mut S::SerializeStruct,
28429 ) -> Result<(), S::Error> {
28430 use serde::ser::SerializeStruct;
28431 s.serialize_field("namespaces", &self.namespaces)?;
28432 s.serialize_field("cursor", &self.cursor)?;
28433 s.serialize_field("has_more", &self.has_more)?;
28434 Ok(())
28435 }
28436}
28437
28438impl<'de> ::serde::de::Deserialize<'de> for TeamNamespacesListResult {
28439 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28440 use serde::de::{MapAccess, Visitor};
28442 struct StructVisitor;
28443 impl<'de> Visitor<'de> for StructVisitor {
28444 type Value = TeamNamespacesListResult;
28445 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28446 f.write_str("a TeamNamespacesListResult struct")
28447 }
28448 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28449 TeamNamespacesListResult::internal_deserialize(map)
28450 }
28451 }
28452 deserializer.deserialize_struct("TeamNamespacesListResult", TEAM_NAMESPACES_LIST_RESULT_FIELDS, StructVisitor)
28453 }
28454}
28455
28456impl ::serde::ser::Serialize for TeamNamespacesListResult {
28457 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28458 use serde::ser::SerializeStruct;
28460 let mut s = serializer.serialize_struct("TeamNamespacesListResult", 3)?;
28461 self.internal_serialize::<S>(&mut s)?;
28462 s.end()
28463 }
28464}
28465
28466#[derive(Debug, Clone, PartialEq, Eq)]
28467#[non_exhaustive] pub enum TeamReportFailureReason {
28469 TemporaryError,
28472 ManyReportsAtOnce,
28475 TooMuchData,
28477 Other,
28480}
28481
28482impl<'de> ::serde::de::Deserialize<'de> for TeamReportFailureReason {
28483 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28484 use serde::de::{self, MapAccess, Visitor};
28486 struct EnumVisitor;
28487 impl<'de> Visitor<'de> for EnumVisitor {
28488 type Value = TeamReportFailureReason;
28489 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28490 f.write_str("a TeamReportFailureReason structure")
28491 }
28492 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28493 let tag: &str = match map.next_key()? {
28494 Some(".tag") => map.next_value()?,
28495 _ => return Err(de::Error::missing_field(".tag"))
28496 };
28497 let value = match tag {
28498 "temporary_error" => TeamReportFailureReason::TemporaryError,
28499 "many_reports_at_once" => TeamReportFailureReason::ManyReportsAtOnce,
28500 "too_much_data" => TeamReportFailureReason::TooMuchData,
28501 _ => TeamReportFailureReason::Other,
28502 };
28503 crate::eat_json_fields(&mut map)?;
28504 Ok(value)
28505 }
28506 }
28507 const VARIANTS: &[&str] = &["temporary_error",
28508 "many_reports_at_once",
28509 "too_much_data",
28510 "other"];
28511 deserializer.deserialize_struct("TeamReportFailureReason", VARIANTS, EnumVisitor)
28512 }
28513}
28514
28515impl ::serde::ser::Serialize for TeamReportFailureReason {
28516 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28517 use serde::ser::SerializeStruct;
28519 match self {
28520 TeamReportFailureReason::TemporaryError => {
28521 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
28523 s.serialize_field(".tag", "temporary_error")?;
28524 s.end()
28525 }
28526 TeamReportFailureReason::ManyReportsAtOnce => {
28527 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
28529 s.serialize_field(".tag", "many_reports_at_once")?;
28530 s.end()
28531 }
28532 TeamReportFailureReason::TooMuchData => {
28533 let mut s = serializer.serialize_struct("TeamReportFailureReason", 1)?;
28535 s.serialize_field(".tag", "too_much_data")?;
28536 s.end()
28537 }
28538 TeamReportFailureReason::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28539 }
28540 }
28541}
28542
28543#[derive(Debug, Clone, PartialEq, Eq)]
28546#[non_exhaustive] pub enum TokenGetAuthenticatedAdminError {
28548 MappingNotFound,
28552 AdminNotActive,
28555 Other,
28558}
28559
28560impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminError {
28561 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28562 use serde::de::{self, MapAccess, Visitor};
28564 struct EnumVisitor;
28565 impl<'de> Visitor<'de> for EnumVisitor {
28566 type Value = TokenGetAuthenticatedAdminError;
28567 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28568 f.write_str("a TokenGetAuthenticatedAdminError structure")
28569 }
28570 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28571 let tag: &str = match map.next_key()? {
28572 Some(".tag") => map.next_value()?,
28573 _ => return Err(de::Error::missing_field(".tag"))
28574 };
28575 let value = match tag {
28576 "mapping_not_found" => TokenGetAuthenticatedAdminError::MappingNotFound,
28577 "admin_not_active" => TokenGetAuthenticatedAdminError::AdminNotActive,
28578 _ => TokenGetAuthenticatedAdminError::Other,
28579 };
28580 crate::eat_json_fields(&mut map)?;
28581 Ok(value)
28582 }
28583 }
28584 const VARIANTS: &[&str] = &["mapping_not_found",
28585 "admin_not_active",
28586 "other"];
28587 deserializer.deserialize_struct("TokenGetAuthenticatedAdminError", VARIANTS, EnumVisitor)
28588 }
28589}
28590
28591impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminError {
28592 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28593 use serde::ser::SerializeStruct;
28595 match self {
28596 TokenGetAuthenticatedAdminError::MappingNotFound => {
28597 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
28599 s.serialize_field(".tag", "mapping_not_found")?;
28600 s.end()
28601 }
28602 TokenGetAuthenticatedAdminError::AdminNotActive => {
28603 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminError", 1)?;
28605 s.serialize_field(".tag", "admin_not_active")?;
28606 s.end()
28607 }
28608 TokenGetAuthenticatedAdminError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28609 }
28610 }
28611}
28612
28613impl ::std::error::Error for TokenGetAuthenticatedAdminError {
28614}
28615
28616impl ::std::fmt::Display for TokenGetAuthenticatedAdminError {
28617 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28618 match self {
28619 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."),
28620 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."),
28621 _ => write!(f, "{:?}", *self),
28622 }
28623 }
28624}
28625
28626#[derive(Debug, Clone, PartialEq, Eq)]
28628#[non_exhaustive] pub struct TokenGetAuthenticatedAdminResult {
28630 pub admin_profile: TeamMemberProfile,
28632}
28633
28634impl TokenGetAuthenticatedAdminResult {
28635 pub fn new(admin_profile: TeamMemberProfile) -> Self {
28636 TokenGetAuthenticatedAdminResult {
28637 admin_profile,
28638 }
28639 }
28640}
28641
28642const TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS: &[&str] = &["admin_profile"];
28643impl TokenGetAuthenticatedAdminResult {
28644 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28645 map: V,
28646 ) -> Result<TokenGetAuthenticatedAdminResult, V::Error> {
28647 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28648 }
28649
28650 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28651 mut map: V,
28652 optional: bool,
28653 ) -> Result<Option<TokenGetAuthenticatedAdminResult>, V::Error> {
28654 let mut field_admin_profile = None;
28655 let mut nothing = true;
28656 while let Some(key) = map.next_key::<&str>()? {
28657 nothing = false;
28658 match key {
28659 "admin_profile" => {
28660 if field_admin_profile.is_some() {
28661 return Err(::serde::de::Error::duplicate_field("admin_profile"));
28662 }
28663 field_admin_profile = Some(map.next_value()?);
28664 }
28665 _ => {
28666 map.next_value::<::serde_json::Value>()?;
28668 }
28669 }
28670 }
28671 if optional && nothing {
28672 return Ok(None);
28673 }
28674 let result = TokenGetAuthenticatedAdminResult {
28675 admin_profile: field_admin_profile.ok_or_else(|| ::serde::de::Error::missing_field("admin_profile"))?,
28676 };
28677 Ok(Some(result))
28678 }
28679
28680 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28681 &self,
28682 s: &mut S::SerializeStruct,
28683 ) -> Result<(), S::Error> {
28684 use serde::ser::SerializeStruct;
28685 s.serialize_field("admin_profile", &self.admin_profile)?;
28686 Ok(())
28687 }
28688}
28689
28690impl<'de> ::serde::de::Deserialize<'de> for TokenGetAuthenticatedAdminResult {
28691 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28692 use serde::de::{MapAccess, Visitor};
28694 struct StructVisitor;
28695 impl<'de> Visitor<'de> for StructVisitor {
28696 type Value = TokenGetAuthenticatedAdminResult;
28697 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28698 f.write_str("a TokenGetAuthenticatedAdminResult struct")
28699 }
28700 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28701 TokenGetAuthenticatedAdminResult::internal_deserialize(map)
28702 }
28703 }
28704 deserializer.deserialize_struct("TokenGetAuthenticatedAdminResult", TOKEN_GET_AUTHENTICATED_ADMIN_RESULT_FIELDS, StructVisitor)
28705 }
28706}
28707
28708impl ::serde::ser::Serialize for TokenGetAuthenticatedAdminResult {
28709 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28710 use serde::ser::SerializeStruct;
28712 let mut s = serializer.serialize_struct("TokenGetAuthenticatedAdminResult", 1)?;
28713 self.internal_serialize::<S>(&mut s)?;
28714 s.end()
28715 }
28716}
28717
28718#[derive(Debug, Clone, PartialEq, Eq)]
28720#[non_exhaustive] pub enum UploadApiRateLimitValue {
28722 Unlimited,
28725 Limit(u32),
28727 Other,
28730}
28731
28732impl<'de> ::serde::de::Deserialize<'de> for UploadApiRateLimitValue {
28733 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28734 use serde::de::{self, MapAccess, Visitor};
28736 struct EnumVisitor;
28737 impl<'de> Visitor<'de> for EnumVisitor {
28738 type Value = UploadApiRateLimitValue;
28739 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28740 f.write_str("a UploadApiRateLimitValue structure")
28741 }
28742 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28743 let tag: &str = match map.next_key()? {
28744 Some(".tag") => map.next_value()?,
28745 _ => return Err(de::Error::missing_field(".tag"))
28746 };
28747 let value = match tag {
28748 "unlimited" => UploadApiRateLimitValue::Unlimited,
28749 "limit" => {
28750 match map.next_key()? {
28751 Some("limit") => UploadApiRateLimitValue::Limit(map.next_value()?),
28752 None => return Err(de::Error::missing_field("limit")),
28753 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28754 }
28755 }
28756 _ => UploadApiRateLimitValue::Other,
28757 };
28758 crate::eat_json_fields(&mut map)?;
28759 Ok(value)
28760 }
28761 }
28762 const VARIANTS: &[&str] = &["unlimited",
28763 "limit",
28764 "other"];
28765 deserializer.deserialize_struct("UploadApiRateLimitValue", VARIANTS, EnumVisitor)
28766 }
28767}
28768
28769impl ::serde::ser::Serialize for UploadApiRateLimitValue {
28770 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28771 use serde::ser::SerializeStruct;
28773 match self {
28774 UploadApiRateLimitValue::Unlimited => {
28775 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 1)?;
28777 s.serialize_field(".tag", "unlimited")?;
28778 s.end()
28779 }
28780 UploadApiRateLimitValue::Limit(x) => {
28781 let mut s = serializer.serialize_struct("UploadApiRateLimitValue", 2)?;
28783 s.serialize_field(".tag", "limit")?;
28784 s.serialize_field("limit", x)?;
28785 s.end()
28786 }
28787 UploadApiRateLimitValue::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28788 }
28789 }
28790}
28791
28792#[derive(Debug, Clone, PartialEq, Eq)]
28796#[non_exhaustive] pub enum UserAddResult {
28798 Success(UserSecondaryEmailsResult),
28800 InvalidUser(UserSelectorArg),
28802 Unverified(UserSelectorArg),
28804 PlaceholderUser(UserSelectorArg),
28806 Other,
28809}
28810
28811impl<'de> ::serde::de::Deserialize<'de> for UserAddResult {
28812 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28813 use serde::de::{self, MapAccess, Visitor};
28815 struct EnumVisitor;
28816 impl<'de> Visitor<'de> for EnumVisitor {
28817 type Value = UserAddResult;
28818 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28819 f.write_str("a UserAddResult structure")
28820 }
28821 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
28822 let tag: &str = match map.next_key()? {
28823 Some(".tag") => map.next_value()?,
28824 _ => return Err(de::Error::missing_field(".tag"))
28825 };
28826 let value = match tag {
28827 "success" => UserAddResult::Success(UserSecondaryEmailsResult::internal_deserialize(&mut map)?),
28828 "invalid_user" => {
28829 match map.next_key()? {
28830 Some("invalid_user") => UserAddResult::InvalidUser(map.next_value()?),
28831 None => return Err(de::Error::missing_field("invalid_user")),
28832 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28833 }
28834 }
28835 "unverified" => {
28836 match map.next_key()? {
28837 Some("unverified") => UserAddResult::Unverified(map.next_value()?),
28838 None => return Err(de::Error::missing_field("unverified")),
28839 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28840 }
28841 }
28842 "placeholder_user" => {
28843 match map.next_key()? {
28844 Some("placeholder_user") => UserAddResult::PlaceholderUser(map.next_value()?),
28845 None => return Err(de::Error::missing_field("placeholder_user")),
28846 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
28847 }
28848 }
28849 _ => UserAddResult::Other,
28850 };
28851 crate::eat_json_fields(&mut map)?;
28852 Ok(value)
28853 }
28854 }
28855 const VARIANTS: &[&str] = &["success",
28856 "invalid_user",
28857 "unverified",
28858 "placeholder_user",
28859 "other"];
28860 deserializer.deserialize_struct("UserAddResult", VARIANTS, EnumVisitor)
28861 }
28862}
28863
28864impl ::serde::ser::Serialize for UserAddResult {
28865 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28866 use serde::ser::SerializeStruct;
28868 match self {
28869 UserAddResult::Success(x) => {
28870 let mut s = serializer.serialize_struct("UserAddResult", 3)?;
28872 s.serialize_field(".tag", "success")?;
28873 x.internal_serialize::<S>(&mut s)?;
28874 s.end()
28875 }
28876 UserAddResult::InvalidUser(x) => {
28877 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
28879 s.serialize_field(".tag", "invalid_user")?;
28880 s.serialize_field("invalid_user", x)?;
28881 s.end()
28882 }
28883 UserAddResult::Unverified(x) => {
28884 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
28886 s.serialize_field(".tag", "unverified")?;
28887 s.serialize_field("unverified", x)?;
28888 s.end()
28889 }
28890 UserAddResult::PlaceholderUser(x) => {
28891 let mut s = serializer.serialize_struct("UserAddResult", 2)?;
28893 s.serialize_field(".tag", "placeholder_user")?;
28894 s.serialize_field("placeholder_user", x)?;
28895 s.end()
28896 }
28897 UserAddResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
28898 }
28899 }
28900}
28901
28902#[derive(Debug, Clone, PartialEq, Eq)]
28904#[non_exhaustive] pub struct UserCustomQuotaArg {
28906 pub user: UserSelectorArg,
28907 pub quota_gb: UserQuota,
28908}
28909
28910impl UserCustomQuotaArg {
28911 pub fn new(user: UserSelectorArg, quota_gb: UserQuota) -> Self {
28912 UserCustomQuotaArg {
28913 user,
28914 quota_gb,
28915 }
28916 }
28917}
28918
28919const USER_CUSTOM_QUOTA_ARG_FIELDS: &[&str] = &["user",
28920 "quota_gb"];
28921impl UserCustomQuotaArg {
28922 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
28923 map: V,
28924 ) -> Result<UserCustomQuotaArg, V::Error> {
28925 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
28926 }
28927
28928 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
28929 mut map: V,
28930 optional: bool,
28931 ) -> Result<Option<UserCustomQuotaArg>, V::Error> {
28932 let mut field_user = None;
28933 let mut field_quota_gb = None;
28934 let mut nothing = true;
28935 while let Some(key) = map.next_key::<&str>()? {
28936 nothing = false;
28937 match key {
28938 "user" => {
28939 if field_user.is_some() {
28940 return Err(::serde::de::Error::duplicate_field("user"));
28941 }
28942 field_user = Some(map.next_value()?);
28943 }
28944 "quota_gb" => {
28945 if field_quota_gb.is_some() {
28946 return Err(::serde::de::Error::duplicate_field("quota_gb"));
28947 }
28948 field_quota_gb = Some(map.next_value()?);
28949 }
28950 _ => {
28951 map.next_value::<::serde_json::Value>()?;
28953 }
28954 }
28955 }
28956 if optional && nothing {
28957 return Ok(None);
28958 }
28959 let result = UserCustomQuotaArg {
28960 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
28961 quota_gb: field_quota_gb.ok_or_else(|| ::serde::de::Error::missing_field("quota_gb"))?,
28962 };
28963 Ok(Some(result))
28964 }
28965
28966 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
28967 &self,
28968 s: &mut S::SerializeStruct,
28969 ) -> Result<(), S::Error> {
28970 use serde::ser::SerializeStruct;
28971 s.serialize_field("user", &self.user)?;
28972 s.serialize_field("quota_gb", &self.quota_gb)?;
28973 Ok(())
28974 }
28975}
28976
28977impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaArg {
28978 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
28979 use serde::de::{MapAccess, Visitor};
28981 struct StructVisitor;
28982 impl<'de> Visitor<'de> for StructVisitor {
28983 type Value = UserCustomQuotaArg;
28984 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
28985 f.write_str("a UserCustomQuotaArg struct")
28986 }
28987 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
28988 UserCustomQuotaArg::internal_deserialize(map)
28989 }
28990 }
28991 deserializer.deserialize_struct("UserCustomQuotaArg", USER_CUSTOM_QUOTA_ARG_FIELDS, StructVisitor)
28992 }
28993}
28994
28995impl ::serde::ser::Serialize for UserCustomQuotaArg {
28996 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
28997 use serde::ser::SerializeStruct;
28999 let mut s = serializer.serialize_struct("UserCustomQuotaArg", 2)?;
29000 self.internal_serialize::<S>(&mut s)?;
29001 s.end()
29002 }
29003}
29004
29005#[derive(Debug, Clone, PartialEq, Eq)]
29008#[non_exhaustive] pub struct UserCustomQuotaResult {
29010 pub user: UserSelectorArg,
29011 pub quota_gb: Option<UserQuota>,
29012}
29013
29014impl UserCustomQuotaResult {
29015 pub fn new(user: UserSelectorArg) -> Self {
29016 UserCustomQuotaResult {
29017 user,
29018 quota_gb: None,
29019 }
29020 }
29021
29022 pub fn with_quota_gb(mut self, value: UserQuota) -> Self {
29023 self.quota_gb = Some(value);
29024 self
29025 }
29026}
29027
29028const USER_CUSTOM_QUOTA_RESULT_FIELDS: &[&str] = &["user",
29029 "quota_gb"];
29030impl UserCustomQuotaResult {
29031 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29032 map: V,
29033 ) -> Result<UserCustomQuotaResult, V::Error> {
29034 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29035 }
29036
29037 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29038 mut map: V,
29039 optional: bool,
29040 ) -> Result<Option<UserCustomQuotaResult>, V::Error> {
29041 let mut field_user = None;
29042 let mut field_quota_gb = None;
29043 let mut nothing = true;
29044 while let Some(key) = map.next_key::<&str>()? {
29045 nothing = false;
29046 match key {
29047 "user" => {
29048 if field_user.is_some() {
29049 return Err(::serde::de::Error::duplicate_field("user"));
29050 }
29051 field_user = Some(map.next_value()?);
29052 }
29053 "quota_gb" => {
29054 if field_quota_gb.is_some() {
29055 return Err(::serde::de::Error::duplicate_field("quota_gb"));
29056 }
29057 field_quota_gb = Some(map.next_value()?);
29058 }
29059 _ => {
29060 map.next_value::<::serde_json::Value>()?;
29062 }
29063 }
29064 }
29065 if optional && nothing {
29066 return Ok(None);
29067 }
29068 let result = UserCustomQuotaResult {
29069 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29070 quota_gb: field_quota_gb.and_then(Option::flatten),
29071 };
29072 Ok(Some(result))
29073 }
29074
29075 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29076 &self,
29077 s: &mut S::SerializeStruct,
29078 ) -> Result<(), S::Error> {
29079 use serde::ser::SerializeStruct;
29080 s.serialize_field("user", &self.user)?;
29081 if let Some(val) = &self.quota_gb {
29082 s.serialize_field("quota_gb", val)?;
29083 }
29084 Ok(())
29085 }
29086}
29087
29088impl<'de> ::serde::de::Deserialize<'de> for UserCustomQuotaResult {
29089 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29090 use serde::de::{MapAccess, Visitor};
29092 struct StructVisitor;
29093 impl<'de> Visitor<'de> for StructVisitor {
29094 type Value = UserCustomQuotaResult;
29095 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29096 f.write_str("a UserCustomQuotaResult struct")
29097 }
29098 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29099 UserCustomQuotaResult::internal_deserialize(map)
29100 }
29101 }
29102 deserializer.deserialize_struct("UserCustomQuotaResult", USER_CUSTOM_QUOTA_RESULT_FIELDS, StructVisitor)
29103 }
29104}
29105
29106impl ::serde::ser::Serialize for UserCustomQuotaResult {
29107 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29108 use serde::ser::SerializeStruct;
29110 let mut s = serializer.serialize_struct("UserCustomQuotaResult", 2)?;
29111 self.internal_serialize::<S>(&mut s)?;
29112 s.end()
29113 }
29114}
29115
29116#[derive(Debug, Clone, PartialEq, Eq)]
29117#[non_exhaustive] pub struct UserDeleteEmailsResult {
29119 pub user: UserSelectorArg,
29120 pub results: Vec<DeleteSecondaryEmailResult>,
29121}
29122
29123impl UserDeleteEmailsResult {
29124 pub fn new(user: UserSelectorArg, results: Vec<DeleteSecondaryEmailResult>) -> Self {
29125 UserDeleteEmailsResult {
29126 user,
29127 results,
29128 }
29129 }
29130}
29131
29132const USER_DELETE_EMAILS_RESULT_FIELDS: &[&str] = &["user",
29133 "results"];
29134impl UserDeleteEmailsResult {
29135 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29136 map: V,
29137 ) -> Result<UserDeleteEmailsResult, V::Error> {
29138 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29139 }
29140
29141 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29142 mut map: V,
29143 optional: bool,
29144 ) -> Result<Option<UserDeleteEmailsResult>, V::Error> {
29145 let mut field_user = None;
29146 let mut field_results = None;
29147 let mut nothing = true;
29148 while let Some(key) = map.next_key::<&str>()? {
29149 nothing = false;
29150 match key {
29151 "user" => {
29152 if field_user.is_some() {
29153 return Err(::serde::de::Error::duplicate_field("user"));
29154 }
29155 field_user = Some(map.next_value()?);
29156 }
29157 "results" => {
29158 if field_results.is_some() {
29159 return Err(::serde::de::Error::duplicate_field("results"));
29160 }
29161 field_results = Some(map.next_value()?);
29162 }
29163 _ => {
29164 map.next_value::<::serde_json::Value>()?;
29166 }
29167 }
29168 }
29169 if optional && nothing {
29170 return Ok(None);
29171 }
29172 let result = UserDeleteEmailsResult {
29173 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29174 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
29175 };
29176 Ok(Some(result))
29177 }
29178
29179 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29180 &self,
29181 s: &mut S::SerializeStruct,
29182 ) -> Result<(), S::Error> {
29183 use serde::ser::SerializeStruct;
29184 s.serialize_field("user", &self.user)?;
29185 s.serialize_field("results", &self.results)?;
29186 Ok(())
29187 }
29188}
29189
29190impl<'de> ::serde::de::Deserialize<'de> for UserDeleteEmailsResult {
29191 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29192 use serde::de::{MapAccess, Visitor};
29194 struct StructVisitor;
29195 impl<'de> Visitor<'de> for StructVisitor {
29196 type Value = UserDeleteEmailsResult;
29197 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29198 f.write_str("a UserDeleteEmailsResult struct")
29199 }
29200 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29201 UserDeleteEmailsResult::internal_deserialize(map)
29202 }
29203 }
29204 deserializer.deserialize_struct("UserDeleteEmailsResult", USER_DELETE_EMAILS_RESULT_FIELDS, StructVisitor)
29205 }
29206}
29207
29208impl ::serde::ser::Serialize for UserDeleteEmailsResult {
29209 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29210 use serde::ser::SerializeStruct;
29212 let mut s = serializer.serialize_struct("UserDeleteEmailsResult", 2)?;
29213 self.internal_serialize::<S>(&mut s)?;
29214 s.end()
29215 }
29216}
29217
29218#[derive(Debug, Clone, PartialEq, Eq)]
29222#[non_exhaustive] pub enum UserDeleteResult {
29224 Success(UserDeleteEmailsResult),
29226 InvalidUser(UserSelectorArg),
29228 Other,
29231}
29232
29233impl<'de> ::serde::de::Deserialize<'de> for UserDeleteResult {
29234 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29235 use serde::de::{self, MapAccess, Visitor};
29237 struct EnumVisitor;
29238 impl<'de> Visitor<'de> for EnumVisitor {
29239 type Value = UserDeleteResult;
29240 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29241 f.write_str("a UserDeleteResult structure")
29242 }
29243 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29244 let tag: &str = match map.next_key()? {
29245 Some(".tag") => map.next_value()?,
29246 _ => return Err(de::Error::missing_field(".tag"))
29247 };
29248 let value = match tag {
29249 "success" => UserDeleteResult::Success(UserDeleteEmailsResult::internal_deserialize(&mut map)?),
29250 "invalid_user" => {
29251 match map.next_key()? {
29252 Some("invalid_user") => UserDeleteResult::InvalidUser(map.next_value()?),
29253 None => return Err(de::Error::missing_field("invalid_user")),
29254 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29255 }
29256 }
29257 _ => UserDeleteResult::Other,
29258 };
29259 crate::eat_json_fields(&mut map)?;
29260 Ok(value)
29261 }
29262 }
29263 const VARIANTS: &[&str] = &["success",
29264 "invalid_user",
29265 "other"];
29266 deserializer.deserialize_struct("UserDeleteResult", VARIANTS, EnumVisitor)
29267 }
29268}
29269
29270impl ::serde::ser::Serialize for UserDeleteResult {
29271 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29272 use serde::ser::SerializeStruct;
29274 match self {
29275 UserDeleteResult::Success(x) => {
29276 let mut s = serializer.serialize_struct("UserDeleteResult", 3)?;
29278 s.serialize_field(".tag", "success")?;
29279 x.internal_serialize::<S>(&mut s)?;
29280 s.end()
29281 }
29282 UserDeleteResult::InvalidUser(x) => {
29283 let mut s = serializer.serialize_struct("UserDeleteResult", 2)?;
29285 s.serialize_field(".tag", "invalid_user")?;
29286 s.serialize_field("invalid_user", x)?;
29287 s.end()
29288 }
29289 UserDeleteResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29290 }
29291 }
29292}
29293
29294#[derive(Debug, Clone, PartialEq, Eq)]
29295#[non_exhaustive] pub struct UserResendEmailsResult {
29297 pub user: UserSelectorArg,
29298 pub results: Vec<ResendSecondaryEmailResult>,
29299}
29300
29301impl UserResendEmailsResult {
29302 pub fn new(user: UserSelectorArg, results: Vec<ResendSecondaryEmailResult>) -> Self {
29303 UserResendEmailsResult {
29304 user,
29305 results,
29306 }
29307 }
29308}
29309
29310const USER_RESEND_EMAILS_RESULT_FIELDS: &[&str] = &["user",
29311 "results"];
29312impl UserResendEmailsResult {
29313 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29314 map: V,
29315 ) -> Result<UserResendEmailsResult, V::Error> {
29316 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29317 }
29318
29319 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29320 mut map: V,
29321 optional: bool,
29322 ) -> Result<Option<UserResendEmailsResult>, V::Error> {
29323 let mut field_user = None;
29324 let mut field_results = None;
29325 let mut nothing = true;
29326 while let Some(key) = map.next_key::<&str>()? {
29327 nothing = false;
29328 match key {
29329 "user" => {
29330 if field_user.is_some() {
29331 return Err(::serde::de::Error::duplicate_field("user"));
29332 }
29333 field_user = Some(map.next_value()?);
29334 }
29335 "results" => {
29336 if field_results.is_some() {
29337 return Err(::serde::de::Error::duplicate_field("results"));
29338 }
29339 field_results = Some(map.next_value()?);
29340 }
29341 _ => {
29342 map.next_value::<::serde_json::Value>()?;
29344 }
29345 }
29346 }
29347 if optional && nothing {
29348 return Ok(None);
29349 }
29350 let result = UserResendEmailsResult {
29351 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29352 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
29353 };
29354 Ok(Some(result))
29355 }
29356
29357 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29358 &self,
29359 s: &mut S::SerializeStruct,
29360 ) -> Result<(), S::Error> {
29361 use serde::ser::SerializeStruct;
29362 s.serialize_field("user", &self.user)?;
29363 s.serialize_field("results", &self.results)?;
29364 Ok(())
29365 }
29366}
29367
29368impl<'de> ::serde::de::Deserialize<'de> for UserResendEmailsResult {
29369 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29370 use serde::de::{MapAccess, Visitor};
29372 struct StructVisitor;
29373 impl<'de> Visitor<'de> for StructVisitor {
29374 type Value = UserResendEmailsResult;
29375 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29376 f.write_str("a UserResendEmailsResult struct")
29377 }
29378 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29379 UserResendEmailsResult::internal_deserialize(map)
29380 }
29381 }
29382 deserializer.deserialize_struct("UserResendEmailsResult", USER_RESEND_EMAILS_RESULT_FIELDS, StructVisitor)
29383 }
29384}
29385
29386impl ::serde::ser::Serialize for UserResendEmailsResult {
29387 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29388 use serde::ser::SerializeStruct;
29390 let mut s = serializer.serialize_struct("UserResendEmailsResult", 2)?;
29391 self.internal_serialize::<S>(&mut s)?;
29392 s.end()
29393 }
29394}
29395
29396#[derive(Debug, Clone, PartialEq, Eq)]
29400#[non_exhaustive] pub enum UserResendResult {
29402 Success(UserResendEmailsResult),
29404 InvalidUser(UserSelectorArg),
29406 Other,
29409}
29410
29411impl<'de> ::serde::de::Deserialize<'de> for UserResendResult {
29412 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29413 use serde::de::{self, MapAccess, Visitor};
29415 struct EnumVisitor;
29416 impl<'de> Visitor<'de> for EnumVisitor {
29417 type Value = UserResendResult;
29418 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29419 f.write_str("a UserResendResult structure")
29420 }
29421 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29422 let tag: &str = match map.next_key()? {
29423 Some(".tag") => map.next_value()?,
29424 _ => return Err(de::Error::missing_field(".tag"))
29425 };
29426 let value = match tag {
29427 "success" => UserResendResult::Success(UserResendEmailsResult::internal_deserialize(&mut map)?),
29428 "invalid_user" => {
29429 match map.next_key()? {
29430 Some("invalid_user") => UserResendResult::InvalidUser(map.next_value()?),
29431 None => return Err(de::Error::missing_field("invalid_user")),
29432 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29433 }
29434 }
29435 _ => UserResendResult::Other,
29436 };
29437 crate::eat_json_fields(&mut map)?;
29438 Ok(value)
29439 }
29440 }
29441 const VARIANTS: &[&str] = &["success",
29442 "invalid_user",
29443 "other"];
29444 deserializer.deserialize_struct("UserResendResult", VARIANTS, EnumVisitor)
29445 }
29446}
29447
29448impl ::serde::ser::Serialize for UserResendResult {
29449 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29450 use serde::ser::SerializeStruct;
29452 match self {
29453 UserResendResult::Success(x) => {
29454 let mut s = serializer.serialize_struct("UserResendResult", 3)?;
29456 s.serialize_field(".tag", "success")?;
29457 x.internal_serialize::<S>(&mut s)?;
29458 s.end()
29459 }
29460 UserResendResult::InvalidUser(x) => {
29461 let mut s = serializer.serialize_struct("UserResendResult", 2)?;
29463 s.serialize_field(".tag", "invalid_user")?;
29464 s.serialize_field("invalid_user", x)?;
29465 s.end()
29466 }
29467 UserResendResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
29468 }
29469 }
29470}
29471
29472#[derive(Debug, Clone, PartialEq, Eq)]
29474#[non_exhaustive] pub struct UserSecondaryEmailsArg {
29476 pub user: UserSelectorArg,
29477 pub secondary_emails: Vec<crate::types::common::EmailAddress>,
29478}
29479
29480impl UserSecondaryEmailsArg {
29481 pub fn new(
29482 user: UserSelectorArg,
29483 secondary_emails: Vec<crate::types::common::EmailAddress>,
29484 ) -> Self {
29485 UserSecondaryEmailsArg {
29486 user,
29487 secondary_emails,
29488 }
29489 }
29490}
29491
29492const USER_SECONDARY_EMAILS_ARG_FIELDS: &[&str] = &["user",
29493 "secondary_emails"];
29494impl UserSecondaryEmailsArg {
29495 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29496 map: V,
29497 ) -> Result<UserSecondaryEmailsArg, V::Error> {
29498 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29499 }
29500
29501 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29502 mut map: V,
29503 optional: bool,
29504 ) -> Result<Option<UserSecondaryEmailsArg>, V::Error> {
29505 let mut field_user = None;
29506 let mut field_secondary_emails = None;
29507 let mut nothing = true;
29508 while let Some(key) = map.next_key::<&str>()? {
29509 nothing = false;
29510 match key {
29511 "user" => {
29512 if field_user.is_some() {
29513 return Err(::serde::de::Error::duplicate_field("user"));
29514 }
29515 field_user = Some(map.next_value()?);
29516 }
29517 "secondary_emails" => {
29518 if field_secondary_emails.is_some() {
29519 return Err(::serde::de::Error::duplicate_field("secondary_emails"));
29520 }
29521 field_secondary_emails = Some(map.next_value()?);
29522 }
29523 _ => {
29524 map.next_value::<::serde_json::Value>()?;
29526 }
29527 }
29528 }
29529 if optional && nothing {
29530 return Ok(None);
29531 }
29532 let result = UserSecondaryEmailsArg {
29533 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29534 secondary_emails: field_secondary_emails.ok_or_else(|| ::serde::de::Error::missing_field("secondary_emails"))?,
29535 };
29536 Ok(Some(result))
29537 }
29538
29539 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29540 &self,
29541 s: &mut S::SerializeStruct,
29542 ) -> Result<(), S::Error> {
29543 use serde::ser::SerializeStruct;
29544 s.serialize_field("user", &self.user)?;
29545 s.serialize_field("secondary_emails", &self.secondary_emails)?;
29546 Ok(())
29547 }
29548}
29549
29550impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsArg {
29551 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29552 use serde::de::{MapAccess, Visitor};
29554 struct StructVisitor;
29555 impl<'de> Visitor<'de> for StructVisitor {
29556 type Value = UserSecondaryEmailsArg;
29557 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29558 f.write_str("a UserSecondaryEmailsArg struct")
29559 }
29560 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29561 UserSecondaryEmailsArg::internal_deserialize(map)
29562 }
29563 }
29564 deserializer.deserialize_struct("UserSecondaryEmailsArg", USER_SECONDARY_EMAILS_ARG_FIELDS, StructVisitor)
29565 }
29566}
29567
29568impl ::serde::ser::Serialize for UserSecondaryEmailsArg {
29569 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29570 use serde::ser::SerializeStruct;
29572 let mut s = serializer.serialize_struct("UserSecondaryEmailsArg", 2)?;
29573 self.internal_serialize::<S>(&mut s)?;
29574 s.end()
29575 }
29576}
29577
29578#[derive(Debug, Clone, PartialEq, Eq)]
29579#[non_exhaustive] pub struct UserSecondaryEmailsResult {
29581 pub user: UserSelectorArg,
29582 pub results: Vec<AddSecondaryEmailResult>,
29583}
29584
29585impl UserSecondaryEmailsResult {
29586 pub fn new(user: UserSelectorArg, results: Vec<AddSecondaryEmailResult>) -> Self {
29587 UserSecondaryEmailsResult {
29588 user,
29589 results,
29590 }
29591 }
29592}
29593
29594const USER_SECONDARY_EMAILS_RESULT_FIELDS: &[&str] = &["user",
29595 "results"];
29596impl UserSecondaryEmailsResult {
29597 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
29598 map: V,
29599 ) -> Result<UserSecondaryEmailsResult, V::Error> {
29600 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
29601 }
29602
29603 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
29604 mut map: V,
29605 optional: bool,
29606 ) -> Result<Option<UserSecondaryEmailsResult>, V::Error> {
29607 let mut field_user = None;
29608 let mut field_results = None;
29609 let mut nothing = true;
29610 while let Some(key) = map.next_key::<&str>()? {
29611 nothing = false;
29612 match key {
29613 "user" => {
29614 if field_user.is_some() {
29615 return Err(::serde::de::Error::duplicate_field("user"));
29616 }
29617 field_user = Some(map.next_value()?);
29618 }
29619 "results" => {
29620 if field_results.is_some() {
29621 return Err(::serde::de::Error::duplicate_field("results"));
29622 }
29623 field_results = Some(map.next_value()?);
29624 }
29625 _ => {
29626 map.next_value::<::serde_json::Value>()?;
29628 }
29629 }
29630 }
29631 if optional && nothing {
29632 return Ok(None);
29633 }
29634 let result = UserSecondaryEmailsResult {
29635 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
29636 results: field_results.ok_or_else(|| ::serde::de::Error::missing_field("results"))?,
29637 };
29638 Ok(Some(result))
29639 }
29640
29641 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
29642 &self,
29643 s: &mut S::SerializeStruct,
29644 ) -> Result<(), S::Error> {
29645 use serde::ser::SerializeStruct;
29646 s.serialize_field("user", &self.user)?;
29647 s.serialize_field("results", &self.results)?;
29648 Ok(())
29649 }
29650}
29651
29652impl<'de> ::serde::de::Deserialize<'de> for UserSecondaryEmailsResult {
29653 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29654 use serde::de::{MapAccess, Visitor};
29656 struct StructVisitor;
29657 impl<'de> Visitor<'de> for StructVisitor {
29658 type Value = UserSecondaryEmailsResult;
29659 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29660 f.write_str("a UserSecondaryEmailsResult struct")
29661 }
29662 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
29663 UserSecondaryEmailsResult::internal_deserialize(map)
29664 }
29665 }
29666 deserializer.deserialize_struct("UserSecondaryEmailsResult", USER_SECONDARY_EMAILS_RESULT_FIELDS, StructVisitor)
29667 }
29668}
29669
29670impl ::serde::ser::Serialize for UserSecondaryEmailsResult {
29671 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29672 use serde::ser::SerializeStruct;
29674 let mut s = serializer.serialize_struct("UserSecondaryEmailsResult", 2)?;
29675 self.internal_serialize::<S>(&mut s)?;
29676 s.end()
29677 }
29678}
29679
29680#[derive(Debug, Clone, PartialEq, Eq)]
29682pub enum UserSelectorArg {
29683 TeamMemberId(crate::types::team_common::TeamMemberId),
29684 ExternalId(crate::types::team_common::MemberExternalId),
29685 Email(crate::types::common::EmailAddress),
29686}
29687
29688impl<'de> ::serde::de::Deserialize<'de> for UserSelectorArg {
29689 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29690 use serde::de::{self, MapAccess, Visitor};
29692 struct EnumVisitor;
29693 impl<'de> Visitor<'de> for EnumVisitor {
29694 type Value = UserSelectorArg;
29695 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29696 f.write_str("a UserSelectorArg structure")
29697 }
29698 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29699 let tag: &str = match map.next_key()? {
29700 Some(".tag") => map.next_value()?,
29701 _ => return Err(de::Error::missing_field(".tag"))
29702 };
29703 let value = match tag {
29704 "team_member_id" => {
29705 match map.next_key()? {
29706 Some("team_member_id") => UserSelectorArg::TeamMemberId(map.next_value()?),
29707 None => return Err(de::Error::missing_field("team_member_id")),
29708 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29709 }
29710 }
29711 "external_id" => {
29712 match map.next_key()? {
29713 Some("external_id") => UserSelectorArg::ExternalId(map.next_value()?),
29714 None => return Err(de::Error::missing_field("external_id")),
29715 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29716 }
29717 }
29718 "email" => {
29719 match map.next_key()? {
29720 Some("email") => UserSelectorArg::Email(map.next_value()?),
29721 None => return Err(de::Error::missing_field("email")),
29722 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29723 }
29724 }
29725 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
29726 };
29727 crate::eat_json_fields(&mut map)?;
29728 Ok(value)
29729 }
29730 }
29731 const VARIANTS: &[&str] = &["team_member_id",
29732 "external_id",
29733 "email"];
29734 deserializer.deserialize_struct("UserSelectorArg", VARIANTS, EnumVisitor)
29735 }
29736}
29737
29738impl ::serde::ser::Serialize for UserSelectorArg {
29739 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29740 use serde::ser::SerializeStruct;
29742 match self {
29743 UserSelectorArg::TeamMemberId(x) => {
29744 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
29746 s.serialize_field(".tag", "team_member_id")?;
29747 s.serialize_field("team_member_id", x)?;
29748 s.end()
29749 }
29750 UserSelectorArg::ExternalId(x) => {
29751 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
29753 s.serialize_field(".tag", "external_id")?;
29754 s.serialize_field("external_id", x)?;
29755 s.end()
29756 }
29757 UserSelectorArg::Email(x) => {
29758 let mut s = serializer.serialize_struct("UserSelectorArg", 2)?;
29760 s.serialize_field(".tag", "email")?;
29761 s.serialize_field("email", x)?;
29762 s.end()
29763 }
29764 }
29765 }
29766}
29767
29768#[derive(Debug, Clone, PartialEq, Eq)]
29770pub enum UserSelectorError {
29771 UserNotFound,
29774}
29775
29776impl<'de> ::serde::de::Deserialize<'de> for UserSelectorError {
29777 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29778 use serde::de::{self, MapAccess, Visitor};
29780 struct EnumVisitor;
29781 impl<'de> Visitor<'de> for EnumVisitor {
29782 type Value = UserSelectorError;
29783 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29784 f.write_str("a UserSelectorError structure")
29785 }
29786 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29787 let tag: &str = match map.next_key()? {
29788 Some(".tag") => map.next_value()?,
29789 _ => return Err(de::Error::missing_field(".tag"))
29790 };
29791 let value = match tag {
29792 "user_not_found" => UserSelectorError::UserNotFound,
29793 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
29794 };
29795 crate::eat_json_fields(&mut map)?;
29796 Ok(value)
29797 }
29798 }
29799 const VARIANTS: &[&str] = &["user_not_found"];
29800 deserializer.deserialize_struct("UserSelectorError", VARIANTS, EnumVisitor)
29801 }
29802}
29803
29804impl ::serde::ser::Serialize for UserSelectorError {
29805 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29806 use serde::ser::SerializeStruct;
29808 match self {
29809 UserSelectorError::UserNotFound => {
29810 let mut s = serializer.serialize_struct("UserSelectorError", 1)?;
29812 s.serialize_field(".tag", "user_not_found")?;
29813 s.end()
29814 }
29815 }
29816 }
29817}
29818
29819impl ::std::error::Error for UserSelectorError {
29820}
29821
29822impl ::std::fmt::Display for UserSelectorError {
29823 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29824 match self {
29825 UserSelectorError::UserNotFound => f.write_str("No matching user found. The provided team_member_id, email, or external_id does not exist on this team."),
29826 }
29827 }
29828}
29829
29830#[derive(Debug, Clone, PartialEq, Eq)]
29832pub enum UsersSelectorArg {
29833 TeamMemberIds(Vec<crate::types::team_common::TeamMemberId>),
29835 ExternalIds(Vec<crate::types::team_common::MemberExternalId>),
29837 Emails(Vec<crate::types::common::EmailAddress>),
29839}
29840
29841impl<'de> ::serde::de::Deserialize<'de> for UsersSelectorArg {
29842 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
29843 use serde::de::{self, MapAccess, Visitor};
29845 struct EnumVisitor;
29846 impl<'de> Visitor<'de> for EnumVisitor {
29847 type Value = UsersSelectorArg;
29848 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
29849 f.write_str("a UsersSelectorArg structure")
29850 }
29851 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
29852 let tag: &str = match map.next_key()? {
29853 Some(".tag") => map.next_value()?,
29854 _ => return Err(de::Error::missing_field(".tag"))
29855 };
29856 let value = match tag {
29857 "team_member_ids" => {
29858 match map.next_key()? {
29859 Some("team_member_ids") => UsersSelectorArg::TeamMemberIds(map.next_value()?),
29860 None => return Err(de::Error::missing_field("team_member_ids")),
29861 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29862 }
29863 }
29864 "external_ids" => {
29865 match map.next_key()? {
29866 Some("external_ids") => UsersSelectorArg::ExternalIds(map.next_value()?),
29867 None => return Err(de::Error::missing_field("external_ids")),
29868 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29869 }
29870 }
29871 "emails" => {
29872 match map.next_key()? {
29873 Some("emails") => UsersSelectorArg::Emails(map.next_value()?),
29874 None => return Err(de::Error::missing_field("emails")),
29875 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
29876 }
29877 }
29878 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
29879 };
29880 crate::eat_json_fields(&mut map)?;
29881 Ok(value)
29882 }
29883 }
29884 const VARIANTS: &[&str] = &["team_member_ids",
29885 "external_ids",
29886 "emails"];
29887 deserializer.deserialize_struct("UsersSelectorArg", VARIANTS, EnumVisitor)
29888 }
29889}
29890
29891impl ::serde::ser::Serialize for UsersSelectorArg {
29892 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
29893 use serde::ser::SerializeStruct;
29895 match self {
29896 UsersSelectorArg::TeamMemberIds(x) => {
29897 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
29899 s.serialize_field(".tag", "team_member_ids")?;
29900 s.serialize_field("team_member_ids", x)?;
29901 s.end()
29902 }
29903 UsersSelectorArg::ExternalIds(x) => {
29904 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
29906 s.serialize_field(".tag", "external_ids")?;
29907 s.serialize_field("external_ids", x)?;
29908 s.end()
29909 }
29910 UsersSelectorArg::Emails(x) => {
29911 let mut s = serializer.serialize_struct("UsersSelectorArg", 2)?;
29913 s.serialize_field(".tag", "emails")?;
29914 s.serialize_field("emails", x)?;
29915 s.end()
29916 }
29917 }
29918 }
29919}
29920