datadog_api_client/datadogV1/model/
model_synthetics_api_test_failure_code.rs1use serde::{Deserialize, Deserializer, Serialize, Serializer};
6
7#[non_exhaustive]
8#[derive(Clone, Debug, Eq, PartialEq)]
9pub enum SyntheticsApiTestFailureCode {
10 BODY_TOO_LARGE,
11 DENIED,
12 TOO_MANY_REDIRECTS,
13 AUTHENTICATION_ERROR,
14 DECRYPTION,
15 INVALID_CHAR_IN_HEADER,
16 HEADER_TOO_LARGE,
17 HEADERS_INCOMPATIBLE_CONTENT_LENGTH,
18 INVALID_REQUEST,
19 REQUIRES_UPDATE,
20 UNESCAPED_CHARACTERS_IN_REQUEST_PATH,
21 MALFORMED_RESPONSE,
22 INCORRECT_ASSERTION,
23 CONNREFUSED,
24 CONNRESET,
25 DNS,
26 HOSTUNREACH,
27 NETUNREACH,
28 TIMEOUT,
29 SSL,
30 OCSP,
31 INVALID_TEST,
32 TUNNEL,
33 WEBSOCKET,
34 UNKNOWN,
35 INTERNAL_ERROR,
36 UnparsedObject(crate::datadog::UnparsedObject),
37}
38
39impl ToString for SyntheticsApiTestFailureCode {
40 fn to_string(&self) -> String {
41 match self {
42 Self::BODY_TOO_LARGE => String::from("BODY_TOO_LARGE"),
43 Self::DENIED => String::from("DENIED"),
44 Self::TOO_MANY_REDIRECTS => String::from("TOO_MANY_REDIRECTS"),
45 Self::AUTHENTICATION_ERROR => String::from("AUTHENTICATION_ERROR"),
46 Self::DECRYPTION => String::from("DECRYPTION"),
47 Self::INVALID_CHAR_IN_HEADER => String::from("INVALID_CHAR_IN_HEADER"),
48 Self::HEADER_TOO_LARGE => String::from("HEADER_TOO_LARGE"),
49 Self::HEADERS_INCOMPATIBLE_CONTENT_LENGTH => {
50 String::from("HEADERS_INCOMPATIBLE_CONTENT_LENGTH")
51 }
52 Self::INVALID_REQUEST => String::from("INVALID_REQUEST"),
53 Self::REQUIRES_UPDATE => String::from("REQUIRES_UPDATE"),
54 Self::UNESCAPED_CHARACTERS_IN_REQUEST_PATH => {
55 String::from("UNESCAPED_CHARACTERS_IN_REQUEST_PATH")
56 }
57 Self::MALFORMED_RESPONSE => String::from("MALFORMED_RESPONSE"),
58 Self::INCORRECT_ASSERTION => String::from("INCORRECT_ASSERTION"),
59 Self::CONNREFUSED => String::from("CONNREFUSED"),
60 Self::CONNRESET => String::from("CONNRESET"),
61 Self::DNS => String::from("DNS"),
62 Self::HOSTUNREACH => String::from("HOSTUNREACH"),
63 Self::NETUNREACH => String::from("NETUNREACH"),
64 Self::TIMEOUT => String::from("TIMEOUT"),
65 Self::SSL => String::from("SSL"),
66 Self::OCSP => String::from("OCSP"),
67 Self::INVALID_TEST => String::from("INVALID_TEST"),
68 Self::TUNNEL => String::from("TUNNEL"),
69 Self::WEBSOCKET => String::from("WEBSOCKET"),
70 Self::UNKNOWN => String::from("UNKNOWN"),
71 Self::INTERNAL_ERROR => String::from("INTERNAL_ERROR"),
72 Self::UnparsedObject(v) => v.value.to_string(),
73 }
74 }
75}
76
77impl Serialize for SyntheticsApiTestFailureCode {
78 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
79 where
80 S: Serializer,
81 {
82 match self {
83 Self::UnparsedObject(v) => v.serialize(serializer),
84 _ => serializer.serialize_str(self.to_string().as_str()),
85 }
86 }
87}
88
89impl<'de> Deserialize<'de> for SyntheticsApiTestFailureCode {
90 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
91 where
92 D: Deserializer<'de>,
93 {
94 let s: String = String::deserialize(deserializer)?;
95 Ok(match s.as_str() {
96 "BODY_TOO_LARGE" => Self::BODY_TOO_LARGE,
97 "DENIED" => Self::DENIED,
98 "TOO_MANY_REDIRECTS" => Self::TOO_MANY_REDIRECTS,
99 "AUTHENTICATION_ERROR" => Self::AUTHENTICATION_ERROR,
100 "DECRYPTION" => Self::DECRYPTION,
101 "INVALID_CHAR_IN_HEADER" => Self::INVALID_CHAR_IN_HEADER,
102 "HEADER_TOO_LARGE" => Self::HEADER_TOO_LARGE,
103 "HEADERS_INCOMPATIBLE_CONTENT_LENGTH" => Self::HEADERS_INCOMPATIBLE_CONTENT_LENGTH,
104 "INVALID_REQUEST" => Self::INVALID_REQUEST,
105 "REQUIRES_UPDATE" => Self::REQUIRES_UPDATE,
106 "UNESCAPED_CHARACTERS_IN_REQUEST_PATH" => Self::UNESCAPED_CHARACTERS_IN_REQUEST_PATH,
107 "MALFORMED_RESPONSE" => Self::MALFORMED_RESPONSE,
108 "INCORRECT_ASSERTION" => Self::INCORRECT_ASSERTION,
109 "CONNREFUSED" => Self::CONNREFUSED,
110 "CONNRESET" => Self::CONNRESET,
111 "DNS" => Self::DNS,
112 "HOSTUNREACH" => Self::HOSTUNREACH,
113 "NETUNREACH" => Self::NETUNREACH,
114 "TIMEOUT" => Self::TIMEOUT,
115 "SSL" => Self::SSL,
116 "OCSP" => Self::OCSP,
117 "INVALID_TEST" => Self::INVALID_TEST,
118 "TUNNEL" => Self::TUNNEL,
119 "WEBSOCKET" => Self::WEBSOCKET,
120 "UNKNOWN" => Self::UNKNOWN,
121 "INTERNAL_ERROR" => Self::INTERNAL_ERROR,
122 _ => Self::UnparsedObject(crate::datadog::UnparsedObject {
123 value: serde_json::Value::String(s.into()),
124 }),
125 })
126 }
127}