v1_dashboards_CreateDashboard_2490110261/
v1_dashboards_CreateDashboard_2490110261.rs1use 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}