v1_dashboards_CreateDashboard_2563642929/
v1_dashboards_CreateDashboard_2563642929.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::GroupType;
12use datadog_api_client::datadogV1::model::ToplistWidgetDefinition;
13use datadog_api_client::datadogV1::model::ToplistWidgetDefinitionType;
14use datadog_api_client::datadogV1::model::ToplistWidgetDisplay;
15use datadog_api_client::datadogV1::model::ToplistWidgetLegend;
16use datadog_api_client::datadogV1::model::ToplistWidgetRequest;
17use datadog_api_client::datadogV1::model::ToplistWidgetScaling;
18use datadog_api_client::datadogV1::model::ToplistWidgetStacked;
19use datadog_api_client::datadogV1::model::ToplistWidgetStackedType;
20use datadog_api_client::datadogV1::model::ToplistWidgetStyle;
21use datadog_api_client::datadogV1::model::Widget;
22use datadog_api_client::datadogV1::model::WidgetDefinition;
23use datadog_api_client::datadogV1::model::WidgetFormula;
24use datadog_api_client::datadogV1::model::WidgetGroupSort;
25use datadog_api_client::datadogV1::model::WidgetLayout;
26use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
27use datadog_api_client::datadogV1::model::WidgetSort;
28use datadog_api_client::datadogV1::model::WidgetSortBy;
29use datadog_api_client::datadogV1::model::WidgetSortOrderBy;
30use datadog_api_client::datadogV1::model::WidgetTextAlign;
31use datadog_api_client::datadogV1::model::WidgetTime;
32
33#[tokio::main]
34async fn main() {
35 let body =
36 Dashboard::new(
37 DashboardLayoutType::FREE,
38 "Example-Dashboard".to_string(),
39 vec![
40 Widget::new(
41 WidgetDefinition::ToplistWidgetDefinition(
42 Box::new(
43 ToplistWidgetDefinition::new(
44 vec![
45 ToplistWidgetRequest::new()
46 .formulas(vec![WidgetFormula::new("query1".to_string())])
47 .queries(
48 vec![
49 FormulaAndFunctionQueryDefinition
50 ::FormulaAndFunctionMetricQueryDefinition(
51 Box::new(
52 FormulaAndFunctionMetricQueryDefinition::new(
53 FormulaAndFunctionMetricDataSource::METRICS,
54 "query1".to_string(),
55 "avg:system.cpu.user{*} by {service}".to_string(),
56 ).aggregator(FormulaAndFunctionMetricAggregation::AVG),
57 ),
58 )
59 ],
60 )
61 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
62 .sort(
63 WidgetSortBy::new()
64 .count(10)
65 .order_by(
66 vec![
67 WidgetSortOrderBy::WidgetGroupSort(
68 Box::new(
69 WidgetGroupSort::new(
70 "service".to_string(),
71 WidgetSort::ASCENDING,
72 GroupType::GROUP,
73 ),
74 ),
75 )
76 ],
77 ),
78 )
79 ],
80 ToplistWidgetDefinitionType::TOPLIST,
81 )
82 .style(
83 ToplistWidgetStyle::new()
84 .display(
85 ToplistWidgetDisplay::ToplistWidgetStacked(
86 Box::new(
87 ToplistWidgetStacked::new(
88 ToplistWidgetStackedType::STACKED,
89 ).legend(ToplistWidgetLegend::INLINE),
90 ),
91 ),
92 )
93 .palette("dog_classic".to_string())
94 .scaling(ToplistWidgetScaling::RELATIVE),
95 )
96 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
97 .title("".to_string())
98 .title_align(WidgetTextAlign::LEFT)
99 .title_size("16".to_string()),
100 ),
101 ),
102 ).layout(WidgetLayout::new(15, 47, 0, 0))
103 ],
104 )
105 .description(Some("".to_string()))
106 .notify_list(Some(vec![]))
107 .template_variables(Some(vec![]));
108 let configuration = datadog::Configuration::new();
109 let api = DashboardsAPI::with_config(configuration);
110 let resp = api.create_dashboard(body).await;
111 if let Ok(value) = resp {
112 println!("{:#?}", value);
113 } else {
114 println!("{:#?}", resp.unwrap_err());
115 }
116}