v1_synthetics_TriggerCITests/
v1_synthetics_TriggerCITests.rs

1// Trigger tests from CI/CD pipelines 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::SyntheticsCIBatchMetadata;
8use datadog_api_client::datadogV1::model::SyntheticsCIBatchMetadataCI;
9use datadog_api_client::datadogV1::model::SyntheticsCIBatchMetadataGit;
10use datadog_api_client::datadogV1::model::SyntheticsCIBatchMetadataPipeline;
11use datadog_api_client::datadogV1::model::SyntheticsCIBatchMetadataProvider;
12use datadog_api_client::datadogV1::model::SyntheticsCITest;
13use datadog_api_client::datadogV1::model::SyntheticsCITestBody;
14use datadog_api_client::datadogV1::model::SyntheticsTestOptionsRetry;
15
16#[tokio::main]
17async fn main() {
18    let body =
19        SyntheticsCITestBody::new().tests(vec![SyntheticsCITest::new("aaa-aaa-aaa".to_string())
20            .basic_auth(SyntheticsBasicAuth::SyntheticsBasicAuthWeb(Box::new(
21                SyntheticsBasicAuthWeb::new()
22                    .password("PaSSw0RD!".to_string())
23                    .type_(SyntheticsBasicAuthWebType::WEB)
24                    .username("my_username".to_string()),
25            )))
26            .device_ids(vec!["chrome.laptop_large".to_string()])
27            .locations(vec!["aws:eu-west-3".to_string()])
28            .metadata(
29                SyntheticsCIBatchMetadata::new()
30                    .ci(SyntheticsCIBatchMetadataCI::new()
31                        .pipeline(SyntheticsCIBatchMetadataPipeline::new())
32                        .provider(SyntheticsCIBatchMetadataProvider::new()))
33                    .git(SyntheticsCIBatchMetadataGit::new()),
34            )
35            .retry(SyntheticsTestOptionsRetry::new())]);
36    let configuration = datadog::Configuration::new();
37    let api = SyntheticsAPI::with_config(configuration);
38    let resp = api.trigger_ci_tests(body).await;
39    if let Ok(value) = resp {
40        println!("{:#?}", value);
41    } else {
42        println!("{:#?}", resp.unwrap_err());
43    }
44}