datadog_api_client/datadogV1/model/
model_synthetics_browser_test_failure_code.rs

1// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2// This product includes software developed at Datadog (https://www.datadoghq.com/).
3// Copyright 2019-Present Datadog, Inc.
4
5use serde::{Deserialize, Deserializer, Serialize, Serializer};
6
7#[non_exhaustive]
8#[derive(Clone, Debug, Eq, PartialEq)]
9pub enum SyntheticsBrowserTestFailureCode {
10    API_REQUEST_FAILURE,
11    ASSERTION_FAILURE,
12    DOWNLOAD_FILE_TOO_LARGE,
13    ELEMENT_NOT_INTERACTABLE,
14    EMAIL_VARIABLE_NOT_DEFINED,
15    EVALUATE_JAVASCRIPT,
16    EVALUATE_JAVASCRIPT_CONTEXT,
17    EXTRACT_VARIABLE,
18    FORBIDDEN_URL,
19    FRAME_DETACHED,
20    INCONSISTENCIES,
21    INTERNAL_ERROR,
22    INVALID_TYPE_TEXT_DELAY,
23    INVALID_URL,
24    INVALID_VARIABLE_PATTERN,
25    INVISIBLE_ELEMENT,
26    LOCATE_ELEMENT,
27    NAVIGATE_TO_LINK,
28    OPEN_URL,
29    PRESS_KEY,
30    SERVER_CERTIFICATE,
31    SELECT_OPTION,
32    STEP_TIMEOUT,
33    SUB_TEST_NOT_PASSED,
34    TEST_TIMEOUT,
35    TOO_MANY_HTTP_REQUESTS,
36    UNAVAILABLE_BROWSER,
37    UNKNOWN,
38    UNSUPPORTED_AUTH_SCHEMA,
39    UPLOAD_FILES_ELEMENT_TYPE,
40    UPLOAD_FILES_DIALOG,
41    UPLOAD_FILES_DYNAMIC_ELEMENT,
42    UPLOAD_FILES_NAME,
43    UnparsedObject(crate::datadog::UnparsedObject),
44}
45
46impl ToString for SyntheticsBrowserTestFailureCode {
47    fn to_string(&self) -> String {
48        match self {
49            Self::API_REQUEST_FAILURE => String::from("API_REQUEST_FAILURE"),
50            Self::ASSERTION_FAILURE => String::from("ASSERTION_FAILURE"),
51            Self::DOWNLOAD_FILE_TOO_LARGE => String::from("DOWNLOAD_FILE_TOO_LARGE"),
52            Self::ELEMENT_NOT_INTERACTABLE => String::from("ELEMENT_NOT_INTERACTABLE"),
53            Self::EMAIL_VARIABLE_NOT_DEFINED => String::from("EMAIL_VARIABLE_NOT_DEFINED"),
54            Self::EVALUATE_JAVASCRIPT => String::from("EVALUATE_JAVASCRIPT"),
55            Self::EVALUATE_JAVASCRIPT_CONTEXT => String::from("EVALUATE_JAVASCRIPT_CONTEXT"),
56            Self::EXTRACT_VARIABLE => String::from("EXTRACT_VARIABLE"),
57            Self::FORBIDDEN_URL => String::from("FORBIDDEN_URL"),
58            Self::FRAME_DETACHED => String::from("FRAME_DETACHED"),
59            Self::INCONSISTENCIES => String::from("INCONSISTENCIES"),
60            Self::INTERNAL_ERROR => String::from("INTERNAL_ERROR"),
61            Self::INVALID_TYPE_TEXT_DELAY => String::from("INVALID_TYPE_TEXT_DELAY"),
62            Self::INVALID_URL => String::from("INVALID_URL"),
63            Self::INVALID_VARIABLE_PATTERN => String::from("INVALID_VARIABLE_PATTERN"),
64            Self::INVISIBLE_ELEMENT => String::from("INVISIBLE_ELEMENT"),
65            Self::LOCATE_ELEMENT => String::from("LOCATE_ELEMENT"),
66            Self::NAVIGATE_TO_LINK => String::from("NAVIGATE_TO_LINK"),
67            Self::OPEN_URL => String::from("OPEN_URL"),
68            Self::PRESS_KEY => String::from("PRESS_KEY"),
69            Self::SERVER_CERTIFICATE => String::from("SERVER_CERTIFICATE"),
70            Self::SELECT_OPTION => String::from("SELECT_OPTION"),
71            Self::STEP_TIMEOUT => String::from("STEP_TIMEOUT"),
72            Self::SUB_TEST_NOT_PASSED => String::from("SUB_TEST_NOT_PASSED"),
73            Self::TEST_TIMEOUT => String::from("TEST_TIMEOUT"),
74            Self::TOO_MANY_HTTP_REQUESTS => String::from("TOO_MANY_HTTP_REQUESTS"),
75            Self::UNAVAILABLE_BROWSER => String::from("UNAVAILABLE_BROWSER"),
76            Self::UNKNOWN => String::from("UNKNOWN"),
77            Self::UNSUPPORTED_AUTH_SCHEMA => String::from("UNSUPPORTED_AUTH_SCHEMA"),
78            Self::UPLOAD_FILES_ELEMENT_TYPE => String::from("UPLOAD_FILES_ELEMENT_TYPE"),
79            Self::UPLOAD_FILES_DIALOG => String::from("UPLOAD_FILES_DIALOG"),
80            Self::UPLOAD_FILES_DYNAMIC_ELEMENT => String::from("UPLOAD_FILES_DYNAMIC_ELEMENT"),
81            Self::UPLOAD_FILES_NAME => String::from("UPLOAD_FILES_NAME"),
82            Self::UnparsedObject(v) => v.value.to_string(),
83        }
84    }
85}
86
87impl Serialize for SyntheticsBrowserTestFailureCode {
88    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
89    where
90        S: Serializer,
91    {
92        match self {
93            Self::UnparsedObject(v) => v.serialize(serializer),
94            _ => serializer.serialize_str(self.to_string().as_str()),
95        }
96    }
97}
98
99impl<'de> Deserialize<'de> for SyntheticsBrowserTestFailureCode {
100    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
101    where
102        D: Deserializer<'de>,
103    {
104        let s: String = String::deserialize(deserializer)?;
105        Ok(match s.as_str() {
106            "API_REQUEST_FAILURE" => Self::API_REQUEST_FAILURE,
107            "ASSERTION_FAILURE" => Self::ASSERTION_FAILURE,
108            "DOWNLOAD_FILE_TOO_LARGE" => Self::DOWNLOAD_FILE_TOO_LARGE,
109            "ELEMENT_NOT_INTERACTABLE" => Self::ELEMENT_NOT_INTERACTABLE,
110            "EMAIL_VARIABLE_NOT_DEFINED" => Self::EMAIL_VARIABLE_NOT_DEFINED,
111            "EVALUATE_JAVASCRIPT" => Self::EVALUATE_JAVASCRIPT,
112            "EVALUATE_JAVASCRIPT_CONTEXT" => Self::EVALUATE_JAVASCRIPT_CONTEXT,
113            "EXTRACT_VARIABLE" => Self::EXTRACT_VARIABLE,
114            "FORBIDDEN_URL" => Self::FORBIDDEN_URL,
115            "FRAME_DETACHED" => Self::FRAME_DETACHED,
116            "INCONSISTENCIES" => Self::INCONSISTENCIES,
117            "INTERNAL_ERROR" => Self::INTERNAL_ERROR,
118            "INVALID_TYPE_TEXT_DELAY" => Self::INVALID_TYPE_TEXT_DELAY,
119            "INVALID_URL" => Self::INVALID_URL,
120            "INVALID_VARIABLE_PATTERN" => Self::INVALID_VARIABLE_PATTERN,
121            "INVISIBLE_ELEMENT" => Self::INVISIBLE_ELEMENT,
122            "LOCATE_ELEMENT" => Self::LOCATE_ELEMENT,
123            "NAVIGATE_TO_LINK" => Self::NAVIGATE_TO_LINK,
124            "OPEN_URL" => Self::OPEN_URL,
125            "PRESS_KEY" => Self::PRESS_KEY,
126            "SERVER_CERTIFICATE" => Self::SERVER_CERTIFICATE,
127            "SELECT_OPTION" => Self::SELECT_OPTION,
128            "STEP_TIMEOUT" => Self::STEP_TIMEOUT,
129            "SUB_TEST_NOT_PASSED" => Self::SUB_TEST_NOT_PASSED,
130            "TEST_TIMEOUT" => Self::TEST_TIMEOUT,
131            "TOO_MANY_HTTP_REQUESTS" => Self::TOO_MANY_HTTP_REQUESTS,
132            "UNAVAILABLE_BROWSER" => Self::UNAVAILABLE_BROWSER,
133            "UNKNOWN" => Self::UNKNOWN,
134            "UNSUPPORTED_AUTH_SCHEMA" => Self::UNSUPPORTED_AUTH_SCHEMA,
135            "UPLOAD_FILES_ELEMENT_TYPE" => Self::UPLOAD_FILES_ELEMENT_TYPE,
136            "UPLOAD_FILES_DIALOG" => Self::UPLOAD_FILES_DIALOG,
137            "UPLOAD_FILES_DYNAMIC_ELEMENT" => Self::UPLOAD_FILES_DYNAMIC_ELEMENT,
138            "UPLOAD_FILES_NAME" => Self::UPLOAD_FILES_NAME,
139            _ => Self::UnparsedObject(crate::datadog::UnparsedObject {
140                value: serde_json::Value::String(s.into()),
141            }),
142        })
143    }
144}