v1_dashboards_CreateDashboard_915214113/
v1_dashboards_CreateDashboard_915214113.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::FormulaAndFunctionEventAggregation;
7use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition;
8use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionCompute;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionSearch;
10use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryGroupBy;
11use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryGroupBySort;
12use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource;
13use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
14use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
15use datadog_api_client::datadogV1::model::FormulaType;
16use datadog_api_client::datadogV1::model::GeomapWidgetDefinition;
17use datadog_api_client::datadogV1::model::GeomapWidgetDefinitionStyle;
18use datadog_api_client::datadogV1::model::GeomapWidgetDefinitionType;
19use datadog_api_client::datadogV1::model::GeomapWidgetDefinitionView;
20use datadog_api_client::datadogV1::model::GeomapWidgetRequest;
21use datadog_api_client::datadogV1::model::QuerySortOrder;
22use datadog_api_client::datadogV1::model::Widget;
23use datadog_api_client::datadogV1::model::WidgetDefinition;
24use datadog_api_client::datadogV1::model::WidgetFormula;
25use datadog_api_client::datadogV1::model::WidgetFormulaSort;
26use datadog_api_client::datadogV1::model::WidgetLayout;
27use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
28use datadog_api_client::datadogV1::model::WidgetSort;
29use datadog_api_client::datadogV1::model::WidgetSortBy;
30use datadog_api_client::datadogV1::model::WidgetSortOrderBy;
31use datadog_api_client::datadogV1::model::WidgetTextAlign;
32use datadog_api_client::datadogV1::model::WidgetTime;
33
34#[tokio::main]
35async fn main() {
36 let body =
37 Dashboard::new(
38 DashboardLayoutType::FREE,
39 "Example-Dashboard".to_string(),
40 vec![
41 Widget::new(
42 WidgetDefinition::GeomapWidgetDefinition(
43 Box::new(
44 GeomapWidgetDefinition::new(
45 vec![
46 GeomapWidgetRequest::new()
47 .formulas(vec![WidgetFormula::new("query1".to_string())])
48 .queries(
49 vec![
50 FormulaAndFunctionQueryDefinition
51 ::FormulaAndFunctionEventQueryDefinition(
52 Box::new(
53 FormulaAndFunctionEventQueryDefinition::new(
54 FormulaAndFunctionEventQueryDefinitionCompute::new(
55 FormulaAndFunctionEventAggregation::COUNT,
56 ),
57 FormulaAndFunctionEventsDataSource::RUM,
58 "query1".to_string(),
59 )
60 .group_by(
61 vec![
62 FormulaAndFunctionEventQueryGroupBy::new(
63 "@geo.country_iso_code".to_string(),
64 )
65 .limit(250)
66 .sort(
67 FormulaAndFunctionEventQueryGroupBySort
68 ::new(
69 FormulaAndFunctionEventAggregation
70 ::COUNT,
71 ).order(QuerySortOrder::DESC),
72 )
73 ],
74 )
75 .indexes(vec!["*".to_string()])
76 .search(
77 FormulaAndFunctionEventQueryDefinitionSearch::new(
78 "".to_string(),
79 ),
80 ),
81 ),
82 )
83 ],
84 )
85 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
86 .sort(
87 WidgetSortBy::new()
88 .count(250)
89 .order_by(
90 vec![
91 WidgetSortOrderBy::WidgetFormulaSort(
92 Box::new(
93 WidgetFormulaSort::new(
94 0,
95 WidgetSort::DESCENDING,
96 FormulaType::FORMULA,
97 ),
98 ),
99 )
100 ],
101 ),
102 )
103 ],
104 GeomapWidgetDefinitionStyle::new("hostmap_blues".to_string(), false),
105 GeomapWidgetDefinitionType::GEOMAP,
106 GeomapWidgetDefinitionView::new("WORLD".to_string()),
107 )
108 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
109 .title("".to_string())
110 .title_align(WidgetTextAlign::LEFT)
111 .title_size("16".to_string()),
112 ),
113 ),
114 ).layout(WidgetLayout::new(30, 47, 0, 0))
115 ],
116 )
117 .description(None)
118 .notify_list(Some(vec![]))
119 .template_variables(Some(vec![]));
120 let configuration = datadog::Configuration::new();
121 let api = DashboardsAPI::with_config(configuration);
122 let resp = api.create_dashboard(body).await;
123 if let Ok(value) = resp {
124 println!("{:#?}", value);
125 } else {
126 println!("{:#?}", resp.unwrap_err());
127 }
128}