v1_dashboards_CreateDashboard_1284514532/
v1_dashboards_CreateDashboard_1284514532.rs1use datadog_api_client::datadog;
4use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
5use datadog_api_client::datadogV1::model::Dashboard;
6use datadog_api_client::datadogV1::model::DashboardLayoutType;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostDataSource;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionCloudCostQueryDefinition;
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::TimeseriesWidgetRequest;
14use datadog_api_client::datadogV1::model::Widget;
15use datadog_api_client::datadogV1::model::WidgetDefinition;
16use datadog_api_client::datadogV1::model::WidgetDisplayType;
17use datadog_api_client::datadogV1::model::WidgetFormula;
18use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
19use datadog_api_client::datadogV1::model::WidgetLineType;
20use datadog_api_client::datadogV1::model::WidgetLineWidth;
21use datadog_api_client::datadogV1::model::WidgetLiveSpan;
22use datadog_api_client::datadogV1::model::WidgetRequestStyle;
23use datadog_api_client::datadogV1::model::WidgetTextAlign;
24use datadog_api_client::datadogV1::model::WidgetTime;
25
26#[tokio::main]
27async fn main() {
28 let body =
29 Dashboard::new(
30 DashboardLayoutType::ORDERED,
31 "Example-Dashboard".to_string(),
32 vec![
33 Widget::new(
34 WidgetDefinition::TimeseriesWidgetDefinition(
35 Box::new(
36 TimeseriesWidgetDefinition::new(
37 vec![
38 TimeseriesWidgetRequest::new()
39 .display_type(WidgetDisplayType::BARS)
40 .formulas(vec![WidgetFormula::new("query1".to_string())])
41 .queries(
42 vec![
43 FormulaAndFunctionQueryDefinition
44 ::FormulaAndFunctionCloudCostQueryDefinition(
45 Box::new(
46 FormulaAndFunctionCloudCostQueryDefinition::new(
47 FormulaAndFunctionCloudCostDataSource::CLOUD_COST,
48 "query1".to_string(),
49 "sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, monthly)".to_string(),
50 ),
51 ),
52 )
53 ],
54 )
55 .response_format(FormulaAndFunctionResponseFormat::TIMESERIES)
56 .style(
57 WidgetRequestStyle::new()
58 .line_type(WidgetLineType::SOLID)
59 .line_width(WidgetLineWidth::NORMAL)
60 .palette("dog_classic".to_string()),
61 )
62 ],
63 TimeseriesWidgetDefinitionType::TIMESERIES,
64 )
65 .time(
66 WidgetTime::WidgetLegacyLiveSpan(
67 Box::new(WidgetLegacyLiveSpan::new().live_span(WidgetLiveSpan::WEEK_TO_DATE)),
68 ),
69 )
70 .title("Example Cloud Cost Query".to_string())
71 .title_align(WidgetTextAlign::LEFT)
72 .title_size("16".to_string()),
73 ),
74 ),
75 )
76 ],
77 );
78 let configuration = datadog::Configuration::new();
79 let api = DashboardsAPI::with_config(configuration);
80 let resp = api.create_dashboard(body).await;
81 if let Ok(value) = resp {
82 println!("{:#?}", value);
83 } else {
84 println!("{:#?}", resp.unwrap_err());
85 }
86}