v1_dashboards_CreateDashboard_2336428357/
v1_dashboards_CreateDashboard_2336428357.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::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::FormulaType;
12use datadog_api_client::datadogV1::model::TableWidgetCellDisplayMode;
13use datadog_api_client::datadogV1::model::TableWidgetDefinition;
14use datadog_api_client::datadogV1::model::TableWidgetDefinitionType;
15use datadog_api_client::datadogV1::model::TableWidgetHasSearchBar;
16use datadog_api_client::datadogV1::model::TableWidgetRequest;
17use datadog_api_client::datadogV1::model::Widget;
18use datadog_api_client::datadogV1::model::WidgetDefinition;
19use datadog_api_client::datadogV1::model::WidgetFormula;
20use datadog_api_client::datadogV1::model::WidgetFormulaSort;
21use datadog_api_client::datadogV1::model::WidgetLayout;
22use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
23use datadog_api_client::datadogV1::model::WidgetSort;
24use datadog_api_client::datadogV1::model::WidgetSortBy;
25use datadog_api_client::datadogV1::model::WidgetSortOrderBy;
26use datadog_api_client::datadogV1::model::WidgetTextAlign;
27use datadog_api_client::datadogV1::model::WidgetTime;
28
29#[tokio::main]
30async fn main() {
31 let body =
32 Dashboard::new(
33 DashboardLayoutType::FREE,
34 "Example-Dashboard".to_string(),
35 vec![
36 Widget::new(
37 WidgetDefinition::TableWidgetDefinition(
38 Box::new(
39 TableWidgetDefinition::new(
40 vec![
41 TableWidgetRequest::new()
42 .formulas(
43 vec![
44 WidgetFormula::new("query1".to_string())
45 .cell_display_mode(TableWidgetCellDisplayMode::BAR)
46 .conditional_formats(vec![])
47 ],
48 )
49 .queries(
50 vec![
51 FormulaAndFunctionQueryDefinition
52 ::FormulaAndFunctionMetricQueryDefinition(
53 Box::new(
54 FormulaAndFunctionMetricQueryDefinition::new(
55 FormulaAndFunctionMetricDataSource::METRICS,
56 "query1".to_string(),
57 "avg:system.cpu.user{*} by {host}".to_string(),
58 ).aggregator(FormulaAndFunctionMetricAggregation::AVG),
59 ),
60 )
61 ],
62 )
63 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
64 .sort(
65 WidgetSortBy::new()
66 .count(500)
67 .order_by(
68 vec![
69 WidgetSortOrderBy::WidgetFormulaSort(
70 Box::new(
71 WidgetFormulaSort::new(
72 0,
73 WidgetSort::DESCENDING,
74 FormulaType::FORMULA,
75 ),
76 ),
77 )
78 ],
79 ),
80 )
81 ],
82 TableWidgetDefinitionType::QUERY_TABLE,
83 )
84 .has_search_bar(TableWidgetHasSearchBar::AUTO)
85 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
86 .title("".to_string())
87 .title_align(WidgetTextAlign::LEFT)
88 .title_size("16".to_string()),
89 ),
90 ),
91 ).layout(WidgetLayout::new(32, 54, 0, 0))
92 ],
93 )
94 .description(Some("".to_string()))
95 .notify_list(Some(vec![]))
96 .template_variables(Some(vec![]));
97 let configuration = datadog::Configuration::new();
98 let api = DashboardsAPI::with_config(configuration);
99 let resp = api.create_dashboard(body).await;
100 if let Ok(value) = resp {
101 println!("{:#?}", value);
102 } else {
103 println!("{:#?}", resp.unwrap_err());
104 }
105}