v1_dashboards_CreateDashboard_2029850837/
v1_dashboards_CreateDashboard_2029850837.rs

1// Create a new dashboard with log_stream widget
2use 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::LogStreamWidgetDefinition;
7use datadog_api_client::datadogV1::model::LogStreamWidgetDefinitionType;
8use datadog_api_client::datadogV1::model::Widget;
9use datadog_api_client::datadogV1::model::WidgetDefinition;
10use datadog_api_client::datadogV1::model::WidgetFieldSort;
11use datadog_api_client::datadogV1::model::WidgetLayout;
12use datadog_api_client::datadogV1::model::WidgetMessageDisplay;
13use datadog_api_client::datadogV1::model::WidgetSort;
14use datadog_api_client::datadogV1::model::WidgetTextAlign;
15
16#[tokio::main]
17async fn main() {
18    let body = Dashboard::new(
19        DashboardLayoutType::FREE,
20        "Example-Dashboard".to_string(),
21        vec![
22            Widget::new(WidgetDefinition::LogStreamWidgetDefinition(Box::new(
23                LogStreamWidgetDefinition::new(LogStreamWidgetDefinitionType::LOG_STREAM)
24                    .columns(vec!["host".to_string(), "service".to_string()])
25                    .indexes(vec!["main".to_string()])
26                    .message_display(WidgetMessageDisplay::EXPANDED_MEDIUM)
27                    .query("".to_string())
28                    .show_date_column(true)
29                    .show_message_column(true)
30                    .sort(WidgetFieldSort::new(
31                        "time".to_string(),
32                        WidgetSort::DESCENDING,
33                    ))
34                    .title("".to_string())
35                    .title_align(WidgetTextAlign::LEFT)
36                    .title_size("16".to_string()),
37            )))
38            .layout(WidgetLayout::new(36, 47, 0, 0)),
39        ],
40    )
41    .description(Some("".to_string()))
42    .notify_list(Some(vec![]))
43    .template_variables(Some(vec![]));
44    let configuration = datadog::Configuration::new();
45    let api = DashboardsAPI::with_config(configuration);
46    let resp = api.create_dashboard(body).await;
47    if let Ok(value) = resp {
48        println!("{:#?}", value);
49    } else {
50        println!("{:#?}", resp.unwrap_err());
51    }
52}