v1_dashboards_CreateDashboard_765140092/
v1_dashboards_CreateDashboard_765140092.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::QueryValueWidgetDefinition;
12use datadog_api_client::datadogV1::model::QueryValueWidgetDefinitionType;
13use datadog_api_client::datadogV1::model::QueryValueWidgetRequest;
14use datadog_api_client::datadogV1::model::TimeseriesBackground;
15use datadog_api_client::datadogV1::model::TimeseriesBackgroundType;
16use datadog_api_client::datadogV1::model::Widget;
17use datadog_api_client::datadogV1::model::WidgetAxis;
18use datadog_api_client::datadogV1::model::WidgetDefinition;
19use datadog_api_client::datadogV1::model::WidgetFormula;
20use datadog_api_client::datadogV1::model::WidgetLayout;
21use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
22use datadog_api_client::datadogV1::model::WidgetTextAlign;
23use datadog_api_client::datadogV1::model::WidgetTime;
24
25#[tokio::main]
26async fn main() {
27 let body =
28 Dashboard::new(
29 DashboardLayoutType::ORDERED,
30 "Example-Dashboard with QVW Timeseries Background".to_string(),
31 vec![
32 Widget::new(
33 WidgetDefinition::QueryValueWidgetDefinition(
34 Box::new(
35 QueryValueWidgetDefinition::new(
36 vec![
37 QueryValueWidgetRequest::new()
38 .formulas(vec![WidgetFormula::new("query1".to_string())])
39 .queries(
40 vec![
41 FormulaAndFunctionQueryDefinition
42 ::FormulaAndFunctionMetricQueryDefinition(
43 Box::new(
44 FormulaAndFunctionMetricQueryDefinition::new(
45 FormulaAndFunctionMetricDataSource::METRICS,
46 "query1".to_string(),
47 "sum:my.cool.count.metric{*}".to_string(),
48 ).aggregator(FormulaAndFunctionMetricAggregation::PERCENTILE),
49 ),
50 )
51 ],
52 )
53 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
54 ],
55 QueryValueWidgetDefinitionType::QUERY_VALUE,
56 )
57 .autoscale(true)
58 .precision(2)
59 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
60 .timeseries_background(
61 TimeseriesBackground::new(
62 TimeseriesBackgroundType::AREA,
63 ).yaxis(WidgetAxis::new().include_zero(true)),
64 )
65 .title("".to_string())
66 .title_align(WidgetTextAlign::LEFT)
67 .title_size("16".to_string()),
68 ),
69 ),
70 ).layout(WidgetLayout::new(2, 2, 0, 0))
71 ],
72 );
73 let configuration = datadog::Configuration::new();
74 let api = DashboardsAPI::with_config(configuration);
75 let resp = api.create_dashboard(body).await;
76 if let Ok(value) = resp {
77 println!("{:#?}", value);
78 } else {
79 println!("{:#?}", resp.unwrap_err());
80 }
81}