v1_synthetics_UpdateBrowserTest/
v1_synthetics_UpdateBrowserTest.rs

1// Edit a browser test returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_synthetics::SyntheticsAPI;
4use datadog_api_client::datadogV1::model::SyntheticsBasicAuth;
5use datadog_api_client::datadogV1::model::SyntheticsBasicAuthWeb;
6use datadog_api_client::datadogV1::model::SyntheticsBasicAuthWebType;
7use datadog_api_client::datadogV1::model::SyntheticsBrowserTest;
8use datadog_api_client::datadogV1::model::SyntheticsBrowserTestConfig;
9use datadog_api_client::datadogV1::model::SyntheticsBrowserTestRumSettings;
10use datadog_api_client::datadogV1::model::SyntheticsBrowserTestType;
11use datadog_api_client::datadogV1::model::SyntheticsBrowserVariable;
12use datadog_api_client::datadogV1::model::SyntheticsBrowserVariableType;
13use datadog_api_client::datadogV1::model::SyntheticsConfigVariable;
14use datadog_api_client::datadogV1::model::SyntheticsConfigVariableType;
15use datadog_api_client::datadogV1::model::SyntheticsStep;
16use datadog_api_client::datadogV1::model::SyntheticsStepType;
17use datadog_api_client::datadogV1::model::SyntheticsTestCallType;
18use datadog_api_client::datadogV1::model::SyntheticsTestCiOptions;
19use datadog_api_client::datadogV1::model::SyntheticsTestExecutionRule;
20use datadog_api_client::datadogV1::model::SyntheticsTestOptions;
21use datadog_api_client::datadogV1::model::SyntheticsTestOptionsHTTPVersion;
22use datadog_api_client::datadogV1::model::SyntheticsTestOptionsMonitorOptions;
23use datadog_api_client::datadogV1::model::SyntheticsTestOptionsMonitorOptionsNotificationPresetName;
24use datadog_api_client::datadogV1::model::SyntheticsTestOptionsRetry;
25use datadog_api_client::datadogV1::model::SyntheticsTestOptionsScheduling;
26use datadog_api_client::datadogV1::model::SyntheticsTestOptionsSchedulingTimeframe;
27use datadog_api_client::datadogV1::model::SyntheticsTestPauseStatus;
28use datadog_api_client::datadogV1::model::SyntheticsTestRequest;
29use datadog_api_client::datadogV1::model::SyntheticsTestRequestBodyFile;
30use datadog_api_client::datadogV1::model::SyntheticsTestRequestBodyType;
31use datadog_api_client::datadogV1::model::SyntheticsTestRequestCertificate;
32use datadog_api_client::datadogV1::model::SyntheticsTestRequestCertificateItem;
33use datadog_api_client::datadogV1::model::SyntheticsTestRequestProxy;
34
35#[tokio::main]
36async fn main() {
37    let body = SyntheticsBrowserTest::new(
38        SyntheticsBrowserTestConfig::new(
39            vec![],
40            SyntheticsTestRequest::new()
41                .basic_auth(SyntheticsBasicAuth::SyntheticsBasicAuthWeb(Box::new(
42                    SyntheticsBasicAuthWeb::new()
43                        .password("PaSSw0RD!".to_string())
44                        .type_(SyntheticsBasicAuthWebType::WEB)
45                        .username("my_username".to_string()),
46                )))
47                .body_type(SyntheticsTestRequestBodyType::TEXT_PLAIN)
48                .call_type(SyntheticsTestCallType::UNARY)
49                .certificate(
50                    SyntheticsTestRequestCertificate::new()
51                        .cert(SyntheticsTestRequestCertificateItem::new())
52                        .key(SyntheticsTestRequestCertificateItem::new()),
53                )
54                .certificate_domains(vec![])
55                .files(vec![SyntheticsTestRequestBodyFile::new()])
56                .http_version(SyntheticsTestOptionsHTTPVersion::HTTP1)
57                .proxy(SyntheticsTestRequestProxy::new(
58                    "https://example.com".to_string(),
59                ))
60                .service("Greeter".to_string())
61                .url("https://example.com".to_string()),
62        )
63        .config_variables(vec![SyntheticsConfigVariable::new(
64            "VARIABLE_NAME".to_string(),
65            SyntheticsConfigVariableType::TEXT,
66        )
67        .secure(false)])
68        .variables(vec![SyntheticsBrowserVariable::new(
69            "VARIABLE_NAME".to_string(),
70            SyntheticsBrowserVariableType::TEXT,
71        )]),
72        vec!["aws:eu-west-3".to_string()],
73        "".to_string(),
74        "Example test name".to_string(),
75        SyntheticsTestOptions::new()
76            .ci(SyntheticsTestCiOptions::new(
77                SyntheticsTestExecutionRule::BLOCKING,
78            ))
79            .device_ids(vec!["chrome.laptop_large".to_string()])
80            .http_version(SyntheticsTestOptionsHTTPVersion::HTTP1)
81            .monitor_options(
82                SyntheticsTestOptionsMonitorOptions::new().notification_preset_name(
83                    SyntheticsTestOptionsMonitorOptionsNotificationPresetName::SHOW_ALL,
84                ),
85            )
86            .restricted_roles(vec!["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string()])
87            .retry(SyntheticsTestOptionsRetry::new())
88            .rum_settings(
89                SyntheticsBrowserTestRumSettings::new(true)
90                    .application_id("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".to_string())
91                    .client_token_id(12345),
92            )
93            .scheduling(SyntheticsTestOptionsScheduling::new(
94                vec![
95                    SyntheticsTestOptionsSchedulingTimeframe::new(
96                        1,
97                        "07:00".to_string(),
98                        "16:00".to_string(),
99                    ),
100                    SyntheticsTestOptionsSchedulingTimeframe::new(
101                        3,
102                        "07:00".to_string(),
103                        "16:00".to_string(),
104                    ),
105                ],
106                "America/New_York".to_string(),
107            )),
108        SyntheticsBrowserTestType::BROWSER,
109    )
110    .status(SyntheticsTestPauseStatus::LIVE)
111    .steps(vec![
112        SyntheticsStep::new().type_(SyntheticsStepType::ASSERT_ELEMENT_CONTENT)
113    ])
114    .tags(vec!["env:prod".to_string()]);
115    let configuration = datadog::Configuration::new();
116    let api = SyntheticsAPI::with_config(configuration);
117    let resp = api.update_browser_test("public_id".to_string(), body).await;
118    if let Ok(value) = resp {
119        println!("{:#?}", value);
120    } else {
121        println!("{:#?}", resp.unwrap_err());
122    }
123}