v1_notebooks_UpdateNotebook/
v1_notebooks_UpdateNotebook.rs1use datadog_api_client::datadog;
3use datadog_api_client::datadogV1::api_notebooks::NotebooksAPI;
4use datadog_api_client::datadogV1::model::NotebookCellCreateRequest;
5use datadog_api_client::datadogV1::model::NotebookCellCreateRequestAttributes;
6use datadog_api_client::datadogV1::model::NotebookCellResourceType;
7use datadog_api_client::datadogV1::model::NotebookGlobalTime;
8use datadog_api_client::datadogV1::model::NotebookGraphSize;
9use datadog_api_client::datadogV1::model::NotebookMarkdownCellAttributes;
10use datadog_api_client::datadogV1::model::NotebookMarkdownCellDefinition;
11use datadog_api_client::datadogV1::model::NotebookMarkdownCellDefinitionType;
12use datadog_api_client::datadogV1::model::NotebookRelativeTime;
13use datadog_api_client::datadogV1::model::NotebookResourceType;
14use datadog_api_client::datadogV1::model::NotebookSplitBy;
15use datadog_api_client::datadogV1::model::NotebookStatus;
16use datadog_api_client::datadogV1::model::NotebookTimeseriesCellAttributes;
17use datadog_api_client::datadogV1::model::NotebookUpdateCell;
18use datadog_api_client::datadogV1::model::NotebookUpdateData;
19use datadog_api_client::datadogV1::model::NotebookUpdateDataAttributes;
20use datadog_api_client::datadogV1::model::NotebookUpdateRequest;
21use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinition;
22use datadog_api_client::datadogV1::model::TimeseriesWidgetDefinitionType;
23use datadog_api_client::datadogV1::model::TimeseriesWidgetRequest;
24use datadog_api_client::datadogV1::model::WidgetAxis;
25use datadog_api_client::datadogV1::model::WidgetDisplayType;
26use datadog_api_client::datadogV1::model::WidgetLineType;
27use datadog_api_client::datadogV1::model::WidgetLineWidth;
28use datadog_api_client::datadogV1::model::WidgetLiveSpan;
29use datadog_api_client::datadogV1::model::WidgetRequestStyle;
30
31#[tokio::main]
32async fn main() {
33 let notebook_data_id: i64 = std::env::var("NOTEBOOK_DATA_ID").unwrap().parse().unwrap();
35 let body = NotebookUpdateRequest::new(NotebookUpdateData::new(
36 NotebookUpdateDataAttributes::new(
37 vec![
38 NotebookUpdateCell::NotebookCellCreateRequest(Box::new(
39 NotebookCellCreateRequest::new(
40 NotebookCellCreateRequestAttributes::NotebookMarkdownCellAttributes(
41 Box::new(NotebookMarkdownCellAttributes::new(
42 NotebookMarkdownCellDefinition::new(
43 r#"## Some test markdown
44
45```js
46var x, y;
47x = 5;
48y = 6;
49```"#
50 .to_string(),
51 NotebookMarkdownCellDefinitionType::MARKDOWN,
52 ),
53 )),
54 ),
55 NotebookCellResourceType::NOTEBOOK_CELLS,
56 ),
57 )),
58 NotebookUpdateCell::NotebookCellCreateRequest(Box::new(
59 NotebookCellCreateRequest::new(
60 NotebookCellCreateRequestAttributes::NotebookTimeseriesCellAttributes(
61 Box::new(
62 NotebookTimeseriesCellAttributes::new(
63 TimeseriesWidgetDefinition::new(
64 vec![TimeseriesWidgetRequest::new()
65 .display_type(WidgetDisplayType::LINE)
66 .q("avg:system.load.1{*}".to_string())
67 .style(
68 WidgetRequestStyle::new()
69 .line_type(WidgetLineType::SOLID)
70 .line_width(WidgetLineWidth::NORMAL)
71 .palette("dog_classic".to_string()),
72 )],
73 TimeseriesWidgetDefinitionType::TIMESERIES,
74 )
75 .show_legend(true)
76 .yaxis(WidgetAxis::new().scale("linear".to_string())),
77 )
78 .graph_size(NotebookGraphSize::MEDIUM)
79 .split_by(NotebookSplitBy::new(vec![], vec![]))
80 .time(None),
81 ),
82 ),
83 NotebookCellResourceType::NOTEBOOK_CELLS,
84 ),
85 )),
86 ],
87 "Example-Notebook-updated".to_string(),
88 NotebookGlobalTime::NotebookRelativeTime(Box::new(NotebookRelativeTime::new(
89 WidgetLiveSpan::PAST_ONE_HOUR,
90 ))),
91 )
92 .status(NotebookStatus::PUBLISHED),
93 NotebookResourceType::NOTEBOOKS,
94 ));
95 let configuration = datadog::Configuration::new();
96 let api = NotebooksAPI::with_config(configuration);
97 let resp = api.update_notebook(notebook_data_id.clone(), body).await;
98 if let Ok(value) = resp {
99 println!("{:#?}", value);
100 } else {
101 println!("{:#?}", resp.unwrap_err());
102 }
103}