#[non_exhaustive]pub struct SyntheticsParsingOptions {
pub field: Option<String>,
pub name: Option<String>,
pub parser: Option<SyntheticsVariableParser>,
pub secure: Option<bool>,
pub type_: Option<SyntheticsLocalVariableParsingOptionsType>,
pub additional_properties: BTreeMap<String, Value>,
/* private fields */
}
Expand description
Parsing options for variables to extract.
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.field: Option<String>
When type is http_header
or grpc_metadata
, name of the header or metadatum to extract.
name: Option<String>
Name of the variable to extract.
parser: Option<SyntheticsVariableParser>
Details of the parser to use for the global variable.
secure: Option<bool>
Determines whether or not the extracted value will be obfuscated.
type_: Option<SyntheticsLocalVariableParsingOptionsType>
Property of the Synthetic Test Response to extract into a local variable.
additional_properties: BTreeMap<String, Value>
Implementations§
Source§impl SyntheticsParsingOptions
impl SyntheticsParsingOptions
Sourcepub fn new() -> SyntheticsParsingOptions
pub fn new() -> SyntheticsParsingOptions
Examples found in repository?
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (line 80)
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 .disable_aia_intermediate_fetching(true)
162 .host("example.org".to_string())
163 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
164 SyntheticsAPITestStepSubtype::SSL,
165 )
166 .allow_failure(false)
167 .is_critical(true)
168 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
169 ),
170 ),
171 SyntheticsAPIStep::SyntheticsAPITestStep(
172 Box::new(
173 SyntheticsAPITestStep::new(
174 vec![
175 SyntheticsAssertion::SyntheticsAssertionTarget(
176 Box::new(
177 SyntheticsAssertionTarget::new(
178 SyntheticsAssertionOperator::LESS_THAN,
179 SyntheticsAssertionTargetValue
180 ::SyntheticsAssertionTargetValueNumber(
181 1000.0 as f64,
182 ),
183 SyntheticsAssertionType::RESPONSE_TIME,
184 ),
185 ),
186 )
187 ],
188 "DNS step".to_string(),
189 SyntheticsTestRequest::new()
190 .dns_server("8.8.8.8".to_string())
191 .dns_server_port(
192 SyntheticsTestRequestDNSServerPort
193 ::SyntheticsTestRequestVariableDNSServerPort(
194 "53".to_string(),
195 ),
196 )
197 .host("troisdizaines.com".to_string()),
198 SyntheticsAPITestStepSubtype::DNS,
199 )
200 .allow_failure(false)
201 .is_critical(true)
202 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
203 ),
204 ),
205 SyntheticsAPIStep::SyntheticsAPITestStep(
206 Box::new(
207 SyntheticsAPITestStep::new(
208 vec![
209 SyntheticsAssertion::SyntheticsAssertionTarget(
210 Box::new(
211 SyntheticsAssertionTarget::new(
212 SyntheticsAssertionOperator::LESS_THAN,
213 SyntheticsAssertionTargetValue
214 ::SyntheticsAssertionTargetValueNumber(
215 1000.0 as f64,
216 ),
217 SyntheticsAssertionType::RESPONSE_TIME,
218 ),
219 ),
220 )
221 ],
222 "TCP step".to_string(),
223 SyntheticsTestRequest::new()
224 .host("34.95.79.70".to_string())
225 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
226 .should_track_hops(true)
227 .timeout(32.0 as f64),
228 SyntheticsAPITestStepSubtype::TCP,
229 )
230 .allow_failure(false)
231 .is_critical(true)
232 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
233 ),
234 ),
235 SyntheticsAPIStep::SyntheticsAPITestStep(
236 Box::new(
237 SyntheticsAPITestStep::new(
238 vec![
239 SyntheticsAssertion::SyntheticsAssertionTarget(
240 Box::new(
241 SyntheticsAssertionTarget::new(
242 SyntheticsAssertionOperator::IS,
243 SyntheticsAssertionTargetValue
244 ::SyntheticsAssertionTargetValueNumber(
245 0.0 as f64,
246 ),
247 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
248 ),
249 ),
250 )
251 ],
252 "ICMP step".to_string(),
253 SyntheticsTestRequest::new()
254 .host("34.95.79.70".to_string())
255 .number_of_packets(4)
256 .should_track_hops(true)
257 .timeout(38.0 as f64),
258 SyntheticsAPITestStepSubtype::ICMP,
259 )
260 .allow_failure(false)
261 .is_critical(true)
262 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
263 ),
264 ),
265 SyntheticsAPIStep::SyntheticsAPITestStep(
266 Box::new(
267 SyntheticsAPITestStep::new(
268 vec![
269 SyntheticsAssertion::SyntheticsAssertionTarget(
270 Box::new(
271 SyntheticsAssertionTarget::new(
272 SyntheticsAssertionOperator::LESS_THAN,
273 SyntheticsAssertionTargetValue
274 ::SyntheticsAssertionTargetValueNumber(
275 1000.0 as f64,
276 ),
277 SyntheticsAssertionType::RESPONSE_TIME,
278 ),
279 ),
280 )
281 ],
282 "Websocket step".to_string(),
283 SyntheticsTestRequest::new()
284 .basic_auth(
285 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
286 Box::new(
287 SyntheticsBasicAuthWeb::new()
288 .password("password".to_string())
289 .type_(SyntheticsBasicAuthWebType::WEB)
290 .username("user".to_string()),
291 ),
292 ),
293 )
294 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
295 .is_message_base64_encoded(true)
296 .message("My message".to_string())
297 .url("ws://34.95.79.70/web-socket".to_string()),
298 SyntheticsAPITestStepSubtype::WEBSOCKET,
299 )
300 .allow_failure(false)
301 .is_critical(true)
302 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
303 ),
304 ),
305 SyntheticsAPIStep::SyntheticsAPITestStep(
306 Box::new(
307 SyntheticsAPITestStep::new(
308 vec![
309 SyntheticsAssertion::SyntheticsAssertionTarget(
310 Box::new(
311 SyntheticsAssertionTarget::new(
312 SyntheticsAssertionOperator::LESS_THAN,
313 SyntheticsAssertionTargetValue
314 ::SyntheticsAssertionTargetValueNumber(
315 1000.0 as f64,
316 ),
317 SyntheticsAssertionType::RESPONSE_TIME,
318 ),
319 ),
320 )
321 ],
322 "UDP step".to_string(),
323 SyntheticsTestRequest::new()
324 .host("8.8.8.8".to_string())
325 .message("A image.google.com".to_string())
326 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
327 SyntheticsAPITestStepSubtype::UDP,
328 )
329 .allow_failure(false)
330 .is_critical(true)
331 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
332 ),
333 )
334 ],
335 ),
336 vec!["aws:us-east-2".to_string()],
337 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
338 "Example-Synthetic".to_string(),
339 SyntheticsTestOptions::new()
340 .accept_self_signed(false)
341 .allow_insecure(true)
342 .follow_redirects(true)
343 .min_failure_duration(10)
344 .min_location_failed(1)
345 .monitor_name("Example-Synthetic".to_string())
346 .monitor_priority(5)
347 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
348 .tick_every(60),
349 SyntheticsAPITestType::API,
350 )
351 .subtype(SyntheticsTestDetailsSubType::MULTI)
352 .tags(vec!["testing:api".to_string()]);
353 let configuration = datadog::Configuration::new();
354 let api = SyntheticsAPI::with_config(configuration);
355 let resp = api.create_synthetics_api_test(body).await;
356 if let Ok(value) = resp {
357 println!("{:#?}", value);
358 } else {
359 println!("{:#?}", resp.unwrap_err());
360 }
361}
Sourcepub fn field(self, value: String) -> Self
pub fn field(self, value: String) -> Self
Examples found in repository?
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (line 81)
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 .disable_aia_intermediate_fetching(true)
162 .host("example.org".to_string())
163 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
164 SyntheticsAPITestStepSubtype::SSL,
165 )
166 .allow_failure(false)
167 .is_critical(true)
168 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
169 ),
170 ),
171 SyntheticsAPIStep::SyntheticsAPITestStep(
172 Box::new(
173 SyntheticsAPITestStep::new(
174 vec![
175 SyntheticsAssertion::SyntheticsAssertionTarget(
176 Box::new(
177 SyntheticsAssertionTarget::new(
178 SyntheticsAssertionOperator::LESS_THAN,
179 SyntheticsAssertionTargetValue
180 ::SyntheticsAssertionTargetValueNumber(
181 1000.0 as f64,
182 ),
183 SyntheticsAssertionType::RESPONSE_TIME,
184 ),
185 ),
186 )
187 ],
188 "DNS step".to_string(),
189 SyntheticsTestRequest::new()
190 .dns_server("8.8.8.8".to_string())
191 .dns_server_port(
192 SyntheticsTestRequestDNSServerPort
193 ::SyntheticsTestRequestVariableDNSServerPort(
194 "53".to_string(),
195 ),
196 )
197 .host("troisdizaines.com".to_string()),
198 SyntheticsAPITestStepSubtype::DNS,
199 )
200 .allow_failure(false)
201 .is_critical(true)
202 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
203 ),
204 ),
205 SyntheticsAPIStep::SyntheticsAPITestStep(
206 Box::new(
207 SyntheticsAPITestStep::new(
208 vec![
209 SyntheticsAssertion::SyntheticsAssertionTarget(
210 Box::new(
211 SyntheticsAssertionTarget::new(
212 SyntheticsAssertionOperator::LESS_THAN,
213 SyntheticsAssertionTargetValue
214 ::SyntheticsAssertionTargetValueNumber(
215 1000.0 as f64,
216 ),
217 SyntheticsAssertionType::RESPONSE_TIME,
218 ),
219 ),
220 )
221 ],
222 "TCP step".to_string(),
223 SyntheticsTestRequest::new()
224 .host("34.95.79.70".to_string())
225 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
226 .should_track_hops(true)
227 .timeout(32.0 as f64),
228 SyntheticsAPITestStepSubtype::TCP,
229 )
230 .allow_failure(false)
231 .is_critical(true)
232 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
233 ),
234 ),
235 SyntheticsAPIStep::SyntheticsAPITestStep(
236 Box::new(
237 SyntheticsAPITestStep::new(
238 vec![
239 SyntheticsAssertion::SyntheticsAssertionTarget(
240 Box::new(
241 SyntheticsAssertionTarget::new(
242 SyntheticsAssertionOperator::IS,
243 SyntheticsAssertionTargetValue
244 ::SyntheticsAssertionTargetValueNumber(
245 0.0 as f64,
246 ),
247 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
248 ),
249 ),
250 )
251 ],
252 "ICMP step".to_string(),
253 SyntheticsTestRequest::new()
254 .host("34.95.79.70".to_string())
255 .number_of_packets(4)
256 .should_track_hops(true)
257 .timeout(38.0 as f64),
258 SyntheticsAPITestStepSubtype::ICMP,
259 )
260 .allow_failure(false)
261 .is_critical(true)
262 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
263 ),
264 ),
265 SyntheticsAPIStep::SyntheticsAPITestStep(
266 Box::new(
267 SyntheticsAPITestStep::new(
268 vec![
269 SyntheticsAssertion::SyntheticsAssertionTarget(
270 Box::new(
271 SyntheticsAssertionTarget::new(
272 SyntheticsAssertionOperator::LESS_THAN,
273 SyntheticsAssertionTargetValue
274 ::SyntheticsAssertionTargetValueNumber(
275 1000.0 as f64,
276 ),
277 SyntheticsAssertionType::RESPONSE_TIME,
278 ),
279 ),
280 )
281 ],
282 "Websocket step".to_string(),
283 SyntheticsTestRequest::new()
284 .basic_auth(
285 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
286 Box::new(
287 SyntheticsBasicAuthWeb::new()
288 .password("password".to_string())
289 .type_(SyntheticsBasicAuthWebType::WEB)
290 .username("user".to_string()),
291 ),
292 ),
293 )
294 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
295 .is_message_base64_encoded(true)
296 .message("My message".to_string())
297 .url("ws://34.95.79.70/web-socket".to_string()),
298 SyntheticsAPITestStepSubtype::WEBSOCKET,
299 )
300 .allow_failure(false)
301 .is_critical(true)
302 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
303 ),
304 ),
305 SyntheticsAPIStep::SyntheticsAPITestStep(
306 Box::new(
307 SyntheticsAPITestStep::new(
308 vec![
309 SyntheticsAssertion::SyntheticsAssertionTarget(
310 Box::new(
311 SyntheticsAssertionTarget::new(
312 SyntheticsAssertionOperator::LESS_THAN,
313 SyntheticsAssertionTargetValue
314 ::SyntheticsAssertionTargetValueNumber(
315 1000.0 as f64,
316 ),
317 SyntheticsAssertionType::RESPONSE_TIME,
318 ),
319 ),
320 )
321 ],
322 "UDP step".to_string(),
323 SyntheticsTestRequest::new()
324 .host("8.8.8.8".to_string())
325 .message("A image.google.com".to_string())
326 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
327 SyntheticsAPITestStepSubtype::UDP,
328 )
329 .allow_failure(false)
330 .is_critical(true)
331 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
332 ),
333 )
334 ],
335 ),
336 vec!["aws:us-east-2".to_string()],
337 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
338 "Example-Synthetic".to_string(),
339 SyntheticsTestOptions::new()
340 .accept_self_signed(false)
341 .allow_insecure(true)
342 .follow_redirects(true)
343 .min_failure_duration(10)
344 .min_location_failed(1)
345 .monitor_name("Example-Synthetic".to_string())
346 .monitor_priority(5)
347 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
348 .tick_every(60),
349 SyntheticsAPITestType::API,
350 )
351 .subtype(SyntheticsTestDetailsSubType::MULTI)
352 .tags(vec!["testing:api".to_string()]);
353 let configuration = datadog::Configuration::new();
354 let api = SyntheticsAPI::with_config(configuration);
355 let resp = api.create_synthetics_api_test(body).await;
356 if let Ok(value) = resp {
357 println!("{:#?}", value);
358 } else {
359 println!("{:#?}", resp.unwrap_err());
360 }
361}
Sourcepub fn name(self, value: String) -> Self
pub fn name(self, value: String) -> Self
Examples found in repository?
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (line 82)
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 .disable_aia_intermediate_fetching(true)
162 .host("example.org".to_string())
163 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
164 SyntheticsAPITestStepSubtype::SSL,
165 )
166 .allow_failure(false)
167 .is_critical(true)
168 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
169 ),
170 ),
171 SyntheticsAPIStep::SyntheticsAPITestStep(
172 Box::new(
173 SyntheticsAPITestStep::new(
174 vec![
175 SyntheticsAssertion::SyntheticsAssertionTarget(
176 Box::new(
177 SyntheticsAssertionTarget::new(
178 SyntheticsAssertionOperator::LESS_THAN,
179 SyntheticsAssertionTargetValue
180 ::SyntheticsAssertionTargetValueNumber(
181 1000.0 as f64,
182 ),
183 SyntheticsAssertionType::RESPONSE_TIME,
184 ),
185 ),
186 )
187 ],
188 "DNS step".to_string(),
189 SyntheticsTestRequest::new()
190 .dns_server("8.8.8.8".to_string())
191 .dns_server_port(
192 SyntheticsTestRequestDNSServerPort
193 ::SyntheticsTestRequestVariableDNSServerPort(
194 "53".to_string(),
195 ),
196 )
197 .host("troisdizaines.com".to_string()),
198 SyntheticsAPITestStepSubtype::DNS,
199 )
200 .allow_failure(false)
201 .is_critical(true)
202 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
203 ),
204 ),
205 SyntheticsAPIStep::SyntheticsAPITestStep(
206 Box::new(
207 SyntheticsAPITestStep::new(
208 vec![
209 SyntheticsAssertion::SyntheticsAssertionTarget(
210 Box::new(
211 SyntheticsAssertionTarget::new(
212 SyntheticsAssertionOperator::LESS_THAN,
213 SyntheticsAssertionTargetValue
214 ::SyntheticsAssertionTargetValueNumber(
215 1000.0 as f64,
216 ),
217 SyntheticsAssertionType::RESPONSE_TIME,
218 ),
219 ),
220 )
221 ],
222 "TCP step".to_string(),
223 SyntheticsTestRequest::new()
224 .host("34.95.79.70".to_string())
225 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
226 .should_track_hops(true)
227 .timeout(32.0 as f64),
228 SyntheticsAPITestStepSubtype::TCP,
229 )
230 .allow_failure(false)
231 .is_critical(true)
232 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
233 ),
234 ),
235 SyntheticsAPIStep::SyntheticsAPITestStep(
236 Box::new(
237 SyntheticsAPITestStep::new(
238 vec![
239 SyntheticsAssertion::SyntheticsAssertionTarget(
240 Box::new(
241 SyntheticsAssertionTarget::new(
242 SyntheticsAssertionOperator::IS,
243 SyntheticsAssertionTargetValue
244 ::SyntheticsAssertionTargetValueNumber(
245 0.0 as f64,
246 ),
247 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
248 ),
249 ),
250 )
251 ],
252 "ICMP step".to_string(),
253 SyntheticsTestRequest::new()
254 .host("34.95.79.70".to_string())
255 .number_of_packets(4)
256 .should_track_hops(true)
257 .timeout(38.0 as f64),
258 SyntheticsAPITestStepSubtype::ICMP,
259 )
260 .allow_failure(false)
261 .is_critical(true)
262 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
263 ),
264 ),
265 SyntheticsAPIStep::SyntheticsAPITestStep(
266 Box::new(
267 SyntheticsAPITestStep::new(
268 vec![
269 SyntheticsAssertion::SyntheticsAssertionTarget(
270 Box::new(
271 SyntheticsAssertionTarget::new(
272 SyntheticsAssertionOperator::LESS_THAN,
273 SyntheticsAssertionTargetValue
274 ::SyntheticsAssertionTargetValueNumber(
275 1000.0 as f64,
276 ),
277 SyntheticsAssertionType::RESPONSE_TIME,
278 ),
279 ),
280 )
281 ],
282 "Websocket step".to_string(),
283 SyntheticsTestRequest::new()
284 .basic_auth(
285 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
286 Box::new(
287 SyntheticsBasicAuthWeb::new()
288 .password("password".to_string())
289 .type_(SyntheticsBasicAuthWebType::WEB)
290 .username("user".to_string()),
291 ),
292 ),
293 )
294 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
295 .is_message_base64_encoded(true)
296 .message("My message".to_string())
297 .url("ws://34.95.79.70/web-socket".to_string()),
298 SyntheticsAPITestStepSubtype::WEBSOCKET,
299 )
300 .allow_failure(false)
301 .is_critical(true)
302 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
303 ),
304 ),
305 SyntheticsAPIStep::SyntheticsAPITestStep(
306 Box::new(
307 SyntheticsAPITestStep::new(
308 vec![
309 SyntheticsAssertion::SyntheticsAssertionTarget(
310 Box::new(
311 SyntheticsAssertionTarget::new(
312 SyntheticsAssertionOperator::LESS_THAN,
313 SyntheticsAssertionTargetValue
314 ::SyntheticsAssertionTargetValueNumber(
315 1000.0 as f64,
316 ),
317 SyntheticsAssertionType::RESPONSE_TIME,
318 ),
319 ),
320 )
321 ],
322 "UDP step".to_string(),
323 SyntheticsTestRequest::new()
324 .host("8.8.8.8".to_string())
325 .message("A image.google.com".to_string())
326 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
327 SyntheticsAPITestStepSubtype::UDP,
328 )
329 .allow_failure(false)
330 .is_critical(true)
331 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
332 ),
333 )
334 ],
335 ),
336 vec!["aws:us-east-2".to_string()],
337 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
338 "Example-Synthetic".to_string(),
339 SyntheticsTestOptions::new()
340 .accept_self_signed(false)
341 .allow_insecure(true)
342 .follow_redirects(true)
343 .min_failure_duration(10)
344 .min_location_failed(1)
345 .monitor_name("Example-Synthetic".to_string())
346 .monitor_priority(5)
347 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
348 .tick_every(60),
349 SyntheticsAPITestType::API,
350 )
351 .subtype(SyntheticsTestDetailsSubType::MULTI)
352 .tags(vec!["testing:api".to_string()]);
353 let configuration = datadog::Configuration::new();
354 let api = SyntheticsAPI::with_config(configuration);
355 let resp = api.create_synthetics_api_test(body).await;
356 if let Ok(value) = resp {
357 println!("{:#?}", value);
358 } else {
359 println!("{:#?}", resp.unwrap_err());
360 }
361}
Sourcepub fn parser(self, value: SyntheticsVariableParser) -> Self
pub fn parser(self, value: SyntheticsVariableParser) -> Self
Examples found in repository?
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (lines 83-87)
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 .disable_aia_intermediate_fetching(true)
162 .host("example.org".to_string())
163 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
164 SyntheticsAPITestStepSubtype::SSL,
165 )
166 .allow_failure(false)
167 .is_critical(true)
168 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
169 ),
170 ),
171 SyntheticsAPIStep::SyntheticsAPITestStep(
172 Box::new(
173 SyntheticsAPITestStep::new(
174 vec![
175 SyntheticsAssertion::SyntheticsAssertionTarget(
176 Box::new(
177 SyntheticsAssertionTarget::new(
178 SyntheticsAssertionOperator::LESS_THAN,
179 SyntheticsAssertionTargetValue
180 ::SyntheticsAssertionTargetValueNumber(
181 1000.0 as f64,
182 ),
183 SyntheticsAssertionType::RESPONSE_TIME,
184 ),
185 ),
186 )
187 ],
188 "DNS step".to_string(),
189 SyntheticsTestRequest::new()
190 .dns_server("8.8.8.8".to_string())
191 .dns_server_port(
192 SyntheticsTestRequestDNSServerPort
193 ::SyntheticsTestRequestVariableDNSServerPort(
194 "53".to_string(),
195 ),
196 )
197 .host("troisdizaines.com".to_string()),
198 SyntheticsAPITestStepSubtype::DNS,
199 )
200 .allow_failure(false)
201 .is_critical(true)
202 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
203 ),
204 ),
205 SyntheticsAPIStep::SyntheticsAPITestStep(
206 Box::new(
207 SyntheticsAPITestStep::new(
208 vec![
209 SyntheticsAssertion::SyntheticsAssertionTarget(
210 Box::new(
211 SyntheticsAssertionTarget::new(
212 SyntheticsAssertionOperator::LESS_THAN,
213 SyntheticsAssertionTargetValue
214 ::SyntheticsAssertionTargetValueNumber(
215 1000.0 as f64,
216 ),
217 SyntheticsAssertionType::RESPONSE_TIME,
218 ),
219 ),
220 )
221 ],
222 "TCP step".to_string(),
223 SyntheticsTestRequest::new()
224 .host("34.95.79.70".to_string())
225 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
226 .should_track_hops(true)
227 .timeout(32.0 as f64),
228 SyntheticsAPITestStepSubtype::TCP,
229 )
230 .allow_failure(false)
231 .is_critical(true)
232 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
233 ),
234 ),
235 SyntheticsAPIStep::SyntheticsAPITestStep(
236 Box::new(
237 SyntheticsAPITestStep::new(
238 vec![
239 SyntheticsAssertion::SyntheticsAssertionTarget(
240 Box::new(
241 SyntheticsAssertionTarget::new(
242 SyntheticsAssertionOperator::IS,
243 SyntheticsAssertionTargetValue
244 ::SyntheticsAssertionTargetValueNumber(
245 0.0 as f64,
246 ),
247 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
248 ),
249 ),
250 )
251 ],
252 "ICMP step".to_string(),
253 SyntheticsTestRequest::new()
254 .host("34.95.79.70".to_string())
255 .number_of_packets(4)
256 .should_track_hops(true)
257 .timeout(38.0 as f64),
258 SyntheticsAPITestStepSubtype::ICMP,
259 )
260 .allow_failure(false)
261 .is_critical(true)
262 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
263 ),
264 ),
265 SyntheticsAPIStep::SyntheticsAPITestStep(
266 Box::new(
267 SyntheticsAPITestStep::new(
268 vec![
269 SyntheticsAssertion::SyntheticsAssertionTarget(
270 Box::new(
271 SyntheticsAssertionTarget::new(
272 SyntheticsAssertionOperator::LESS_THAN,
273 SyntheticsAssertionTargetValue
274 ::SyntheticsAssertionTargetValueNumber(
275 1000.0 as f64,
276 ),
277 SyntheticsAssertionType::RESPONSE_TIME,
278 ),
279 ),
280 )
281 ],
282 "Websocket step".to_string(),
283 SyntheticsTestRequest::new()
284 .basic_auth(
285 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
286 Box::new(
287 SyntheticsBasicAuthWeb::new()
288 .password("password".to_string())
289 .type_(SyntheticsBasicAuthWebType::WEB)
290 .username("user".to_string()),
291 ),
292 ),
293 )
294 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
295 .is_message_base64_encoded(true)
296 .message("My message".to_string())
297 .url("ws://34.95.79.70/web-socket".to_string()),
298 SyntheticsAPITestStepSubtype::WEBSOCKET,
299 )
300 .allow_failure(false)
301 .is_critical(true)
302 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
303 ),
304 ),
305 SyntheticsAPIStep::SyntheticsAPITestStep(
306 Box::new(
307 SyntheticsAPITestStep::new(
308 vec![
309 SyntheticsAssertion::SyntheticsAssertionTarget(
310 Box::new(
311 SyntheticsAssertionTarget::new(
312 SyntheticsAssertionOperator::LESS_THAN,
313 SyntheticsAssertionTargetValue
314 ::SyntheticsAssertionTargetValueNumber(
315 1000.0 as f64,
316 ),
317 SyntheticsAssertionType::RESPONSE_TIME,
318 ),
319 ),
320 )
321 ],
322 "UDP step".to_string(),
323 SyntheticsTestRequest::new()
324 .host("8.8.8.8".to_string())
325 .message("A image.google.com".to_string())
326 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
327 SyntheticsAPITestStepSubtype::UDP,
328 )
329 .allow_failure(false)
330 .is_critical(true)
331 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
332 ),
333 )
334 ],
335 ),
336 vec!["aws:us-east-2".to_string()],
337 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
338 "Example-Synthetic".to_string(),
339 SyntheticsTestOptions::new()
340 .accept_self_signed(false)
341 .allow_insecure(true)
342 .follow_redirects(true)
343 .min_failure_duration(10)
344 .min_location_failed(1)
345 .monitor_name("Example-Synthetic".to_string())
346 .monitor_priority(5)
347 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
348 .tick_every(60),
349 SyntheticsAPITestType::API,
350 )
351 .subtype(SyntheticsTestDetailsSubType::MULTI)
352 .tags(vec!["testing:api".to_string()]);
353 let configuration = datadog::Configuration::new();
354 let api = SyntheticsAPI::with_config(configuration);
355 let resp = api.create_synthetics_api_test(body).await;
356 if let Ok(value) = resp {
357 println!("{:#?}", value);
358 } else {
359 println!("{:#?}", resp.unwrap_err());
360 }
361}
Sourcepub fn secure(self, value: bool) -> Self
pub fn secure(self, value: bool) -> Self
Examples found in repository?
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (line 88)
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 .disable_aia_intermediate_fetching(true)
162 .host("example.org".to_string())
163 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
164 SyntheticsAPITestStepSubtype::SSL,
165 )
166 .allow_failure(false)
167 .is_critical(true)
168 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
169 ),
170 ),
171 SyntheticsAPIStep::SyntheticsAPITestStep(
172 Box::new(
173 SyntheticsAPITestStep::new(
174 vec![
175 SyntheticsAssertion::SyntheticsAssertionTarget(
176 Box::new(
177 SyntheticsAssertionTarget::new(
178 SyntheticsAssertionOperator::LESS_THAN,
179 SyntheticsAssertionTargetValue
180 ::SyntheticsAssertionTargetValueNumber(
181 1000.0 as f64,
182 ),
183 SyntheticsAssertionType::RESPONSE_TIME,
184 ),
185 ),
186 )
187 ],
188 "DNS step".to_string(),
189 SyntheticsTestRequest::new()
190 .dns_server("8.8.8.8".to_string())
191 .dns_server_port(
192 SyntheticsTestRequestDNSServerPort
193 ::SyntheticsTestRequestVariableDNSServerPort(
194 "53".to_string(),
195 ),
196 )
197 .host("troisdizaines.com".to_string()),
198 SyntheticsAPITestStepSubtype::DNS,
199 )
200 .allow_failure(false)
201 .is_critical(true)
202 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
203 ),
204 ),
205 SyntheticsAPIStep::SyntheticsAPITestStep(
206 Box::new(
207 SyntheticsAPITestStep::new(
208 vec![
209 SyntheticsAssertion::SyntheticsAssertionTarget(
210 Box::new(
211 SyntheticsAssertionTarget::new(
212 SyntheticsAssertionOperator::LESS_THAN,
213 SyntheticsAssertionTargetValue
214 ::SyntheticsAssertionTargetValueNumber(
215 1000.0 as f64,
216 ),
217 SyntheticsAssertionType::RESPONSE_TIME,
218 ),
219 ),
220 )
221 ],
222 "TCP step".to_string(),
223 SyntheticsTestRequest::new()
224 .host("34.95.79.70".to_string())
225 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
226 .should_track_hops(true)
227 .timeout(32.0 as f64),
228 SyntheticsAPITestStepSubtype::TCP,
229 )
230 .allow_failure(false)
231 .is_critical(true)
232 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
233 ),
234 ),
235 SyntheticsAPIStep::SyntheticsAPITestStep(
236 Box::new(
237 SyntheticsAPITestStep::new(
238 vec![
239 SyntheticsAssertion::SyntheticsAssertionTarget(
240 Box::new(
241 SyntheticsAssertionTarget::new(
242 SyntheticsAssertionOperator::IS,
243 SyntheticsAssertionTargetValue
244 ::SyntheticsAssertionTargetValueNumber(
245 0.0 as f64,
246 ),
247 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
248 ),
249 ),
250 )
251 ],
252 "ICMP step".to_string(),
253 SyntheticsTestRequest::new()
254 .host("34.95.79.70".to_string())
255 .number_of_packets(4)
256 .should_track_hops(true)
257 .timeout(38.0 as f64),
258 SyntheticsAPITestStepSubtype::ICMP,
259 )
260 .allow_failure(false)
261 .is_critical(true)
262 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
263 ),
264 ),
265 SyntheticsAPIStep::SyntheticsAPITestStep(
266 Box::new(
267 SyntheticsAPITestStep::new(
268 vec![
269 SyntheticsAssertion::SyntheticsAssertionTarget(
270 Box::new(
271 SyntheticsAssertionTarget::new(
272 SyntheticsAssertionOperator::LESS_THAN,
273 SyntheticsAssertionTargetValue
274 ::SyntheticsAssertionTargetValueNumber(
275 1000.0 as f64,
276 ),
277 SyntheticsAssertionType::RESPONSE_TIME,
278 ),
279 ),
280 )
281 ],
282 "Websocket step".to_string(),
283 SyntheticsTestRequest::new()
284 .basic_auth(
285 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
286 Box::new(
287 SyntheticsBasicAuthWeb::new()
288 .password("password".to_string())
289 .type_(SyntheticsBasicAuthWebType::WEB)
290 .username("user".to_string()),
291 ),
292 ),
293 )
294 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
295 .is_message_base64_encoded(true)
296 .message("My message".to_string())
297 .url("ws://34.95.79.70/web-socket".to_string()),
298 SyntheticsAPITestStepSubtype::WEBSOCKET,
299 )
300 .allow_failure(false)
301 .is_critical(true)
302 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
303 ),
304 ),
305 SyntheticsAPIStep::SyntheticsAPITestStep(
306 Box::new(
307 SyntheticsAPITestStep::new(
308 vec![
309 SyntheticsAssertion::SyntheticsAssertionTarget(
310 Box::new(
311 SyntheticsAssertionTarget::new(
312 SyntheticsAssertionOperator::LESS_THAN,
313 SyntheticsAssertionTargetValue
314 ::SyntheticsAssertionTargetValueNumber(
315 1000.0 as f64,
316 ),
317 SyntheticsAssertionType::RESPONSE_TIME,
318 ),
319 ),
320 )
321 ],
322 "UDP step".to_string(),
323 SyntheticsTestRequest::new()
324 .host("8.8.8.8".to_string())
325 .message("A image.google.com".to_string())
326 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
327 SyntheticsAPITestStepSubtype::UDP,
328 )
329 .allow_failure(false)
330 .is_critical(true)
331 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
332 ),
333 )
334 ],
335 ),
336 vec!["aws:us-east-2".to_string()],
337 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
338 "Example-Synthetic".to_string(),
339 SyntheticsTestOptions::new()
340 .accept_self_signed(false)
341 .allow_insecure(true)
342 .follow_redirects(true)
343 .min_failure_duration(10)
344 .min_location_failed(1)
345 .monitor_name("Example-Synthetic".to_string())
346 .monitor_priority(5)
347 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
348 .tick_every(60),
349 SyntheticsAPITestType::API,
350 )
351 .subtype(SyntheticsTestDetailsSubType::MULTI)
352 .tags(vec!["testing:api".to_string()]);
353 let configuration = datadog::Configuration::new();
354 let api = SyntheticsAPI::with_config(configuration);
355 let resp = api.create_synthetics_api_test(body).await;
356 if let Ok(value) = resp {
357 println!("{:#?}", value);
358 } else {
359 println!("{:#?}", resp.unwrap_err());
360 }
361}
Sourcepub fn type_(self, value: SyntheticsLocalVariableParsingOptionsType) -> Self
pub fn type_(self, value: SyntheticsLocalVariableParsingOptionsType) -> Self
Examples found in repository?
examples/v1_synthetics_CreateSyntheticsAPITest_1279271422.rs (line 89)
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 .disable_aia_intermediate_fetching(true)
162 .host("example.org".to_string())
163 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(443)),
164 SyntheticsAPITestStepSubtype::SSL,
165 )
166 .allow_failure(false)
167 .is_critical(true)
168 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
169 ),
170 ),
171 SyntheticsAPIStep::SyntheticsAPITestStep(
172 Box::new(
173 SyntheticsAPITestStep::new(
174 vec![
175 SyntheticsAssertion::SyntheticsAssertionTarget(
176 Box::new(
177 SyntheticsAssertionTarget::new(
178 SyntheticsAssertionOperator::LESS_THAN,
179 SyntheticsAssertionTargetValue
180 ::SyntheticsAssertionTargetValueNumber(
181 1000.0 as f64,
182 ),
183 SyntheticsAssertionType::RESPONSE_TIME,
184 ),
185 ),
186 )
187 ],
188 "DNS step".to_string(),
189 SyntheticsTestRequest::new()
190 .dns_server("8.8.8.8".to_string())
191 .dns_server_port(
192 SyntheticsTestRequestDNSServerPort
193 ::SyntheticsTestRequestVariableDNSServerPort(
194 "53".to_string(),
195 ),
196 )
197 .host("troisdizaines.com".to_string()),
198 SyntheticsAPITestStepSubtype::DNS,
199 )
200 .allow_failure(false)
201 .is_critical(true)
202 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
203 ),
204 ),
205 SyntheticsAPIStep::SyntheticsAPITestStep(
206 Box::new(
207 SyntheticsAPITestStep::new(
208 vec![
209 SyntheticsAssertion::SyntheticsAssertionTarget(
210 Box::new(
211 SyntheticsAssertionTarget::new(
212 SyntheticsAssertionOperator::LESS_THAN,
213 SyntheticsAssertionTargetValue
214 ::SyntheticsAssertionTargetValueNumber(
215 1000.0 as f64,
216 ),
217 SyntheticsAssertionType::RESPONSE_TIME,
218 ),
219 ),
220 )
221 ],
222 "TCP step".to_string(),
223 SyntheticsTestRequest::new()
224 .host("34.95.79.70".to_string())
225 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(80))
226 .should_track_hops(true)
227 .timeout(32.0 as f64),
228 SyntheticsAPITestStepSubtype::TCP,
229 )
230 .allow_failure(false)
231 .is_critical(true)
232 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
233 ),
234 ),
235 SyntheticsAPIStep::SyntheticsAPITestStep(
236 Box::new(
237 SyntheticsAPITestStep::new(
238 vec![
239 SyntheticsAssertion::SyntheticsAssertionTarget(
240 Box::new(
241 SyntheticsAssertionTarget::new(
242 SyntheticsAssertionOperator::IS,
243 SyntheticsAssertionTargetValue
244 ::SyntheticsAssertionTargetValueNumber(
245 0.0 as f64,
246 ),
247 SyntheticsAssertionType::PACKET_LOSS_PERCENTAGE,
248 ),
249 ),
250 )
251 ],
252 "ICMP step".to_string(),
253 SyntheticsTestRequest::new()
254 .host("34.95.79.70".to_string())
255 .number_of_packets(4)
256 .should_track_hops(true)
257 .timeout(38.0 as f64),
258 SyntheticsAPITestStepSubtype::ICMP,
259 )
260 .allow_failure(false)
261 .is_critical(true)
262 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
263 ),
264 ),
265 SyntheticsAPIStep::SyntheticsAPITestStep(
266 Box::new(
267 SyntheticsAPITestStep::new(
268 vec![
269 SyntheticsAssertion::SyntheticsAssertionTarget(
270 Box::new(
271 SyntheticsAssertionTarget::new(
272 SyntheticsAssertionOperator::LESS_THAN,
273 SyntheticsAssertionTargetValue
274 ::SyntheticsAssertionTargetValueNumber(
275 1000.0 as f64,
276 ),
277 SyntheticsAssertionType::RESPONSE_TIME,
278 ),
279 ),
280 )
281 ],
282 "Websocket step".to_string(),
283 SyntheticsTestRequest::new()
284 .basic_auth(
285 SyntheticsBasicAuth::SyntheticsBasicAuthWeb(
286 Box::new(
287 SyntheticsBasicAuthWeb::new()
288 .password("password".to_string())
289 .type_(SyntheticsBasicAuthWebType::WEB)
290 .username("user".to_string()),
291 ),
292 ),
293 )
294 .headers(BTreeMap::from([("f".to_string(), "g".to_string())]))
295 .is_message_base64_encoded(true)
296 .message("My message".to_string())
297 .url("ws://34.95.79.70/web-socket".to_string()),
298 SyntheticsAPITestStepSubtype::WEBSOCKET,
299 )
300 .allow_failure(false)
301 .is_critical(true)
302 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
303 ),
304 ),
305 SyntheticsAPIStep::SyntheticsAPITestStep(
306 Box::new(
307 SyntheticsAPITestStep::new(
308 vec![
309 SyntheticsAssertion::SyntheticsAssertionTarget(
310 Box::new(
311 SyntheticsAssertionTarget::new(
312 SyntheticsAssertionOperator::LESS_THAN,
313 SyntheticsAssertionTargetValue
314 ::SyntheticsAssertionTargetValueNumber(
315 1000.0 as f64,
316 ),
317 SyntheticsAssertionType::RESPONSE_TIME,
318 ),
319 ),
320 )
321 ],
322 "UDP step".to_string(),
323 SyntheticsTestRequest::new()
324 .host("8.8.8.8".to_string())
325 .message("A image.google.com".to_string())
326 .port(SyntheticsTestRequestPort::SyntheticsTestRequestNumericalPort(53)),
327 SyntheticsAPITestStepSubtype::UDP,
328 )
329 .allow_failure(false)
330 .is_critical(true)
331 .retry(SyntheticsTestOptionsRetry::new().count(0).interval(300.0 as f64)),
332 ),
333 )
334 ],
335 ),
336 vec!["aws:us-east-2".to_string()],
337 "BDD test payload: synthetics_api_test_multi_step_payload.json".to_string(),
338 "Example-Synthetic".to_string(),
339 SyntheticsTestOptions::new()
340 .accept_self_signed(false)
341 .allow_insecure(true)
342 .follow_redirects(true)
343 .min_failure_duration(10)
344 .min_location_failed(1)
345 .monitor_name("Example-Synthetic".to_string())
346 .monitor_priority(5)
347 .retry(SyntheticsTestOptionsRetry::new().count(3).interval(1000.0 as f64))
348 .tick_every(60),
349 SyntheticsAPITestType::API,
350 )
351 .subtype(SyntheticsTestDetailsSubType::MULTI)
352 .tags(vec!["testing:api".to_string()]);
353 let configuration = datadog::Configuration::new();
354 let api = SyntheticsAPI::with_config(configuration);
355 let resp = api.create_synthetics_api_test(body).await;
356 if let Ok(value) = resp {
357 println!("{:#?}", value);
358 } else {
359 println!("{:#?}", resp.unwrap_err());
360 }
361}
pub fn additional_properties(self, value: BTreeMap<String, Value>) -> Self
Trait Implementations§
Source§impl Clone for SyntheticsParsingOptions
impl Clone for SyntheticsParsingOptions
Source§fn clone(&self) -> SyntheticsParsingOptions
fn clone(&self) -> SyntheticsParsingOptions
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 SyntheticsParsingOptions
impl Debug for SyntheticsParsingOptions
Source§impl Default for SyntheticsParsingOptions
impl Default for SyntheticsParsingOptions
Source§impl<'de> Deserialize<'de> for SyntheticsParsingOptions
impl<'de> Deserialize<'de> for SyntheticsParsingOptions
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 SyntheticsParsingOptions
impl PartialEq for SyntheticsParsingOptions
Source§impl Serialize for SyntheticsParsingOptions
impl Serialize for SyntheticsParsingOptions
impl StructuralPartialEq for SyntheticsParsingOptions
Auto Trait Implementations§
impl Freeze for SyntheticsParsingOptions
impl RefUnwindSafe for SyntheticsParsingOptions
impl Send for SyntheticsParsingOptions
impl Sync for SyntheticsParsingOptions
impl Unpin for SyntheticsParsingOptions
impl UnwindSafe for SyntheticsParsingOptions
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