v1_dashboards_CreateDashboard_2349863258/
v1_dashboards_CreateDashboard_2349863258.rs

1// Create a new dashboard with query_value widget
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::FormulaAndFunctionMetricAggregation;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricDataSource;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
10use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
11use datadog_api_client::datadogV1::model::QueryValueWidgetDefinition;
12use datadog_api_client::datadogV1::model::QueryValueWidgetDefinitionType;
13use datadog_api_client::datadogV1::model::QueryValueWidgetRequest;
14use datadog_api_client::datadogV1::model::Widget;
15use datadog_api_client::datadogV1::model::WidgetDefinition;
16use datadog_api_client::datadogV1::model::WidgetLayout;
17use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
18use datadog_api_client::datadogV1::model::WidgetTextAlign;
19use datadog_api_client::datadogV1::model::WidgetTime;
20
21#[tokio::main]
22async fn main() {
23    let body =
24        Dashboard::new(
25            DashboardLayoutType::FREE,
26            "Example-Dashboard".to_string(),
27            vec![
28                Widget::new(
29                    WidgetDefinition::QueryValueWidgetDefinition(
30                        Box::new(
31                            QueryValueWidgetDefinition::new(
32                                vec![
33                                    QueryValueWidgetRequest::new()
34                                        .queries(
35                                            vec![
36                                                FormulaAndFunctionQueryDefinition
37                                                ::FormulaAndFunctionMetricQueryDefinition(
38                                                    Box::new(
39                                                        FormulaAndFunctionMetricQueryDefinition::new(
40                                                            FormulaAndFunctionMetricDataSource::METRICS,
41                                                            "query1".to_string(),
42                                                            "avg:system.cpu.user{*}".to_string(),
43                                                        ).aggregator(FormulaAndFunctionMetricAggregation::AVG),
44                                                    ),
45                                                )
46                                            ],
47                                        )
48                                        .response_format(FormulaAndFunctionResponseFormat::SCALAR)
49                                ],
50                                QueryValueWidgetDefinitionType::QUERY_VALUE,
51                            )
52                                .autoscale(true)
53                                .precision(2)
54                                .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
55                                .title("".to_string())
56                                .title_align(WidgetTextAlign::LEFT)
57                                .title_size("16".to_string()),
58                        ),
59                    ),
60                ).layout(WidgetLayout::new(15, 47, 0, 0))
61            ],
62        )
63            .description(Some("".to_string()))
64            .notify_list(Some(vec![]))
65            .template_variables(Some(vec![]));
66    let configuration = datadog::Configuration::new();
67    let api = DashboardsAPI::with_config(configuration);
68    let resp = api.create_dashboard(body).await;
69    if let Ok(value) = resp {
70        println!("{:#?}", value);
71    } else {
72        println!("{:#?}", resp.unwrap_err());
73    }
74}