v2_logs_ListLogs/
v2_logs_ListLogs.rs

1// Search logs (POST) returns "OK" response
2use datadog_api_client::datadog;
3use datadog_api_client::datadogV2::api_logs::ListLogsOptionalParams;
4use datadog_api_client::datadogV2::api_logs::LogsAPI;
5use datadog_api_client::datadogV2::model::LogsListRequest;
6use datadog_api_client::datadogV2::model::LogsListRequestPage;
7use datadog_api_client::datadogV2::model::LogsQueryFilter;
8use datadog_api_client::datadogV2::model::LogsQueryOptions;
9use datadog_api_client::datadogV2::model::LogsSort;
10use datadog_api_client::datadogV2::model::LogsStorageTier;
11
12#[tokio::main]
13async fn main() {
14    let body =
15        LogsListRequest::new()
16            .filter(
17                LogsQueryFilter::new()
18                    .from("now-15m".to_string())
19                    .indexes(vec!["main".to_string(), "web".to_string()])
20                    .query("service:web* AND @http.status_code:[200 TO 299]".to_string())
21                    .storage_tier(LogsStorageTier::INDEXES)
22                    .to("now".to_string()),
23            )
24            .options(LogsQueryOptions::new().timezone("GMT".to_string()))
25            .page(
26                LogsListRequestPage::new()
27                    .cursor(
28                        "eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==".to_string(),
29                    )
30                    .limit(25),
31            )
32            .sort(LogsSort::TIMESTAMP_ASCENDING);
33    let configuration = datadog::Configuration::new();
34    let api = LogsAPI::with_config(configuration);
35    let resp = api
36        .list_logs(ListLogsOptionalParams::default().body(body))
37        .await;
38    if let Ok(value) = resp {
39        println!("{:#?}", value);
40    } else {
41        println!("{:#?}", resp.unwrap_err());
42    }
43}