v1_dashboards_CreateDashboard_2490110261/
v1_dashboards_CreateDashboard_2490110261.rs

1// Create a new dashboard with an audit logs query
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::FormulaAndFunctionEventAggregation;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionCompute;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionSearch;
10use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource;
11use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
12use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
13use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition;
14use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType;
15use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest;
16use datadog_api_client::datadogV1::model::Widget;
17use datadog_api_client::datadogV1::model::WidgetDefinition;
18use datadog_api_client::datadogV1::model::WidgetLayout;
19
20#[tokio::main]
21async fn main() {
22    let body =
23        Dashboard::new(
24            DashboardLayoutType::ORDERED,
25            "Example-Dashboard with Audit Logs Query".to_string(),
26            vec![
27                Widget::new(
28                    WidgetDefinition::TimeseriesWidgetDefinition(
29                        Box::new(
30                            TimeseriesWidgetDefinition::new(
31                                vec![
32                                    TimeseriesWidgetRequest::new()
33                                        .queries(
34                                            vec![
35                                                FormulaAndFunctionQueryDefinition
36                                                ::FormulaAndFunctionEventQueryDefinition(
37                                                    Box::new(
38                                                        FormulaAndFunctionEventQueryDefinition::new(
39                                                            FormulaAndFunctionEventQueryDefinitionCompute::new(
40                                                                FormulaAndFunctionEventAggregation::COUNT,
41                                                            ),
42                                                            FormulaAndFunctionEventsDataSource::AUDIT,
43                                                            "query1".to_string(),
44                                                        )
45                                                            .group_by(vec![])
46                                                            .indexes(vec!["*".to_string()])
47                                                            .search(
48                                                                FormulaAndFunctionEventQueryDefinitionSearch::new(
49                                                                    "".to_string(),
50                                                                ),
51                                                            ),
52                                                    ),
53                                                )
54                                            ],
55                                        )
56                                        .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
57                                ],
58                                TimeseriesWidgetDefinitionType::TIMESERIES,
59                            ),
60                        ),
61                    ),
62                ).layout(WidgetLayout::new(2, 4, 2, 0))
63            ],
64        );
65    let configuration = datadog::Configuration::new();
66    let api = DashboardsAPI::with_config(configuration);
67    let resp = api.create_dashboard(body).await;
68    if let Ok(value) = resp {
69        println!("{:#?}", value);
70    } else {
71        println!("{:#?}", resp.unwrap_err());
72    }
73}