v1_dashboards_CreateDashboard_3669695268/
v1_dashboards_CreateDashboard_3669695268.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::FormulaType;
14use datadog_api_client::datadogV1::model::TableWidgetCellDisplayMode;
15use datadog_api_client::datadogV1::model::TableWidgetDefinition;
16use datadog_api_client::datadogV1::model::TableWidgetDefinitionType;
17use datadog_api_client::datadogV1::model::TableWidgetRequest;
18use datadog_api_client::datadogV1::model::Widget;
19use datadog_api_client::datadogV1::model::WidgetDefinition;
20use datadog_api_client::datadogV1::model::WidgetFormula;
21use datadog_api_client::datadogV1::model::WidgetFormulaSort;
22use datadog_api_client::datadogV1::model::WidgetSort;
23use datadog_api_client::datadogV1::model::WidgetSortBy;
24use datadog_api_client::datadogV1::model::WidgetSortOrderBy;
25
26#[tokio::main]
27async fn main() {
28 let body = Dashboard::new(
29 DashboardLayoutType::ORDERED,
30 "Example-Dashboard with query table widget and storage parameter".to_string(),
31 vec![Widget::new(WidgetDefinition::TableWidgetDefinition(
32 Box::new(TableWidgetDefinition::new(
33 vec![TableWidgetRequest::new()
34 .formulas(vec![WidgetFormula::new("query1".to_string())
35 .cell_display_mode(TableWidgetCellDisplayMode::BAR)
36 .conditional_formats(vec![])])
37 .queries(vec![
38 FormulaAndFunctionQueryDefinition::FormulaAndFunctionEventQueryDefinition(
39 Box::new(
40 FormulaAndFunctionEventQueryDefinition::new(
41 FormulaAndFunctionEventQueryDefinitionCompute::new(
42 FormulaAndFunctionEventAggregation::COUNT,
43 ),
44 FormulaAndFunctionEventsDataSource::LOGS,
45 "query1".to_string(),
46 )
47 .group_by(vec![])
48 .indexes(vec!["*".to_string()])
49 .search(FormulaAndFunctionEventQueryDefinitionSearch::new(
50 "".to_string(),
51 ))
52 .storage("online_archives".to_string()),
53 ),
54 ),
55 ])
56 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
57 .sort(WidgetSortBy::new().count(50).order_by(vec![
58 WidgetSortOrderBy::WidgetFormulaSort(Box::new(WidgetFormulaSort::new(
59 0,
60 WidgetSort::DESCENDING,
61 FormulaType::FORMULA,
62 ))),
63 ]))],
64 TableWidgetDefinitionType::QUERY_TABLE,
65 )),
66 ))],
67 );
68 let configuration = datadog::Configuration::new();
69 let api = DashboardsAPI::with_config(configuration);
70 let resp = api.create_dashboard(body).await;
71 if let Ok(value) = resp {
72 println!("{:#?}", value);
73 } else {
74 println!("{:#?}", resp.unwrap_err());
75 }
76}