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