v1_synthetics_CreateSyntheticsBrowserTest_2932742688/
v1_synthetics_CreateSyntheticsBrowserTest_2932742688.rs

1// Create a browser test returns "OK - Returns saved rumSettings." response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI;
4use datadog_api_client::datadogV1::model::SyntheticsBrowserTest;
5use datadog_api_client::datadogV1::model::SyntheticsBrowserTestConfig;
6use datadog_api_client::datadogV1::model::SyntheticsBrowserTestRumSettings;
7use datadog_api_client::datadogV1::model::SyntheticsBrowserTestType;
8use datadog_api_client::datadogV1::model::SyntheticsConfigVariable;
9use datadog_api_client::datadogV1::model::SyntheticsConfigVariableType;
10use datadog_api_client::datadogV1::model::SyntheticsStep;
11use datadog_api_client::datadogV1::model::SyntheticsStepType;
12use datadog_api_client::datadogV1::model::SyntheticsTestCiOptions;
13use datadog_api_client::datadogV1::model::SyntheticsTestExecutionRule;
14use datadog_api_client::datadogV1::model::SyntheticsTestOptions;
15use datadog_api_client::datadogV1::model::SyntheticsTestOptionsRetry;
16use datadog_api_client::datadogV1::model::SyntheticsTestRequest;
17use std::collections::BTreeMap;
18
19#[tokio::main]
20async fn main() {
21    let body = SyntheticsBrowserTest::new(
22        SyntheticsBrowserTestConfig::new(
23            vec![],
24            SyntheticsTestRequest::new()
25                .certificate_domains(vec!["https://datadoghq.com".to_string()])
26                .method("GET".to_string())
27                .url("https://datadoghq.com".to_string()),
28        )
29        .config_variables(vec![SyntheticsConfigVariable::new(
30            "PROPERTY".to_string(),
31            SyntheticsConfigVariableType::TEXT,
32        )
33        .example("content-type".to_string())
34        .pattern("content-type".to_string())])
35        .set_cookie("name:test".to_string()),
36        vec!["aws:us-east-2".to_string()],
37        "Test message".to_string(),
38        "Example-Synthetic".to_string(),
39        SyntheticsTestOptions::new()
40            .accept_self_signed(false)
41            .allow_insecure(true)
42            .ci(SyntheticsTestCiOptions::new(
43                SyntheticsTestExecutionRule::SKIPPED,
44            ))
45            .device_ids(vec!["tablet".to_string()])
46            .disable_cors(true)
47            .disable_csp(true)
48            .follow_redirects(true)
49            .ignore_server_certificate_error(true)
50            .initial_navigation_timeout(200)
51            .min_failure_duration(10)
52            .min_location_failed(1)
53            .no_screenshot(true)
54            .retry(
55                SyntheticsTestOptionsRetry::new()
56                    .count(2)
57                    .interval(10.0 as f64),
58            )
59            .rum_settings(
60                SyntheticsBrowserTestRumSettings::new(true)
61                    .application_id("mockApplicationId".to_string())
62                    .client_token_id(12345),
63            )
64            .tick_every(300),
65        SyntheticsBrowserTestType::BROWSER,
66    )
67    .steps(vec![SyntheticsStep::new()
68        .allow_failure(false)
69        .is_critical(true)
70        .name("Refresh page".to_string())
71        .params(BTreeMap::new())
72        .type_(SyntheticsStepType::REFRESH)])
73    .tags(vec!["testing:browser".to_string()]);
74    let configuration = datadog::Configuration::new();
75    let api = SyntheticsAPI::with_config(configuration);
76    let resp = api.create_synthetics_browser_test(body).await;
77    if let Ok(value) = resp {
78        println!("{:#?}", value);
79    } else {
80        println!("{:#?}", resp.unwrap_err());
81    }
82}