datadog_api_client/datadogV1/model/
model_synthetics_basic_auth.rs1use serde::{Deserialize, Deserializer, Serialize};
5
6#[non_exhaustive]
8#[derive(Clone, Debug, PartialEq, Serialize)]
9#[serde(untagged)]
10pub enum SyntheticsBasicAuth {
11 SyntheticsBasicAuthWeb(Box<crate::datadogV1::model::SyntheticsBasicAuthWeb>),
12 SyntheticsBasicAuthSigv4(Box<crate::datadogV1::model::SyntheticsBasicAuthSigv4>),
13 SyntheticsBasicAuthNTLM(Box<crate::datadogV1::model::SyntheticsBasicAuthNTLM>),
14 SyntheticsBasicAuthDigest(Box<crate::datadogV1::model::SyntheticsBasicAuthDigest>),
15 SyntheticsBasicAuthOauthClient(Box<crate::datadogV1::model::SyntheticsBasicAuthOauthClient>),
16 SyntheticsBasicAuthOauthROP(Box<crate::datadogV1::model::SyntheticsBasicAuthOauthROP>),
17 UnparsedObject(crate::datadog::UnparsedObject),
18}
19
20impl<'de> Deserialize<'de> for SyntheticsBasicAuth {
21 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
22 where
23 D: Deserializer<'de>,
24 {
25 let value: serde_json::Value = Deserialize::deserialize(deserializer)?;
26 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV1::model::SyntheticsBasicAuthWeb>>(
27 value.clone(),
28 ) {
29 if !_v._unparsed {
30 return Ok(SyntheticsBasicAuth::SyntheticsBasicAuthWeb(_v));
31 }
32 }
33 if let Ok(_v) = serde_json::from_value::<
34 Box<crate::datadogV1::model::SyntheticsBasicAuthSigv4>,
35 >(value.clone())
36 {
37 if !_v._unparsed {
38 return Ok(SyntheticsBasicAuth::SyntheticsBasicAuthSigv4(_v));
39 }
40 }
41 if let Ok(_v) = serde_json::from_value::<
42 Box<crate::datadogV1::model::SyntheticsBasicAuthNTLM>,
43 >(value.clone())
44 {
45 if !_v._unparsed {
46 return Ok(SyntheticsBasicAuth::SyntheticsBasicAuthNTLM(_v));
47 }
48 }
49 if let Ok(_v) = serde_json::from_value::<
50 Box<crate::datadogV1::model::SyntheticsBasicAuthDigest>,
51 >(value.clone())
52 {
53 if !_v._unparsed {
54 return Ok(SyntheticsBasicAuth::SyntheticsBasicAuthDigest(_v));
55 }
56 }
57 if let Ok(_v) = serde_json::from_value::<
58 Box<crate::datadogV1::model::SyntheticsBasicAuthOauthClient>,
59 >(value.clone())
60 {
61 if !_v._unparsed {
62 return Ok(SyntheticsBasicAuth::SyntheticsBasicAuthOauthClient(_v));
63 }
64 }
65 if let Ok(_v) = serde_json::from_value::<
66 Box<crate::datadogV1::model::SyntheticsBasicAuthOauthROP>,
67 >(value.clone())
68 {
69 if !_v._unparsed {
70 return Ok(SyntheticsBasicAuth::SyntheticsBasicAuthOauthROP(_v));
71 }
72 }
73
74 return Ok(SyntheticsBasicAuth::UnparsedObject(
75 crate::datadog::UnparsedObject { value },
76 ));
77 }
78}