v1_dashboards_CreateDashboard_3777304439/
v1_dashboards_CreateDashboard_3777304439.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::FormulaAndFunctionMetricDataSource;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionMetricQueryDefinition;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
10use datadog_api_client::datadogV1::model::HeatMapWidgetDefinition;
11use datadog_api_client::datadogV1::model::HeatMapWidgetDefinitionType;
12use datadog_api_client::datadogV1::model::HeatMapWidgetRequest;
13use datadog_api_client::datadogV1::model::Widget;
14use datadog_api_client::datadogV1::model::WidgetDefinition;
15use datadog_api_client::datadogV1::model::WidgetFormula;
16use datadog_api_client::datadogV1::model::WidgetLayout;
17use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
18use datadog_api_client::datadogV1::model::WidgetStyle;
19use datadog_api_client::datadogV1::model::WidgetTextAlign;
20use datadog_api_client::datadogV1::model::WidgetTime;
21
22#[tokio::main]
23async fn main() {
24 let body =
25 Dashboard::new(
26 DashboardLayoutType::FREE,
27 "Example-Dashboard".to_string(),
28 vec![
29 Widget::new(
30 WidgetDefinition::HeatMapWidgetDefinition(
31 Box::new(
32 HeatMapWidgetDefinition::new(
33 vec![
34 HeatMapWidgetRequest::new()
35 .formulas(vec![WidgetFormula::new("query1".to_string())])
36 .queries(
37 vec![
38 FormulaAndFunctionQueryDefinition
39 ::FormulaAndFunctionMetricQueryDefinition(
40 Box::new(
41 FormulaAndFunctionMetricQueryDefinition::new(
42 FormulaAndFunctionMetricDataSource::METRICS,
43 "query1".to_string(),
44 "avg:system.cpu.user{*}".to_string(),
45 ),
46 ),
47 )
48 ],
49 )
50 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
51 .style(WidgetStyle::new().palette("dog_classic".to_string()))
52 ],
53 HeatMapWidgetDefinitionType::HEATMAP,
54 )
55 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
56 .title("".to_string())
57 .title_align(WidgetTextAlign::LEFT)
58 .title_size("16".to_string()),
59 ),
60 ),
61 ).layout(WidgetLayout::new(15, 47, 0, 0))
62 ],
63 )
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}