v2_powerpack_UpdatePowerpack/
v2_powerpack_UpdatePowerpack.rs

1// Update a powerpack returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_powerpack::PowerpackAPI;
4use datadog_api_client::datadogV2::model::Powerpack;
5use datadog_api_client::datadogV2::model::PowerpackAttributes;
6use datadog_api_client::datadogV2::model::PowerpackData;
7use datadog_api_client::datadogV2::model::PowerpackGroupWidget;
8use datadog_api_client::datadogV2::model::PowerpackGroupWidgetDefinition;
9use datadog_api_client::datadogV2::model::PowerpackGroupWidgetLayout;
10use datadog_api_client::datadogV2::model::PowerpackInnerWidgets;
11use datadog_api_client::datadogV2::model::PowerpackTemplateVariable;
12use datadog_api_client::datadogV2::model::WidgetLiveSpan;
13use serde_json::Value;
14use std::collections::BTreeMap;
15
16#[tokio::main]
17async fn main() {
18    // there is a valid "powerpack" in the system
19    let powerpack_data_id = std::env::var("POWERPACK_DATA_ID").unwrap();
20    let body = Powerpack::new().data(
21        PowerpackData::new()
22            .attributes(
23                PowerpackAttributes::new(
24                    PowerpackGroupWidget::new(
25                        PowerpackGroupWidgetDefinition::new(
26                            "ordered".to_string(),
27                            "group".to_string(),
28                            vec![PowerpackInnerWidgets::new(BTreeMap::from([
29                                ("content".to_string(), Value::from("test")),
30                                ("type".to_string(), Value::from("note")),
31                            ]))],
32                        )
33                        .show_title(true)
34                        .title("Sample Powerpack".to_string()),
35                    )
36                    .layout(PowerpackGroupWidgetLayout::new(3, 12, 0, 0))
37                    .live_span(WidgetLiveSpan::PAST_ONE_HOUR),
38                    "Example-Powerpack".to_string(),
39                )
40                .description("Sample powerpack".to_string())
41                .tags(vec!["tag:sample".to_string()])
42                .template_variables(vec![PowerpackTemplateVariable::new("sample".to_string())
43                    .defaults(vec!["*".to_string()])]),
44            )
45            .type_("powerpack".to_string()),
46    );
47    let configuration = datadog::Configuration::new();
48    let api = PowerpackAPI::with_config(configuration);
49    let resp = api.update_powerpack(powerpack_data_id.clone(), body).await;
50    if let Ok(value) = resp {
51        println!("{:#?}", value);
52    } else {
53        println!("{:#?}", resp.unwrap_err());
54    }
55}