v1_notebooks_CreateNotebook/
v1_notebooks_CreateNotebook.rs

1// Create a notebook returns "OK" response
2use 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}