v1_dashboards_CreateDashboard_109450134/
v1_dashboards_CreateDashboard_109450134.rs

1// Create a new dashboard with slo list widget with sort
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
4use datadog_api_client::datadogV1::model::Dashboard;
5use datadog_api_client::datadogV1::model::DashboardLayoutType;
6use datadog_api_client::datadogV1::model::SLOListWidgetDefinition;
7use datadog_api_client::datadogV1::model::SLOListWidgetDefinitionType;
8use datadog_api_client::datadogV1::model::SLOListWidgetQuery;
9use datadog_api_client::datadogV1::model::SLOListWidgetRequest;
10use datadog_api_client::datadogV1::model::SLOListWidgetRequestType;
11use datadog_api_client::datadogV1::model::Widget;
12use datadog_api_client::datadogV1::model::WidgetDefinition;
13use datadog_api_client::datadogV1::model::WidgetFieldSort;
14use datadog_api_client::datadogV1::model::WidgetLayout;
15use datadog_api_client::datadogV1::model::WidgetSort;
16use datadog_api_client::datadogV1::model::WidgetTextAlign;
17
18#[tokio::main]
19async fn main() {
20    let body = Dashboard::new(
21        DashboardLayoutType::FREE,
22        "Example-Dashboard".to_string(),
23        vec![
24            Widget::new(WidgetDefinition::SLOListWidgetDefinition(Box::new(
25                SLOListWidgetDefinition::new(
26                    vec![SLOListWidgetRequest::new(
27                        SLOListWidgetQuery::new("env:prod AND service:my-app".to_string())
28                            .limit(75)
29                            .sort(vec![WidgetFieldSort::new(
30                                "status.sli".to_string(),
31                                WidgetSort::ASCENDING,
32                            )]),
33                        SLOListWidgetRequestType::SLO_LIST,
34                    )],
35                    SLOListWidgetDefinitionType::SLO_LIST,
36                )
37                .title_align(WidgetTextAlign::LEFT)
38                .title_size("16".to_string()),
39            )))
40            .layout(WidgetLayout::new(21, 60, 0, 0)),
41        ],
42    )
43    .description(Some("".to_string()))
44    .notify_list(Some(vec![]))
45    .template_variables(Some(vec![]));
46    let configuration = datadog::Configuration::new();
47    let api = DashboardsAPI::with_config(configuration);
48    let resp = api.create_dashboard(body).await;
49    if let Ok(value) = resp {
50        println!("{:#?}", value);
51    } else {
52        println!("{:#?}", resp.unwrap_err());
53    }
54}