v1_dashboards_CreateDashboard_578885732/
v1_dashboards_CreateDashboard_578885732.rs

1// Create a new dashboard with a formulas and functions change widget
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
4use datadog_api_client::datadogV1::model::ChangeWidgetDefinition;
5use datadog_api_client::datadogV1::model::ChangeWidgetDefinitionType;
6use datadog_api_client::datadogV1::model::ChangeWidgetRequest;
7use datadog_api_client::datadogV1::model::Dashboard;
8use datadog_api_client::datadogV1::model::DashboardLayoutType;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation;
10use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition;
11use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionCompute;
12use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionSearch;
13use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource;
14use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
15use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
16use datadog_api_client::datadogV1::model::Widget;
17use datadog_api_client::datadogV1::model::WidgetChangeType;
18use datadog_api_client::datadogV1::model::WidgetCompareTo;
19use datadog_api_client::datadogV1::model::WidgetDefinition;
20use datadog_api_client::datadogV1::model::WidgetFormula;
21use datadog_api_client::datadogV1::model::WidgetLayout;
22use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
23use datadog_api_client::datadogV1::model::WidgetOrderBy;
24use datadog_api_client::datadogV1::model::WidgetSort;
25use datadog_api_client::datadogV1::model::WidgetTextAlign;
26use datadog_api_client::datadogV1::model::WidgetTime;
27
28#[tokio::main]
29async fn main() {
30    let body =
31        Dashboard::new(
32            DashboardLayoutType::ORDERED,
33            "Example-Dashboard".to_string(),
34            vec![
35                Widget::new(
36                    WidgetDefinition::ChangeWidgetDefinition(
37                        Box::new(
38                            ChangeWidgetDefinition::new(
39                                vec![
40                                    ChangeWidgetRequest::new()
41                                        .change_type(WidgetChangeType::ABSOLUTE)
42                                        .compare_to(WidgetCompareTo::HOUR_BEFORE)
43                                        .formulas(
44                                            vec![
45                                                WidgetFormula::new("hour_before(query1)".to_string()),
46                                                WidgetFormula::new("query1".to_string())
47                                            ],
48                                        )
49                                        .increase_good(true)
50                                        .order_by(WidgetOrderBy::CHANGE)
51                                        .order_dir(WidgetSort::DESCENDING)
52                                        .queries(
53                                            vec![
54                                                FormulaAndFunctionQueryDefinition
55                                                ::FormulaAndFunctionEventQueryDefinition(
56                                                    Box::new(
57                                                        FormulaAndFunctionEventQueryDefinition::new(
58                                                            FormulaAndFunctionEventQueryDefinitionCompute::new(
59                                                                FormulaAndFunctionEventAggregation::COUNT,
60                                                            ),
61                                                            FormulaAndFunctionEventsDataSource::LOGS,
62                                                            "query1".to_string(),
63                                                        )
64                                                            .group_by(vec![])
65                                                            .indexes(vec!["*".to_string()])
66                                                            .search(
67                                                                FormulaAndFunctionEventQueryDefinitionSearch::new(
68                                                                    "".to_string(),
69                                                                ),
70                                                            ),
71                                                    ),
72                                                )
73                                            ],
74                                        )
75                                        .response_format(FormulaAndFunctionResponseFormat::SCALAR)
76                                ],
77                                ChangeWidgetDefinitionType::CHANGE,
78                            )
79                                .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
80                                .title("".to_string())
81                                .title_align(WidgetTextAlign::LEFT)
82                                .title_size("16".to_string()),
83                        ),
84                    ),
85                ).layout(WidgetLayout::new(4, 4, 0, 0))
86            ],
87        );
88    let configuration = datadog::Configuration::new();
89    let api = DashboardsAPI::with_config(configuration);
90    let resp = api.create_dashboard(body).await;
91    if let Ok(value) = resp {
92        println!("{:#?}", value);
93    } else {
94        println!("{:#?}", resp.unwrap_err());
95    }
96}