#[non_exhaustive]pub struct SyntheticsVariableParser {
pub type_: SyntheticsGlobalVariableParserType,
pub value: Option<String>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Details of the parser to use for the global variable.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.type_: SyntheticsGlobalVariableParserType
Type of parser for a Synthetic global variable from a synthetics test.
value: Option<String>
Regex or JSON path used for the parser. Not used with type raw
.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl SyntheticsVariableParser
impl SyntheticsVariableParser
Sourcepub fn new(
type_: SyntheticsGlobalVariableParserType,
) -> SyntheticsVariableParser
pub fn new( type_: SyntheticsGlobalVariableParserType, ) -> SyntheticsVariableParser
Examples found in repository?
examples/v1_synthetics_CreateGlobalVariable.rs (line 30)
13async fn main() {
14 let body = SyntheticsGlobalVariableRequest::new(
15 "Example description".to_string(),
16 "MY_VARIABLE".to_string(),
17 vec!["team:front".to_string(), "test:workflow-1".to_string()],
18 )
19 .attributes(
20 SyntheticsGlobalVariableAttributes::new()
21 .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]),
22 )
23 .parse_test_options(
24 SyntheticsGlobalVariableParseTestOptions::new(
25 SyntheticsGlobalVariableParseTestOptionsType::HTTP_BODY,
26 )
27 .field("content-type".to_string())
28 .local_variable_name("LOCAL_VARIABLE".to_string())
29 .parser(
30 SyntheticsVariableParser::new(SyntheticsGlobalVariableParserType::REGEX)
31 .value(".*".to_string()),
32 ),
33 )
34 .parse_test_public_id("abc-def-123".to_string())
35 .value(
36 SyntheticsGlobalVariableValue::new()
37 .secure(true)
38 .value("value".to_string()),
39 );
40 let configuration = datadog::Configuration::new();
41 let api = SyntheticsAPI::with_config(configuration);
42 let resp = api.create_global_variable(body).await;
43 if let Ok(value) = resp {
44 println!("{:#?}", value);
45 } else {
46 println!("{:#?}", resp.unwrap_err());
47 }
48}
More examples
examples/v1_synthetics_EditGlobalVariable.rs (line 30)
13async fn main() {
14 let body = SyntheticsGlobalVariableRequest::new(
15 "Example description".to_string(),
16 "MY_VARIABLE".to_string(),
17 vec!["team:front".to_string(), "test:workflow-1".to_string()],
18 )
19 .attributes(
20 SyntheticsGlobalVariableAttributes::new()
21 .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]),
22 )
23 .parse_test_options(
24 SyntheticsGlobalVariableParseTestOptions::new(
25 SyntheticsGlobalVariableParseTestOptionsType::HTTP_BODY,
26 )
27 .field("content-type".to_string())
28 .local_variable_name("LOCAL_VARIABLE".to_string())
29 .parser(
30 SyntheticsVariableParser::new(SyntheticsGlobalVariableParserType::REGEX)
31 .value(".*".to_string()),
32 ),
33 )
34 .parse_test_public_id("abc-def-123".to_string())
35 .value(
36 SyntheticsGlobalVariableValue::new()
37 .secure(true)
38 .value("value".to_string()),
39 );
40 let configuration = datadog::Configuration::new();
41 let api = SyntheticsAPI::with_config(configuration);
42 let resp = api
43 .edit_global_variable("variable_id".to_string(), body)
44 .await;
45 if let Ok(value) = resp {
46 println!("{:#?}", value);
47 } else {
48 println!("{:#?}", resp.unwrap_err());
49 }
50}
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (lines 84-86)
38async fn main() {
39 let body =
40 SyntheticsAPITest::new(
41 SyntheticsAPITestConfig::new()
42 .config_variables(
43 vec![
44 SyntheticsConfigVariable::new("PROPERTY".to_string(), SyntheticsConfigVariableType::TEXT)
45 .example("content-type".to_string())
46 .pattern("content-type".to_string())
47 ],
48 )
49 .steps(
50 vec![
51 SyntheticsAPIStep::SyntheticsAPITestStep(
52 Box::new(
53 SyntheticsAPITestStep::new(
54 vec![
55 SyntheticsAssertion::SyntheticsAssertionTarget(
56 Box::new(
57 SyntheticsAssertionTarget::new(
58 SyntheticsAssertionOperator::IS,
59 SyntheticsAssertionTargetValue
60 ::SyntheticsAssertionTargetValueNumber(
61 200.0 as f64,
62 ),
63 SyntheticsAssertionType::STATUS_CODE,
64 ),
65 ),
66 )
67 ],
68 "request is sent".to_string(),
69 SyntheticsTestRequest::new()
70 .http_version(SyntheticsTestOptionsHTTPVersion::HTTP2)
71 .method("GET".to_string())
72 .timeout(10.0 as f64)
73 .url("https://datadoghq.com".to_string()),
74 SyntheticsAPITestStepSubtype::HTTP,
75 )
76 .allow_failure(true)
77 .exit_if_succeed(true)
78 .extracted_values(
79 vec![
80 SyntheticsParsingOptions::new()
81 .field("server".to_string())
82 .name("EXTRACTED_VALUE".to_string())
83 .parser(
84 SyntheticsVariableParser::new(
85 SyntheticsGlobalVariableParserType::RAW,
86 ),
87 )
88 .secure(true)
89 .type_(SyntheticsLocalVariableParsingOptionsType::HTTP_HEADER)
90 ],
91 )
92 .extracted_values_from_script(
93 "dd.variable.set('STATUS_CODE', dd.response.statusCode);".to_string(),
94 )
95 .is_critical(true)
96 .retry(SyntheticsTestOptionsRetry::new().count(5).interval(1000.0 as f64)),
97 ),
98 ),
99 SyntheticsAPIStep::SyntheticsAPIWaitStep(
100 Box::new(
101 SyntheticsAPIWaitStep::new("Wait".to_string(), SyntheticsAPIWaitStepSubtype::WAIT, 1),
102 ),
103 ),
104 SyntheticsAPIStep::SyntheticsAPITestStep(
105 Box::new(
106 SyntheticsAPITestStep::new(
107 vec![
108 SyntheticsAssertion::SyntheticsAssertionTarget(
109 Box::new(
110 SyntheticsAssertionTarget::new(
111 SyntheticsAssertionOperator::LESS_THAN,
112 SyntheticsAssertionTargetValue
113 ::SyntheticsAssertionTargetValueNumber(
114 1000.0 as f64,
115 ),
116 SyntheticsAssertionType::RESPONSE_TIME,
117 ),
118 ),
119 )
120 ],
121 "GRPC CALL".to_string(),
122 SyntheticsTestRequest::new()
123 .call_type(SyntheticsTestCallType::UNARY)
124 .compressed_json_descriptor(
125 "eJy1lU1z2yAQhv+Lzj74I3ETH506bQ7OZOSm1w4Wa4epBARQppqM/3v5koCJJdvtxCdW77vPssCO3zMKUgHOFu/ZXvBiS6hZho/f8qe7pftYgXphWJrlA8XwxywEvNba+6PhkC2yVcVVswYp0R6ykRYlZ1SCV21SDrxsssPIeS9FJKqGfK2rqnmmSBwhWa2XlKgtaQPiDcRGCUDVfwGD2sKUqKEtc1cSoOrsMlaMOec1sySYCCgUYRSVLv2zSva2u+FQkB0pVkIw8bFuIudOOn3pOaKYVT3Iy97Pd0AYhOx5QcMsnxvRHlnuLf8ETDd3CNtrv2nejkDpRnANCmGkkFn/hsYzpBKE7jVbufgnKnV9HRM9zRPDDKPttYT61n0TdWkAAjggk9AhuxIeaXd69CYTcsGw7cBTakLVbNpRzGEgyWjkSOpMbZXkhGL6oX30R49qt3GoHrap7i0XdD41WQ+2icCNm5p1hmFqnHNlcla0riKmDZ183crDxChjbnurtxHPRE784sVhWvDfGP+SsTKibU3o5NtWHuZFGZOxP6P5VXqIOvaOSec4eYohyd7NslHuJbd1bewds85xYrNxkr2d+5IhFWF3NvaO684xjE2S5ulY+tu64Pna0fCPJgzw6vF5/WucLcYjt5xoq19O3UDptOg/OamJQRaCcPPnMTQ2QDFn+uhPvUfnCrMc99upyQY4Ui9Dlc/YoG3R/v4Cs9YE+g==".to_string(),
126 )
127 .host("grpcbin.test.k6.io".to_string())
128 .message("{}".to_string())
129 .metadata(BTreeMap::from([]))
130 .method("Index".to_string())
131 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(9000))
132 .service("grpcbin.GRPCBin".to_string()),
133 SyntheticsAPITestStepSubtype::GRPC,
134 )
135 .allow_failure(false)
136 .extracted_values(vec![])
137 .is_critical(true)
138 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
139 ),
140 ),
141 SyntheticsAPIStep::SyntheticsAPITestStep(
142 Box::new(
143 SyntheticsAPITestStep::new(
144 vec![
145 SyntheticsAssertion::SyntheticsAssertionTarget(
146 Box::new(
147 SyntheticsAssertionTarget::new(
148 SyntheticsAssertionOperator::IS_IN_MORE_DAYS_THAN,
149 SyntheticsAssertionTargetValue
150 ::SyntheticsAssertionTargetValueNumber(
151 10.0 as f64,
152 ),
153 SyntheticsAssertionType::CERTIFICATE,
154 ),
155 ),
156 )
157 ],
158 "SSL step".to_string(),
159 SyntheticsTestRequest::new()
160 .check_certificate_revocation(true)
161 .host("example.org".to_string())
162 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
163 SyntheticsAPITestStepSubtype::SSL,
164 )
165 .allow_failure(false)
166 .is_critical(true)
167 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
168 ),
169 ),
170 SyntheticsAPIStep::SyntheticsAPITestStep(
171 Box::new(
172 SyntheticsAPITestStep::new(
173 vec![
174 SyntheticsAssertion::SyntheticsAssertionTarget(
175 Box::new(
176 SyntheticsAssertionTarget::new(
177 SyntheticsAssertionOperator::LESS_THAN,
178 SyntheticsAssertionTargetValue
179 ::SyntheticsAssertionTargetValueNumber(
180 1000.0 as f64,
181 ),
182 SyntheticsAssertionType::RESPONSE_TIME,
183 ),
184 ),
185 )
186 ],
187 "DNS step".to_string(),
188 SyntheticsTestRequest::new()
189 .dns_server("8.8.8.8".to_string())
190 .dns_server_port(
191 SyntheticsTestRequestDNSServerPort
192 ::SyntheticsTestRequestVariableDNSServerPort(
193 "53".to_string(),
194 ),
195 )
196 .host("troisdizaines.com".to_string()),
197 SyntheticsAPITestStepSubtype::DNS,
198 )
199 .allow_failure(false)
200 .is_critical(true)
201 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
202 ),
203 ),
204 SyntheticsAPIStep::SyntheticsAPITestStep(
205 Box::new(
206 SyntheticsAPITestStep::new(
207 vec![
208 SyntheticsAssertion::SyntheticsAssertionTarget(
209 Box::new(
210 SyntheticsAssertionTarget::new(
211 SyntheticsAssertionOperator::LESS_THAN,
212 SyntheticsAssertionTargetValue
213 ::SyntheticsAssertionTargetValueNumber(
214 1000.0 as f64,
215 ),
216 SyntheticsAssertionType::RESPONSE_TIME,
217 ),
218 ),
219 )
220 ],
221 "TCP step".to_string(),
222 SyntheticsTestRequest::new()
223 .host("34.95.79.70".to_string())
224 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
225 .should_track_hops(true)
226 .timeout(32.0 as f64),
227 SyntheticsAPITestStepSubtype::TCP,
228 )
229 .allow_failure(false)
230 .is_critical(true)
231 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
232 ),
233 ),
234 SyntheticsAPIStep::SyntheticsAPITestStep(
235 Box::new(
236 SyntheticsAPITestStep::new(
237 vec![
238 SyntheticsAssertion::SyntheticsAssertionTarget(
239 Box::new(
240 SyntheticsAssertionTarget::new(
241 SyntheticsAssertionOperator::IS,
242 SyntheticsAssertionTargetValue
243 ::SyntheticsAssertionTargetValueNumber(
244 0.0 as f64,
245 ),
246 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
247 ),
248 ),
249 )
250 ],
251 "ICMP step".to_string(),
252 SyntheticsTestRequest::new()
253 .host("34.95.79.70".to_string())
254 .number_of_packets(4)
255 .should_track_hops(true)
256 .timeout(38.0 as f64),
257 SyntheticsAPITestStepSubtype::ICMP,
258 )
259 .allow_failure(false)
260 .is_critical(true)
261 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
262 ),
263 ),
264 SyntheticsAPIStep::SyntheticsAPITestStep(
265 Box::new(
266 SyntheticsAPITestStep::new(
267 vec![
268 SyntheticsAssertion::SyntheticsAssertionTarget(
269 Box::new(
270 SyntheticsAssertionTarget::new(
271 SyntheticsAssertionOperator::LESS_THAN,
272 SyntheticsAssertionTargetValue
273 ::SyntheticsAssertionTargetValueNumber(
274 1000.0 as f64,
275 ),
276 SyntheticsAssertionType::RESPONSE_TIME,
277 ),
278 ),
279 )
280 ],
281 "Websocket step".to_string(),
282 SyntheticsTestRequest::new()
283 .basic_auth(
284 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
285 Box::new(
286 SyntheticsBasicAuthWeb::new()
287 .password("password".to_string())
288 .type_(SyntheticsBasicAuthWebType::WEB)
289 .username("user".to_string()),
290 ),
291 ),
292 )
293 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
294 .is_message_base64_encoded(true)
295 .message("My message".to_string())
296 .url("ws://34.95.79.70/web-socket".to_string()),
297 SyntheticsAPITestStepSubtype::WEBSOCKET,
298 )
299 .allow_failure(false)
300 .is_critical(true)
301 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
302 ),
303 ),
304 SyntheticsAPIStep::SyntheticsAPITestStep(
305 Box::new(
306 SyntheticsAPITestStep::new(
307 vec![
308 SyntheticsAssertion::SyntheticsAssertionTarget(
309 Box::new(
310 SyntheticsAssertionTarget::new(
311 SyntheticsAssertionOperator::LESS_THAN,
312 SyntheticsAssertionTargetValue
313 ::SyntheticsAssertionTargetValueNumber(
314 1000.0 as f64,
315 ),
316 SyntheticsAssertionType::RESPONSE_TIME,
317 ),
318 ),
319 )
320 ],
321 "UDP step".to_string(),
322 SyntheticsTestRequest::new()
323 .host("8.8.8.8".to_string())
324 .message("A image.google.com".to_string())
325 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
326 SyntheticsAPITestStepSubtype::UDP,
327 )
328 .allow_failure(false)
329 .is_critical(true)
330 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
331 ),
332 )
333 ],
334 ),
335 vec!["aws:us-east-2".to_string()],
336 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
337 "Example-Synthetic".to_string(),
338 SyntheticsTestOptions::new()
339 .accept_self_signed(false)
340 .allow_insecure(true)
341 .follow_redirects(true)
342 .min_failure_duration(10)
343 .min_location_failed(1)
344 .monitor_name("Example-Synthetic".to_string())
345 .monitor_priority(5)
346 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
347 .tick_every(60),
348 SyntheticsAPITestType::API,
349 )
350 .subtype(SyntheticsTestDetailsSubType::MULTI)
351 .tags(vec!["testing:api".to_string()]);
352 let configuration = datadog::Configuration::new();
353 let api = SyntheticsAPI::with_config(configuration);
354 let resp = api.create_synthetics_api_test(body).await;
355 if let Ok(value) = resp {
356 println!("{:#?}", value);
357 } else {
358 println!("{:#?}", resp.unwrap_err());
359 }
360}
Sourcepub fn value(self, value: String) -> Self
pub fn value(self, value: String) -> Self
Examples found in repository?
examples/v1_synthetics_CreateGlobalVariable.rs (line 31)
13async fn main() {
14 let body = SyntheticsGlobalVariableRequest::new(
15 "Example description".to_string(),
16 "MY_VARIABLE".to_string(),
17 vec!["team:front".to_string(), "test:workflow-1".to_string()],
18 )
19 .attributes(
20 SyntheticsGlobalVariableAttributes::new()
21 .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]),
22 )
23 .parse_test_options(
24 SyntheticsGlobalVariableParseTestOptions::new(
25 SyntheticsGlobalVariableParseTestOptionsType::HTTP_BODY,
26 )
27 .field("content-type".to_string())
28 .local_variable_name("LOCAL_VARIABLE".to_string())
29 .parser(
30 SyntheticsVariableParser::new(SyntheticsGlobalVariableParserType::REGEX)
31 .value(".*".to_string()),
32 ),
33 )
34 .parse_test_public_id("abc-def-123".to_string())
35 .value(
36 SyntheticsGlobalVariableValue::new()
37 .secure(true)
38 .value("value".to_string()),
39 );
40 let configuration = datadog::Configuration::new();
41 let api = SyntheticsAPI::with_config(configuration);
42 let resp = api.create_global_variable(body).await;
43 if let Ok(value) = resp {
44 println!("{:#?}", value);
45 } else {
46 println!("{:#?}", resp.unwrap_err());
47 }
48}
More examples
examples/v1_synthetics_EditGlobalVariable.rs (line 31)
13async fn main() {
14 let body = SyntheticsGlobalVariableRequest::new(
15 "Example description".to_string(),
16 "MY_VARIABLE".to_string(),
17 vec!["team:front".to_string(), "test:workflow-1".to_string()],
18 )
19 .attributes(
20 SyntheticsGlobalVariableAttributes::new()
21 .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()]),
22 )
23 .parse_test_options(
24 SyntheticsGlobalVariableParseTestOptions::new(
25 SyntheticsGlobalVariableParseTestOptionsType::HTTP_BODY,
26 )
27 .field("content-type".to_string())
28 .local_variable_name("LOCAL_VARIABLE".to_string())
29 .parser(
30 SyntheticsVariableParser::new(SyntheticsGlobalVariableParserType::REGEX)
31 .value(".*".to_string()),
32 ),
33 )
34 .parse_test_public_id("abc-def-123".to_string())
35 .value(
36 SyntheticsGlobalVariableValue::new()
37 .secure(true)
38 .value("value".to_string()),
39 );
40 let configuration = datadog::Configuration::new();
41 let api = SyntheticsAPI::with_config(configuration);
42 let resp = api
43 .edit_global_variable("variable_id".to_string(), body)
44 .await;
45 if let Ok(value) = resp {
46 println!("{:#?}", value);
47 } else {
48 println!("{:#?}", resp.unwrap_err());
49 }
50}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for SyntheticsVariableParser
impl Clone for SyntheticsVariableParser
Source§fn clone(&self) -> SyntheticsVariableParser
fn clone(&self) -> SyntheticsVariableParser
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for SyntheticsVariableParser
impl Debug for SyntheticsVariableParser
Source§impl<'de> Deserialize<'de> for SyntheticsVariableParser
impl<'de> Deserialize<'de> for SyntheticsVariableParser
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for SyntheticsVariableParser
impl PartialEq for SyntheticsVariableParser
Source§impl Serialize for SyntheticsVariableParser
impl Serialize for SyntheticsVariableParser
impl StructuralPartialEq for SyntheticsVariableParser
Auto Trait Implementations§
impl Freeze for SyntheticsVariableParser
impl RefUnwindSafe for SyntheticsVariableParser
impl Send for SyntheticsVariableParser
impl Sync for SyntheticsVariableParser
impl Unpin for SyntheticsVariableParser
impl UnwindSafe for SyntheticsVariableParser
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more