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