datadog_api_client/datadogV2/model/
model_action_connection_integration.rs1use serde::{Deserialize, Deserializer, Serialize};
5
6#[non_exhaustive]
8#[derive(Clone, Debug, PartialEq, Serialize)]
9#[serde(untagged)]
10pub enum ActionConnectionIntegration {
11 AWSIntegration(Box<crate::datadogV2::model::AWSIntegration>),
12 AnthropicIntegration(Box<crate::datadogV2::model::AnthropicIntegration>),
13 AsanaIntegration(Box<crate::datadogV2::model::AsanaIntegration>),
14 AzureIntegration(Box<crate::datadogV2::model::AzureIntegration>),
15 CircleCIIntegration(Box<crate::datadogV2::model::CircleCIIntegration>),
16 ClickupIntegration(Box<crate::datadogV2::model::ClickupIntegration>),
17 CloudflareIntegration(Box<crate::datadogV2::model::CloudflareIntegration>),
18 ConfigCatIntegration(Box<crate::datadogV2::model::ConfigCatIntegration>),
19 DatadogIntegration(Box<crate::datadogV2::model::DatadogIntegration>),
20 FastlyIntegration(Box<crate::datadogV2::model::FastlyIntegration>),
21 FreshserviceIntegration(Box<crate::datadogV2::model::FreshserviceIntegration>),
22 GCPIntegration(Box<crate::datadogV2::model::GCPIntegration>),
23 GeminiIntegration(Box<crate::datadogV2::model::GeminiIntegration>),
24 GitlabIntegration(Box<crate::datadogV2::model::GitlabIntegration>),
25 GreyNoiseIntegration(Box<crate::datadogV2::model::GreyNoiseIntegration>),
26 HTTPIntegration(Box<crate::datadogV2::model::HTTPIntegration>),
27 LaunchDarklyIntegration(Box<crate::datadogV2::model::LaunchDarklyIntegration>),
28 NotionIntegration(Box<crate::datadogV2::model::NotionIntegration>),
29 OktaIntegration(Box<crate::datadogV2::model::OktaIntegration>),
30 OpenAIIntegration(Box<crate::datadogV2::model::OpenAIIntegration>),
31 ServiceNowIntegration(Box<crate::datadogV2::model::ServiceNowIntegration>),
32 SplitIntegration(Box<crate::datadogV2::model::SplitIntegration>),
33 StatsigIntegration(Box<crate::datadogV2::model::StatsigIntegration>),
34 VirusTotalIntegration(Box<crate::datadogV2::model::VirusTotalIntegration>),
35 UnparsedObject(crate::datadog::UnparsedObject),
36}
37
38impl<'de> Deserialize<'de> for ActionConnectionIntegration {
39 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
40 where
41 D: Deserializer<'de>,
42 {
43 let value: serde_json::Value = Deserialize::deserialize(deserializer)?;
44 if let Ok(_v) =
45 serde_json::from_value::<Box<crate::datadogV2::model::AWSIntegration>>(value.clone())
46 {
47 if !_v._unparsed {
48 return Ok(ActionConnectionIntegration::AWSIntegration(_v));
49 }
50 }
51 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::AnthropicIntegration>>(
52 value.clone(),
53 ) {
54 if !_v._unparsed {
55 return Ok(ActionConnectionIntegration::AnthropicIntegration(_v));
56 }
57 }
58 if let Ok(_v) =
59 serde_json::from_value::<Box<crate::datadogV2::model::AsanaIntegration>>(value.clone())
60 {
61 if !_v._unparsed {
62 return Ok(ActionConnectionIntegration::AsanaIntegration(_v));
63 }
64 }
65 if let Ok(_v) =
66 serde_json::from_value::<Box<crate::datadogV2::model::AzureIntegration>>(value.clone())
67 {
68 if !_v._unparsed {
69 return Ok(ActionConnectionIntegration::AzureIntegration(_v));
70 }
71 }
72 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::CircleCIIntegration>>(
73 value.clone(),
74 ) {
75 if !_v._unparsed {
76 return Ok(ActionConnectionIntegration::CircleCIIntegration(_v));
77 }
78 }
79 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::ClickupIntegration>>(
80 value.clone(),
81 ) {
82 if !_v._unparsed {
83 return Ok(ActionConnectionIntegration::ClickupIntegration(_v));
84 }
85 }
86 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::CloudflareIntegration>>(
87 value.clone(),
88 ) {
89 if !_v._unparsed {
90 return Ok(ActionConnectionIntegration::CloudflareIntegration(_v));
91 }
92 }
93 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::ConfigCatIntegration>>(
94 value.clone(),
95 ) {
96 if !_v._unparsed {
97 return Ok(ActionConnectionIntegration::ConfigCatIntegration(_v));
98 }
99 }
100 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::DatadogIntegration>>(
101 value.clone(),
102 ) {
103 if !_v._unparsed {
104 return Ok(ActionConnectionIntegration::DatadogIntegration(_v));
105 }
106 }
107 if let Ok(_v) =
108 serde_json::from_value::<Box<crate::datadogV2::model::FastlyIntegration>>(value.clone())
109 {
110 if !_v._unparsed {
111 return Ok(ActionConnectionIntegration::FastlyIntegration(_v));
112 }
113 }
114 if let Ok(_v) = serde_json::from_value::<
115 Box<crate::datadogV2::model::FreshserviceIntegration>,
116 >(value.clone())
117 {
118 if !_v._unparsed {
119 return Ok(ActionConnectionIntegration::FreshserviceIntegration(_v));
120 }
121 }
122 if let Ok(_v) =
123 serde_json::from_value::<Box<crate::datadogV2::model::GCPIntegration>>(value.clone())
124 {
125 if !_v._unparsed {
126 return Ok(ActionConnectionIntegration::GCPIntegration(_v));
127 }
128 }
129 if let Ok(_v) =
130 serde_json::from_value::<Box<crate::datadogV2::model::GeminiIntegration>>(value.clone())
131 {
132 if !_v._unparsed {
133 return Ok(ActionConnectionIntegration::GeminiIntegration(_v));
134 }
135 }
136 if let Ok(_v) =
137 serde_json::from_value::<Box<crate::datadogV2::model::GitlabIntegration>>(value.clone())
138 {
139 if !_v._unparsed {
140 return Ok(ActionConnectionIntegration::GitlabIntegration(_v));
141 }
142 }
143 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::GreyNoiseIntegration>>(
144 value.clone(),
145 ) {
146 if !_v._unparsed {
147 return Ok(ActionConnectionIntegration::GreyNoiseIntegration(_v));
148 }
149 }
150 if let Ok(_v) =
151 serde_json::from_value::<Box<crate::datadogV2::model::HTTPIntegration>>(value.clone())
152 {
153 if !_v._unparsed {
154 return Ok(ActionConnectionIntegration::HTTPIntegration(_v));
155 }
156 }
157 if let Ok(_v) = serde_json::from_value::<
158 Box<crate::datadogV2::model::LaunchDarklyIntegration>,
159 >(value.clone())
160 {
161 if !_v._unparsed {
162 return Ok(ActionConnectionIntegration::LaunchDarklyIntegration(_v));
163 }
164 }
165 if let Ok(_v) =
166 serde_json::from_value::<Box<crate::datadogV2::model::NotionIntegration>>(value.clone())
167 {
168 if !_v._unparsed {
169 return Ok(ActionConnectionIntegration::NotionIntegration(_v));
170 }
171 }
172 if let Ok(_v) =
173 serde_json::from_value::<Box<crate::datadogV2::model::OktaIntegration>>(value.clone())
174 {
175 if !_v._unparsed {
176 return Ok(ActionConnectionIntegration::OktaIntegration(_v));
177 }
178 }
179 if let Ok(_v) =
180 serde_json::from_value::<Box<crate::datadogV2::model::OpenAIIntegration>>(value.clone())
181 {
182 if !_v._unparsed {
183 return Ok(ActionConnectionIntegration::OpenAIIntegration(_v));
184 }
185 }
186 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::ServiceNowIntegration>>(
187 value.clone(),
188 ) {
189 if !_v._unparsed {
190 return Ok(ActionConnectionIntegration::ServiceNowIntegration(_v));
191 }
192 }
193 if let Ok(_v) =
194 serde_json::from_value::<Box<crate::datadogV2::model::SplitIntegration>>(value.clone())
195 {
196 if !_v._unparsed {
197 return Ok(ActionConnectionIntegration::SplitIntegration(_v));
198 }
199 }
200 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::StatsigIntegration>>(
201 value.clone(),
202 ) {
203 if !_v._unparsed {
204 return Ok(ActionConnectionIntegration::StatsigIntegration(_v));
205 }
206 }
207 if let Ok(_v) = serde_json::from_value::<Box<crate::datadogV2::model::VirusTotalIntegration>>(
208 value.clone(),
209 ) {
210 if !_v._unparsed {
211 return Ok(ActionConnectionIntegration::VirusTotalIntegration(_v));
212 }
213 }
214
215 return Ok(ActionConnectionIntegration::UnparsedObject(
216 crate::datadog::UnparsedObject { value },
217 ));
218 }
219}