v1_dashboards_CreateDashboard_2921337351/
v1_dashboards_CreateDashboard_2921337351.rs

1// Create a new dashboard with trace_service 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::ServiceSummaryWidgetDefinition;
7use datadog_api_client::datadogV1::model::ServiceSummaryWidgetDefinitionType;
8use datadog_api_client::datadogV1::model::Widget;
9use datadog_api_client::datadogV1::model::WidgetDefinition;
10use datadog_api_client::datadogV1::model::WidgetLayout;
11use datadog_api_client::datadogV1::model::WidgetLegacyLiveSpan;
12use datadog_api_client::datadogV1::model::WidgetServiceSummaryDisplayFormat;
13use datadog_api_client::datadogV1::model::WidgetSizeFormat;
14use datadog_api_client::datadogV1::model::WidgetTime;
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::ServiceSummaryWidgetDefinition(Box::new(
23                ServiceSummaryWidgetDefinition::new(
24                    "none".to_string(),
25                    "".to_string(),
26                    "".to_string(),
27                    ServiceSummaryWidgetDefinitionType::TRACE_SERVICE,
28                )
29                .display_format(WidgetServiceSummaryDisplayFormat::TWO_COLUMN)
30                .show_breakdown(true)
31                .show_distribution(true)
32                .show_errors(true)
33                .show_hits(true)
34                .show_latency(true)
35                .show_resource_list(false)
36                .size_format(WidgetSizeFormat::MEDIUM)
37                .time(WidgetTime::WidgetLegacyLiveSpan(Box::new(
38                    WidgetLegacyLiveSpan::new(),
39                )))
40                .title("Service Summary".to_string()),
41            )))
42            .layout(WidgetLayout::new(72, 72, 0, 0)),
43        ],
44    )
45    .description(Some("".to_string()))
46    .notify_list(Some(vec![]))
47    .template_variables(Some(vec![]));
48    let configuration = datadog::Configuration::new();
49    let api = DashboardsAPI::with_config(configuration);
50    let resp = api.create_dashboard(body).await;
51    if let Ok(value) = resp {
52        println!("{:#?}", value);
53    } else {
54        println!("{:#?}", resp.unwrap_err());
55    }
56}