v1_dashboards_CreateDashboard_578885732/
v1_dashboards_CreateDashboard_578885732.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_dashboards::DashboardsAPI;
4use datadog_api_client::datadogV1::model::ChangeWidgetDefinition;
5use datadog_api_client::datadogV1::model::ChangeWidgetDefinitionType;
6use datadog_api_client::datadogV1::model::ChangeWidgetRequest;
7use datadog_api_client::datadogV1::model::Dashboard;
8use datadog_api_client::datadogV1::model::DashboardLayoutType;
9use datadog_api_client::datadogV1::model::FormulaAndFunctionEventAggregation;
10use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinition;
11use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionCompute;
12use datadog_api_client::datadogV1::model::FormulaAndFunctionEventQueryDefinitionSearch;
13use datadog_api_client::datadogV1::model::FormulaAndFunctionEventsDataSource;
14use datadog_api_client::datadogV1::model::FormulaAndFunctionQueryDefinition;
15use datadog_api_client::datadogV1::model::FormulaAndFunctionResponseFormat;
16use datadog_api_client::datadogV1::model::Widget;
17use datadog_api_client::datadogV1::model::WidgetChangeType;
18use datadog_api_client::datadogV1::model::WidgetCompareTo;
19use datadog_api_client::datadogV1::model::WidgetDefinition;
20use datadog_api_client::datadogV1::model::WidgetFormula;
21use datadog_api_client::datadogV1::model::WidgetLayout;
22use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
23use datadog_api_client::datadogV1::model::WidgetOrderBy;
24use datadog_api_client::datadogV1::model::WidgetSort;
25use datadog_api_client::datadogV1::model::WidgetTextAlign;
26use datadog_api_client::datadogV1::model::WidgetTime;
27
28#[tokio::main]
29async fn main() {
30 let body =
31 Dashboard::new(
32 DashboardLayoutType::ORDERED,
33 "Example-Dashboard".to_string(),
34 vec![
35 Widget::new(
36 WidgetDefinition::ChangeWidgetDefinition(
37 Box::new(
38 ChangeWidgetDefinition::new(
39 vec![
40 ChangeWidgetRequest::new()
41 .change_type(WidgetChangeType::ABSOLUTE)
42 .compare_to(WidgetCompareTo::HOUR_BEFORE)
43 .formulas(
44 vec![
45 WidgetFormula::new("hour_before(query1)".to_string()),
46 WidgetFormula::new("query1".to_string())
47 ],
48 )
49 .increase_good(true)
50 .order_by(WidgetOrderBy::CHANGE)
51 .order_dir(WidgetSort::DESCENDING)
52 .queries(
53 vec![
54 FormulaAndFunctionQueryDefinition
55 ::FormulaAndFunctionEventQueryDefinition(
56 Box::new(
57 FormulaAndFunctionEventQueryDefinition::new(
58 FormulaAndFunctionEventQueryDefinitionCompute::new(
59 FormulaAndFunctionEventAggregation::COUNT,
60 ),
61 FormulaAndFunctionEventsDataSource::LOGS,
62 "query1".to_string(),
63 )
64 .group_by(vec![])
65 .indexes(vec!["*".to_string()])
66 .search(
67 FormulaAndFunctionEventQueryDefinitionSearch::new(
68 "".to_string(),
69 ),
70 ),
71 ),
72 )
73 ],
74 )
75 .response_format(FormulaAndFunctionResponseFormat::SCALAR)
76 ],
77 ChangeWidgetDefinitionType::CHANGE,
78 )
79 .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(WidgetLegacyLiveSpan::new())))
80 .title("".to_string())
81 .title_align(WidgetTextAlign::LEFT)
82 .title_size("16".to_string()),
83 ),
84 ),
85 ).layout(WidgetLayout::new(4, 4, 0, 0))
86 ],
87 );
88 let configuration = datadog::Configuration::new();
89 let api = DashboardsAPI::with_config(configuration);
90 let resp = api.create_dashboard(body).await;
91 if let Ok(value) = resp {
92 println!("{:#?}", value);
93 } else {
94 println!("{:#?}", resp.unwrap_err());
95 }
96}