v1_dashboards_CreateDashboard_2349863258/
v1_dashboards_CreateDashboard_2349863258.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::Widget;
15use datadog_api_client::datadogV1::model::WidgetDefinition;
16use datadog_api_client::datadogV1::model::WidgetLayout;
17use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
18use datadog_api_client::datadogV1::model::WidgetTextAlign;
19use datadog_api_client::datadogV1::model::WidgetTime;
20
21#[tokio::main]
22async fn main() {
23 let body =
24 Dashboard::new(
25 DashboardLayoutType::FREE,
26 "Example-Dashboard".to_string(),
27 vec![
28 Widget::new(
29 WidgetDefinition::QueryValueWidgetDefinition(
30 Box::new(
31 QueryValueWidgetDefinition::new(
32 vec![
33 QueryValueWidgetRequest::new()
34 .queries(
35 vec![
36 FormulaAndFunctionQueryDefinition
37 ::FormulaAndFunctionMetricQueryDefinition(
38 Box::new(
39 FormulaAndFunctionMetricQueryDefinition::new(
40 FormulaAndFunctionMetricDataSource::METRICS,
41 "query1".to_string(),
42 "avg:system.cpu.user{*}".to_string(),
43 ).aggregator(FormulaAndFunctionMetricAggregation::AVG),
44 ),
45 )
46 ],
47 )
48 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
49 ],
50 QueryValueWidgetDefinitionType::QUERY_VALUE,
51 )
52 .autoscale(true)
53 .precision(2)
54 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
55 .title("".to_string())
56 .title_align(WidgetTextAlign::LEFT)
57 .title_size("16".to_string()),
58 ),
59 ),
60 ).layout(WidgetLayout::new(15, 47, 0, 0))
61 ],
62 )
63 .description(Some("".to_string()))
64 .notify_list(Some(vec![]))
65 .template_variables(Some(vec![]));
66 let configuration = datadog::Configuration::new();
67 let api = DashboardsAPI::with_config(configuration);
68 let resp = api.create_dashboard(body).await;
69 if let Ok(value) = resp {
70 println!("{:#?}", value);
71 } else {
72 println!("{:#?}", resp.unwrap_err());
73 }
74}