v1_dashboards_CreateDashboard_41622531/
v1_dashboards_CreateDashboard_41622531.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::DashboardReflowType;
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::TimeseriesWidgetDefinition;
12use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType;
13use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendColumn;
14use datadog_api_client::datadogV1::model::TimeseriesWidgetLegendLayout;
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::WidgetDisplayType;
19use datadog_api_client::datadogV1::model::WidgetFormula;
20use datadog_api_client::datadogV1::model::WidgetFormulaStyle;
21use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
22use datadog_api_client::datadogV1::model::WidgetLineType;
23use datadog_api_client::datadogV1::model::WidgetLineWidth;
24use datadog_api_client::datadogV1::model::WidgetRequestStyle;
25use datadog_api_client::datadogV1::model::WidgetTime;
26
27#[tokio::main]
28async fn main() {
29 let body =
30 Dashboard::new(
31 DashboardLayoutType::ORDERED,
32 "Example-Dashboard with formula style".to_string(),
33 vec![
34 Widget::new(
35 WidgetDefinition::TimeseriesWidgetDefinition(
36 Box::new(
37 TimeseriesWidgetDefinition::new(
38 vec![
39 TimeseriesWidgetRequest::new()
40 .display_type(WidgetDisplayType::LINE)
41 .formulas(
42 vec![
43 WidgetFormula::new(
44 "query1".to_string(),
45 ).style(
46 WidgetFormulaStyle::new()
47 .palette("classic".to_string())
48 .palette_index(4),
49 )
50 ],
51 )
52 .queries(
53 vec![
54 FormulaAndFunctionQueryDefinition
55 ::FormulaAndFunctionMetricQueryDefinition(
56 Box::new(
57 FormulaAndFunctionMetricQueryDefinition::new(
58 FormulaAndFunctionMetricDataSource::METRICS,
59 "query1".to_string(),
60 "avg:system.cpu.user{*}".to_string(),
61 ),
62 ),
63 )
64 ],
65 )
66 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
67 .style(
68 WidgetRequestStyle::new()
69 .line_type(WidgetLineType::SOLID)
70 .line_width(WidgetLineWidth::NORMAL)
71 .palette("dog_classic".to_string()),
72 )
73 ],
74 TimeseriesWidgetDefinitionType::TIMESERIES,
75 )
76 .legend_columns(
77 vec![
78 TimeseriesWidgetLegendColumn::AVG,
79 TimeseriesWidgetLegendColumn::MIN,
80 TimeseriesWidgetLegendColumn::MAX,
81 TimeseriesWidgetLegendColumn::VALUE,
82 TimeseriesWidgetLegendColumn::SUM
83 ],
84 )
85 .legend_layout(TimeseriesWidgetLegendLayout::AUTO)
86 .show_legend(true)
87 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
88 .title("styled timeseries".to_string()),
89 ),
90 ),
91 )
92 ],
93 ).reflow_type(DashboardReflowType::AUTO);
94 let configuration = datadog::Configuration::new();
95 let api = DashboardsAPI::with_config(configuration);
96 let resp = api.create_dashboard(body).await;
97 if let Ok(value) = resp {
98 println!("{:#?}", value);
99 } else {
100 println!("{:#?}", resp.unwrap_err());
101 }
102}